| iBrazilian |
05-07-2012 21:12 |
Tag mismatch & few errors! Advanced coders***
I'm trying to call a "function"-"skill" without using a public function. I've got a lot setup with the help of great coders from AlliedModders, as they are extremely busy I need some forum help.
[ Before the skills were being called with Public functions, EX: public Healing_Wave(id, skill, prop), now I'm trying to make it call by using SKILL:Healing_Wave( id, skill, prop )
#1:This here is where the skills are called from, this is not the whole file but it's the only edited part needed.
PHP Code:
#include "pokemon/pokeskills.inc"
enum { SKILL_READY, SKILL_USED, }
enum POKESKILL { SKILL_INVALID = -1, 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_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_WHIRLWIND, 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_ICEWINDS, 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) ){ poke_printlang(id,"POKEMOD_SKILLAUTO", 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){ poke_printlang(id,"POKEMOD_SKILLSPAM"); 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( is_user_connected( 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 POKESKILL: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[] ) { new id = parm[ 0 ]; new POKESKILL:skillID = POKESKILL:parm[ 1 ]; new prop = parm[ 2 ]; CallSkill( parm[0], parm[1], parm[2] ); }
SKILL:CallSkill(id, POKESKILL:skillID, prop) { if( ValidPlayer(id) && ValidSkill(skillID) ){ debugMessage(id,7,"Player", "calling skill %s", SkillToName( skillID ) );
skill = SkillID; new SKILL:call; switch( skillID ) { case SKILL_ABSORB: call = Absorb( id, skillID, prop ); case SKILL_ACID: call = Acid ( id, skillID, prop ); case SKILL_ACIDARMOR: call = Acid_Armor( id, skillID, prop ); case SKILL_AGILITY: call = Agility( id, skillID, prop ); case SKILL_AMNESIA: call = Amnesia( id, skillID, prop ); case SKILL_AURORABEAM: call = Aurora_Beam( id, skillID, prop ); case SKILL_BARRAGE: call = Barrage( id, skillID, prop ); case SKILL_BIDE: call = Bide( id, skillID, prop ); case SKILL_BITE: call = Bite( id, skillID, prop ); case SKILL_POWDEREDSNOW: call = Powdered_Snow( id, skillID, prop ); case SKILL_BODYSLAM: call = Body_Slam( id, skillID, prop ); case SKILL_BONECLUB: call = Bone_Club( id, skillID, prop ); case SKILL_BONEMERANG: call = Bonemerang( id, skillID, prop ); case SKILL_BUBBLEBEAM: call = Bubble_Beam( id, skillID, prop ); case SKILL_CONFUSERAY: call = Confuse_Ray( id, skillID, prop ); case SKILL_CONFUSION: call = Confusion( id, skillID, prop ); case SKILL_CONSTRICT: call = Constrict( id, skillID, prop ); case SKILL_CONVERSION: call = Conversion( id, skillID, prop ); case SKILL_COUNTER: call = Counter( id, skillID, prop ); case SKILL_DEFENSECURL: call = Defense_Curl( id, skillID, prop ); case SKILL_DIG: call = Dig( id, skillID, prop ); case SKILL_DISABLE: call = Disable( id, skillID, prop ); case SKILL_DIZZYPUNCH: call = Dizzy_Punch( id, skillID, prop ); case SKILL_DOUBLEEDGE: call = Double_Edge( id, skillID, prop ); case SKILL_DOUBLEKICK: call = Double_Kick( id, skillID, prop ); case SKILL_DOUBLESLAP: call = Double_Slap( id, skillID, prop ); case SKILL_DOUBLETEAM: call = Double_Team( id, skillID, prop ); case SKILL_DRAGONRAGE: call = Dragon_Rage( id, skillID, prop ); case SKILL_DREAMEATER: call = Dream_Eater( id, skillID, prop ); case SKILL_DRILLPECK: call = Drill_Peck( id, skillID, prop ); case SKILL_EARTHQUAKE: call = Earthquake( id, skillID, prop ); case SKILL_EGGBOMB: call = Egg_Bomb( id, skillID, prop ); case SKILL_EMBER: call = Ember( id, skillID, prop ); case SKILL_EXPLOSION: call = Explosion( id, skillID, prop ); case SKILL_FIREBLAST: call = Fire_Blast( id, skillID, prop ); case SKILL_FIRESPIN: call = Fire_Spin( id, skillID, prop ); case SKILL_FISSURE: call = Fissure( id, skillID, prop ); case SKILL_FLAMETHROWER: call = Flamethrower( id, skillID, prop ); case SKILL_FLASH: call = Flash( id, skillID, prop ); case SKILL_FLY: call = Fly( id, skillID, prop ); case SKILL_GLARE: call = Glare( id, skillID, prop ); case SKILL_GROWTH: call = Growth( id, skillID, prop ); case SKILL_GUILLOTINE: call = Guillotine( id, skillID, prop ); case SKILL_GUST: call = Gust( id, skillID, prop ); case SKILL_HARDER: call = Harden( id, skillID, prop ); case SKILL_HAZE: call = Haze( id, skillID, prop ); case SKILL_HORNATTACK: call = Horn_Attack( id, skillID, prop ); case SKILL_HORNDRILL: call = Horn_Drill( id, skillID, prop ); case SKILL_HYDROPUMP: call = Hydro_Pump( id, skillID, prop ); case SKILL_HYPERBEAM: call = Hyper_Beam( id, skillID, prop ); case SKILL_HYPNOSIS: call = Hypnosis( id, skillID, prop ); case SKILL_ICEBEAM: call = Ice_Beam( id, skillID, prop ); case SKILL_KARATECHOP: call = Karate_Chop( id, skillID, prop ); case SKILL_LEECHLIFE: call = Leech_Life( id, skillID, prop ); case SKILL_LEECHSEED: call = Leech_Seed( id, skillID, prop ); case SKILL_LEER: call = Leer( id, skillID, prop ); case SKILL_LIGHTSCREEN: call = Light_Screen( id, skillID, prop ); case SKILL_LOWKICK: call = Low_Kick( id, skillID, prop ); case SKILL_MEGADRAIN: call = Low_Kick( id, skillID, prop ); case SKILL_MEGAKICK: call = Mega_Kick( id, skillID, prop ); case SKILL_MEGAPUNCH: call = Mega_Punch( id, skillID, prop ); case SKILL_MIST: call = Mist( id, skillID, prop ); case SKILL_NIGHTSHADE: call = Night_Shade( id, skillID, prop ); case SKILL_PAYDAY: call = Pay_Day( id, skillID, prop ); case SKILL_PECK: call = Peck( id, skillID, prop ); case SKILL_PINMISSILE: call = Pin_Missile( id, skillID, prop ); case SKILL_POISONGAS: call = Poison_Gas( id, skillID, prop ); case SKILL_POISONPOWDER: call = Poison_Powder( id, skillID, prop ); case SKILL_POISONSTING: call = Poison_Sting( id, skillID, prop ); case SKILL_PSYBEAM: call = Psybeam( id, skillID, prop ); case SKILL_PSYCHIC: call = Psychic( id, skillID, prop ); case SKILL_PSYWAVE: call = Psywave( id, skillID, prop ); case SKILL_QUICKATTACK: call = Quick_Attack( id, skillID, prop ); case SKILL_RAGE: call = Rage( id, skillID, prop ); case SKILL_RAZORLEAF: call = Razor_Leaf( id, skillID, prop ); case SKILL_RECOVER: call = Recover( id, skillID, prop ); case SKILL_REFLECT: call = Reflect( id, skillID, prop ); case SKILL_REST: call = Rest( id, skillID, prop ); case SKILL_ROAR: call = Roar( id, skillID, prop ); case SKILL_ROCKSLIDE: call = Rock_Slide( id, skillID, prop ); case SKILL_ROCKTRHOW: call = Rock_Throw( id, skillID, prop ); case SKILL_SANDATTACK: call = Sand_Attack( id, skillID, prop ); case SKILL_SCRATCH: call = Scratch( id, skillID, prop ); case SKILL_SCREECH: call = Screech( id, skillID, prop ); case SKILL_SEISMICTOSS: call = Seismic_Toss( id, skillID, prop ); case SKILL_SELFDESTRUCT: call = Self_Destruct( id, skillID, prop ); case SKILL_SING: call = Sing( id, skillID, prop ); case SKILL_SKULLBASH: call = Skullbash( id, skillID, prop ); case SKILL_SKYATTACK: call = Sky_Attack( id, skillID, prop ); case SKILL_SLASH: call = Slash( id, skillID, prop ); case SKILL_SLEEPPOWDER: call = Sleep_Powder( id, skillID, prop ); case SKILL_SMOG: call = Smog( id, skillID, prop ); case SKILL_SMOKESCREEN: call = Smokescreen( id, skillID, prop ); case SKILL_SOLARBEAM: call = Solar_Beam( id, skillID, prop ); case SKILL_SONICBOOM: call = Sonic_Boom( id, skillID, prop ); case SKILL_SPIKECANNON: call = Spike_Cannon( id, skillID, prop ); case SKILL_SPLASH: call = Splash( id, skillID, prop ); case SKILL_SPORE: call = Spore( id, skillID, prop ); case SKILL_STOMP: call = Stomp( id, skillID, prop ); case SKILL_STRENGTH: call = Strength( id, skillID, prop ); case SKILL_STRINGSHOT: call = String_Shot( id, skillID, prop ); case SKILL_STUNGSPORE: call = Stun_Spore( id, skillID, prop ); case SKILL_SUBMISSION: call = Submission( id, skillID, prop ); case SKILL_SUBSTITUTE: call = Substitute( id, skillID, prop ); case SKILL_SUPERSONIC: call = Supersonic( id, skillID, prop ); case SKILL_SWIFT: call = Swift( id, skillID, prop ); case SKILL_TACKLE: call = Tackle( id, skillID, prop ); case SKILL_TAILWHIP: call = Tail_Whip( id, skillID, prop ); case SKILL_TAKE: call = Take_Down( id, skillID, prop ); case SKILL_TELEPORT: call = Teleport( id, skillID, prop ); case SKILL_THRASH: call = Thrash( id, skillID, prop ); case SKILL_THUNDER: call = Thunder( id, skillID, prop ); case SKILL_THUNDERWAVE: call = Thunder_Wave( id, skillID, prop ); case SKILL_THUNDERBOLT: call = Thunderbolt( id, skillID, prop ); case SKILL_THUNDERSHOCK: call = Thundershock( id, skillID, prop ); case SKILL_TOXIC: call = Toxic( id, skillID, prop ); case SKILL_TRANSFORM: call = Transform( id, skillID, prop ); case SKILL_TRIATTACK: call = Tri_Attack( id, skillID, prop ); case SKILL_VICEGRIP: call = Vice_Grip( id, skillID, prop ); case SKILL_VINEWHIP: call = Vine_Whip( id, skillID, prop ); case SKILL_WATERFALL: call = Waterfall( id, skillID, prop ); case SKILL_WRAP: call = Wrap( id, skillID, prop ); // Season 2 and 3 skills case SKILL_AEROBLAST: call = Aeroblast( id, skillID, prop ); case SKILL_ANCIENTPOWER: call = Ancient_Power( id, skillID, prop ); case SKILL_AROMATHERAPY: call = Aromatherapy( id, skillID, prop ); case SKILL_AVALANCHE: call = Avalanche( id, skillID, prop ); case SKILL_BLAZEKICK: call = Blaze_Kick( id, skillID, prop ); case SKILL_BOUNCE: call = Bounce( id, skillID, prop ); case SKILL_CALMMIND: call = Calm_Mind( id, skillID, prop ); case SKILL_CRUNCH: call = Crunch( id, skillID, prop ); case SKILL_ERUPTION: call = Eruption( id, skillID, prop ); case SKILL_EXTREMESPEED: call = Extreme_Speed( id, skillID, prop ); case SKILL_FAINTATTACK: call = Faint_Attack( id, skillID, prop ); case SKILL_FIREPUNCH: call = Fire_Punch( id, skillID, prop ); case SKILL_FLASHCANNON: call = Flash_Cannon( id, skillID, prop ); case SKILL_FORESIGHT: call = Foresight( id, skillID, prop ); case SKILL_FUTURESIGHT: call = Future_Sight( id, skillID, prop ); case SKILL_GIGADRAIN: call = Giga_Drain( id, skillID, prop ); case SKILL_GUARDSWAP: call = Guard_Swap( id, skillID, prop ); case SKILL_HEALBELL: call = Heal_Bell( id, skillID, prop ); case SKILL_ASSIST: call = Assist( id, skillID, prop ); case SKILL_HIDDENPOWER: call = Hidden_Power( id, skillID, prop ); case SKILL_BLIZZARD: call = Blizzard( id, skillID, prop ); case SKILL_INSOMNIA: call = Insomnia( id, skillID, prop ); case SKILL_IRONDEFENSE: call = Iron_Defense( id, skillID, prop ); case SKILL_LEAFSTORM: call = Leaf_Storm( id, skillID, prop ); case SKILL_LELIVATE: call = Levitate( id, skillID, prop ); case SKILL_LOVELYKISS: call = Lovely_Kiss( id, skillID, prop ); case SKILL_LUSTERPURGE: call = Luster_Purge( id, skillID, prop ); case SKILL_MAGMAARMOR: call = Magma_Armor( id, skillID, prop ); case SKILL_MINIMIZE: call = Minimize( id, skillID, prop ); case SKILL_MIRRORCOAT: call = Mirror_Coat( id, skillID, prop ); case SKILL_OCTOZOOKA: call = Octozooka( id, skillID, prop ); case SKILL_OVERHEAT: call = Overheat( id, skillID, prop ); case SKILL_POISONFANG: call = Poison_Fang( id, skillID, prop ); case SKILL_PRESENT: call = Present( id, skillID, prop ); case SKILL_PROTECT: call = Protect( id, skillID, prop ); case SKILL_PSYCHOBOOST: call = Psycho_Boost( id, skillID, prop ); case SKILL_RAINDANCE: call = Rain_Dance( id, skillID, prop ); case SKILL_RAZORWIND: call = Razor_Wind( id, skillID, prop ); case SKILL_REVERSAL: call = Reversal( id, skillID, prop ); case SKILL_SACREDFIRE: call = Sacred_Fire( id, skillID, prop ); case SKILL_SANDSTORM: call = Sandstorm( id, skillID, prop ); case SKILL_SCARYFACE: call = Scary_Face( id, skillID, prop ); case SKILL_SHADOWBALL: call = Shadow_Ball( id, skillID, prop ); case SKILL_SHEERCOLD: call = Sheer_Cold( id, skillID, prop ); case SKILL_SHOCKWAVE: call = Shock_Wave( id, skillID, prop ); case SKILL_SILENT: call = Silent( id, skillID, prop ); case SKILL_SPARK: call = Spark( id, skillID, prop ); case SKILL_SPIDERWEB: call = Spider_Web( id, skillID, prop ); case SKILL_SOFTBOILED: call = Softboiled( id, skillID, prop ); case SKILL_STEELWING: call = Steel_Wing( id, skillID, prop ); case SKILL_STONEEDGE: call = Stone_Edge( id, skillID, prop ); case SKILL_SUNNYDAY: call = Sunny_Day( id, skillID, prop ); case SKILL_SYNTHESIS: call = Synthesis( id, skillID, prop ); case SKILL_TELEKNESIS: call = Telekenesis( id, skillID, prop ); case SKILL_THIEF: call = Thief( id, skillID, prop ); case SKILL_THUNDERPUNCH: call = Thunder_Punch( id, skillID, prop ); case SKILL_TRIPLEKICK: call = Triple_Kick( id, skillID, prop ); case SKILL_WATERPULSE: call = Water_Pulse( id, skillID, prop ); case SKILL_ZAPCANNON: call = Zap_Cannon( id, skillID, prop ); // season 3 skills case SKILL_BLOCK: call = Block( id, skillID, prop ); case SKILL_BUGBITE: call = Bug_Bite( id, skillID, prop ); case SKILL_DRAGONRUSH: call = Dragon_Rush( id, skillID, prop ); case SKILL_ELECTRABALL: call = Electra_Ball( id, skillID, prop ); case SKILL_ENDEAVOR: call = Endeavor( id, skillID, prop ); case SKILL_FOCUSENERGY: call = Focus_Energy( id, skillID, prop ); case SKILL_HEALORDER: call = Heal_Order( id, skillID, prop ); case SKILL_ICEBALL: call = Ice_Ball( id, skillID, prop ); case SKILL_MAGICALLEAF: call = Magical_Leaf( id, skillID, prop ); case SKILL_MIMIC: call = Mimic( id, skillID, prop ); case SKILL_NIGHTSLASH: call = Night_Slash( id, skillID, prop ); case SKILL_SUCKERPUNCH: call = Sucker_Punch( id, skillID, prop ); case SKILL_SWAGGER: call = Swagger( id, skillID, prop ); case SKILL_SWEETKISS: call = Sweet_Kiss( id, skillID, prop ); case SKILL_THUNDERFANG: call = Thunder_Fang( id, skillID, prop ); case SKILL_WATERSPORT: call = Water_Sport( id, skillID, prop ); case SKILL_WHIRLWIND: call = Whirl_Pool( id, skillID, prop ); case SKILL_WINGATTACK: call = Wing_Attack( id, skillID, prop ); case SKILL_MEDITATE: call = Meditate( id, skillID, prop ); case SKILL_EPICBOMB: call = Epic_Bomb( id, skillID, prop ); case SKILL_WEATHERBEAM: call = Weather_Beam( id, skillID, prop ); case SKILL_ICYWIND: call = Icy_Wind( id, skillID, prop ); case SKILL_HELPINGHAND: call = Helping_Hand( id, skillID, prop ); case SKILL_SPITFIRE: call = Spit_Fire( id, skillID, prop ); case SKILL_ICEPUNCH: call = Ice_Punch( id, skillID, prop ); case SKILL_FLAMEWHEEL: call = Flame_Wheel( id, skillID, prop ); case SKILL_DARKPULSE: call = Dark_Pulse( id, skillID, prop ); case SKILL_MEMENTO: call = Memento( id, skillID, prop ); // season 5 skills case SKILL_VANISHER: call = Vanisher( id, skillID, prop ); case SKILL_SHADOWSENSOR: call = Shadow_Sensor( id, skillID, prop ); case SKILL_ELECTRICTHREADS: call = Electric_Threads( id, skillID, prop ); case SKILL_HEALINGWAVE: call = Healing_Wave( id, skillID, prop ); case SKILL_SHELLYCOAT: call = Shelly_Coat( id, skillID, prop ); case SKILL_OVERCOAT: call = Overcoat( id, skillID, prop ); case SKILL_ORACLE: call = Oracle( id, skillID, prop ); case SKILL_POISONPOINT: call = Poison_Point( id, skillID, prop ); case SKILL_BLACKGODFLAMES: call = Black_God_Flames( id, skillID, prop ); case SKILL_LIMBER: call = Limber( id, skillID, prop ); case SKILL_EVILROOT: call = Evil_Root( id, skillID, prop ); case SKILL_RAPIDRUN: call = Rapid_Run( id, skillID, prop ); case SKILL_SERPENTEYES: call = Serpent_Eyes( id, skillID, prop ); case SKILL_FIREMADNESS: call = Fire_Madness( id, skillID, prop ); case SKILL_FIREPUNCHES: call = Fire_Punches( id, skillID, prop ); case SKILL_HIDDENWEAPON: call = Hidden_Weapon( id, skillID, prop ); case SKILL_HIDDENHOWL: call = Hidden_Howl( id, skillID, prop ); case SKILL_RUNAWAY: call = Runaway( id, skillID, prop ); case SKILL_FEROCIOUSHUNTER: call = Ferocious_Hunter( id, skillID, prop ); case SKILL_TRACKER: call = Tracker( id, skillID, prop ); case SKILL_PROTECTANT: call = Protectant( id, skillID, prop ); case SKILL_SAVIOR: call = Savior( id, skillID, prop ); case SKILL_ASSASSIN: call = Assassin( id, skillID, prop ); case SKILL_ANGRYPECKER: call = Angry_Pecker( id, skillID, prop ); case SKILL_CALMSCENE: call = Calm_Scene( id, skillID, prop ); case SKILL_MASSIVEEXPLOSION: call = Massive_Explosion( id, skillID, prop ); case SKILL_SPEEDYBOLT: call = Speedy_Bolts( id, skillID, prop ); case SKILL_STEELER: call = Steeler( id, skillID, prop ); case SKILL_CRYSTALLIZE: call = Crystallize( id, skillID, prop ); case SKILL_SANDFORCE: call = Sand_Force( id, skillID, prop ); case SKILL_SILENTSCREAMING: call = Silent_Screaming( id, skillID, prop ); case SKILL_FRAGRANCE: call = Fragrance( id, skillID, prop ); case SKILL_IRONFIST: call = Iron_Fist( id, skillID, prop ); case SKILL_STATUE: call = Statue( id, skillID, prop ); case SKILL_CONCRETEMISSILE: call = Concrete_Missile( id, skillID, prop ); case SKILL_HELPER: call = Helper( id, skillID, prop ); case SKILL_EARTHSHAKER: call = Earth_Shaker( id, skillID, prop ); case SKILL_POISONTOUCH: call = Poison_Touch( id, skillID, prop ); case SKILL_INVISIBLETHREADS: call = Invisible_Threads( id, skillID, prop ); case SKILL_LEADSLICER: call = Leaf_Slicer( id, skillID, prop ); case SKILL_DARKVENOM: call = Dark_Venom( id, skillID, prop ); case SKILL_QUICKFEAT: call = Quick_Feat( id, skillID, prop ); case SKILL_DIVERSION: call = Diversion( id, skillID, prop ); case SKILL_INFILTRATOR: call = Infiltrator( id, skillID, prop ); case SKILL_HEALINGLEAF: call = Healing_Leaf( id, skillID, prop ); case SKILL_RECKLESSNESS: call = Recklessness( id, skillID, prop ); case SKILL_BLOCKER: call = Blocker( id, skillID, prop ); case SKILL_NIGHTVISION: call = Night_Vision( id, skillID, prop ); case SKILL_CLOSESIGHT: call = Close_Sight( id, skillID, prop ); case SKILL_HEAVYSLEEP: call = Heavy_Sleep( id, skillID, prop ); case SKILL_ZENMODE: call = Zen_Mode( id, skillID, prop ); case SKILL_SCREAMINGSTORM: call = Screaming_Storm( id, skillID, prop ); case SKILL_HIDDENROCK: call = Hidden_Rock( id, skillID, prop ); case SKILL_SHEDSKIN: call = Shed_Skin( id, skillID, prop ); case SKILL_HOODLUM: call = Hoodlum( id, skillID, prop ); case SKILL_MIRRORTOUCH: call = Mirror_Touch( id, skillID, prop ); case SKILL_BODYEATER: call = Body_Eater( id, skillID, prop ); case SKILL_SOLIDROCK: call = Solid_Rock( id, skillID, prop ); case SKILL_TRIBEAM: call = Tri_Beam( id, skillID, prop ); case SKILL_TRASHGAS: call = Trash_Gas( id, skillID, prop ); case SKILL_TOXICSPRAY: call = Toxic_Spray( id, skillID, prop ); case SKILL_EXTRAAMMO: call = Extra_Ammo( id, skillID, prop ); case SKILL_REVERSEDAMGE: call = Reverse_Damge( id, skillID, prop ); case SKILL_AMPLIFIER: call = Amplifier( id, skillID, prop ); case SKILL_DARKMOON: call = Dark_Moon( id, skillID, prop ); case SKILL_MAGICGUARD: call = Magic_Guard( id, skillID, prop ); case SKILL_WATERPUMPER: call = Water_Pumper( id, skillID, prop ); case SKILL_HYDRATION: call = Hydration( id, skillID, prop ); case SKILL_ICEBODY: call = Ice_Body ( id, skillID, prop ); case SKILL_ICEWINDS: call = Icy_Winds( id, skillID, prop ); case SKILL_SNOWSTORM: call = Snow_Storm( id, skillID, prop ); case SKILL_SERENEGRACE: call = Serene_Grace( id, skillID, prop ); case SKILL_IMITATION: call = Imitation( id, skillID, prop ); case SKILL_HOSTAGETAKER: call = Hostage_Taker( id, skillID, prop ); case SKILL_CURSEDBODY: call = Cursed_Body ( id, skillID, prop ); case SKILL_ELECTROWEB: call = Electroweb( id, skillID, prop ); case SKILL_THORNYBARRIER: call = Thorny_Barrier( id, skillID, prop ); case SKILL_PROJUMPER: call = Pro_Jumper( id, skillID, prop ); case SKILL_CLEARBODY: call = Clear_Body( id, skillID, prop ); case SKILL_DISKTHROWER: call = Disk_Thrower( id, skillID, prop ); case SKILL_DISKEXPLOSIVE: call = Disk_Explosive( id, skillID, prop ); case SKILL_UNKNOWNWORLD: call = Unknown_World( id, skillID, prop ); case SKILL_BRAINATTACKER: call = Brain_Attacker( id, skillID, prop ); case SKILL_FLAMELIGHTER: call = Flame_Lighter( id, skillID, prop ); case SKILL_SOULTAKER: call = Soul_Taker( id, skillID, prop ); case SKILL_ADAMANTDRAGON: call = Adamant_Dragon( id, skillID, prop ); case SKILL_ICECHILL: call = Ice_Chill( id, skillID, prop ); case SKILL_ICECHAINS: call = Ice_Chains( id, skillID, prop ); case SKILL_SHELLARMOR: call = Shell_Armor( id, skillID, prop ); case SKILL_STEALTH: call = Stealth( id, skillID, prop ); case SKILL_EARTHLYLIGHTINING: call = Earthly_Lighting( id, skillID, prop ); case SKILL_INNERFOCUS: call = Inner_Focus( id, skillID, prop ); case SKILL_WHIPSLASH: call = Whip_Slash( id, skillID, prop ); case SKILL_DRAGONLIGHT: call = Dragon_Light( id, skillID, prop ); case SKILL_REGENERATION: call = Regeneration( id, skillID, prop ); case SKILL_BLADEDHANDS: call = Bladed_Hands( id, skillID, prop ); case SKILL_PRESSURE: call = Pressure( id, skillID, prop ); case SKILL_HEADCHARGE: call = Head_Charge( id, skillID, prop ); case SKILL_HUSTLE: call = Hustle( id, skillID, prop ); case SKILL_ARMORRESPAWN: call = Armor_Respawn( id, skillID, prop ); case SKILL_WINDDRAGONROAR: call = Wind_Dragon_Roar( id, skillID, prop ); case SKILL_WHITESMOKE: call = White_Smoke( id, skillID, prop ); case SKILL_TRIPLETEAM: call = Triple_Team( id, skillID, prop ); case SKILL_EVILINTENT: call = Evil_Intent( id, skillID, prop ); case SKILL_BLAZINGTOUCH: call = Blazing_Touch( id, skillID, prop ); case SKILL_DEADLYHORN: call = Deadly_Horn( id, skillID, prop ); case SKILL_SEAOFFLAMES: call = Sea_Of_Flames( id, skillID, prop ); case SKILL_MINDCONTROL: call = Mind_Control( id, skillID, prop ); case SKILL_DEADLYDREAM: call = Deadly_Dream( id, skillID, prop ); case SKILL_WATERSPRAYER: call = Water_Sprayer( id, skillID, prop ); case SKILL_GEYSERNEST: call = Geyser_Nest( id, skillID, prop ); case SKILL_SHININGLIGHT: call = Shining_Light( id, skillID, prop ); case SKILL_EMOTIONALPAIN: call = Emotional_Pain( id, skillID, prop ); case SKILL_FLIGHT: call = Flight( id, skillID, prop ); case SKILL_ROCKYSKY: call = Rocky_Sky( id, skillID, prop ); case SKILL_HIGHDEFENSE: call = High_Defense( id, skillID, prop ); case SKILL_METALBURST: call = Metal_Burst( id, skillID, prop ); case SKILL_DECIEVING: call = Decieving( id, skillID, prop ); case SKILL_FALLENLIFE: call = Fallen_life( id, skillID, prop ); case SKILL_NIGHTDAZE: call = Night_Daze( id, skillID, prop ); case SKILL_PHANTONDAZE: call = Phanton_Daze( id, skillID, prop ); case SKILL_WATERGOD: call = Water_God( id, skillID, prop ); case SKILL_RELICSONG: call = Relic_Song( id, skillID, prop ); case SKILL_TECHNODRIVE: call = Techno_Drive( id, skillID, prop ); case SKILL_DEVINEJUDGMENT: call = Divine_Judgement( id, skillID, prop ); case SKILL_DEVINEICE: call = Divine_Ice( id, skillID, prop ); case SKILL_BLACKDEATH: call = Black_Death( id, skillID, prop ); case SKILL_SHADOWSTALKER: call = Shadow_Stalker( id, skillID, prop ); case SKILL_LIGHTNINGFURY: call = Lightning_Fury( id, skillID, prop ); case SKILL_VOLCANOGEYSER: call = Volcano_Geyser( id, skillID, prop ); case SKILL_FLYINGJUDGMENT: call = Flying_Judgement( id, skillID, prop ); case SKILL_ACIDRAIN: call = Acid_Rain( id, skillID, prop ); case SKILL_ANCIENT: call = Ancient( id, skillID, prop ); case SKILL_FIREEXPLOSION: call = Fire_Explosion( id, skillID, prop ); case SKILL_CALMINGWAVES: call = Calming_Waves( id, skillID, prop ); } switch ( call ) { case SKILL_USED: { if( prop & SI_BIND ) bind_used( id, skillID ); else{ #if ONE_SKILL_USE == 0 parm[0] = id; parm[1] = skillID; set_task(0.0, "delayed_bind_used", 0, parm, 2); #else bind_used( id, skillID ); #endif } return true; } } } return false; }
2#: this here is an example of the skills that needs to be called.
PHP Code:
SKILL:Healing_Wave( prop, skillID, id ) { if( prop & SI_RESET ){ RemoveDelayCallSkill(id, skillID); DelayedCallSkill( 0.1, id, skillID, SI_SKILLCALL); return SKILL_READY; } if( !SkillLevel(id, skillID) || !Pokemod_Alive(id) ) return SKILL_READY; new players[MAX_PLAYERS], pnum, aid; poke_get_players( players, pnum, PLAYER_INTEAM, Pokemod_Team(id) ); new heal_amount = SkillLevel(id, skillID)/10 if( heal_amount < 1 ) heal_amount = 1 new radius = 750; for( new i=0; i<pnum; i++ ){ aid = players[i]; if( id == aid ) { heal_amount = heal_amount/2 if( heal_amount < 1 ) heal_amount = 1 } if( fm_entity_range(id, aid) < radius ){ Pokemod_Heal(aid, heal_amount); } } get_user_origin(id, origin[id]) 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]) write_coord( origin[id][0]) write_coord( origin[id][1]) write_coord( origin[id][2] ) write_short( SPRITE_INDEX[SPR_SHOCKWAVE] ) write_byte( 0 ) // startframe write_byte( 0 ) // framerate write_byte( 10 ) // life write_byte( 16 ) // width write_byte( 0 ) // noise write_byte( 18 ) //r write_byte( 20 ) //g write_byte( 188 ) //b write_byte( 255 ) //brightness write_byte( 0 ) // speed message_end() // get the time until the skill will be called again new Float:delay_time = f_SkillClamp( id, skillID, 6.0, 1.5 ); // call the skill again DelayedCallSkill( delay_time, id, skillID, SI_SKILLCALL); // let pokemod know the skill was used return SKILL_USED; }
This here is an updated version the same way that I want to do which is 2.0 the upper code is 1.2.3.
PHP Code:
#include "pokemod/skills/bug.inc" #include "pokemod/skills/dragon.inc" #include "pokemod/skills/electric.inc" #include "pokemod/skills/fighting.inc" #include "pokemod/skills/fire.inc" #include "pokemod/skills/flying.inc" #include "pokemod/skills/ghost.inc" #include "pokemod/skills/grass.inc" #include "pokemod/skills/ground.inc" #include "pokemod/skills/ice.inc" #include "pokemod/skills/normal.inc" #include "pokemod/skills/poison.inc" #include "pokemod/skills/psychic.inc" #include "pokemod/skills/rock.inc" #include "pokemod/skills/water.inc"
PM_FUNC_NORM_ATTRIB SkillInit() { pokemod_funcstart_debug( "SkillInit" );
SetupArray( g_iSkillNames, NAME_LEN ); SetupArray( g_iSkillInfos, 1 );
for ( new POKESKILL:iSkillID; iSkillID < POKESKILL; iSkillID++ ) SkillCall( iSkillID, CALL_REGISTER );
pokemod_funcend_debug( "SkillInit" ); }
PM_FUNC_NORM_ATTRIB SkillCallType( SKILL_CALL:iCall, Int:iPlayer, bool:bCheckReady = true ) { if ( iPlayer <= 0 || iPlayer > g_iLargestPlayer ) return;
SkillTimeCheckNull( iPlayer );
// No using skills while asleep if ( g_iPlayerStatus[ iPlayer ][ STATUS_ASLEEP ][ STATUS_AMOUNT ] > 0 ) return;
pokemod_funcstart_debug( "SkillCallType" );
new bool:bSkillReady = ( !g_fSkillReadyTime[ iPlayer ] ); new bool:bPlayerAdmin = bool:is_user_admin( iPlayer );
new Int:iPokeNum = PlayerGetInfo( iPlayer, PINFO_ACTIVE_POKENUM ); new POKESKILL:iSkillID, SKILL_CALL:iSkillCalls;
for ( new Int:iSkillNum; iSkillNum < SKILLS_PER_POKEMON; iSkillNum++ ) { iSkillID = g_iPlayerPokemonSkills[ iPlayer ][ iPokeNum ][ iSkillNum ]; if ( iSkillID <= SKILL_INVALID ) continue;
iSkillCalls = SKILL_CALL:SkillInfo( iSkillID, SI_CALLTYPE );
if ( !( iSkillCalls & iCall ) ) continue;
if ( bCheckReady && !bSkillReady && !( iSkillCalls & CALL_WITH_SKILL_TIME ) ) continue;
if ( !bPlayerAdmin && ( iSkillCalls & CALL_ADMIN_ONLY ) ) continue;
SkillCall( .skillID = iSkillID, .call = iCall, .iPlayer = iPlayer, .skillNum = iSkillNum ); }
pokemod_funcend_debug( "SkillCallType" ); }
//Remember that this may not be called because of round end/changing pokemon //You should have CALL_RESET to remove effects if they exist (use SkillDelayedCallExists) //Effects to remove: persistant screen fades, lasting beams, etc. PM_FUNC_NORM_ATTRIB SkillDelayCustomCall( Int:iPlayer, Float:fDelayTime, SKILL_CALL:iCall = CALL_CUSTOM ) { pokemod_funcstart_debug( "SkillDelayCustomCall" );
new Int:iParm[ 4 ]; iParm[ 0 ] = iPlayer; iParm[ 1 ] = _:g_iSkillID; iParm[ 2 ] = _:iCall; iParm[ 3 ] = g_iSkillNum;
set_task( fDelayTime, "SkillDelayedCall", TASK_POKESKILL_CUSTOM + ( iPlayer * SKILLS_PER_POKEMON ) + g_iSkillNum, iParm, sizeof iParm );
pokemod_funcend_debug( "SkillDelayCustomCall" ); }
PM_FUNC_STOCK_ATTRIB SkillDelayedCallExists( Int:iPlayer ) { return task_exists( TASK_POKESKILL_CUSTOM + ( iPlayer * SKILLS_PER_POKEMON ) + g_iSkillNum ); }
PM_FUNC_PUBLIC_ATTRIB SkillDelayedCall( Int:iParm[ 4 ] ) { pokemod_funcstart_debug( "SkillDelayedCall" );
new Int:iPlayer = iParm[ 0 ]; new POKESKILL:iSkillID = POKESKILL:iParm[ 1 ]; new SKILL_CALL:iCall = SKILL_CALL:iParm[ 2 ]; new Int:iSkillNum = iParm[ 3 ];
SkillCall( iSkillID, iCall, iPlayer, iSkillNum );
pokemod_funcend_debug( "SkillDelayedCall" ); }
PM_FUNC_NORM_ATTRIB SKILL:SkillCall( POKESKILL:skillID, SKILL_CALL:call, Int:iPlayer = 0, Int:skillNum = 0, bool:addDelayTime = true ) { new Int:iPokeNum; if ( iPlayer ) { if ( !is_user_connected( iPlayer ) ) return SKILL_DENY;
iPokeNum = PlayerGetInfo( iPlayer, PINFO_ACTIVE_POKENUM );
if ( call == CALL_BIND_DOWN ) { if ( !g_iPlayerSkillPP[ iPlayer ][ iPokeNum ][ skillNum ] ) { SoundDeny( iPlayer ); client_print( iPlayer, print_chat, "[PokeMod] %s is out of PP. Find a PokeCenter to recharge.", SkillToName( skillID ) ); return SKILL_DENY; } else if ( g_iRoundState & ROUND_FREEZETIME ) { SoundDeny( iPlayer ); client_print( iPlayer, print_chat, "[PokeMod] No skills allowed during freeze time." ); return SKILL_DENY; } else { new SKILL_CALL:iCallTypes = SKILL_CALL:SkillInfo( skillID, SI_CALLTYPE ); if ( !( iCallTypes & call ) ) { client_print( iPlayer, print_chat, "[PokeMod] %s is used automatically.", SkillToName( skillID ) ); SoundDeny( iPlayer ); return SKILL_DENY; } else if ( g_fSkillReadyTime[ iPlayer ] && !( iCallTypes & CALL_WITH_SKILL_TIME ) ) { SoundDeny( iPlayer ); return SKILL_DENY; } } } else { if ( !g_iPlayerSkillPP[ iPlayer ][ iPokeNum ][ skillNum ] ) { return SKILL_DENY; } } }
pokemod_funcstart_debug( "SkillCall" );
g_iSkillID = skillID; g_iSkillNum = skillNum;
new SKILL:iSkillReturn;
switch( skillID ) { case SKILL_ABSORB: iSkillReturn = SkillAbsorb( call, iPlayer ); case SKILL_ACID: iSkillReturn = SkillAcid( call, iPlayer ); case SKILL_ACIDARMOR: iSkillReturn = SkillAcidArmor( call, iPlayer ); case SKILL_AGILITY: iSkillReturn = SkillAgility( call, iPlayer ); case SKILL_AMNESIA: iSkillReturn = SkillAmnesia( call, iPlayer ); case SKILL_AURORABEAM: iSkillReturn = SkillAuroraBeam( call, iPlayer ); case SKILL_BARRAGE: iSkillReturn = SkillBarrage( call, iPlayer ); case SKILL_BARRIER: iSkillReturn = SkillBarrier( call, iPlayer ); case SKILL_BIDE: iSkillReturn = SkillBide( call, iPlayer ); case SKILL_BIND: iSkillReturn = SkillBind( call, iPlayer ); case SKILL_BITE: iSkillReturn = SkillBite( call, iPlayer ); case SKILL_BLIZZARD: iSkillReturn = SkillBlizzard( call, iPlayer ); case SKILL_BODYSLAM: iSkillReturn = SkillBodySlam( call, iPlayer ); case SKILL_BONECLUB: iSkillReturn = SkillBoneClub( call, iPlayer ); case SKILL_BONEMERANG: iSkillReturn = SkillBonemerang( call, iPlayer ); case SKILL_BUBBLE: iSkillReturn = SkillBubble( call, iPlayer ); case SKILL_BUBBLEBEAM: iSkillReturn = SkillBubblebeam( call, iPlayer ); case SKILL_CLAMP: iSkillReturn = SkillClamp( call, iPlayer ); case SKILL_COMETPUNCH: iSkillReturn = SkillCometPunch( call, iPlayer ); case SKILL_CONFUSERAY: iSkillReturn = SkillConfuseRay( call, iPlayer ); case SKILL_CONFUSION: iSkillReturn = SkillConfusion( call, iPlayer ); case SKILL_CONSTRICT: iSkillReturn = SkillConstrict( call, iPlayer ); case SKILL_CONVERSION: iSkillReturn = SkillConversion( call, iPlayer ); case SKILL_COUNTER: iSkillReturn = SkillCounter( call, iPlayer ); case SKILL_CRABHAMMER: iSkillReturn = SkillCrabhammer( call, iPlayer ); case SKILL_CUT: iSkillReturn = SkillCut( call, iPlayer ); case SKILL_DEFENSECURL: iSkillReturn = SkillDefenseCurl( call, iPlayer ); case SKILL_DIG: iSkillReturn = SkillDig( call, iPlayer ); case SKILL_DISABLE: iSkillReturn = SkillDisable( call, iPlayer ); case SKILL_DIZZYPUNCH: iSkillReturn = SkillDizzyPunch( call, iPlayer ); case SKILL_DOUBLEKICK: iSkillReturn = SkillDoubleKick( call, iPlayer ); case SKILL_DOUBLETEAM: iSkillReturn = SkillDoubleTeam( call, iPlayer ); case SKILL_DOUBLEEDGE: iSkillReturn = SkillDoubleEdge( call, iPlayer ); case SKILL_DOUBLESLAP: iSkillReturn = SkillDoubleslap( call, iPlayer ); case SKILL_DRAGONRAGE: iSkillReturn = SkillDragonRage( call, iPlayer ); case SKILL_DREAMEATER: iSkillReturn = SkillDreamEater( call, iPlayer ); case SKILL_DRILLPECK: iSkillReturn = SkillDrillPeck( call, iPlayer ); case SKILL_EARTHQUAKE: iSkillReturn = SkillEarthquake( call, iPlayer ); case SKILL_EGGBOMB: iSkillReturn = SkillEggBomb( call, iPlayer ); case SKILL_EMBER: iSkillReturn = SkillEmber( call, iPlayer ); case SKILL_EXPLOSION: iSkillReturn = SkillExplosion( call, iPlayer ); case SKILL_FIREBLAST: iSkillReturn = SkillFireBlast( call, iPlayer ); case SKILL_FIREPUNCH: iSkillReturn = SkillFirePunch( call, iPlayer ); case SKILL_FIRESPIN: iSkillReturn = SkillFireSpin( call, iPlayer ); case SKILL_FISSURE: iSkillReturn = SkillFissure( call, iPlayer ); case SKILL_FLAMETHROWER: iSkillReturn = SkillFlamethrower( call, iPlayer ); case SKILL_FLASH: iSkillReturn = SkillFlash( call, iPlayer ); case SKILL_FLY: iSkillReturn = SkillFly( call, iPlayer ); case SKILL_FOCUSENERGY: iSkillReturn = SkillFocusEnergy( call, iPlayer ); case SKILL_FURYATTACK: iSkillReturn = SkillFuryAttack( call, iPlayer ); case SKILL_FURYSWIPES: iSkillReturn = SkillFurySwipes( call, iPlayer ); case SKILL_GLARE: iSkillReturn = SkillGlare( call, iPlayer ); case SKILL_GROWL: iSkillReturn = SkillGrowl( call, iPlayer ); case SKILL_GROWTH: iSkillReturn = SkillGrowth( call, iPlayer ); case SKILL_GUILLOTINE: iSkillReturn = SkillGuillotine( call, iPlayer ); case SKILL_GUST: iSkillReturn = SkillGust( call, iPlayer ); case SKILL_HARDEN: iSkillReturn = SkillHarden( call, iPlayer ); case SKILL_HAZE: iSkillReturn = SkillHaze( call, iPlayer ); case SKILL_HEADBUTT: iSkillReturn = SkillHeadButt( call, iPlayer ); case SKILL_HIJUMPKICK: iSkillReturn = SkillHiJumpKick( call, iPlayer ); case SKILL_HORNATTACK: iSkillReturn = SkillHornAttack( call, iPlayer ); case SKILL_HORNDRILL: iSkillReturn = SkillHornDrill( call, iPlayer ); case SKILL_HYDROPUMP: iSkillReturn = SkillHydroPump( call, iPlayer ); case SKILL_HYPERBEAM: iSkillReturn = SkillHyperBeam( call, iPlayer ); case SKILL_HYPERFANG: iSkillReturn = SkillHyperFang( call, iPlayer ); case SKILL_HYPNOSIS: iSkillReturn = SkillHypnosis( call, iPlayer ); case SKILL_ICEBEAM: iSkillReturn = SkillIceBeam( call, iPlayer ); case SKILL_ICEPUNCH: iSkillReturn = SkillIcePunch( call, iPlayer ); case SKILL_JUMPKICK: iSkillReturn = SkillJumpKick( call, iPlayer ); case SKILL_KARATECHOP: iSkillReturn = SkillKarateChop( call, iPlayer ); case SKILL_KINESIS: iSkillReturn = SkillKinesis( call, iPlayer ); case SKILL_LEECHLIFE: iSkillReturn = SkillLeechLife( call, iPlayer ); case SKILL_LEECHSEED: iSkillReturn = SkillLeechSeed( call, iPlayer ); case SKILL_LEER: iSkillReturn = SkillLeer( call, iPlayer ); case SKILL_LICK: iSkillReturn = SkillLick( call, iPlayer ); case SKILL_LIGHTSCREEN: iSkillReturn = SkillLightScreen( call, iPlayer ); case SKILL_LOVELYKISS: iSkillReturn = SkillLovelyKiss( call, iPlayer ); case SKILL_LOWKICK: iSkillReturn = SkillLowKick( call, iPlayer ); case SKILL_MEDITATE: iSkillReturn = SkillMeditate( call, iPlayer ); case SKILL_MEGADRAIN: iSkillReturn = SkillMegaDrain( call, iPlayer ); case SKILL_MEGAKICK: iSkillReturn = SkillMegaKick( call, iPlayer ); case SKILL_MEGAPUNCH: iSkillReturn = SkillMegaPunch( call, iPlayer ); case SKILL_METRONOME: iSkillReturn = SkillMetronome( call, iPlayer ); case SKILL_MIMIC: iSkillReturn = SkillMimic( call, iPlayer ); case SKILL_MINIMIZE: iSkillReturn = SkillMinimize( call, iPlayer ); case SKILL_MIRRORMOVE: iSkillReturn = SkillMirrorMove( call, iPlayer ); case SKILL_MIST: iSkillReturn = SkillMist( call, iPlayer ); case SKILL_NIGHTSHADE: iSkillReturn = SkillNightShade( call, iPlayer ); case SKILL_PAYDAY: iSkillReturn = SkillPayDay( call, iPlayer ); case SKILL_PECK: iSkillReturn = SkillPeck( call, iPlayer ); case SKILL_PETALDANCE: iSkillReturn = SkillPetalDance( call, iPlayer ); case SKILL_PINMISSILE: iSkillReturn = SkillPinMissile( call, iPlayer ); case SKILL_POISONGAS: iSkillReturn = SkillPoisonGas( call, iPlayer ); case SKILL_POISONSTING: iSkillReturn = SkillPoisonSting( call, iPlayer ); case SKILL_POISONPOWDER: iSkillReturn = SkillPoisonPowder( call, iPlayer ); case SKILL_POUND: iSkillReturn = SkillPound( call, iPlayer ); case SKILL_PSYBEAM: iSkillReturn = SkillPsybeam( call, iPlayer ); case SKILL_PSYCHIC: iSkillReturn = SkillPsychic( call, iPlayer ); case SKILL_PSYWAVE: iSkillReturn = SkillPsywave( call, iPlayer ); case SKILL_QUICKATTACK: iSkillReturn = SkillQuickAttack( call, iPlayer ); case SKILL_RAGE: iSkillReturn = SkillRage( call, iPlayer ); case SKILL_RAZORLEAF: iSkillReturn = SkillRazorLeaf( call, iPlayer ); case SKILL_RAZORWIND: iSkillReturn = SkillRazorWind( call, iPlayer ); case SKILL_RECOVER: iSkillReturn = SkillRecover( call, iPlayer ); case SKILL_REFLECT: iSkillReturn = SkillReflect( call, iPlayer ); case SKILL_REST: iSkillReturn = SkillRest( call, iPlayer ); case SKILL_ROAR: iSkillReturn = SkillRoar( call, iPlayer ); case SKILL_ROCKSLIDE: iSkillReturn = SkillRockSlide( call, iPlayer ); case SKILL_ROCKTHROW: iSkillReturn = SkillRockThrow( call, iPlayer ); case SKILL_ROLLINGKICK: iSkillReturn = SkillRollingKick( call, iPlayer ); case SKILL_SANDATTACK: iSkillReturn = SkillSandAttack( call, iPlayer ); case SKILL_SCRATCH: iSkillReturn = SkillScratch( call, iPlayer ); case SKILL_SCREECH: iSkillReturn = SkillScreech( call, iPlayer ); case SKILL_SEISMICTOSS: iSkillReturn = SkillSeismicToss( call, iPlayer ); case SKILL_SELFDESTRUCT: iSkillReturn = SkillSelfDestruct( call, iPlayer ); case SKILL_SHARPEN: iSkillReturn = SkillSharpen( call, iPlayer ); case SKILL_SING: iSkillReturn = SkillSing( call, iPlayer ); case SKILL_SKULLBASH: iSkillReturn = SkillSkullBash( call, iPlayer ); case SKILL_SKYATTACK: iSkillReturn = SkillSkyAttack( call, iPlayer ); case SKILL_SLAM: iSkillReturn = SkillSlam( call, iPlayer ); case SKILL_SLASH: iSkillReturn = SkillSlash( call, iPlayer ); case SKILL_SLEEPPOWDER: iSkillReturn = SkillSleepPowder( call, iPlayer ); case SKILL_SLUDGE: iSkillReturn = SkillSludge( call, iPlayer ); case SKILL_SMOG: iSkillReturn = SkillSmog( call, iPlayer ); case SKILL_SMOKESCREEN: iSkillReturn = SkillSmokescreen( call, iPlayer ); case SKILL_SOFTBOILED: iSkillReturn = SkillSoftboiled( call, iPlayer ); case SKILL_SOLARBEAM: iSkillReturn = SkillSolarBeam( call, iPlayer ); case SKILL_SONICBOOM: iSkillReturn = SkillSonicboom( call, iPlayer ); case SKILL_SPIKECANNON: iSkillReturn = SkillSpikeCannon( call, iPlayer ); case SKILL_SPLASH: iSkillReturn = SkillSplash( call, iPlayer ); case SKILL_SPORE: iSkillReturn = SkillSpore( call, iPlayer ); case SKILL_STOMP: iSkillReturn = SkillStomp( call, iPlayer ); case SKILL_STRENGTH: iSkillReturn = SkillStrength( call, iPlayer ); case SKILL_STRINGSHOT: iSkillReturn = SkillStringShot( call, iPlayer ); case SKILL_STRUGGLE: iSkillReturn = SkillStruggle( call, iPlayer ); case SKILL_STUNSPORE: iSkillReturn = SkillStunSpore( call, iPlayer ); case SKILL_SUBMISSION: iSkillReturn = SkillSubmission( call, iPlayer ); case SKILL_SUBSTITUTE: iSkillReturn = SkillSubstitute( call, iPlayer ); case SKILL_SUPERFANG: iSkillReturn = SkillSuperFang( call, iPlayer ); case SKILL_SUPERSONIC: iSkillReturn = SkillSupersonic( call, iPlayer ); case SKILL_SURF: iSkillReturn = SkillSurf( call, iPlayer ); case SKILL_SWIFT: iSkillReturn = SkillSwift( call, iPlayer ); case SKILL_SWORDSDANCE: iSkillReturn = SkillSwordsDance( call, iPlayer ); case SKILL_TACKLE: iSkillReturn = SkillTackle( call, iPlayer ); case SKILL_TAILWHIP: iSkillReturn = SkillTailWhip( call, iPlayer ); case SKILL_TAKEDOWN: iSkillReturn = SkillTakeDown( call, iPlayer ); case SKILL_TELEPORT: iSkillReturn = SkillTeleport( call, iPlayer ); case SKILL_THRASH: iSkillReturn = SkillThrash( call, iPlayer ); case SKILL_THUNDER: iSkillReturn = SkillThunder( call, iPlayer ); case SKILL_THUNDERWAVE: iSkillReturn = SkillThunderWave( call, iPlayer ); case SKILL_THUNDERBOLT: iSkillReturn = SkillThunderBolt( call, iPlayer ); case SKILL_THUNDERPUNCH: iSkillReturn = SkillThunderPunch( call, iPlayer ); case SKILL_THUNDERSHOCK: iSkillReturn = SkillThunderShock( call, iPlayer ); case SKILL_TOXIC: iSkillReturn = SkillToxic( call, iPlayer ); case SKILL_TRANSFORM: iSkillReturn = SkillTransform( call, iPlayer ); case SKILL_TRIATTACK: iSkillReturn = SkillTriAttack( call, iPlayer ); case SKILL_TWINNEEDLE: iSkillReturn = SkillTwinNeedle( call, iPlayer ); case SKILL_VICEGRIP: iSkillReturn = SkillViceGrip( call, iPlayer ); case SKILL_VINEWHIP: iSkillReturn = SkillVineWhip( call, iPlayer ); case SKILL_WATERGUN: iSkillReturn = SkillWaterGun( call, iPlayer ); case SKILL_WATERFALL: iSkillReturn = SkillWaterfall( call, iPlayer ); case SKILL_WHIRLWIND: iSkillReturn = SkillWhirlwind( call, iPlayer ); case SKILL_WINGATTACK: iSkillReturn = SkillWingAttack( call, iPlayer ); case SKILL_WITHDRAW: iSkillReturn = SkillWithdraw( call, iPlayer ); case SKILL_WRAP: iSkillReturn = SkillWrap( call, iPlayer );
default: pokemod_debug( "Skill %d not found", skillID ); }
g_iSkillID = SKILL_INVALID;
if ( iPlayer ) { switch ( iSkillReturn ) { case SKILL_USED, SKILL_USED_PAUSE: { if ( addDelayTime ) { g_iPlayerSkillCharges[ iPlayer ][ skillNum ]++; if ( g_iPlayerSkillCharges[ iPlayer ][ skillNum ] >= SkillInfo( skillID, SI_CHARGES ) ) { g_iPlayerSkillCharges[ iPlayer ][ skillNum ] = 0;
new Int:iPP = ( --g_iPlayerSkillPP[ iPlayer ][ iPokeNum ][ skillNum ] );
//Save PP every 5 uses if ( !( iPP % 5 ) ) { SavePlayerPokeSkill( iPlayer, iPokeNum, skillNum ); }
new Float:fDelayTime = Float:SkillInfo( skillID, SI_DELAYTIME ); if ( fDelayTime ) { SkillAddDelay( iPlayer, fDelayTime );
if ( is_user_alive( iPlayer ) ) { SkillCallType( CALL_RESET, iPlayer, .bCheckReady = false ); } } }
if ( call == CALL_BIND_DOWN ) { SkillMenu( iPlayer ); }
PlayerHUD( iPlayer, iPlayer ); } else if ( g_fSkillReadyTime[ iPlayer ] == SKILL_TIME_WAIT ) { SkillSetDelay( iPlayer, 0.0 ); } } case SKILL_WAIT: { SkillSetDelay( iPlayer, SKILL_TIME_WAIT ); } case SKILL_DENY: { SoundDeny( iPlayer ); } } }
pokemod_funcend_debug( "SkillCall" );
return iSkillReturn; } PM_FUNC_NORM_ATTRIB SKILL:SkillRegister( String:Name[], PM_TYPE:Type, SKILL_CALL:callTypes, Int:PP, Int:Charges=1, Float:DelayTime = 0.0 ) { pokemod_funcstart_debug( "SkillRegister %s", Name );
ArrayPushString( g_iSkillNames, Name );
new Int:skillInfos[ SKILL_INFO ]; skillInfos[ SI_TYPE ] = _:Type; skillInfos[ SI_CALLTYPE ] = _:callTypes; skillInfos[ SI_PP ] = clamp( PP, 1, 100 ); skillInfos[ SI_CHARGES ] = Charges; skillInfos[ SI_DELAYTIME ] = _:DelayTime;
for ( new SKILL_INFO:i; i < SKILL_INFO; i++ ) { ArrayPushCell( g_iSkillInfos, skillInfos[ i ] ); }
pokemod_funcend_debug( "SkillRegister" );
return SKILL_READY; } PM_FUNC_NORM_ATTRIB SkillInfo( POKESKILL:iSkillID, SKILL_INFO:iInfoNum ) { if ( iSkillID <= SKILL_INVALID ) return 0; return ArrayGetCell( g_iSkillInfos, _:( ( _:iSkillID * _:SKILL_INFO ) + _:iInfoNum ) ); } PM_FUNC_NORM_ATTRIB SKILL:SkillHelp( String:szHelp[] ) { copy( g_szSkillHelp, charsmax(g_szSkillHelp), szHelp ); return SKILL_READY; } PM_FUNC_NORM_ATTRIB SkillGetHelp( POKESKILL:iSkillID ) { SkillCall( iSkillID, CALL_HELP ); return g_szSkillHelp; }
PM_FUNC_NORM_ATTRIB SkillMenu( Int:iPlayer ) { new Int:iPokeNum = PlayerGetInfo( iPlayer, PINFO_ACTIVE_POKENUM );
//If they don't have a skill if ( g_iPlayerPokemonSkills[ iPlayer ][ iPokeNum ][ 0 ] == SKILL_INVALID ) return false;
if ( g_iPlayerPokemonStats[ iPlayer ][ iPokeNum ][ POKESTAT_HP ] <= 0 ) { client_print( iPlayer, print_chat, "[PokeMod] Fainted pokemon cannot use skills." ); return false; }
pokemod_funcstart_debug( "SkillMenu" );
new Int:iActiveSkillNum = PlayerGetInfo( iPlayer, PINFO_ACTIVE_SKILLNUM ) - 1;
new Int:iMenu = MenuCreate( "%s Skills", PokeNumToName( iPokeNum, .playerID = iPlayer ) );
for ( new Int:cColor, POKESKILL:iSkillID, Int:iSkillNum, String:szSkillNum[ 16 ], Int:iSkillMaxCharges, Int:iSkillMaxPPs; iSkillNum < SKILLS_PER_POKEMON; iSkillNum++ ){ iSkillID = g_iPlayerPokemonSkills[ iPlayer ][ iPokeNum ][ iSkillNum ]; if ( iSkillID != SKILL_INVALID ) { if ( iActiveSkillNum == iSkillNum ) cColor = 'r'; else if ( !( SKILL_CALL:SkillInfo( iSkillID, SI_CALLTYPE ) & ( CALL_BIND_DOWN | CALL_BIND_UP ) ) ) cColor = 'd'; else cColor = 'w';
iSkillMaxPPs = SkillInfo( iSkillID, SI_PP ); iSkillMaxCharges = SkillInfo( iSkillID, SI_CHARGES ); num_to_str( iSkillNum + 1, szSkillNum, charsmax(szSkillNum) );
if ( iSkillMaxCharges > 1 && g_iPlayerSkillCharges[ iPlayer ][ iSkillNum ] ) { MenuAddItem( iMenu, szSkillNum, "\%c(%02d/%02d PP) %s (%d%%)", cColor, g_iPlayerSkillPP[ iPlayer ][ iPokeNum ][ iSkillNum ], iSkillMaxPPs, SkillToName( iSkillID ), ( 100 * g_iPlayerSkillCharges[ iPlayer ][ iSkillNum ] ) / ( iSkillMaxCharges ) ); } else { MenuAddItem( iMenu, szSkillNum, "\%c(%02d/%02d PP) %s", cColor, g_iPlayerSkillPP[ iPlayer ][ iPokeNum ][ iSkillNum ], iSkillMaxPPs, SkillToName( iSkillID ) ); } } }
MenuExit( iPlayer, iMenu, .bExitOption = true ); MenuDisplay( iPlayer, iMenu, MENU_SKILLS );
pokemod_funcend_debug( "SkillMenu" );
return true; }
PM_FUNC_NORM_ATTRIB SkillLearn( Int:iPlayer, Int:iPokeNum, POKESKILL:iSkillID ) { if ( iSkillID == SKILL_INVALID || !g_iPlayerPokemonStats[ iPlayer ][ iPokeNum ][ POKESTAT_POKEMON ] || PlayerHasSkill( iPlayer, iPokeNum, iSkillID ) != -1 ) return -1;
pokemod_funcstart_debug( "SkillLearn" );
for ( new Int:iSkillNum; iSkillNum < SKILLS_PER_POKEMON; iSkillNum++ ) { if ( g_iPlayerPokemonSkills[ iPlayer ][ iPokeNum ][ iSkillNum ] == SKILL_INVALID ) { g_iPlayerPokemonSkills[ iPlayer ][ iPokeNum ][ iSkillNum ] = iSkillID; g_iPlayerSkillPP[ iPlayer ][ iPokeNum ][ iSkillNum ] = SkillInfo( iSkillID, SI_PP ); SavePlayerPokeSkill( iPlayer, iPokeNum, iSkillNum );
DHudEventMessage( iPlayer, "%s learned %s.", PokeNumToName( iPokeNum, .playerID = iPlayer ), SkillToName( iSkillID ) );
pokemod_funcend_debug( "SkillLearn Auto" ); return iSkillNum; } }
new Int:menu = MenuCreate( "%s is trying to learn %s", PokeNumToName( iPokeNum, .playerID = iPlayer ), SkillToName( iSkillID ) );
new String:szData[ 32 ]; formatex( szData, charsmax(szData), "%d %d -1", iPokeNum, iSkillID );
MenuAddItem( menu, szData, "Learn skill %s", SkillToName( iSkillID ) );
MenuAddItem( menu, MENU_FAKE_EXIT, "Block Skill^n^n%s", SkillGetHelp( iSkillID ) );
MenuExit( iPlayer, menu, .bExitOption = false ); MenuDisplay( iPlayer, menu, MENU_LEARN_SKILL );
pokemod_funcend_debug( "SkillLearn Menu" );
return -1; }
/* SkillDamage( .victim = , .attacker = , .damage = ); */ PM_FUNC_NORM_ATTRIB SkillDamage( Int:victim, Int:attacker, Int:damage ) { pokemod_funcstart_debug( "SkillDamage" );
new POKESKILL:iSkillID = g_iSkillID; if ( iSkillID <= SKILL_INVALID ) { pokemod_debug( "SkillDamage called with invalid skill ID" ); return 0; }
new String:szSkillName[ NAME_LEN ]; SkillToName( iSkillID, szSkillName, charsmax(szSkillName) );
new Int:iDamageDone = DamageFake( victim, attacker, damage, szSkillName, PM_TYPE:SkillInfo( iSkillID, SI_TYPE ), PlayerType( victim ) );
if ( PlayerGetInfo( attacker, PINFO_SETTING_SHOWDAMAGE ) ) { if ( iDamageDone > 0 ) { DHudEventMessage( attacker, "%s did %d damage.", szSkillName, iDamageDone ); } else if ( iDamageDone < 0 ) { DHudEventMessage( attacker, "%s healed %d HP.", szSkillName, abs(iDamageDone) ); } }
pokemod_funcend_debug( "SkillDamage" );
return iDamageDone; }
/* SkillAoEDamage( .attacker, .cOrigin = , .fRadius = , .iMaxDamage = , .flags = AOE_NORMAL ); */ PM_FUNC_NORM_ATTRIB SkillAoEDamage( Int:attacker, Coord:cOrigin[3], Float:fRadius, Int:iMaxDamage, AOE_FLAGS:flags=AOE_NORMAL ) { pokemod_funcstart_debug( "SkillAoEDamage" );
new POKESKILL:iSkillID = g_iSkillID; if ( iSkillID <= SKILL_INVALID ) { pokemod_debug( "SkillAoEDamage called with invalid skill ID" );
pokemod_funcend_debug( "SkillAoEDamage Invalid Skill" );
return 0; }
new PM_TYPE:skillType = PM_TYPE:SkillInfo( iSkillID, SI_TYPE ); new String:szSkillName[ NAME_LEN ]; SkillToName( iSkillID, szSkillName, charsmax(szSkillName) );
new Coord:cPlayerOrigin[3], Int:iDistance, Int:damage, Int:totalDamage;
new CsTeams:attackerTeam = cs_get_user_team( attacker );
LoopThroughPlayersFlags( iPlayer, PLAYER_FLAGS_ALIVE ) { if ( attacker == iPlayer && flags & AOE_IGNORE_ATTACKER ) continue;
if ( flags & ( AOE_VICTIM_TEAM | AOE_ATTACKER_TEAM ) ) { if ( attackerTeam == cs_get_user_team( iPlayer ) ) { if ( flags & AOE_VICTIM_TEAM ) continue; } else { if ( flags & AOE_ATTACKER_TEAM ) continue; } }
get_user_origin( iPlayer, cPlayerOrigin );
iDistance = get_distance( cPlayerOrigin, cOrigin );
if ( 0.0 <= iDistance <= fRadius ) { if ( flags & AOE_MAXIMIZE_DAMAGE ) damage = iMaxDamage; else damage = iMaxDamage - floatround( ( iMaxDamage * iDistance ) / fRadius );
totalDamage += DamageFake( iPlayer, attacker, damage, szSkillName, skillType, PlayerType( iPlayer ) ); } }
if ( PlayerGetInfo( attacker, PINFO_SETTING_SHOWDAMAGE ) ) { if ( totalDamage > 0 ) { DHudEventMessage( attacker, "%s did %d damage.", szSkillName, totalDamage ); } else if ( totalDamage < 0 ) { DHudEventMessage( attacker, "%s healed %d HP.", szSkillName, abs(totalDamage) ); } }
pokemod_funcend_debug( "SkillAoEDamage" );
return totalDamage; }
/* SkillLineDamage( .attacker = , .cStart = , .cEnd = , .fRadius = , .iMaxDamage = , .flags = AOE_IGNORE_ATTACKER | AOE_VICTIM_TEAM ); */ PM_FUNC_NORM_ATTRIB SkillLineDamage( Int:attacker, Coord:cStart[3], Coord:cEnd[3], Float:fRadius, Int:iMaxDamage, AOE_FLAGS:flags=AOE_IGNORE_ATTACKER|AOE_VICTIM_TEAM ) { pokemod_funcstart_debug( "SkillLineDamage" );
new POKESKILL:iSkillID = g_iSkillID; if ( iSkillID <= SKILL_INVALID ) { pokemod_debug( "SkillLineDamage called with invalid skill ID" ); return 0; }
new PM_TYPE:skillType = PM_TYPE:SkillInfo( iSkillID, SI_TYPE ); new String:szSkillName[ NAME_LEN ]; SkillToName( iSkillID, szSkillName, charsmax(szSkillName) );
new Vector:vStart[3], Vector:vEnd[3]; CoordToVector( cStart, vStart ); CoordToVector( cEnd, vEnd ); new Vector:vPlayerOrigin[3], Int:iDistance, Int:damage, Int:totalDamage;
new CsTeams:attackerTeam = cs_get_user_team( attacker );
LoopThroughPlayersFlags( iPlayer, PLAYER_FLAGS_ALIVE ) { if ( attacker == iPlayer && flags & AOE_IGNORE_ATTACKER ) continue;
if ( flags & ( AOE_VICTIM_TEAM | AOE_ATTACKER_TEAM ) ) { if ( attackerTeam == cs_get_user_team( iPlayer ) ) { if ( flags & AOE_VICTIM_TEAM ) continue; } else { if ( flags & AOE_ATTACKER_TEAM ) continue; } }
EntityGetOrigin( iPlayer, vPlayerOrigin );
iDistance = get_distance_to_line( vStart, vEnd, vPlayerOrigin );
if ( 0.0 <= iDistance <= fRadius ) { if ( flags & AOE_MAXIMIZE_DAMAGE ) damage = iMaxDamage; else damage = iMaxDamage - floatround( ( iMaxDamage * iDistance ) / fRadius );
totalDamage += DamageFake( iPlayer, attacker, damage, szSkillName, skillType, PlayerType( iPlayer ) ); } }
pokemod_funcend_debug( "SkillLineDamage" );
return totalDamage; }
PM_FUNC_NORM_ATTRIB SkillTimeCheckNull( Int:iPlayer ) { pokemod_funcstart_debug( "SkillTimeCheckNull" );
if ( g_fSkillReadyTime[ iPlayer ] > 0.0 && g_fSkillReadyTime[ iPlayer ] - get_gametime() <= 0.0 ) g_fSkillReadyTime[ iPlayer ] = 0.0;
pokemod_funcend_debug( "SkillTimeCheckNull" ); }
PM_FUNC_NORM_ATTRIB SkillAddDelay( Int:iPlayer, Float:fDelayTime ) { pokemod_funcstart_debug( "SkillAddDelay" );
//If they currently are waiting for the skill, we need to null their wait time if ( g_fSkillReadyTime[ iPlayer ] == SKILL_TIME_WAIT ) g_fSkillReadyTime[ iPlayer ] = 0.0;
//If they don't have any delay time currently, we need to add the current game time if ( !g_fSkillReadyTime[ iPlayer ] ) fDelayTime += get_gametime();
g_fSkillReadyTime[ iPlayer ] += fDelayTime;
pokemod_funcend_debug( "SkillAddDelay" ); }
PM_FUNC_NORM_ATTRIB SkillSetDelay( Int:iPlayer, Float:fDelayTime ) { pokemod_funcstart_debug( "SkillSetDelay" );
g_fSkillReadyTime[ iPlayer ] = fDelayTime;
pokemod_funcend_debug( "SkillSetDelay" ); }
/* SkillBoost( .iPlayer = iPlayer, .fVerticalBoost = StatClamp( iPlayer, STAT_SPECIAL, 200.0, 400.0 ), .fHorizontalBoost = StatClamp( iPlayer, STAT_SPECIAL, 400.0, 700.0 ), .iBoostDamage = StatClamp( iPlayer, STAT_ATTACK, 40, 70 ) ); */ PM_FUNC_NORM_ATTRIB SkillBoost( Int:iPlayer, Float:fVerticalBoost, Float:fHorizontalBoost, Int:iBoostDamage = 0 ) { pokemod_funcstart_debug( "SkillBoost" );
new Vector:vVelocity[3]; velocity_by_aim( iPlayer, 1, vVelocity );
new Float:fHorLen = floatsqroot( vVelocity[0]*vVelocity[0] + vVelocity[1]*vVelocity[1] ); vVelocity[0] *= fHorizontalBoost / fHorLen; vVelocity[1] *= fHorizontalBoost / fHorLen; vVelocity[2] = floatmax( fVerticalBoost, 200.0 );
EntitySetVelocity( iPlayer, vVelocity );
PlayerSetInfo( iPlayer, PINFO_BOOST_SKILL, _:g_iSkillID ); PlayerSetInfo( iPlayer, PINFO_BOOST_SKILLNUM, g_iSkillNum ); PlayerSetInfo( iPlayer, PINFO_BOOST_DAMAGE, iBoostDamage );
pokemod_funcend_debug( "SkillBoost" ); }
/* CHECK_SKY_AIM CHECK_BOMB CHECK_MOVING CHECK_ON_GROUND CHECK_IN_AIR CHECK_IN_WATER
SkillCheck( iPlayer, iCheckTypes, "" ) */ PM_FUNC_NORM_ATTRIB SkillCheck( Int:iPlayer, CHECK_TYPES:iCheckTypes, String:szAction[] = "" ) { new bool:bShowMessage = ( szAction[0] == EOS ) ? false : true; if ( iCheckTypes & CHECK_SKY_AIM ) { if ( fm_ViewContents( iPlayer ) == CONTENTS_SKY ) { if ( bShowMessage ) client_print( iPlayer, print_center, "Unable to %s while looking at the sky", szAction ); return true; } } if ( iCheckTypes & CHECK_BOMB ) { if ( get_user_weapon( iPlayer ) == CSW_C4 ) { if ( bShowMessage ) client_print( iPlayer, print_center, "Unable to %s while holding the bomb", szAction ); return true; } } if ( iCheckTypes & CHECK_ON_GROUND ) { if ( entity_on_ground( iPlayer ) ) { if ( bShowMessage ) client_print( iPlayer, print_center, "Unable to %s while on the ground", szAction ); return true; } } if ( iCheckTypes & CHECK_IN_AIR ) { if ( !entity_on_ground( iPlayer ) ) { if ( bShowMessage ) client_print( iPlayer, print_center, "Unable to %s while in the air", szAction ); return true; } } if ( iCheckTypes & CHECK_IN_WATER ) { if ( entity_in_water( iPlayer ) ) { if ( bShowMessage ) client_print( iPlayer, print_center, "Unable to %s while in water", szAction ); return true; } } if ( iCheckTypes & CHECK_MOVING ) { new Vector:vVelocity[ 3 ]; EntityGetVelocity( iPlayer, vVelocity ); if ( vVelocity[0] || vVelocity[1] || vVelocity[2] ) { if ( bShowMessage ) client_print( iPlayer, print_center, "Unable to %s while moving", szAction ); return true; } }
return false; }
PM_FUNC_NORM_ATTRIB SkillEntity( Int:iPlayer, Int:iSkipEnt = -1 ) { pokemod_funcstart_debug( "SkillEntity" );
new Int:iEnt = iSkipEnt; while ( ( iEnt = fm_find_ent_by_class( iEnt, szEntityPokeSkill ) ) ) { if ( EntityGetNum( iEnt, ENTITY_OWNER ) == iPlayer && POKESKILL:EntityGetNum( iEnt, ENTITY_SKILL ) == g_iSkillID ) break; }
pokemod_funcend_debug( "SkillEntity" );
return iEnt; }
ERRORS:
PHP Code:
//AMXXPC compile.exe // by the AMX Mod X Dev Team
//// pokemod.sma // C:\Users\Owner\Desktop\New files\scripting\pokemon/skills.inc(507) : warning 213: tag mismatch // C:\Users\Owner\Desktop\New files\scripting\pokemon/skills.inc(528) : warning 213: tag mismatch // C:\Users\Owner\Desktop\New files\scripting\pokemon/skills.inc(529) : warning 213: tag mismatch // C:\Users\Owner\Desktop\New files\scripting\pokemon/skills.inc(529) : warning 213: tag mismatch // C:\Users\Owner\Desktop\New files\scripting\pokemon/skills.inc(537) : warning 213: tag mismatch // C:\Users\Owner\Desktop\New files\scripting\pokemon/skills.inc(538) : warning 213: tag mismatch // C:\Users\Owner\Desktop\New files\scripting\pokemon/skills.inc(538) : warning 213: tag mismatch // C:\Users\Owner\Desktop\New files\scripting\pokemon/skills.inc(553) : warning 213: tag mismatch // C:\Users\Owner\Desktop\New files\scripting\pokemon/skills.inc(554) : warning 213: tag mismatch // C:\Users\Owner\Desktop\New files\scripting\pokemon/skills.inc(554) : warning 213: tag mismatch // C:\Users\Owner\Desktop\New files\scripting\pokemon/skills.inc(562) : warning 213: tag mismatch // C:\Users\Owner\Desktop\New files\scripting\pokemon/skills.inc(563) : warning 213: tag mismatch // C:\Users\Owner\Desktop\New files\scripting\pokemon/skills.inc(563) : warning 213: tag mismatch // C:\Users\Owner\Desktop\New files\scripting\pokemon/skills.inc(645) : warning 213: tag mismatch // C:\Users\Owner\Desktop\New files\scripting\pokemon/skills.inc(646) : warning 204: symbol is assigned a value that is never used: "prop" // C:\Users\Owner\Desktop\New files\scripting\pokemon/skills.inc(646) : warning 204: symbol is assigned a value that is never used: "skillID" // C:\Users\Owner\Desktop\New files\scripting\pokemon/skills.inc(646) : warning 204: symbol is assigned a value that is never used: "id" // C:\Users\Owner\Desktop\New files\scripting\pokemon/skills.inc(650) : warning 213: tag mismatch // C:\Users\Owner\Desktop\New files\scripting\pokemon/skills.inc(651) : warning 213: tag mismatch // C:\Users\Owner\Desktop\New files\scripting\pokemon/skills.inc(653) : error 017: undefined symbol "skill" // C:\Users\Owner\Desktop\New files\scripting\pokemon/skills.inc(653) : error 017: undefined symbol "SkillID" // C:\Users\Owner\Desktop\New files\scripting\pokemon/skills.inc(658) : error 017: undefined symbol "Absorb" // C:\Users\Owner\Desktop\New files\scripting\pokemon/skills.inc(658) : warning 213: tag mismatch // C:\Users\Owner\Desktop\New files\scripting\pokemon/skills.inc(659) : error 017: undefined symbol "Acid" // C:\Users\Owner\Desktop\New files\scripting\pokemon/skills.inc(659) : warning 213: tag mismatch // C:\Users\Owner\Desktop\New files\scripting\pokemon/skills.inc(660) : error 017: undefined symbol "Acid_Armor" // C:\Users\Owner\Desktop\New files\scripting\pokemon/skills.inc(660) : warning 213: tag mismatch // C:\Users\Owner\Desktop\New files\scripting\pokemon/skills.inc(661) : error 017: undefined symbol "Agility" // C:\Users\Owner\Desktop\New files\scripting\pokemon/skills.inc(661) : warning 213: tag mismatch // C:\Users\Owner\Desktop\New files\scripting\pokemon/skills.inc(662) : error 017: undefined symbol "Amnesia" // C:\Users\Owner\Desktop\New files\scripting\pokemon/skills.inc(662) : warning 213: tag mismatch // C:\Users\Owner\Desktop\New files\scripting\pokemon/skills.inc(663) : error 017: undefined symbol "Aurora_Beam" // C:\Users\Owner\Desktop\New files\scripting\pokemon/skills.inc(663) : warning 213: tag mismatch // C:\Users\Owner\Desktop\New files\scripting\pokemon/skills.inc(664) : error 017: undefined symbol "Barrage" // C:\Users\Owner\Desktop\New files\scripting\pokemon/skills.inc(664) : warning 213: tag mismatch // C:\Users\Owner\Desktop\New files\scripting\pokemon/skills.inc(665) : error 017: undefined symbol "Bide" // C:\Users\Owner\Desktop\New files\scripting\pokemon/skills.inc(665) : warning 213: tag mismatch // C:\Users\Owner\Desktop\New files\scripting\pokemon/skills.inc(666) : error 017: undefined symbol "Bite" // C:\Users\Owner\Desktop\New files\scripting\pokemon/skills.inc(666) : warning 213: tag mismatch // C:\Users\Owner\Desktop\New files\scripting\pokemon/skills.inc(667) : error 017: undefined symbol "Powdered_Snow" // C:\Users\Owner\Desktop\New files\scripting\pokemon/skills.inc(667) : warning 213: tag mismatch // C:\Users\Owner\Desktop\New files\scripting\pokemon/skills.inc(668) : error 017: undefined symbol "Body_Slam" // C:\Users\Owner\Desktop\New files\scripting\pokemon/skills.inc(668) : warning 213: tag mismatch // C:\Users\Owner\Desktop\New files\scripting\pokemon/skills.inc(669) : error 017: undefined symbol "Bone_Club" // C:\Users\Owner\Desktop\New files\scripting\pokemon/skills.inc(669) : warning 213: tag mismatch // C:\Users\Owner\Desktop\New files\scripting\pokemon/skills.inc(670) : error 017: undefined symbol "Bonemerang" // C:\Users\Owner\Desktop\New files\scripting\pokemon/skills.inc(670) : warning 213: tag mismatch // C:\Users\Owner\Desktop\New files\scripting\pokemon/skills.inc(671) : error 017: undefined symbol "Bubble_Beam" // C:\Users\Owner\Desktop\New files\scripting\pokemon/skills.inc(671) : warning 213: tag mismatch // C:\Users\Owner\Desktop\New files\scripting\pokemon/skills.inc(672) : error 017: undefined symbol "Confuse_Ray" // C:\Users\Owner\Desktop\New files\scripting\pokemon/skills.inc(672) : warning 213: tag mismatch // C:\Users\Owner\Desktop\New files\scripting\pokemon/skills.inc(673) : error 017: undefined symbol "Confusion" // C:\Users\Owner\Desktop\New files\scripting\pokemon/skills.inc(673) : warning 213: tag mismatch // C:\Users\Owner\Desktop\New files\scripting\pokemon/skills.inc(674) : error 017: undefined symbol "Constrict" // C:\Users\Owner\Desktop\New files\scripting\pokemon/skills.inc(674) : warning 213: tag mismatch // C:\Users\Owner\Desktop\New files\scripting\pokemon/skills.inc(675) : error 017: undefined symbol "Conversion" // C:\Users\Owner\Desktop\New files\scripting\pokemon/skills.inc(675) : warning 213: tag mismatch // C:\Users\Owner\Desktop\New files\scripting\pokemon/skills.inc(676) : error 017: undefined symbol "Counter" // C:\Users\Owner\Desktop\New files\scripting\pokemon/skills.inc(676) : warning 213: tag mismatch // C:\Users\Owner\Desktop\New files\scripting\pokemon/skills.inc(677) : error 017: undefined symbol "Defense_Curl" // C:\Users\Owner\Desktop\New files\scripting\pokemon/skills.inc(677) : warning 213: tag mismatch // C:\Users\Owner\Desktop\New files\scripting\pokemon/skills.inc(678) : error 017: undefined symbol "Dig" // C:\Users\Owner\Desktop\New files\scripting\pokemon/skills.inc(678) : warning 213: tag mismatch // C:\Users\Owner\Desktop\New files\scripting\pokemon/skills.inc(679) : error 017: undefined symbol "Disable" // C:\Users\Owner\Desktop\New files\scripting\pokemon/skills.inc(679) : warning 213: tag mismatch // C:\Users\Owner\Desktop\New files\scripting\pokemon/skills.inc(680) : error 017: undefined symbol "Dizzy_Punch" // C:\Users\Owner\Desktop\New files\scripting\pokemon/skills.inc(680) : warning 213: tag mismatch // C:\Users\Owner\Desktop\New files\scripting\pokemon/skills.inc(681) : error 017: undefined symbol "Double_Edge" // // Compilation aborted. // 26 Errors. // Could not locate output file C:\Users\Owner\Desktop\New files\scripting\compiled\pokemod.amx (compile failed). // // Compilation Time: 9.14 sec // ----------------------------------------
// File not found.
Press enter to exit ...
|