Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "pokemon/skills/bug.inc"
- #include "pokemon/skills/dragon.inc"
- #include "pokemon/skills/electric.inc"
- #include "pokemon/skills/fighting.inc"
- #include "pokemon/skills/fire.inc"
- #include "pokemon/skills/flying.inc"
- #include "pokemon/skills/ghost.inc"
- #include "pokemon/skills/grass.inc"
- #include "pokemon/skills/ground.inc"
- #include "pokemon/skills/ice.inc"
- #include "pokemon/skills/normal.inc"
- #include "pokemon/skills/poison.inc"
- #include "pokemon/skills/psychic.inc"
- #include "pokemon/skills/rock.inc"
- #include "pokemon/skills/water.inc"
- #include "pokemon/skills/steel.inc"
- #include "pokemon/skills/dark.inc"
- #include "pokemon/skills/custom.inc"
- enum
- {
- SKILL_ABSORB,
- SKILL_ACID,
- SKILL_ACIDARMOR,
- SKILL_AGILITY,
- SKILL_AMNESIA,
- SKILL_AURORABEAM,
- SKILL_BARRAGE,
- SKILL_BIDE,
- SKILL_BITE,
- SKILL_POWDEREDSNOW,
- SKILL_BODYSLAM,
- SKILL_BONECLUB,
- SKILL_BONEMERANG,
- SKILL_BUBBLEBEAM,
- SKILL_CONFUSERAY,
- SKILL_CONFUSION,
- SKILL_CONSTRICT,
- SKILL_CONVERSION,
- SKILL_COUNTER,
- SKILL_DEFENSECURL,
- SKILL_DIG,
- SKILL_DISABLE,
- SKILL_DIZZYPUNCH,
- SKILL_DOUBLEEDGE,
- SKILL_DOUBLEKICK,
- SKILL_DOUBLESLAP,
- SKILL_DOUBLETEAM,
- SKILL_DRAGONRAGE,
- SKILL_DREAMEATER,
- SKILL_DRILLPECK,
- SKILL_EARTHQUAKE,
- SKILL_EGGBOMB,
- SKILL_EMBER,
- SKILL_EXPLOSION,
- SKILL_FIREBLAST,
- SKILL_FIRESPIN,
- SKILL_FISSURE,
- SKILL_FLAMETHROWER,
- SKILL_FLASH,
- SKILL_FLY,
- SKILL_GLARE,
- SKILL_GROWTH,
- SKILL_GUILLOTINE,
- SKILL_GUST,
- SKILL_HARDER,
- SKILL_HAZE,
- SKILL_HORNATTACK,
- SKILL_HORNDRILL,
- SKILL_HYDROPUMP,
- SKILL_HYPERBEAM,
- SKILL_HYPNOSIS,
- SKILL_ICEBEAM,
- SKILL_KARATECHOP,
- SKILL_LEECHLIFE,
- SKILL_LEECHSEED,
- SKILL_LEER,
- SKILL_LIGHTSCREEN,
- SKILL_LOWKICK,
- SKILL_MEGADRAIN,
- SKILL_MEGAKICK,
- SKILL_MEGAPUNCH,
- SKILL_MIST,
- SKILL_NIGHTSHADE,
- SKILL_PAYDAY,
- SKILL_PECK,
- SKILL_PINMISSILE,
- SKILL_POISONGAS,
- SKILL_POISONPOWDER,
- SKILL_POISONSTING,
- SKILL_PSYBEAM,
- SKILL_PSYCHIC,
- SKILL_PSYWAVE,
- SKILL_QUICKATTACK,
- SKILL_RAGE,
- SKILL_RAZORLEAF,
- SKILL_RECOVER,
- SKILL_REFLECT,
- SKILL_REST,
- SKILL_ROAR,
- SKILL_ROCKSLIDE,
- SKILL_ROCKTRHOW,
- SKILL_SANDATTACK,
- SKILL_SCRATCH,
- SKILL_SCREECH,
- SKILL_SEISMICTOSS,
- SKILL_SELFDESTRUCT,
- SKILL_SING,
- SKILL_SKULLBASH,
- SKILL_SKYATTACK,
- SKILL_SLASH,
- SKILL_SLEEPPOWDER,
- SKILL_SMOG,
- SKILL_SMOKESCREEN,
- SKILL_SOLARBEAM,
- SKILL_SONICBOOM,
- SKILL_SPIKECANNON,
- SKILL_SPLASH,
- SKILL_SPORE,
- SKILL_STOMP,
- SKILL_STRENGTH,
- SKILL_STRINGSHOT,
- SKILL_STUNGSPORE,
- SKILL_SUBMISSION,
- SKILL_SUBSTITUTE,
- SKILL_SUPERSONIC,
- SKILL_SWIFT,
- SKILL_TACKLE,
- SKILL_TAILWHIP,
- SKILL_TAKE,
- SKILL_TELEPORT,
- SKILL_THRASH,
- SKILL_THUNDER,
- SKILL_THUNDERWAVE,
- SKILL_THUNDERBOLT,
- SKILL_THUNDERSHOCK,
- SKILL_TOXIC,
- SKILL_TRANSFORM,
- SKILL_TRIATTACK,
- SKILL_VICEGRIP,
- SKILL_VINEWHIP,
- SKILL_WATERFALL,
- SKILL_WHIRLWIND,
- SKILL_WITHDRAW,
- SKILL_WRAP,
- SKILL_AEROBLAST,
- SKILL_ANCIENTPOWER,
- SKILL_AROMATHERAPY,
- SKILL_AVALANCHE,
- SKILL_BLAZEKICK,
- SKILL_BOUNCE,
- SKILL_CALMMIND,
- SKILL_CRUNCH,
- SKILL_ERUPTION,
- SKILL_EXTREMESPEED,
- SKILL_FAINTATTACK,
- SKILL_FIREPUNCH,
- SKILL_FLASHCANNON,
- SKILL_FORESIGHT,
- SKILL_FUTURESIGHT,
- SKILL_GIGADRAIN,
- SKILL_GUARDSWAP,
- SKILL_HEALBELL,
- SKILL_ASSIST,
- SKILL_HIDDENPOWER,
- SKILL_BLIZZARD,
- SKILL_INSOMNIA,
- SKILL_IRONDEFENSE,
- SKILL_LEAFSTORM,
- SKILL_LELIVATE,
- SKILL_LOVELYKISS,
- SKILL_LUSTERPURGE,
- SKILL_MAGMAARMOR,
- SKILL_MINIMIZE,
- SKILL_MIRRORCOAT,
- SKILL_OCTOZOOKA,
- SKILL_OVERHEAT,
- SKILL_POISONFANG,
- SKILL_PRESENT,
- SKILL_PROTECT,
- SKILL_PSYCHOBOOST,
- SKILL_RAINDANCE,
- SKILL_RAZORWIND,
- SKILL_REVERSAL,
- SKILL_SACREDFIRE,
- SKILL_SANDSTORM,
- SKILL_SCARYFACE,
- SKILL_SHADOWBALL,
- SKILL_SHEERCOLD,
- SKILL_SHOCKWAVE,
- SKILL_SILENT,
- SKILL_SPARK,
- SKILL_SPIDERWEB,
- SKILL_SOFTBOILED,
- SKILL_STEELWING,
- SKILL_STONEEDGE,
- SKILL_SUNNYDAY,
- SKILL_SYNTHESIS,
- SKILL_TELEKNESIS,
- SKILL_THIEF,
- SKILL_THUNDERPUNCH,
- SKILL_TRIPLEKICK,
- SKILL_WATERPULSE,
- SKILL_ZAPCANNON,
- SKILL_BLOCK,
- SKILL_BUGBITE,
- SKILL_DRAGONRUSH,
- SKILL_ELECTRABALL,
- SKILL_ENDEAVOR,
- SKILL_FOCUSENERGY,
- SKILL_HEALORDER,
- SKILL_ICEBALL,
- SKILL_MAGICALLEAF,
- SKILL_MIMIC,
- SKILL_NIGHTSLASH,
- SKILL_SUCKERPUNCH,
- SKILL_SWAGGER,
- SKILL_SWEETKISS,
- SKILL_THUNDERFANG,
- SKILL_WATERSPORT,
- SKILL_WHIRLPOOL,
- SKILL_WINGATTACK,
- SKILL_MEDITATE,
- SKILL_EPICBOMB,
- SKILL_WEATHERBEAM,
- SKILL_ICYWIND,
- SKILL_HELPINGHAND,
- SKILL_SPITFIRE,
- SKILL_ICEPUNCH,
- SKILL_FLAMEWHEEL,
- SKILL_DARKPULSE,
- SKILL_MEMENTO,
- SKILL_VANISHER,
- SKILL_SHADOWSENSOR,
- SKILL_ELECTRICTHREADS,
- SKILL_HEALINGWAVE,
- SKILL_SHELLYCOAT,
- SKILL_OVERCOAT,
- SKILL_ORACLE,
- SKILL_POISONPOINT,
- SKILL_BLACKGODFLAMES,
- SKILL_LIMBER,
- SKILL_EVILROOT,
- SKILL_RAPIDRUN,
- SKILL_SERPENTEYES,
- SKILL_FIREMADNESS,
- SKILL_FIREPUNCHES,
- SKILL_HIDDENWEAPON,
- SKILL_HIDDENHOWL,
- SKILL_RUNAWAY,
- SKILL_FEROCIOUSHUNTER,
- SKILL_TRACKER,
- SKILL_PROTECTANT,
- SKILL_SAVIOR,
- SKILL_ASSASSIN,
- SKILL_ANGRYPECKER,
- SKILL_CALMSCENE,
- SKILL_MASSIVEEXPLOSION,
- SKILL_SPEEDYBOLT,
- SKILL_STEELER,
- SKILL_CRYSTALLIZE,
- SKILL_SANDFORCE,
- SKILL_SILENTSCREAMING,
- SKILL_FRAGRANCE,
- SKILL_IRONFIST,
- SKILL_STATUE,
- SKILL_CONCRETEMISSILE,
- SKILL_HELPER,
- SKILL_EARTHSHAKER,
- SKILL_POISONTOUCH,
- SKILL_INVISIBLETHREADS,
- SKILL_LEADSLICER,
- SKILL_DARKVENOM,
- SKILL_QUICKFEAT,
- SKILL_DIVERSION,
- SKILL_INFILTRATOR,
- SKILL_HEALINGLEAF,
- SKILL_RECKLESSNESS,
- SKILL_BLOCKER,
- SKILL_NIGHTVISION,
- SKILL_CLOSESIGHT,
- SKILL_HEAVYSLEEP,
- SKILL_ZENMODE,
- SKILL_SCREAMINGSTORM,
- SKILL_HIDDENROCK,
- SKILL_SHEDSKIN,
- SKILL_HOODLUM,
- SKILL_MIRRORTOUCH,
- SKILL_BODYEATER,
- SKILL_SOLIDROCK,
- SKILL_TRIBEAM,
- SKILL_TRASHGAS,
- SKILL_TOXICSPRAY,
- SKILL_EXTRAAMMO,
- SKILL_REVERSEDAMGE,
- SKILL_AMPLIFIER,
- SKILL_DARKMOON,
- SKILL_MAGICGUARD,
- SKILL_WATERPUMPER,
- SKILL_HYDRATION,
- SKILL_ICEBODY,
- SKILL_ICYWINDS,
- SKILL_SNOWSTORM,
- SKILL_SERENEGRACE,
- SKILL_IMITATION,
- SKILL_HOSTAGETAKER,
- SKILL_CURSEDBODY,
- SKILL_ELECTROWEB,
- SKILL_THORNYBARRIER,
- SKILL_PROJUMPER,
- SKILL_CLEARBODY,
- SKILL_DISKTHROWER,
- SKILL_DISKEXPLOSIVE,
- SKILL_UNKNOWNWORLD,
- SKILL_BRAINATTACKER,
- SKILL_FLAMELIGHTER,
- SKILL_SOULTAKER,
- SKILL_ADAMANTDRAGON,
- SKILL_ICECHILL,
- SKILL_ICECHAINS,
- SKILL_SHELLARMOR,
- SKILL_STEALTH,
- SKILL_EARTHLYLIGHTINING,
- SKILL_INNERFOCUS,
- SKILL_WHIPSLASH,
- SKILL_DRAGONLIGHT,
- SKILL_REGENERATION,
- SKILL_BLADEDHANDS,
- SKILL_PRESSURE,
- SKILL_HEADCHARGE,
- SKILL_HUSTLE,
- SKILL_ARMORRESPAWN,
- SKILL_WINDDRAGONROAR,
- SKILL_WHITESMOKE,
- SKILL_TRIPLETEAM,
- SKILL_EVILINTENT,
- SKILL_BLAZINGTOUCH,
- SKILL_DEADLYHORN,
- SKILL_SEAOFFLAMES,
- SKILL_MINDCONTROL,
- SKILL_DEADLYDREAM,
- SKILL_WATERSPRAYER,
- SKILL_GEYSERNEST,
- SKILL_SHININGLIGHT,
- SKILL_EMOTIONALPAIN,
- SKILL_FLIGHT,
- SKILL_ROCKYSKY,
- SKILL_HIGHDEFENSE,
- SKILL_METALBURST,
- SKILL_DECIEVING,
- SKILL_FALLENLIFE,
- SKILL_NIGHTDAZE,
- SKILL_PHANTONDAZE,
- SKILL_WATERGOD,
- SKILL_RELICSONG,
- SKILL_TECHNODRIVE,
- SKILL_DEVINEJUDGMENT,
- SKILL_DEVINEICE,
- SKILL_BLACKDEATH,
- SKILL_SHADOWSTALKER,
- SKILL_LIGHTNINGFURY,
- SKILL_VOLCANOGEYSER,
- SKILL_FLYINGJUDGMENT,
- SKILL_ACIDRAIN,
- SKILL_ANCIENT,
- SKILL_FIREEXPLOSION,
- SKILL_CALMINGWAVES
- };
- ///////////////////////////////////////
- // When someone presses +pokeskill //
- ///////////////////////////////////////
- public pokeskill_down(id)
- {
- g_StopSkill[id] = false;
- if( !PMon() ){
- poke_printlang(id,"POKEMOD_DISABLED")
- return PLUGIN_HANDLED
- }
- else if( PM_disabled == PM_XP ){
- poke_printlang(id,"POKEMOD_SKILLSDISABLED")
- return PLUGIN_HANDLED
- }
- else if( !ValidPoke( PlayersPoke[id][0] ) ){
- StartMenu(id)
- return PLUGIN_HANDLED
- }
- if( g_isItemed[id] ){
- SetActionMenu( id, AC_GO );
- return PLUGIN_HANDLED;
- }
- if( !Pokemod_Alive(id) ){
- new parm[2];
- parm[0] = id;
- parm[1] = 0;
- set_task(0.1, "PokeMenu", 0, parm, 2);
- return PLUGIN_HANDLED;
- }
- new skill_num, command[32];
- read_argv(0,command,31);
- replace(command, 31, "+pokeskill", EMPTY);
- skill_num = str_to_num(command);
- new poke_skills[MAX_SKILLS], skill_count, i;
- for( i = 0; i < MAX_SKILLS; i++ )
- poke_skills[i] = -1;
- new pid = Pokemon[id], tempskill, tempcheck, bool:skill_found;
- for( i = -1; i<MAX_ACTIVE_POKES; i++ ){
- if( i != -1 ){
- pid = PlayersPoke[id][i];
- //if weve already added the skill in, we don't need to add it again
- if( i == PlayersActive[id] )
- continue;
- }
- while( pid && skill_count < MAX_SKILLS ){
- if( !PokeDisabled(pid) && (tempskill = PokeSkill[pid]) != -1 ){
- if( (i==-1 || PokeInfo[pid] & PI_GLOBAL) && SkillInfo[tempskill] & SI_BIND ){
- skill_found = false;
- for( tempcheck=0; tempcheck < skill_count; tempcheck++ )
- if( poke_skills[tempcheck] == tempskill )
- skill_found = true;
- if( !skill_found ){
- poke_skills[skill_count] = tempskill;
- skill_count++;
- }
- }
- }
- pid = AnyEvolveTo(pid);
- }
- }
- if( skill_count > 1 && !skill_num ){
- if( !ValidSkill( ActiveSkill(id) ) ){
- SkillMenu(id);
- return PLUGIN_HANDLED;
- }
- else
- tempskill = ActiveSkill(id);
- }
- else if( skill_num )
- SetActiveSkill(id, (tempskill = poke_skills[skill_num-1]) );
- else
- SetActiveSkill(id, (tempskill = poke_skills[0]) );
- //couldnt find any skill to use, lets just use their first skill
- if( !ValidSkill(tempskill) && !PokeDisabled( Pokemon[id] ) )
- SetActiveSkill(id, (tempskill = PokeSkill[Pokemon[id]]) );
- //stop, they dont have a valid skill
- if( !ValidSkill(tempskill) ){
- poke_printlang(id,"POKEMOD_NOSKILL" );
- return PLUGIN_HANDLED;
- }
- //stop, they dont have a bind skill
- if( !(SkillInfo[tempskill] & SI_BIND) ){
- set_hudmessage(0, 255, 0, 0.6, 0.8, 0, 6.0, 1.1, 0.0, 0.0, -1)
- show_hudmessage(id, "%s cannot be manually activated.", SkillToName(tempskill))
- return PLUGIN_HANDLED;
- }
- //stop, we arent allowing the skill to be used
- if( DisAllowSkill( id, tempskill, true ) )
- return PLUGIN_HANDLED;
- //check spam time. stop if they are spamming
- new Float:current_time = get_gametime();
- if(current_time-g_lastSkill[id] < SKILL_SPAM){
- set_hudmessage(0, 255, 0, 0.6, 0.8, 0, 6.0, 1.1, 0.0, 0.0, -1)
- show_hudmessage(id, "Stop trying to spam PokeMod skills.")
- return PLUGIN_HANDLED;
- }
- g_lastSkill[id] = current_time;
- //send into skill handler
- bind_skill_handler(id+POKESKILL_TASK);
- debugMessage(id,6,"Player", "keyed down with %s", SkillToName( ActiveSkill(id) ) );
- return PLUGIN_HANDLED;
- }
- ////////////////////////////////////////
- // When someone releases +pokeskill //
- ////////////////////////////////////////
- public pokeskill_up(id)
- {
- debugMessage(id,6,"Player", "keyed up with %s", SkillToName( ActiveSkill(id) ) );
- skills_handler(id, SI_RELEASE);
- if( ValidSkill( ActiveSkill(id) ) ){
- if( Action[id] == AC_SKILL )
- SkillMenu(id);
- }
- g_StopSkill[id] = true;
- #if SKILL_UNSPAM == 1
- g_lastSkill[id] = 0.0;
- #endif
- return PLUGIN_HANDLED;
- }
- public bind_skill_handler(id)
- {
- id -= POKESKILL_TASK;
- if( ValidPlayer( id ) ){
- if( !Pokemod_Alive(id) || DisAllowSkill( id, ActiveSkill(id), true ) || g_StopSkill[id] ){
- g_StopSkill[id] = false;
- }
- else if( ValidSkill( ActiveSkill(id) ) ){
- CallSkill(id, ActiveSkill(id), SI_BIND);
- set_task(0.1,"bind_skill_handler", POKESKILL_TASK+id)
- }
- }
- }
- skills_handler(id, call_prop)
- {
- if( PlayerEventForward > -1 )
- {
- new functionReturn
- ExecuteForward(PlayerEventForward, functionReturn, id, call_prop)
- if( functionReturn==PLUGIN_HANDLED )
- return;
- }
- new skill, subpoke, bool:auto_globals=false;
- if( call_prop & SI_RESET || call_prop & SI_ROUNDRESET || call_prop & SI_CONNECT || call_prop & SI_DISCONNECT )
- auto_globals = true;
- if( !PokeDisabled( Pokemon[id] ) ){
- skill = PokeSkill[Pokemon[id]];
- if( !DisAllowSkill(id, skill) && SkillInfo[ skill ] & call_prop )
- CallSkill(id, skill, call_prop)
- }
- //if their active poke is evolved, deal with the skills it had
- subpoke = AnyEvolveTo(Pokemon[id])
- while(subpoke && subpoke!=Pokemon[id]){
- if( !PokeDisabled( subpoke ) ){
- skill = PokeSkill[subpoke];
- if( !DisAllowSkill(id, skill) && SkillInfo[skill] & call_prop )
- CallSkill(id, skill, call_prop)
- }
- subpoke = AnyEvolveTo(subpoke)
- }
- //now on to the global pokes
- new m, pid_global;
- for(m=0; m<MAX_ACTIVE_POKES; m++){
- pid_global = PlayersPoke[id][m]
- if( Pokemon[id] == pid_global )
- continue;
- if( (auto_globals || PokeInfo[pid_global] & PI_GLOBAL) && !PokeDisabled(pid_global) ){
- skill = PokeSkill[pid_global];
- if( !DisAllowSkill(id, skill) && SkillInfo[skill] & call_prop )
- CallSkill(id, skill, call_prop)
- }
- //sub globals now
- subpoke = AnyEvolveTo(pid_global)
- while(subpoke && subpoke!=pid_global){
- if( (auto_globals || PokeInfo[subpoke] & PI_GLOBAL) && !PokeDisabled(subpoke) ){
- skill = PokeSkill[subpoke];
- if( !DisAllowSkill(id, skill) && SkillInfo[skill] & call_prop )
- CallSkill(id, skill, call_prop)
- }
- subpoke = AnyEvolveTo(subpoke)
- }
- }
- }
- bool:PokeDisabled( pokemon )
- {
- if( PokeInfo[pokemon]&PI_DISABLE || SafariLevel(pokemon)==-1000 )
- return true;
- return false;
- }
- bool:DisAllowSkill(id, skill, bool:bind=false)
- {
- if( !ValidSkill( skill ) || !Pokemod_Connected(id) )
- return true;
- if( PM_disabled == PM_XP ){
- if(bind) poke_printlang(id,"POKEMOD_SKILLSDISABLED");
- return true;
- }
- else if( SkillInfo[skill] & SI_DISABLE ){
- if(bind) poke_printlang(id,"POKEMOD_SKILLDIS");
- return true;
- }
- else if( SkillInfo[skill] & SI_CALL )
- return false;
- else if( !(SkillInfo[skill] & SI_IGNORE) && BindTime(id) ){
- if(bind) sound_deny(id);
- return true;
- }
- else if( g_Status[id][STATUS_ASLEEP] ){
- if(bind) poke_printlang(id,"POKEMOD_SKILLASLEEP");
- return true;
- }
- else if( !(SkillInfo[skill] & SI_DEAD) && !Pokemod_Alive(id) ){
- if(bind) poke_printlang(id,"POKEMOD_SKILLDEAD");
- return true;
- }
- else if( SkillInfo[skill] & SI_ADMIN && !is_user_admin(id) ){
- if(bind) poke_printlang(id,"POKEMOD_SKILLADMIN");
- return true;
- }
- else if( FreezeTime ){
- if(bind) poke_printlang(id,"POKEMOD_SKILLFREEZE");
- return true;
- }
- #if MOD==CS
- else if( cs_get_user_vip(id) ){
- if(bind) poke_printlang(id,"POKEMOD_SKILLVIP");
- return true;
- }
- #endif
- #if MOD==NS
- else if( ns_get_class(id) == CLASS_COMMANDER ){
- if(bind) poke_printlang(id,"POKEMOD_SKILLCOM");
- return true;
- }
- #endif
- return false;
- }
- stock RemoveDelayCallSkill(id, skill)
- remove_task( SKILLCALL_TASK + (skill * MAX_PLAYERS) + id );
- stock DelayedCallSkill(Float:time, id, skill, prop)
- {
- new parm[ 3 ];
- parm[ 0 ] = id;
- parm[ 1 ] = skill;
- parm[ 2 ] = prop;
- set_task(time, "task_CallSkill", SKILLCALL_TASK + (skill* MAX_PLAYERS) + id, parm, 3);
- }
- public task_CallSkill( parm[3] )
- CallSkill( parm[0], parm[1], parm[2] );
- CallSkill(id, skill, prop)
- {
- if( ValidPlayer(id) && ValidSkill(skill) )
- {
- debugMessage(id,7,"Player", "calling skill %s", SkillToName( skill ) );
- new SKILL:call;
- switch( skill )
- {
- case SKILL_ABSORB: call = Absorb( id, skill, prop );
- case SKILL_ACID: call = Acid ( id, skill, prop );
- case SKILL_ACIDARMOR: call = Acid_Armor( id, skill, prop );
- case SKILL_AGILITY: call = Agility( id, skill, prop );
- case SKILL_AMNESIA: call = Amnesia( id, skill, prop );
- case SKILL_AURORABEAM: call = Aurora_Beam( id, skill, prop );
- case SKILL_BARRAGE: call = Barrage( id, skill, prop );
- case SKILL_BIDE: call = Bide( id, skill, prop );
- case SKILL_BITE: call = Bite( id, skill, prop );
- case SKILL_POWDEREDSNOW: call = Powdered_Snow( id, skill, prop );
- case SKILL_BODYSLAM: call = Body_Slam( id, skill, prop );
- case SKILL_BONECLUB: call = Bone_Club( id, skill, prop );
- case SKILL_BONEMERANG: call = Bonemerang( id, skill, prop );
- case SKILL_BUBBLEBEAM: call = Bubble_Beam( id, skill, prop );
- case SKILL_CONFUSERAY: call = Confuse_Ray( id, skill, prop );
- case SKILL_CONFUSION: call = Confusion( id, skill, prop );
- case SKILL_CONSTRICT: call = Constrict( id, skill, prop );
- case SKILL_CONVERSION: call = Conversion( id, skill, prop );
- case SKILL_COUNTER: call = Counter( id, skill, prop );
- case SKILL_DEFENSECURL: call = Defense_Curl( id, skill, prop );
- case SKILL_DIG: call = Dig( id, skill, prop );
- case SKILL_DISABLE: call = Disable( id, skill, prop );
- case SKILL_DIZZYPUNCH: call = Dizzy_Punch( id, skill, prop );
- case SKILL_DOUBLEEDGE: call = Double_Edge( id, skill, prop );
- case SKILL_DOUBLEKICK: call = Double_Kick( id, skill, prop );
- case SKILL_DOUBLESLAP: call = Double_Slap( id, skill, prop );
- case SKILL_DOUBLETEAM: call = Double_Team( id, skill, prop );
- case SKILL_DRAGONRAGE: call = Dragon_Rage( id, skill, prop );
- case SKILL_DREAMEATER: call = Dream_Eater( id, skill, prop );
- case SKILL_DRILLPECK: call = Drill_Peck( id, skill, prop );
- case SKILL_EARTHQUAKE: call = Earthquake( id, skill, prop );
- case SKILL_EGGBOMB: call = Egg_Bomb( id, skill, prop );
- case SKILL_EMBER: call = Ember( id, skill, prop );
- case SKILL_EXPLOSION: call = Explosion( id, skill, prop );
- case SKILL_FIREBLAST: call = Fire_Blast( id, skill, prop );
- case SKILL_FIRESPIN: call = Fire_Spin( id, skill, prop );
- case SKILL_FISSURE: call = Fissure( id, skill, prop );
- case SKILL_FLAMETHROWER: call = Flamethrower( id, skill, prop );
- case SKILL_FLASH: call = Flash( id, skill, prop );
- case SKILL_FLY: call = Fly( id, skill, prop );
- case SKILL_GLARE: call = Glare( id, skill, prop );
- case SKILL_GROWTH: call = Growth( id, skill, prop );
- case SKILL_GUILLOTINE: call = Guillotine( id, skill, prop );
- case SKILL_GUST: call = Gust( id, skill, prop );
- case SKILL_HARDER: call = Harden( id, skill, prop );
- case SKILL_HAZE: call = Haze( id, skill, prop );
- case SKILL_HORNATTACK: call = Horn_Attack( id, skill, prop );
- case SKILL_HORNDRILL: call = Horn_Drill( id, skill, prop );
- case SKILL_HYDROPUMP: call = Hydro_Pump( id, skill, prop );
- case SKILL_HYPERBEAM: call = Hyper_Beam( id, skill, prop );
- case SKILL_HYPNOSIS: call = Hypnosis( id, skill, prop );
- case SKILL_ICEBEAM: call = Ice_Beam( id, skill, prop );
- case SKILL_KARATECHOP: call = Karate_Chop( id, skill, prop );
- case SKILL_LEECHLIFE: call = Leech_Life( id, skill, prop );
- case SKILL_LEECHSEED: call = Leech_Seed( id, skill, prop );
- case SKILL_LEER: call = Leer( id, skill, prop );
- case SKILL_LIGHTSCREEN: call = Light_Screen( id, skill, prop );
- case SKILL_LOWKICK: call = Low_Kick( id, skill, prop );
- case SKILL_MEGADRAIN: call = Mega_Drain( id, skill, prop );
- case SKILL_MEGAKICK: call = Mega_Kick( id, skill, prop );
- case SKILL_MEGAPUNCH: call = Mega_Punch( id, skill, prop );
- case SKILL_MIST: call = Mist( id, skill, prop );
- case SKILL_NIGHTSHADE: call = Night_Shade( id, skill, prop );
- case SKILL_PAYDAY: call = Pay_Day( id, skill, prop );
- case SKILL_PECK: call = Peck( id, skill, prop );
- case SKILL_PINMISSILE: call = Pin_Missile( id, skill, prop );
- case SKILL_POISONGAS: call = Poison_Gas( id, skill, prop );
- case SKILL_POISONPOWDER: call = Poison_Powder( id, skill, prop );
- case SKILL_POISONSTING: call = Poison_Sting( id, skill, prop );
- case SKILL_PSYBEAM: call = Psybeam( id, skill, prop );
- case SKILL_PSYCHIC: call = Psychic( id, skill, prop );
- case SKILL_PSYWAVE: call = Psywave( id, skill, prop );
- case SKILL_QUICKATTACK: call = Quick_Attack( id, skill, prop );
- case SKILL_RAGE: call = Rage( id, skill, prop );
- case SKILL_RAZORLEAF: call = Razor_Leaf( id, skill, prop );
- case SKILL_RECOVER: call = Recover( id, skill, prop );
- case SKILL_REFLECT: call = Reflect( id, skill, prop );
- case SKILL_REST: call = Rest( id, skill, prop );
- case SKILL_ROAR: call = Roar( id, skill, prop );
- case SKILL_ROCKSLIDE: call = Rock_Slide( id, skill, prop );
- case SKILL_ROCKTRHOW: call = Rock_Throw( id, skill, prop );
- case SKILL_SANDATTACK: call = Sand_Attack( id, skill, prop );
- case SKILL_SCRATCH: call = Scratch( id, skill, prop );
- case SKILL_SCREECH: call = Screech( id, skill, prop );
- case SKILL_SEISMICTOSS: call = Seismic_Toss( id, skill, prop );
- case SKILL_SELFDESTRUCT: call = Self_Destruct( id, skill, prop );
- case SKILL_SING: call = Sing( id, skill, prop );
- case SKILL_SKULLBASH: call = Skullbash( id, skill, prop );
- case SKILL_SKYATTACK: call = Sky_Attack( id, skill, prop );
- case SKILL_SLASH: call = Slash( id, skill, prop );
- case SKILL_SLEEPPOWDER: call = Sleep_Powder( id, skill, prop );
- case SKILL_SMOG: call = Smog( id, skill, prop );
- case SKILL_SMOKESCREEN: call = Smokescreen( id, skill, prop );
- case SKILL_SOLARBEAM: call = Solar_Beam( id, skill, prop );
- case SKILL_SONICBOOM: call = Sonic_Boom( id, skill, prop );
- case SKILL_SPIKECANNON: call = Spike_Cannon( id, skill, prop );
- case SKILL_SPLASH: call = Splash( id, skill, prop );
- case SKILL_SPORE: call = Spore( id, skill, prop );
- case SKILL_STOMP: call = Stomp( id, skill, prop );
- case SKILL_STRENGTH: call = Strength( id, skill, prop );
- case SKILL_STRINGSHOT: call = String_Shot( id, skill, prop );
- case SKILL_STUNGSPORE: call = Stun_Spore( id, skill, prop );
- case SKILL_SUBMISSION: call = Submission( id, skill, prop );
- case SKILL_SUBSTITUTE: call = Substitute( id, skill, prop );
- case SKILL_SUPERSONIC: call = Supersonic( id, skill, prop );
- case SKILL_SWIFT: call = Swift( id, skill, prop );
- case SKILL_TACKLE: call = Tackle( id, skill, prop );
- case SKILL_TAILWHIP: call = Tail_Whip( id, skill, prop );
- case SKILL_TAKE: call = Take_Down( id, skill, prop );
- case SKILL_TELEPORT: call = Teleport( id, skill, prop );
- case SKILL_THRASH: call = Thrash( id, skill, prop );
- case SKILL_THUNDER: call = Thunder( id, skill, prop );
- case SKILL_THUNDERWAVE: call = Thunder_Wave( id, skill, prop );
- case SKILL_THUNDERBOLT: call = Thunderbolt( id, skill, prop );
- case SKILL_THUNDERSHOCK: call = Thundershock( id, skill, prop );
- case SKILL_TOXIC: call = Toxic( id, skill, prop );
- case SKILL_TRANSFORM: call = Transform( id, skill, prop );
- case SKILL_TRIATTACK: call = Tri_Attack( id, skill, prop );
- case SKILL_VICEGRIP: call = Vice_Grip( id, skill, prop );
- case SKILL_VINEWHIP: call = Vine_Whip( id, skill, prop );
- case SKILL_WATERFALL: call = Waterfall( id, skill, prop );
- case SKILL_WHIRLWIND: call = Whirlwind( id, skill, prop );
- case SKILL_WITHDRAW: call = Withdraw( id, skill, prop );
- case SKILL_WRAP: call = Wrap( id, skill, prop );
- case SKILL_AEROBLAST: call = Aeroblast( id, skill, prop );
- case SKILL_ANCIENTPOWER: call = Ancient_Power( id, skill, prop );
- case SKILL_AROMATHERAPY: call = Aromatherapy( id, skill, prop );
- case SKILL_AVALANCHE: call = Avalanche( id, skill, prop );
- case SKILL_BLAZEKICK: call = Blaze_Kick( id, skill, prop );
- case SKILL_BOUNCE: call = Bounce( id, skill, prop );
- case SKILL_CALMMIND: call = Calm_Mind( id, skill, prop );
- case SKILL_CRUNCH: call = Crunch( id, skill, prop );
- case SKILL_ERUPTION: call = Eruption( id, skill, prop );
- case SKILL_EXTREMESPEED: call = Extreme_Speed( id, skill, prop );
- case SKILL_FAINTATTACK: call = Faint_Attack( id, skill, prop );
- case SKILL_FIREPUNCH: call = Fire_Punch( id, skill, prop );
- case SKILL_FLASHCANNON: call = Flash_Cannon( id, skill, prop );
- case SKILL_FORESIGHT: call = Foresight( id, skill, prop );
- case SKILL_FUTURESIGHT: call = Future_Sight( id, skill, prop );
- case SKILL_GIGADRAIN: call = Giga_Drain( id, skill, prop );
- case SKILL_GUARDSWAP: call = Guard_Swap( id, skill, prop );
- case SKILL_HEALBELL: call = Heal_Bell( id, skill, prop );
- case SKILL_ASSIST: call = Assist( id, skill, prop );
- case SKILL_HIDDENPOWER: call = Hidden_Power( id, skill, prop );
- case SKILL_BLIZZARD: call = Blizzard( id, skill, prop );
- case SKILL_INSOMNIA: call = Insomnia( id, skill, prop );
- case SKILL_IRONDEFENSE: call = Iron_Defense( id, skill, prop );
- case SKILL_LEAFSTORM: call = Leaf_Storm( id, skill, prop );
- case SKILL_LELIVATE: call = Levitate( id, skill, prop );
- case SKILL_LOVELYKISS: call = Lovely_Kiss( id, skill, prop );
- case SKILL_LUSTERPURGE: call = Luster_Purge( id, skill, prop );
- case SKILL_MAGMAARMOR: call = Magma_Armor( id, skill, prop );
- case SKILL_MINIMIZE: call = Minimize( id, skill, prop );
- case SKILL_MIRRORCOAT: call = Mirror_Coat( id, skill, prop );
- case SKILL_OCTOZOOKA: call = Octozooka( id, skill, prop );
- case SKILL_OVERHEAT: call = Overheat( id, skill, prop );
- case SKILL_POISONFANG: call = Poison_Fang( id, skill, prop );
- case SKILL_PRESENT: call = Present( id, skill, prop );
- case SKILL_PROTECT: call = Protect( id, skill, prop );
- case SKILL_PSYCHOBOOST: call = Psycho_Boost( id, skill, prop );
- case SKILL_RAINDANCE: call = Rain_Dance( id, skill, prop );
- case SKILL_RAZORWIND: call = Razor_Wind( id, skill, prop );
- case SKILL_REVERSAL: call = Reversal( id, skill, prop );
- case SKILL_SACREDFIRE: call = Sacred_Fire( id, skill, prop );
- case SKILL_SANDSTORM: call = Sandstorm( id, skill, prop );
- case SKILL_SCARYFACE: call = Scary_Face( id, skill, prop );
- case SKILL_SHADOWBALL: call = Shadow_Ball( id, skill, prop );
- case SKILL_SHEERCOLD: call = Sheer_Cold( id, skill, prop );
- case SKILL_SHOCKWAVE: call = Shock_Wave( id, skill, prop );
- case SKILL_SILENT: call = Silent( id, skill, prop );
- case SKILL_SPARK: call = Spark( id, skill, prop );
- case SKILL_SPIDERWEB: call = Spider_Web( id, skill, prop );
- case SKILL_SOFTBOILED: call = Softboiled( id, skill, prop );
- case SKILL_STEELWING: call = Steel_Wing( id, skill, prop );
- case SKILL_STONEEDGE: call = Stone_Edge( id, skill, prop );
- case SKILL_SUNNYDAY: call = Sunny_Day( id, skill, prop );
- case SKILL_SYNTHESIS: call = Synthesis( id, skill, prop );
- case SKILL_TELEKNESIS: call = Telekenesis( id, skill, prop );
- case SKILL_THIEF: call = Thief( id, skill, prop );
- case SKILL_THUNDERPUNCH: call = Thunder_Punch( id, skill, prop );
- case SKILL_TRIPLEKICK: call = Triple_Kick( id, skill, prop );
- case SKILL_WATERPULSE: call = Water_Pulse( id, skill, prop );
- case SKILL_ZAPCANNON: call = Zap_Cannon( id, skill, prop );
- case SKILL_BLOCK: call = Block( id, skill, prop );
- case SKILL_BUGBITE: call = Bug_Bite( id, skill, prop );
- case SKILL_DRAGONRUSH: call = Dragon_Rush( id, skill, prop );
- case SKILL_ELECTRABALL: call = Electra_Ball( id, skill, prop );
- case SKILL_ENDEAVOR: call = Endeavor( id, skill, prop );
- case SKILL_FOCUSENERGY: call = Focus_Energy( id, skill, prop );
- case SKILL_HEALORDER: call = Heal_Order( id, skill, prop );
- case SKILL_ICEBALL: call = Ice_Ball( id, skill, prop );
- case SKILL_MAGICALLEAF: call = Magical_Leaf( id, skill, prop );
- case SKILL_MIMIC: call = Mimic( id, skill, prop );
- case SKILL_NIGHTSLASH: call = Night_Slash( id, skill, prop );
- case SKILL_SUCKERPUNCH: call = Sucker_Punch( id, skill, prop );
- case SKILL_SWAGGER: call = Swagger( id, skill, prop );
- case SKILL_SWEETKISS: call = Sweet_Kiss( id, skill, prop );
- case SKILL_THUNDERFANG: call = Thunder_Fang( id, skill, prop );
- case SKILL_WATERSPORT: call = Water_Sport( id, skill, prop );
- case SKILL_WHIRLPOOL: call = Whirl_Pool( id, skill, prop );
- case SKILL_WINGATTACK: call = Wing_Attack( id, skill, prop );
- case SKILL_MEDITATE: call = Meditate( id, skill, prop );
- case SKILL_EPICBOMB: call = Epic_Bomb( id, skill, prop );
- case SKILL_WEATHERBEAM: call = Weather_Beam( id, skill, prop );
- case SKILL_ICYWIND: call = Icy_Wind( id, skill, prop );
- case SKILL_HELPINGHAND: call = Helping_Hand( id, skill, prop );
- case SKILL_SPITFIRE: call = Spit_Fire( id, skill, prop );
- case SKILL_ICEPUNCH: call = Ice_Punch( id, skill, prop );
- case SKILL_FLAMEWHEEL: call = Flame_Wheel( id, skill, prop );
- case SKILL_DARKPULSE: call = Dark_Pulse( id, skill, prop );
- case SKILL_MEMENTO: call = Memento( id, skill, prop );
- case SKILL_VANISHER: call = Vanisher( id, skill, prop );
- case SKILL_SHADOWSENSOR: call = Shadow_Sensor( id, skill, prop );
- case SKILL_ELECTRICTHREADS: call = Electric_Threads( id, skill, prop );
- case SKILL_HEALINGWAVE: call = Healing_Wave( id, skill, prop );
- case SKILL_SHELLYCOAT: call = Shelly_Coat( id, skill, prop );
- case SKILL_OVERCOAT: call = Overcoat( id, skill, prop );
- case SKILL_ORACLE: call = Oracle( id, skill, prop );
- case SKILL_POISONPOINT: call = Poison_Point( id, skill, prop );
- case SKILL_BLACKGODFLAMES: call = Black_God_Flames( id, skill, prop );
- case SKILL_LIMBER: call = Limber( id, skill, prop );
- case SKILL_EVILROOT: call = Evil_Root( id, skill, prop );
- case SKILL_RAPIDRUN: call = Rapid_Run( id, skill, prop );
- case SKILL_SERPENTEYES: call = Serpent_Eyes( id, skill, prop );
- case SKILL_FIREMADNESS: call = Fire_Madness( id, skill, prop );
- case SKILL_FIREPUNCHES: call = Fire_Punches( id, skill, prop );
- case SKILL_HIDDENWEAPON: call = Hidden_Weapon( id, skill, prop );
- case SKILL_HIDDENHOWL: call = Hidden_Howl( id, skill, prop );
- case SKILL_RUNAWAY: call = Runaway( id, skill, prop );
- case SKILL_FEROCIOUSHUNTER: call = Ferocious_Hunter( id, skill, prop );
- case SKILL_TRACKER: call = Tracker( id, skill, prop );
- case SKILL_PROTECTANT: call = Protectant( id, skill, prop );
- case SKILL_SAVIOR: call = Savior( id, skill, prop );
- case SKILL_ASSASSIN: call = Assassin( id, skill, prop );
- case SKILL_ANGRYPECKER: call = Angry_Pecker( id, skill, prop );
- case SKILL_CALMSCENE: call = Calm_Scene( id, skill, prop );
- case SKILL_MASSIVEEXPLOSION: call = Massive_Explosion( id, skill, prop );
- case SKILL_SPEEDYBOLT: call = Speedy_Bolts( id, skill, prop );
- case SKILL_STEELER: call = Steeler( id, skill, prop );
- case SKILL_CRYSTALLIZE: call = Crystallize( id, skill, prop );
- case SKILL_SANDFORCE: call = Sand_Force( id, skill, prop );
- case SKILL_SILENTSCREAMING: call = Silent_Screaming( id, skill, prop );
- case SKILL_FRAGRANCE: call = Fragrance( id, skill, prop );
- case SKILL_IRONFIST: call = Iron_Fist( id, skill, prop );
- case SKILL_STATUE: call = Statue( id, skill, prop );
- case SKILL_CONCRETEMISSILE: call = Concrete_Missile( id, skill, prop );
- case SKILL_HELPER: call = Helper( id, skill, prop );
- case SKILL_EARTHSHAKER: call = Earth_Shaker( id, skill, prop );
- case SKILL_POISONTOUCH: call = Poison_Touch( id, skill, prop );
- case SKILL_INVISIBLETHREADS: call = Invisible_Threads( id, skill, prop );
- case SKILL_LEADSLICER: call = Leaf_Slicer( id, skill, prop );
- case SKILL_DARKVENOM: call = Dark_Venom( id, skill, prop );
- case SKILL_QUICKFEAT: call = Quick_Feat( id, skill, prop );
- case SKILL_DIVERSION: call = Diversion( id, skill, prop );
- case SKILL_INFILTRATOR: call = Infiltrator( id, skill, prop );
- case SKILL_HEALINGLEAF: call = Healing_Leaf( id, skill, prop );
- case SKILL_RECKLESSNESS: call = Recklessness( id, skill, prop );
- case SKILL_BLOCKER: call = Blocker( id, skill, prop );
- case SKILL_NIGHTVISION: call = Night_Vision( id, skill, prop );
- case SKILL_CLOSESIGHT: call = Close_Sight( id, skill, prop );
- case SKILL_HEAVYSLEEP: call = Heavy_Sleep( id, skill, prop );
- case SKILL_ZENMODE: call = Zen_Mode( id, skill, prop );
- case SKILL_SCREAMINGSTORM: call = Screaming_Storm( id, skill, prop );
- case SKILL_HIDDENROCK: call = Hidden_Rock( id, skill, prop );
- case SKILL_SHEDSKIN: call = Shed_Skin( id, skill, prop );
- case SKILL_HOODLUM: call = Hoodlum( id, skill, prop );
- case SKILL_MIRRORTOUCH: call = Mirror_Touch( id, skill, prop );
- case SKILL_BODYEATER: call = Body_Eater( id, skill, prop );
- case SKILL_SOLIDROCK: call = Solid_Rock( id, skill, prop );
- case SKILL_TRIBEAM: call = Tri_Beam( id, skill, prop );
- case SKILL_TRASHGAS: call = Trash_Gas( id, skill, prop );
- case SKILL_TOXICSPRAY: call = Toxic_Spray( id, skill, prop );
- case SKILL_EXTRAAMMO: call = Extra_Ammo( id, skill, prop );
- case SKILL_REVERSEDAMGE: call = Reverse_Damge( id, skill, prop );
- case SKILL_AMPLIFIER: call = Amplifier( id, skill, prop );
- case SKILL_DARKMOON: call = Dark_Moon( id, skill, prop );
- case SKILL_MAGICGUARD: call = Magic_Guard( id, skill, prop );
- case SKILL_WATERPUMPER: call = Water_Pumper( id, skill, prop );
- case SKILL_HYDRATION: call = Hydration( id, skill, prop );
- case SKILL_ICEBODY: call = Ice_Body( id, skill, prop );
- case SKILL_ICYWINDS: call = Icy_Winds( id, skill, prop );
- case SKILL_SNOWSTORM: call = Snow_Storm( id, skill, prop );
- case SKILL_SERENEGRACE: call = Serene_Grace( id, skill, prop );
- case SKILL_IMITATION: call = Imitation( id, skill, prop );
- case SKILL_HOSTAGETAKER: call = Hostage_Taker( id, skill, prop );
- case SKILL_CURSEDBODY: call = Cursed_Body ( id, skill, prop );
- case SKILL_ELECTROWEB: call = Electroweb( id, skill, prop );
- case SKILL_THORNYBARRIER: call = Thorny_Barrier( id, skill, prop );
- case SKILL_PROJUMPER: call = Pro_Jumper( id, skill, prop );
- case SKILL_CLEARBODY: call = Clear_Body( id, skill, prop );
- case SKILL_DISKTHROWER: call = Disk_Thrower( id, skill, prop );
- case SKILL_DISKEXPLOSIVE: call = Disk_Explosive( id, skill, prop );
- case SKILL_UNKNOWNWORLD: call = Unknown_World( id, skill, prop );
- case SKILL_BRAINATTACKER: call = Brain_Attacker( id, skill, prop );
- case SKILL_FLAMELIGHTER: call = Flame_Lighter( id, skill, prop );
- case SKILL_SOULTAKER: call = Soul_Taker( id, skill, prop );
- case SKILL_ADAMANTDRAGON: call = Adamant_Dragon( id, skill, prop );
- case SKILL_ICECHILL: call = Ice_Chill( id, skill, prop );
- case SKILL_ICECHAINS: call = Ice_Chains( id, skill, prop );
- case SKILL_SHELLARMOR: call = Shell_Armor( id, skill, prop );
- case SKILL_STEALTH: call = Stealth( id, skill, prop );
- case SKILL_EARTHLYLIGHTINING: call = Earthly_Lighting( id, skill, prop );
- case SKILL_INNERFOCUS: call = Inner_Focus( id, skill, prop );
- case SKILL_WHIPSLASH: call = Whip_Slash( id, skill, prop );
- case SKILL_DRAGONLIGHT: call = Dragon_Light( id, skill, prop );
- case SKILL_REGENERATION: call = Regeneration( id, skill, prop );
- case SKILL_BLADEDHANDS: call = Bladed_Hands( id, skill, prop );
- case SKILL_PRESSURE: call = Pressure( id, skill, prop );
- case SKILL_HEADCHARGE: call = Head_Charge( id, skill, prop );
- case SKILL_HUSTLE: call = Hustle( id, skill, prop );
- case SKILL_ARMORRESPAWN: call = Armor_Respawn( id, skill, prop );
- case SKILL_WINDDRAGONROAR: call = Wind_Dragon_Roar( id, skill, prop);
- case SKILL_WHITESMOKE: call = White_Smoke( id, skill, prop );
- case SKILL_TRIPLETEAM: call = Triple_Team( id, skill, prop );
- case SKILL_EVILINTENT: call = Evil_Intent( id, skill, prop );
- case SKILL_BLAZINGTOUCH: call = Blazing_Touch( id, skill, prop );
- case SKILL_DEADLYHORN: call = Deadly_Horn( id, skill, prop );
- case SKILL_SEAOFFLAMES: call = Sea_Of_Flames( id, skill, prop );
- case SKILL_MINDCONTROL: call = Mind_Control( id, skill, prop );
- case SKILL_DEADLYDREAM: call = Deadly_Dream( id, skill, prop );
- case SKILL_WATERSPRAYER: call = Water_Sprayer( id, skill, prop );
- case SKILL_GEYSERNEST: call = Geyser_Nest( id, skill, prop );
- case SKILL_SHININGLIGHT: call = Shining_Light( id, skill, prop );
- case SKILL_EMOTIONALPAIN: call = Emotional_Pain( id, skill, prop );
- case SKILL_FLIGHT: call = Flight( id, skill, prop );
- case SKILL_ROCKYSKY: call = Rocky_Sky( id, skill, prop );
- case SKILL_HIGHDEFENSE: call = High_Defense( id, skill, prop );
- case SKILL_METALBURST: call = Metal_Burst( id, skill, prop );
- case SKILL_DECIEVING: call = Decieving( id, skill, prop );
- case SKILL_FALLENLIFE: call = Fallen_life( id, skill, prop );
- case SKILL_NIGHTDAZE: call = Night_Daze( id, skill, prop );
- case SKILL_PHANTONDAZE: call = Phanton_Daze( id, skill, prop );
- case SKILL_WATERGOD: call = Water_God( id, skill, prop );
- case SKILL_RELICSONG: call = Relic_Song( id, skill, prop );
- case SKILL_TECHNODRIVE: call = Techno_Drive( id, skill, prop );
- case SKILL_DEVINEJUDGMENT: call = Divine_Judgement( id, skill, prop );
- case SKILL_DEVINEICE: call = Divine_Ice( id, skill, prop );
- case SKILL_BLACKDEATH: call = Black_Death( id, skill, prop );
- case SKILL_SHADOWSTALKER: call = Shadow_Stalker( id, skill, prop );
- case SKILL_LIGHTNINGFURY: call = Lightning_Fury( id, skill, prop );
- case SKILL_VOLCANOGEYSER: call = Volcano_Geyser( id, skill, prop );
- case SKILL_FLYINGJUDGMENT: call = Flying_Judgement( id, skill, prop );
- case SKILL_ACIDRAIN: call = Acid_Rain( id, skill, prop );
- case SKILL_ANCIENT: call = Ancient( id, skill, prop );
- case SKILL_FIREEXPLOSION: call = Fire_Explosion( id, skill, prop );
- case SKILL_CALMINGWAVES: call = Calming_Waves( id, skill, prop );
- }
- switch ( call )
- {
- case SKILL_USED:
- {
- if( prop & SI_BIND )
- bind_used( id, skill );
- else{
- #if ONE_SKILL_USE == 0
- parm[0] = id;
- parm[1] = skill;
- set_task(0.0, "delayed_bind_used", 0, parm, 2);
- #else
- bind_used( id, skill );
- #endif
- }
- return true;
- }
- }
- }
- return false;
- }
- /////////////////////////
- // Resets all skills //
- /////////////////////////
- ResetSkills(id, bool:Round_Skills)
- {
- debugMessage(id,4,"Player", "reset skills");
- //things to be reset only after death/round end
- if(Round_Skills){
- skills_handler(id, SI_ROUNDRESET);
- }
- skills_handler(id, SI_RESET);
- CheckRepUsed(id);
- SetActiveSkill(id);
- PlayerStat[id][STAT_ATTACK] = PlayerStat[id][STAT_DEFENSE] = PlayerStat[id][STAT_SPECIAL] = PlayersLevel(id);
- PlayerStat[id][STAT_SPEED] = 0;
- fm_set_rendering(id, kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, 255);
- if(pev_valid(PlayerEnt[id])){
- new szClass[32];
- pev(PlayerEnt[id], pev_classname, szClass, 31);
- if(equali(szClass, "psy_beam"))
- psybeam_touch(PlayerEnt[id], 0);
- }
- PlayerEnt[id] = 0;
- g_Charge[id] = 0;
- screenflash(id);
- SetSpeed(id);
- }
- ActiveSkill(id)
- return g_isSkilled[id];
- SetActiveSkill(id, skill=-1)
- {
- g_isSkilled[id] = skill;
- debugMessage(id,6,"Player", "set active skill to %s(%d)",SkillToName(skill),skill);
- }
- /////////////////////////////
- // Organized bind delays //
- /////////////////////////////
- public delayed_bind_used( parm[] )
- bind_used( parm[0], parm[1] );
- bind_used(id, skill=-1, Float:over_ride=0.0)
- {
- new Float:gametime = get_gametime();
- new Float:newtime;
- if( !BindUsed[id] || BindUsed[id]==WAIT_TIME ) newtime = gametime;
- else newtime = BindUsed[id];
- if( over_ride != 0.0 )
- newtime += over_ride;
- else if( skill != -1 ){
- new Float:tasktime, Float:oldtime;
- tasktime = oldtime = SkillDelay[skill];
- tasktime -= (PlayersLevel(id)*DELAY_LEVEL_REDUCE);
- if(tasktime < oldtime/3)
- tasktime = oldtime/3;
- newtime += tasktime;
- }
- if( newtime > gametime ){
- BindUsed[id] = newtime;
- g_StopSkill[id] = true;
- }
- }
- /////////////////////////////////////////////////
- // If we want to set it to exactly something //
- /////////////////////////////////////////////////
- set_bind(id, Float:time=0.0)
- BindUsed[id] = time;
- ///////////////////////////////////////////////////////////////////
- // If I need to stop them after they've used it a couple times //
- ///////////////////////////////////////////////////////////////////
- end_rep_use(id, skill, Float:max)
- {
- SetActiveSkill(id, skill);
- if( ++g_Charge[id] >= max*10 ){
- g_Charge[id] = 0;
- if( Action[id] != AC_SKILL )
- SetActiveSkill(id);
- return true;
- }
- return false;
- }
- CheckRepUsed(id)
- {
- if( g_Charge[id] && ValidSkill( ActiveSkill(id) ) ){
- bind_used(id, ActiveSkill(id));
- g_Charge[id] = 0;
- SetActiveSkill(id);
- return true;
- }
- return false;
- }
- public create_sprite_spray(parm[])
- {
- message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
- write_byte(120)
- write_coord(parm[0]) //origin
- write_coord(parm[1])
- write_coord(parm[2])
- write_coord(parm[3]) //velocity
- write_coord(parm[4])
- write_coord(parm[5])
- write_short(parm[6]) //sprite
- write_byte(8) //count
- write_byte(10) //speed
- write_byte(100) //noise
- write_byte(5) //rendermode
- message_end()
- }
- public spray_check(parm[])
- {
- new id = parm[0]
- new flame = parm[1] //this is 0 for smoke, 1 for fire
- new skill = parm[2] //this is 0 for smoke, 1 for fire
- //direct damage first
- new ent, body
- get_user_aiming(id, ent, body, 600)
- if(Pokemod_Alive(ent))
- {
- if(flame==1)
- ApplyStatus( id, ent, STATUS_BURN, 0.0 )
- else if(flame==2)
- screenflash(ent,139,59,19,200)
- else
- screenflash(ent,255,255,255,255)
- }
- //now indirect damage
- new Players[32], iNum, target
- poke_get_players(Players, iNum, PLAYER_ALIVE|PLAYER_MORTAL)
- new Float:fOrigin[3], Float:fOrigin2[3]
- new temp[3], Float:fAim[3]
- new Float:fDistance = 600.0
- new iDistance
- for(new i = 0; i < iNum; i++)
- {
- target = Players[i]
- if( target == id )
- continue
- pev(id, pev_origin, fOrigin)
- pev(target, pev_origin, fOrigin2)
- get_user_origin(id, temp, 3)
- IVecFVec(temp, fAim)
- if(get_distance_f(fOrigin, fOrigin2) > fDistance)
- continue
- iDistance = get_distance_to_line(fOrigin, fOrigin2, fAim)
- if( iDistance > 40 || iDistance < 0 || !fm_is_ent_visible(id, target) )
- continue
- if(flame==1){
- skilldamage(target, id, 1, skill)
- if(Chance(id))
- ApplyStatus( id, target, STATUS_BURN, 0.0 )
- }
- else if(flame==2)
- screenflash(target,139,59,19,200)
- else
- screenflash(target,255,255,255,255)
- }
- }
- BlowUp(id)
- {
- get_user_origin(id,origin[id])
- poke_sound(id,CHAN_STATIC, SND_SUCK)
- message_begin( MSG_BROADCAST, SVC_TEMPENTITY )
- write_byte(TE_IMPLOSION)
- write_coord(origin[id][0])
- write_coord(origin[id][1])
- write_coord(origin[id][2])
- write_byte(100)
- write_byte(20)
- write_byte(5)
- message_end()
- // random explosions
- message_begin( MSG_PVS, SVC_TEMPENTITY, origin[id] )
- write_byte(TE_EXPLOSION) // This just makes a dynamic light now
- write_coord( origin[id][0] + random_num( -100, 100 ))
- write_coord( origin[id][1] + random_num( -100, 100 ))
- write_coord( origin[id][2] + random_num( -50, 50 ))
- write_short( SPRITE_INDEX[SPR_EEXPLO] )
- write_byte( random_num(0,20) + 20 ) // scale * 10
- write_byte( 12 ) // framerate
- write_byte(0)
- message_end()
- // lots of smoke
- message_begin( MSG_PVS, SVC_TEMPENTITY, origin[id] )
- write_byte(TE_SMOKE)
- write_coord( origin[id][0] + random_num( -100, 100 ))
- write_coord( origin[id][1] + random_num( -100, 100 ))
- write_coord( origin[id][2] + random_num( -50, 50 ))
- write_short( SPRITE_INDEX[SPR_STEAM1] )
- write_byte( 60 ) // scale * 10
- write_byte( 10 ) // framerate
- message_end()
- // blast circles
- message_begin( MSG_PAS, SVC_TEMPENTITY, origin[id] )
- write_byte(TE_BEAMCYLINDER)
- write_coord( origin[id][0])
- write_coord( origin[id][1])
- write_coord( origin[id][2] - 16)
- write_coord( origin[id][0])
- write_coord( origin[id][1])
- write_coord( origin[id][2] - 16 + EXPLOSION_RADIUS)
- write_short( SPRITE_INDEX[SPR_SHOCKWAVE] )
- write_byte( 0 ) // startframe
- write_byte( 0 ) // framerate
- write_byte( 6 ) // life
- write_byte( 16 ) // width
- write_byte( 0 ) // noise
- write_byte( 188 )
- write_byte( 220 )
- write_byte( 255 )
- write_byte( 255 ) //brightness
- write_byte( 0 ) // speed
- message_end()
- }
- public make_powder(parm[])
- {
- new id = parm[0];
- if(!PMon() || !Pokemod_Alive(id))
- return
- new Float:fl_Origin[3], ptime = POWDER_TIME
- pev(id, pev_origin, fl_Origin)
- new newEnt = fm_create_entity("info_target")
- set_pev(newEnt, pev_classname, "pokemod_ent")
- fm_entity_set_model(newEnt, MODELS[MDL_POWDER])
- // Change height of entity origin to hands
- fl_Origin[2] += 6
- // Set entity postion
- fm_entity_set_origin(newEnt, fl_Origin)
- // Set properties of the entity
- set_pev( newEnt, pev_rendermode, 5)
- set_pev( newEnt, pev_renderamt, 255.0)
- set_pev( newEnt, pev_owner, id)
- set_pev( newEnt, pev_animtime, 1.0);
- set_pev( newEnt, pev_framerate, 1.0);
- set_pev( newEnt, pev_sequence, 0);
- new parm2[3];
- parm2[0] = newEnt;
- parm2[1] = parm[1];
- parm2[2] = parm[2];
- check_powder(parm2)
- set_task(0.5,"check_powder",0, parm2, 3 , "a", 2*ptime-1)
- set_task(ptime*1.0,"poke_remove_entity",newEnt+REMOVE_TASK)
- }
- public check_powder(parm[])
- {
- new spowder = parm[0];
- new check_poison = parm[1];
- new check_sleep = parm[2];
- if(!pev_valid(spowder))
- return
- new id = pev(spowder, pev_owner)
- new Float:poison_time = get_ppcvar_float(pm_poisontime)
- new Float:sleep_time = get_ppcvar_float(pm_sleeptime)
- new range = POWDER_RANGE
- AddLvl(id, range)
- new aid, players[MAX_PLAYERS], pnum
- poke_get_players(players,pnum,PLAYER_ALIVE|PLAYER_MORTAL|PLAYER_NOTEAM,Pokemod_Team(id))
- for(new i = 0; i<pnum; i++)
- {
- aid = players[i]
- if( fm_entity_range(spowder,aid) < range ) {
- if( check_poison && !g_Status[aid][STATUS_POISON] ){
- ApplyStatus( id, aid, STATUS_POISON, poison_time )
- }
- if( check_sleep && !g_Status[aid][STATUS_ASLEEP] ){
- ApplyStatus( id, aid, STATUS_ASLEEP, sleep_time )
- }
- }
- }
- }
- public check_spore(parm[])
- {
- new ent = parm[0];
- parm[2]--;
- if( pev_valid(ent) ){
- new Float:health;
- pev(ent, pev_health, health);
- if( health-POKE_HP_OFFSET < 0 ){
- new Float:origfl[3], orig[3];
- pev( ent, pev_origin, origfl );
- FVecIVec(origfl, orig);
- new parmlol[7];
- parmlol[0] = orig[0];
- parmlol[1] = orig[1];
- parmlol[2] = orig[2]+100;
- parmlol[3] = 0;
- parmlol[4] = 0;
- parmlol[5] = 50;
- parmlol[6] = SPRITE_INDEX[SPR_STEAM1];
- create_sprite_spray( parmlol );
- set_task(1.0,"poke_remove_entity",ent+REMOVE_TASK);
- set_task(0.1, "check_spore", 0, parm, 4);
- return;
- }
- if( !parm[2] ){
- fm_remove_entity(ent);
- return;
- }
- }
- else
- return;
- new id = pev(ent, pev_owner);
- new range = SPORE_RANGE;
- AddLvl(id, range);
- new aid, players[MAX_PLAYERS], pnum
- poke_get_players(players,pnum,PLAYER_ALIVE|PLAYER_MORTAL|PLAYER_NOTEAM,Pokemod_Team(id))
- for(new i = 0; i<pnum; i++)
- {
- aid = players[i]
- if( fm_entity_range(ent,aid) < range ) {
- if( parm[3] ){
- if( !g_Status[aid][STATUS_POISON] )
- ApplyStatus( id, aid, STATUS_POISON, 5.0 )
- }
- else
- set_pev( aid, pev_velocity, Float:{0.0,0.0,0.0} );
- }
- }
- new Float:origfl[3], orig[3];
- pev( ent, pev_origin, origfl );
- FVecIVec(origfl, orig);
- if( (parm[2] % 10) == 0 ){
- message_begin( MSG_PAS, SVC_TEMPENTITY, orig )
- write_byte(TE_BEAMCYLINDER)
- write_coord( orig[0])
- write_coord( orig[1])
- write_coord( orig[2] + 20 )
- write_coord( orig[0])
- write_coord( orig[1])
- write_coord( orig[2] + 20 + range)
- write_short( SPRITE_INDEX[SPR_GAS] )
- write_byte( 0 ) // startframe
- write_byte( 0 ) // framerate
- write_byte( 10 ) // life
- write_byte( 16 ) // width
- write_byte( 0 ) // noise
- write_byte( 88 )
- write_byte( 20 )
- write_byte( parm[3] ? 255 : 50 )
- write_byte( 255 ) //brightness
- write_byte( 0 ) // speed
- message_end()
- }
- if( (parm[2] % 5) == 0 ){
- new parmlol[7];
- parmlol[0] = orig[0];
- parmlol[1] = orig[1];
- parmlol[2] = orig[2]+100;
- parmlol[3] = 0;
- parmlol[4] = 0;
- parmlol[5] = -20;
- parmlol[6] = parm[3] ? SPRITE_INDEX[SPR_BIGSPIT] : SPRITE_INDEX[SPR_MUZZLEFLASH1];
- create_sprite_spray( parmlol );
- }
- set_task(0.1, "check_spore", 0, parm, 4);
- }
- public delayed_grenade(parm[])
- give_grenade(parm[0],parm[1],bool:parm[2]);
- give_grenade(id, how_many=1, bool:add_with=false)
- {
- if( !Pokemod_Alive(id) )
- return;
- new old_amount, new_amount
- #if MOD==CS
- give_item(id, "weapon_hegrenade")
- old_amount = cs_get_user_bpammo(id, CSW_HEGRENADE)
- new_amount = add_with ? (old_amount+how_many) : ( max(how_many,old_amount) )
- cs_set_user_bpammo(id, CSW_HEGRENADE, new_amount)
- #endif
- #if MOD==DOD
- new wpnid
- if(Pokemod_Team(id)==2){
- give_item(id, "weapon_stickgrenade")
- wpnid = DODW_STICKGRENADE
- }
- else{
- give_item(id, "weapon_handgrenade")
- wpnid = DODW_HANDGRENADE
- }
- old_amount = dod_get_user_ammo(id,wpnid)
- new_amount = add_with ? (old_amount+how_many) : ( max(how_many,old_amount) )
- dod_set_user_ammo(id, wpnid, new_amount)
- #endif
- #if MOD==NS
- if(Pokemod_Team(id)==1){
- new wpn[32], bpammo
- get_user_weapon(id, old_amount, bpammo)
- get_weaponname(WEAPON_GRENADE,wpn,31)
- ns_give_item(id, "weapon_grenade")
- new_amount = add_with ? (old_amount+how_many) : ( max(how_many,old_amount) )
- new iWPNidx = -1
- while ((iWPNidx = fm_find_ent_by_class(iWPNidx, wpn)) != 0) {
- if (id == pev(iWPNidx, pev_owner)) {
- ns_set_weap_clip(iWPNidx, new_amount)
- }
- }
- }
- #endif
- }
- Gas(id, bool:smog=false, bool:poison=false)
- {
- if( !Pokemod_Alive(id) || ( !smog && !poison ) )
- return;
- get_user_origin(id, origin[id])
- message_begin(MSG_BROADCAST, SVC_TEMPENTITY) //message begin
- write_byte(TE_SPRITE)
- write_coord(origin[id][0]) // start position
- write_coord(origin[id][1])
- write_coord(origin[id][2])
- write_short(SPRITE_INDEX[SPR_GAS]) // sprite index
- write_byte(10) // scale in 0.1's
- write_byte(100) // brightness
- message_end()
- new aid, playersa[MAX_PLAYERS], pnuma
- poke_get_players(playersa,pnuma,PLAYER_ALIVE|PLAYER_MORTAL|PLAYER_NOTEAM,Pokemod_Team(id))
- new Float:poison_time = get_ppcvar_float(pm_poisontime)
- new distance
- new maxdist = 300
- AddLvl(id, maxdist)
- for(new ick = 0; ick<pnuma; ick++)
- {
- aid = playersa[ick]
- get_user_origin(aid, origin[aid])
- distance = get_distance(origin[aid], origin[id])
- if(distance <= maxdist){
- if(smog){
- poke_print(aid,print_center,LANG,aid,"POKEMOD_SMOG")
- screenflash(aid, 139, 59, 19, 222, 1.0)
- }
- if(poison && !g_Status[aid][STATUS_POISON]){
- ApplyStatus( id, aid, STATUS_POISON, poison_time )
- }
- }
- }
- }
- make_snow(id)
- {
- get_user_origin(id,origin[id]);
- //lets put one on each side of them
- new sides[4][2];
- sides[0][0] = sides[0][1] = sides[2][0] = sides[3][1] = 100;
- sides[1][0] = sides[1][1] = sides[2][1] = sides[3][0] = -100;
- for(new i=0; i<4; i++){
- message_begin(MSG_BROADCAST, SVC_TEMPENTITY) //message begin
- write_byte( TE_SPRITE ) // additive sprite, plays 1 cycle
- write_coord(origin[id][0] + sides[i][0] + random_num(-10,10))
- write_coord(origin[id][1] + sides[i][1] + random_num(-10,10))
- write_coord(origin[id][2])
- write_short( SPRITE_INDEX[SPR_SNOW] )
- write_byte( 14 ) // byte (scale in 0.1's)
- write_byte( 255 ) // byte (brightness)
- message_end()
- }
- return PLUGIN_HANDLED
- }
- PokeSkillTarget(id, &damage=-1, &weapon=-1)
- {
- new victim;
- // If they were damaged
- if( PlayerDamageInfo[id][PD_DAMAGE] ){
- damage = PlayerDamageInfo[id][PD_DAMAGE];
- weapon = PlayerDamageInfo[id][PD_WEAPON];
- return PlayerDamageInfo[id][PD_ATTACKER];
- }
- // If they damaged someone else
- for( victim=0; victim<MAX_PLAYERS; victim++ )
- if( PlayerDamageInfo[victim][PD_ATTACKER] == id ){
- damage = PlayerDamageInfo[victim][PD_DAMAGE];
- weapon = PlayerDamageInfo[victim][PD_WEAPON];
- return victim;
- }
- // If they touched someone
- if( PlayerDamageInfo[id][PD_ATTACKER] ){
- damage = weapon = 0;
- return PlayerDamageInfo[id][PD_ATTACKER];
- }
- // Get who they are looking at
- get_user_aiming(id, victim, weapon);
- if( Pokemod_Alive(victim) ){
- weapon = get_user_weapon(id);
- damage = 0;
- return victim;
- }
- return 0;
- }
- SkillLevel(id, skill)
- {
- if( is_user_connected(id) && ValidSkill(skill) ){
- static pid, i;
- pid = Pokemon[id];
- for( i = -1; i<MAX_ACTIVE_POKES; i++ ){
- if( i != -1 ){
- //if weve already added the skill in, we don't need to add it again
- if( i == PlayersActive[id] )
- continue;
- else
- pid = PlayersPoke[id][i];
- }
- while( ValidPoke(pid) ){
- if( !PokeDisabled(pid) && PokeSkill[pid] == skill ){
- if( i==-1 || PokeInfo[pid] & PI_GLOBAL ){
- return PlayersLevel(id, i);
- }
- }
- pid = AnyEvolveTo(pid);
- }
- }
- }
- return 0;
- }
- make_inferno(id)
- {
- get_user_origin(id,origin[id]);
- //lets put one on each side of them
- new sides[4][2];
- sides[0][0] = sides[0][1] = sides[2][0] = sides[3][1] = 100;
- sides[1][0] = sides[1][1] = sides[2][1] = sides[3][0] = -100;
- for(new i=0; i<4; i++){
- message_begin(MSG_BROADCAST, SVC_TEMPENTITY) //message begin
- write_byte( TE_SPRITE ) // additive sprite, plays 1 cycle
- write_coord(origin[id][0] + sides[i][0] + random_num(-10,10))
- write_coord(origin[id][1] + sides[i][1] + random_num(-10,10))
- write_coord(origin[id][2])
- write_short( SPRITE_INDEX[SPR_SACRED])
- write_byte( 14 ) // byte (scale in 0.1's)
- write_byte( 255 ) // byte (brightness)
- message_end()
- }
- return PLUGIN_HANDLED
- }
- make_inferno_b(id)
- {
- get_user_origin(id,origin[id]);
- //lets put one on each side of them
- new sides[4][2];
- sides[0][0] = sides[0][1] = sides[2][0] = sides[3][1] = 100;
- sides[1][0] = sides[1][1] = sides[2][1] = sides[3][0] = -100;
- for(new i=0; i<4; i++){
- message_begin(MSG_BROADCAST, SVC_TEMPENTITY) //message begin
- write_byte( TE_SPRITE ) // additive sprite, plays 1 cycle
- write_coord(origin[id][0] + sides[i][0] + random_num(-10,10))
- write_coord(origin[id][1] + sides[i][1] + random_num(-10,10))
- write_coord(origin[id][2])
- write_short( SPRITE_INDEX[SPR_BFLAME])
- write_byte( 14 ) // byte (scale in 0.1's)
- write_byte( 255 ) // byte (brightness)
- message_end()
- }
- return PLUGIN_HANDLED
- }
- make_snow_o(vorigin[3])
- {
- //lets put one on each side of them
- new sides[4][2];
- sides[0][0] = sides[0][1] = sides[2][0] = sides[3][1] = 100;
- sides[1][0] = sides[1][1] = sides[2][1] = sides[3][0] = -100;
- for(new i=0; i<4; i++){
- message_begin(MSG_BROADCAST, SVC_TEMPENTITY) //message begin
- write_byte( TE_SPRITE ) // additive sprite, plays 1 cycle
- write_coord(vorigin[0] + sides[i][0] + random_num(-10,10))
- write_coord(vorigin[1] + sides[i][1] + random_num(-10,10))
- write_coord(vorigin[2])
- write_short( SPRITE_INDEX[SPR_SNOW] )
- write_byte( 14 ) // byte (scale in 0.1's)
- write_byte( 255 ) // byte (brightness)
- message_end()
- }
- return PLUGIN_HANDLED
- }
- Kenesis(id, bool:smog=false, bool:poison=false)
- {
- if( !Pokemod_Alive(id) || ( !smog && !poison ) )
- return;
- get_user_origin(id, origin[id])
- message_begin(MSG_BROADCAST, SVC_TEMPENTITY) //message begin
- write_byte(TE_SPRITE)
- write_coord(origin[id][0]) // start position
- write_coord(origin[id][1])
- write_coord(origin[id][2])
- write_short(SPRITE_INDEX[SPR_SHOCKWAVE]) // sprite index
- write_byte(10) // scale in 0.1's
- write_byte(20) // brightness
- message_end()
- new aid, playersa[MAX_PLAYERS], pnuma
- poke_get_players(playersa,pnuma,PLAYER_ALIVE|PLAYER_MORTAL|PLAYER_NOTEAM,Pokemod_Team(id))
- new Float:poison_time = get_ppcvar_float(pm_poisontime)
- new distance
- new maxdist = 500
- AddLvl(id, maxdist)
- for(new ick = 0; ick<pnuma; ick++)
- {
- aid = playersa[ick]
- get_user_origin(aid, origin[aid])
- distance = get_distance(origin[aid], origin[id])
- if(distance <= maxdist){
- if(smog){
- poke_print(aid,print_center,LANG,aid,"POKEMOD_SMOG")
- }
- if(poison && !g_Status[aid][STATUS_SLOW]){
- ApplyStatus( id, aid, STATUS_SLOW, poison_time )
- }
- }
- }
- }
- Flamewheel(id, bool:smog=false, bool:poison=false)
- {
- if( !Pokemod_Alive(id) || ( !smog && !poison ) )
- return;
- get_user_origin(id, origin[id])
- message_begin(MSG_BROADCAST, SVC_TEMPENTITY) //message begin
- write_byte(TE_SPRITE)
- write_coord(origin[id][0]) // start position
- write_coord(origin[id][1])
- write_coord(origin[id][2])
- write_short(SPRITE_INDEX[SPR_FIRE]) // sprite index
- write_byte(10) // scale in 0.1's
- write_byte(10) // brightness
- message_end()
- new aid, playersa[MAX_PLAYERS], pnuma
- poke_get_players(playersa,pnuma,PLAYER_ALIVE|PLAYER_MORTAL|PLAYER_NOTEAM,Pokemod_Team(id))
- new Float:poison_time = get_ppcvar_float(pm_poisontime)
- new distance
- new maxdist = 100
- AddLvl(id, maxdist)
- for(new var = 0; var<pnuma; var++)
- {
- aid = playersa[var]
- get_user_origin(aid, origin[aid])
- distance = get_distance(origin[aid], origin[id])
- if(distance <= maxdist){
- if(smog){
- poke_print(aid,print_center,LANG,aid,"POKEMOD_SMOG")
- }
- if(poison && !g_Status[aid][STATUS_BURN]){
- ApplyStatus( id, aid, STATUS_BURN, poison_time )
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement