//------------------------------------------------------------------------------ // // Zombie Filter Script v1.4 // Designed for SA-MP v0.2.2 // // Created by zeruel_angel // If you speak spanish, please visit SPANISH forum in samp.tilens.com // Si hablas español, por favor visita el foro en ESPAÑOL samp.tilens.com //------------------------------------------------------------------------------ #include #define PRESS 123 #define HOLD 456 new Ticket[MAX_PLAYERS]; forward HoldingFire(); enum weapParts { WeapId, allow, Float:range, Float:wide, damageMin, damageMax, cutting, instaGib, continua, mnsg[150] }; new weapL[55][weapParts]= { // ID allow range wide dMin dMax cutting insGib continua msng {0, true, 1.0, 45.0, 5, 10, false, false, false, "~n~~n~~n~~n~~n~~n~~n~~w~Punch!!!"}, {WEAPON_BRASSKNUCKLE, true, 1.5, 45.0, 5, 15, false, false, false, "~n~~n~~n~~n~~n~~n~~n~~y~Plack~w~!!!"}, {WEAPON_GOLFCLUB, true, 2.0, 35.0, 20, 25, false, false, false, "~n~~n~~n~~n~~n~~n~~n~~w~Fiuuuff!!! ~b~~h~Fiuuuff~w~!!!"}, {WEAPON_NITESTICK, true, 1.5, 35.0, 10, 15, false, false, false, "~n~~n~~n~~n~~n~~n~~n~~b~~h~Plafff~w~!!!"}, {WEAPON_KNIFE, true, 1.5, 15.0, 10, 15, false, false, false, "~n~~n~~n~~n~~n~~n~~n~~r~Fisss~w~!!!"}, {WEAPON_BAT, true, 2.0, 35.0, 10, 15, false, false, false, "~n~~n~~n~~n~~n~~n~~n~~g~~h~Paffffff~w~!!!"}, {WEAPON_SHOVEL, true, 2.0, 35.0, 10, 25, true, false, false, "~n~~n~~n~~n~~n~~n~~n~~r~~h~~h~PlanK~w~!!!"}, {WEAPON_POOLSTICK, true, 2.0, 35.0, 10, 15, false, false, false, "~n~~n~~n~~n~~n~~n~~n~~g~~h~Paffffff~w~!!!"}, {WEAPON_KATANA, true, 2.0, 45.0, 20, 45, true, false, false, "~n~~n~~n~~n~~n~~n~~n~~b~SWIFT~w~! ~b~SWIFT~w~!"}, {WEAPON_CHAINSAW, true, 2.5, 35.0, 20, 35, true, false, true, "~n~~n~~n~~n~~n~~n~~n~~g~BRRRRRRRNNNNNN~w~!!!!"}, {WEAPON_DILDO, false, 0.0, 0.0, 0, 0, false, false, false, "~w~This ~r~weapon ~w~is not yet ~b~available ~w~for beeing used against ~g~zombies~w~!!!! ~y~sorry~w~. ~n~~b~zeruel_angel~w~."}, {WEAPON_DILDO2, false, 0.0, 0.0, 0, 0, false, false, false, "~w~This ~r~weapon ~w~is not yet ~b~available ~w~for beeing used against ~g~zombies~w~!!!! ~y~sorry~w~. ~n~~b~zeruel_angel~w~."}, {WEAPON_VIBRATOR, false, 0.0, 0.0, 0, 0, false, false, false, "~w~This ~r~weapon ~w~is not yet ~b~available ~w~for beeing used against ~g~zombies~w~!!!! ~y~sorry~w~. ~n~~b~zeruel_angel~w~."}, {WEAPON_VIBRATOR2, false, 0.0, 0.0, 0, 0, false, false, false, "~w~This ~r~weapon ~w~is not yet ~b~available ~w~for beeing used against ~g~zombies~w~!!!! ~y~sorry~w~. ~n~~b~zeruel_angel~w~."}, {WEAPON_FLOWER, false, 0.0, 0.0, 0, 0, false, false, false, "~w~This ~r~weapon ~w~is not yet ~b~available ~w~for beeing used against ~g~zombies~w~!!!! ~y~sorry~w~. ~n~~b~zeruel_angel~w~."}, {WEAPON_CANE, true, 2.0, 35.0, 10, 15, false, false, false, "~n~~n~~n~~n~~n~~n~~n~~g~~h~Paffffff~w~!!!"}, {WEAPON_GRENADE, false, 0.0, 0.0, 0, 0, false, false, false, "~w~This ~r~weapon ~w~is not yet ~b~available ~w~for beeing used against ~g~zombies~w~!!!! ~y~sorry~w~. ~n~~b~zeruel_angel~w~."}, {WEAPON_TEARGAS, false, 0.0, 0.0, 0, 0, false, false, false, "~w~This ~r~weapon ~w~is not yet ~b~available ~w~for beeing used against ~g~zombies~w~!!!! ~y~sorry~w~. ~n~~b~zeruel_angel~w~."}, {WEAPON_MOLTOV, false, 0.0, 0.0, 0, 0, false, false, false, "~w~This ~r~weapon ~w~is not yet ~b~available ~w~for beeing used against ~g~zombies~w~!!!! ~y~sorry~w~. ~n~~b~zeruel_angel~w~."}, {-1, false, 0.0, 0.0, 0, 0, false, false, false, "~w~This ~r~weapon ~w~is not yet ~b~available ~w~for beeing used against ~g~zombies~w~!!!! ~y~sorry~w~. ~n~~b~zeruel_angel~w~."}, {-1, false, 0.0, 0.0, 0, 0, false, false, false, "~w~This ~r~weapon ~w~is not yet ~b~available ~w~for beeing used against ~g~zombies~w~!!!! ~y~sorry~w~. ~n~~b~zeruel_angel~w~."}, {-1, false, 0.0, 0.0, 0, 0, false, false, false, "~w~This ~r~weapon ~w~is not yet ~b~available ~w~for beeing used against ~g~zombies~w~!!!! ~y~sorry~w~. ~n~~b~zeruel_angel~w~."}, {WEAPON_COLT45, true, 20.0, 7.0, 10, 15, false, false, true, "~n~~n~~n~~n~~n~~n~~n~~r~Bang~w~!!~r~Bang~w~!!"}, {WEAPON_SILENCED, true, 20.0, 3.0, 10, 15, false, false, false, "~n~~n~~n~~n~~n~~n~~n~~r~Piuufff~w~!!"}, {WEAPON_DEAGLE, true, 25.0, 3.0, 15, 20, false, true, true, "~n~~n~~n~~n~~n~~n~~n~~r~Baaang~w~!!"}, {WEAPON_SHOTGUN, true, 18.0, 7.0, 10, 25, true, true, true, "~n~~n~~n~~n~~n~~n~~n~~r~BUM~w~!!!!"}, {WEAPON_SAWEDOFF, true, 12.0, 10.0, 12, 18, true, true, true, "~n~~n~~n~~n~~n~~n~~n~~r~BUM~w~!!~r~BUM~w~!!"}, {WEAPON_SHOTGSPA, true, 18.0, 7.0, 25, 45, true, true, true, "~n~~n~~n~~n~~n~~n~~n~~r~BUUUM~w~!!!!"}, {WEAPON_UZI, false, 0.0, 0.0, 0, 0, false, false, false, "~w~This ~r~weapon ~w~is not yet ~b~available ~w~for beeing used against ~g~zombies~w~!!!! ~y~sorry~w~. ~n~~b~zeruel_angel~w~."}, {WEAPON_MP5, false, 0.0, 0.0, 0, 0, false, false, false, "~w~This ~r~weapon ~w~is not yet ~b~available ~w~for beeing used against ~g~zombies~w~!!!! ~y~sorry~w~. ~n~~b~zeruel_angel~w~."}, {WEAPON_AK47, false, 0.0, 0.0, 0, 0, false, false, false, "~w~This ~r~weapon ~w~is not yet ~b~available ~w~for beeing used against ~g~zombies~w~!!!! ~y~sorry~w~. ~n~~b~zeruel_angel~w~."}, {WEAPON_M4, false, 0.0, 0.0, 0, 0, false, false, false, "~w~This ~r~weapon ~w~is not yet ~b~available ~w~for beeing used against ~g~zombies~w~!!!! ~y~sorry~w~. ~n~~b~zeruel_angel~w~."}, {WEAPON_TEC9, false, 0.0, 0.0, 0, 0, false, false, false, "~w~This ~r~weapon ~w~is not yet ~b~available ~w~for beeing used against ~g~zombies~w~!!!! ~y~sorry~w~. ~n~~b~zeruel_angel~w~."}, {WEAPON_RIFLE, true, 50.0, 2.0, 0, 50, false, true, true, "~n~~n~~n~~n~~n~~n~~n~~g~PUUUM~w~!!!!"}, {WEAPON_SNIPER, true, 100.0, 1.0, 0, 60, false, true, false, "~n~~n~~n~~n~~n~~n~~n~~g~PUUUUUUUUMMMMM~w~!!!!"}, {WEAPON_ROCKETLAUNCHER, false, 0.0, 0.0, 0, 0, false, false, false, "~w~This ~r~weapon ~w~is not yet ~b~available ~w~for beeing used against ~g~zombies~w~!!!! ~y~sorry~w~. ~n~~b~zeruel_angel~w~."}, {WEAPON_HEATSEEKER, false, 0.0, 0.0, 0, 0, false, false, false, "~w~This ~r~weapon ~w~is not yet ~b~available ~w~for beeing used against ~g~zombies~w~!!!! ~y~sorry~w~. ~n~~b~zeruel_angel~w~."}, {WEAPON_FLAMETHROWER, true, 8.0, 15.0, 10, 20, false, false, true, "~n~~n~~n~~n~~n~~n~~n~~r~Fuuu~y~uffffff~w~!!!!"}, {WEAPON_MINIGUN, true, 25.0, 3.0, 1, 99, true, true, true, "~n~~n~~n~~n~~n~~n~~n~~r~MUAJAJAJAJAJAJ~w~!!!!!"}, {WEAPON_SATCHEL, false, 0.0, 0.0, 0, 0, false, false, false, "~w~This ~r~weapon ~w~is not yet ~b~available ~w~for beeing used against ~g~zombies~w~!!!! ~y~sorry~w~. ~n~~b~zeruel_angel~w~."}, {WEAPON_BOMB, false, 0.0, 0.0, 0, 0, false, false, false, "~w~This ~r~weapon ~w~is not yet ~b~available ~w~for beeing used against ~g~zombies~w~!!!! ~y~sorry~w~. ~n~~b~zeruel_angel~w~."}, {WEAPON_SPRAYCAN, true, 2.0, 25.0, 10, 0, false, false, true, "~n~~n~~n~~n~~n~~n~~n~~y~FS~b~SS~r~SS~g~SS~y~SS~w~!!!"}, {WEAPON_FIREEXTINGUISHER,true, 3.5, 15.0, 10, 0, false, false, true, "~n~~n~~n~~n~~n~~n~~n~~w~Fuuuusssshhh~b~!!!!"}, {WEAPON_CAMERA, false, 0.0, 0.0, 0, 0, false, false, false, "~w~This ~r~weapon ~w~is not yet ~b~available ~w~for beeing used against ~g~zombies~w~!!!! ~y~sorry~w~. ~n~~b~zeruel_angel~w~."}, {-1, false, 0.0, 0.0, 0, 0, false, false, false, "~w~This ~r~weapon ~w~is not yet ~b~available ~w~for beeing used against ~g~zombies~w~!!!! ~y~sorry~w~. ~n~~b~zeruel_angel~w~."}, {-1, false, 0.0, 0.0, 0, 0, false, false, false, "~w~This ~r~weapon ~w~is not yet ~b~available ~w~for beeing used against ~g~zombies~w~!!!! ~y~sorry~w~. ~n~~b~zeruel_angel~w~."}, {WEAPON_PARACHUTE, false, 0.0, 0.0, 0, 0, false, false, false, "~w~This ~r~weapon ~w~is not yet ~b~available ~w~for beeing used against ~g~zombies~w~!!!! ~y~sorry~w~. ~n~~b~zeruel_angel~w~."}, {-1, false, 0.0, 0.0, 0, 0, false, false, false, "~w~This ~r~weapon ~w~is not yet ~b~available ~w~for beeing used against ~g~zombies~w~!!!! ~y~sorry~w~. ~n~~b~zeruel_angel~w~."}, {-1, false, 0.0, 0.0, 0, 0, false, false, false, "~w~This ~r~weapon ~w~is not yet ~b~available ~w~for beeing used against ~g~zombies~w~!!!! ~y~sorry~w~. ~n~~b~zeruel_angel~w~."}, {WEAPON_VEHICLE, false, 0.0, 0.0, 0, 0, false, false, false, "~w~This ~r~weapon ~w~is not yet ~b~available ~w~for beeing used against ~g~zombies~w~!!!! ~y~sorry~w~. ~n~~b~zeruel_angel~w~."}, {-1, false, 0.0, 0.0, 0, 0, false, false, false, "~w~This ~r~weapon ~w~is not yet ~b~available ~w~for beeing used against ~g~zombies~w~!!!! ~y~sorry~w~. ~n~~b~zeruel_angel~w~."}, {-1, false, 0.0, 0.0, 0, 0, false, false, false, "~w~This ~r~weapon ~w~is not yet ~b~available ~w~for beeing used against ~g~zombies~w~!!!! ~y~sorry~w~. ~n~~b~zeruel_angel~w~."}, {-1, false, 0.0, 0.0, 0, 0, false, false, false, "~w~This ~r~weapon ~w~is not yet ~b~available ~w~for beeing used against ~g~zombies~w~!!!! ~y~sorry~w~. ~n~~b~zeruel_angel~w~."}, {WEAPON_DROWN, false, 0.0, 0.0, 0, 0, false, false, false, "~w~This ~r~weapon ~w~is not yet ~b~available ~w~for beeing used against ~g~zombies~w~!!!! ~y~sorry~w~. ~n~~b~zeruel_angel~w~."}, {WEAPON_COLLISION, false, 0.0, 0.0, 0, 0, false, false, false, "~w~This ~r~weapon ~w~is not yet ~b~available ~w~for beeing used against ~g~zombies~w~!!!! ~y~sorry~w~. ~n~~b~zeruel_angel~w~."} }; new setNumber = 0; new set[6][3][2]= { {{WEAPON_KATANA,1000}, {WEAPON_SHOTGUN,50}, {WEAPON_FIREEXTINGUISHER,500}}, {{WEAPON_KATANA,1000}, {WEAPON_SILENCED,100}, {WEAPON_SAWEDOFF,25}}, {{WEAPON_NITESTICK,1000}, {WEAPON_COLT45,100}, {WEAPON_SHOTGUN,25}}, {{WEAPON_GOLFCLUB,1000}, {WEAPON_FIREEXTINGUISHER,400}, {WEAPON_FLAMETHROWER,50}}, {{WEAPON_SHOVEL,1000}, {WEAPON_SHOTGSPA,100}, {WEAPON_RIFLE,25}}, {{WEAPON_KNIFE,1000}, {WEAPON_SHOTGSPA,100}, {WEAPON_SNIPER,25}} }; new NOFZombies=0; new TOTALZombies=10; new Float:Zspeed = 2.0; new ZTimerSpeed = 500; new Float:vaiven = 5.0; new Float:X,Float:Y,Float:Z; #define MAX_ZOMBIES 100 #define brazo1 1 #define brazo2 2 #define pierna1 4 #define pierna2 8 enum zombiParts { rArm, lArm, rLeg, lLeg, head, torso, pedazos, HP, Float:ArmAngle, Float:ArmStatus, Float:angulo, Float:speed, LegsH, undead, target }; new zombie[MAX_ZOMBIES][zombiParts]; enum zombiPos { partModel, Float:RelX, Float:RelY, Float:RelZ, Float:RelrX, Float:RelrY, Float:RelrZ } enum zpart { rLegZ, rArmZ, torsoZ, lArmZ, headZ, lLegZ } new z1[zpart][zombiPos]= { {2905,-0.115479,-0.023924, -1.280131, -90.000000, 90.000000,0.000000}, {2906, -0.218995, 0.200928, -0.253135, 0.000000, 180.000000, 0.000000}, {2907, -0.032227, -0.045897, -0.544213, 270.000000, 0.000000, 0.000000}, {2906, 0.187987, 0.158448, -0.265793, 0.000000, 0.000000, 0.000000}, {2908, 0.000000, 0.000000, 0.000000, 270.000000, 90.000000, 0.000000}, {2905, 0.101074, -0.012694, -1.288253, 270.000000, 90.000000, 0.000000} }; new z2[6][zombiPos]= { {2905, 0.005614, -0.110107, -1.280131, -90.000000, 90.000000, 90.000000}, {2906, -0.148926, -0.180663, -0.253135, 0.000000, 180.000000, 90.000000}, {2907, 0.047852, -0.039061, -0.544213, 270.000000, 0.000000, 90.000000}, {2906, -0.152343, 0.171387, -0.265793, 0.000000, 0.000000, 90.000000}, {2908, 0.000000, 0.000000, 0.000000, 270.000000, 90.000000, 90.000000}, {2905, 0.000977, 0.090332, -1.288253, 270.000000, 90.000000, 90.000000} }; enum zArm { Float:AZ, Float:AA }; enum tipo { der, izq }; new A1[tipo][zArm]= { {-0.253135,0.0}, {-0.265793,0.0} }; new A2[tipo][zArm]= { {-0.359635, -90.0}, {-0.338874, -90.0} }; forward zombieAtaca(playerid); forward attacknearest(); new TimerAtaca=-1; new TimerAPO=-1; new PlayerDeath[MAX_PLAYERS]; new apocalipsis = false; enum WeaponType { pWeapId, pAmmo }; new WeaponList[MAX_PLAYERS][12][WeaponType]; new LastWeaponUsed[MAX_PLAYERS]; forward QuitarArmasZombie(playerid); forward DevolverArmasZombie(playerid); forward CreateRandomZombie(); new money[MAX_PLAYERS]; new scorez=0; new scorep=0; #define delay 500 //------------------------------------------------------------------------------ public OnFilterScriptInit() { print("\n ZOMBIE Filter Script v1.2 Loading...\n**********************\n (Zeruel_Angel)\n"); return 1; } public OnGameModeInit() { return 1; } //------------------------------------------------------------------------------ public OnFilterScriptExit() { print("\n*********** ZOMBIE (zeruel_angel) ***********\n"); cleanZombies(); return 1; } public OnGameModeExit() { cleanZombies(); return 1; } //------------------------------------------------------------------------------ public attacknearest() { new Float:pX,Float:pY,Float:pZ; new Float:distNew,Float:distOld; new candidato; for (new j=0;j100.0) { DestroyObject(zombie[j][head]); DestroyObject(zombie[j][rLeg]); DestroyObject(zombie[j][lLeg]); DestroyObject(zombie[j][rArm]); DestroyObject(zombie[j][lArm]); DestroyObject(zombie[j][torso]); NOFZombies--; zombie[j][undead]=false; SetTimer("CreateRandomZombie",1000,0); } zombie[j][target]=candidato; } } } //------------------------------------------------------------------------------ cleanZombies() { for (new j=0;j ' ') && ((index - offset) < (sizeof(result) - 1))) { result[index - offset] = string[index]; index++; } result[index - offset] = EOS; return result; } //------------------------------------------------------------------------------ CrearZombie(Float:pX,Float:pY,Float:pZ,Float:angle) { new Float:PEPE = floatsin((angle*3.14159/180.0)); new Float:PIPO = floatcos((angle*3.14159/180.0)); if (NOFZombies10.0){zombie[j][ArmStatus]*=-1;} zombie[j][ArmAngle]+=zombie[j][ArmStatus]; zombie[j][LegsH]=!zombie[j][LegsH]; AA1 = floatcos(zombie[j][ArmAngle]*3.14159/180.0); AA2 = floatsin(zombie[j][ArmAngle]*3.14159/180.0); if ((pZ-Z)>3.0) { Z+=1.0; } else if((pZ-Z)<-3.0) { Z-=1.0; } //we destroy the old zombi DestroyObject(zombie[j][torso]); DestroyObject(zombie[j][head]); if (zombie[j][pedazos] & brazo1) DestroyObject(zombie[j][rArm]); if (zombie[j][pedazos] & brazo2) DestroyObject(zombie[j][lArm]); if (zombie[j][pedazos] & pierna1) DestroyObject(zombie[j][rLeg]); if (zombie[j][pedazos] & pierna2) DestroyObject(zombie[j][lLeg]); //we recreate the zombie zombie[j][head]=CreateObject(z1[headZ][partModel],X,Y,pZ,z1[headZ][RelrX],z1[headZ][RelrY],angle+vaiven); zombie[j][torso]=CreateObject(z1[torsoZ][partModel],X+z1[torsoZ][RelX]*PIPO+PEPE*z2[torsoZ][RelX],Y+z1[torsoZ][RelY]*PIPO+PEPE*z2[torsoZ][RelY],pZ+z1[torsoZ][RelZ],z1[torsoZ][RelrX],z1[torsoZ][RelrY],angle); if (zombie[j][pedazos] & brazo1) zombie[j][rArm]=CreateObject(z1[rArmZ][partModel],X+z1[rArmZ][RelX]*PIPO+PEPE*z2[rArmZ][RelX],Y+z1[rArmZ][RelY]*PIPO+PEPE*z2[rArmZ][RelY],pZ+A1[der][AZ]*AA1+AA2*A2[der][AZ],(-1)*zombie[j][ArmAngle],z1[rArmZ][RelrY],angle); if (zombie[j][pedazos] & brazo2) zombie[j][lArm]=CreateObject(z1[lArmZ][partModel],X+z1[lArmZ][RelX]*PIPO+PEPE*z2[lArmZ][RelX],Y+z1[lArmZ][RelY]*PIPO+PEPE*z2[lArmZ][RelY],pZ+A1[izq][AZ]*AA1-AA2*A2[izq][AZ],zombie[j][ArmAngle],z1[lArmZ][RelrY],angle); if (zombie[j][pedazos] & pierna1) zombie[j][rLeg]=CreateObject(z1[rLegZ][partModel],X+z1[rLegZ][RelX]*PIPO+PEPE*z2[rLegZ][RelX],Y+z1[rLegZ][RelY]*PIPO+PEPE*z2[rLegZ][RelY],pZ+z1[rLegZ][RelZ]+float(zombie[j][LegsH])*0.2,z1[rLegZ][RelrX],z1[rLegZ][RelrY],angle); if (zombie[j][pedazos] & pierna2) zombie[j][lLeg]=CreateObject(z1[lLegZ][partModel],X+z1[lLegZ][RelX]*PIPO+PEPE*z2[lLegZ][RelX],Y+z1[lLegZ][RelY]*PIPO+PEPE*z2[lLegZ][RelY],pZ+z1[lLegZ][RelZ]+float(!zombie[j][LegsH])*0.2,z1[lLegZ][RelrX],z1[lLegZ][RelrY],angle); if ( (floatabs(pX-X) + floatabs(pY-Y) + floatabs(pZ-Z) )>(2.0+6.0*vehicleStatus))//The zombie will move to your position to eat you because if you are too far away { MoveObject(zombie[j][head],pX,pY,pZ,zombie[j][speed]*0.01*Zspeed); MoveObject(zombie[j][torso],pX+z1[torsoZ][RelX]*PIPO+PEPE*z2[torsoZ][RelX],pY+z1[torsoZ][RelY]*PIPO+PEPE*z2[torsoZ][RelY],pZ+z1[torsoZ][RelZ],zombie[j][speed]*0.01*Zspeed); if (zombie[j][pedazos] & brazo1) MoveObject(zombie[j][rArm],pX+z1[rArmZ][RelX]*PIPO+PEPE*z2[rArmZ][RelX],pY+z1[rArmZ][RelY]*PIPO+PEPE*z2[rArmZ][RelY],pZ+A1[der][AZ]*AA1+AA2*A2[der][AZ],zombie[j][speed]*0.01*Zspeed); if (zombie[j][pedazos] & brazo2) MoveObject(zombie[j][lArm],pX+z1[lArmZ][RelX]*PIPO+PEPE*z2[lArmZ][RelX],pY+z1[lArmZ][RelY]*PIPO+PEPE*z2[lArmZ][RelY],pZ+A1[izq][AZ]*AA1-AA2*A2[izq][AZ],zombie[j][speed]*0.01*Zspeed); if (zombie[j][pedazos] & pierna1) MoveObject(zombie[j][rLeg],pX+z1[rLegZ][RelX]*PIPO+PEPE*z2[rLegZ][RelX],pY+z1[rLegZ][RelY]*PIPO+PEPE*z2[rLegZ][RelY],pZ+z1[rLegZ][RelZ]+float(zombie[j][LegsH])*0.2,zombie[j][speed]*0.01*Zspeed); if (zombie[j][pedazos] & pierna2) MoveObject(zombie[j][lLeg],pX+z1[lLegZ][RelX]*PIPO+PEPE*z2[lLegZ][RelX],pY+z1[lLegZ][RelY]*PIPO+PEPE*z2[lLegZ][RelY],pZ+z1[lLegZ][RelZ]+float(!zombie[j][LegsH])*0.2,zombie[j][speed]*0.01*Zspeed); } else//the zombie EATS you unless you are in a vehicle or you are alredy dead { StopObject(zombie[j][head]); StopObject(zombie[j][torso]); StopObject(zombie[j][rArm]); StopObject(zombie[j][lArm]); StopObject(zombie[j][rLeg]); StopObject(zombie[j][lLeg]); GetPlayerHealth(zombie[j][target],H); if ( !vehicleStatus && !PlayerDeath[zombie[j][target]]) { SetPlayerHealth(zombie[j][target],H-5.0); } } } } return 1; } //------------------------------------------------------------------------------ public OnPlayerSpawn(playerid) { PlayerDeath[playerid]=false; if (apocalipsis) { ResetPlayerMoney(playerid); ResetPlayerWeapons(playerid); GivePlayerWeapon(playerid,set[setNumber][0][0],set[setNumber][0][1]); GivePlayerWeapon(playerid,set[setNumber][1][0],set[setNumber][1][1]); GivePlayerWeapon(playerid,set[setNumber][2][0],set[setNumber][2][1]); } return 1; } //------------------------------------------------------------------------------ public OnPlayerDeath(playerid, killerid, reason) { PlayerDeath[playerid]=true; if (apocalipsis && killerid==INVALID_PLAYER_ID) { new tmp[255]; format(tmp,255,"~w~SCORE~n~~r~Zombies~w~: %d ~y~+1 ~n~~b~Humans~w~: %d",scorez,scorep); scorez++; GameTextForAll(tmp,2000,4); attacknearest(); } return 1; } //------------------------------------------------------------------------------ public OnPlayerConnect(playerid) { if (apocalipsis) { money[playerid]=GetPlayerMoney(playerid); ResetPlayerMoney(playerid); QuitarArmasZombie(playerid); } return 1; } //------------------------------------------------------------------------------ public OnPlayerCommandText(playerid, cmdtext[]) { new cmd[256]; new tmp[255]; new idx; cmd = strtok(cmdtext, idx); if (IsPlayerAdmin(playerid)) { if (strcmp(cmd, "/zspeed", true)==0) { tmp = strtok(cmdtext, idx); if (!strlen(tmp)) { SendClientMessage(playerid, 0xFFFFFFAA, "USE: /zspeed [speed]"); return 1; } Zspeed=floatstr(tmp); return 1; } if (strcmp(cmd, "/ZTimerSpeed", true)==0) { tmp = strtok(cmdtext, idx); if (!strlen(tmp)) { SendClientMessage(playerid, 0xFFFFFFAA, "USE: /ZTimerSpeed [timer speed]"); return 1; } ZTimerSpeed=strval(tmp); OnPlayerCommandText(playerid, "/zstop"); OnPlayerCommandText(playerid, "/zstart"); return 1; } if (strcmp(cmd, "/zo", true)==0) { new Float:pX,Float:pY,Float:pZ,Float:Ang; GetPlayerPos(playerid,pX,pY,pZ); GetPlayerFacingAngle(playerid,Ang); pX=pX+3.0*floatsin(-Ang,degrees); pY=pY+3.0*floatcos(-Ang,degrees); pZ=pZ+0.7; CrearZombie(pX,pY,pZ,Ang+180.0); return 1; } if (strcmp(cmd, "/zstart", true)==0) { if (NOFZombies>0) { new id; tmp = strtok(cmdtext, idx); if (!strlen(tmp)) { id = playerid; } else { if (!IsPlayerConnected(strval(tmp))) { SendClientMessage(playerid, 0xFFFFFFAA, "That player is not conected!"); return 1; } id = strval(tmp); } if (TimerAtaca!=-1){KillTimer(TimerAtaca);} for (new j=0;j0) { if (TimerAtaca!=-1) { KillTimer(TimerAtaca); } for (new j=0;j0)zzA-=360.0; } if (zombie[j][undead]&&(floatsqroot(floatpower(zzX,2)+floatpower(zzY,2)))0) && (newkeys & KEY_FIRE)&&(!IsPlayerInAnyVehicle(playerid))&&(Ticket[playerid]