Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //------------------------------------------------------------------------------
- //
- // 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 <a_samp>
- #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;j<TOTALZombies;j++)
- {
- if (zombie[j][undead])
- {
- distOld=9999.9;
- candidato=-1;
- GetObjectPos(zombie[j][head],X,Y,Z);
- for(new i=0;i<MAX_PLAYERS;i++)
- {
- if(IsPlayerConnected(i))
- {
- GetPlayerPos(i,pX,pY,pZ);
- distNew = floatabs(pX-X) + floatabs(pY-Y);
- if (distNew<distOld)
- {
- distOld = distNew;
- candidato = i;
- }
- }
- }
- if (distOld>100.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<TOTALZombies;j++)
- {
- zombie[j][undead]=false;
- if (IsValidObject(zombie[j][torso]))DestroyObject(zombie[j][torso]);
- if (IsValidObject(zombie[j][head])) DestroyObject(zombie[j][head]);
- if (IsValidObject(zombie[j][rLeg])) DestroyObject(zombie[j][rLeg]);
- if (IsValidObject(zombie[j][lLeg])) DestroyObject(zombie[j][lLeg]);
- if (IsValidObject(zombie[j][rArm])) DestroyObject(zombie[j][rArm]);
- if (IsValidObject(zombie[j][lArm])) DestroyObject(zombie[j][lArm]);
- NOFZombies--;
- }
- if (TimerAPO!=-1){KillTimer(TimerAPO);}
- if (TimerAtaca!=-1){KillTimer(TimerAtaca);}
- }
- //------------------------------------------------------------------------------
- strtok(const string[], &index)
- {
- new length = strlen(string);
- while ((index < length) && (string[index] <= ' '))
- {
- index++;
- }
- new offset = index;
- new result[20];
- while ((index < length) && (string[index] > ' ') && ((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 (NOFZombies<TOTALZombies)
- {
- new j=0;
- while ((zombie[j][undead])){j++;}
- if (IsValidObject(zombie[j][torso]))
- {
- DestroyObject(zombie[j][head]);
- DestroyObject(zombie[j][rLeg]);
- DestroyObject(zombie[j][lLeg]);
- DestroyObject(zombie[j][rArm]);
- DestroyObject(zombie[j][lArm]);
- DestroyObject(zombie[j][torso]);
- }
- zombie[j][head]=CreateObject(z1[headZ][partModel],pX,pY,pZ,z1[headZ][RelrX],z1[headZ][RelrY],angle);
- zombie[j][torso]=CreateObject(z1[torsoZ][partModel],pX+z1[torsoZ][RelX]*PIPO+PEPE*z2[torsoZ][RelX],pY+z1[torsoZ][RelY]*PIPO+PEPE*z2[torsoZ][RelY],pZ+z1[torsoZ][RelZ],z1[torsoZ][RelrX],z1[torsoZ][RelrY],angle);
- zombie[j][lArm]=CreateObject(z1[lArmZ][partModel],pX+z1[lArmZ][RelX]*PIPO+PEPE*z2[lArmZ][RelX],pY+z1[lArmZ][RelY]*PIPO+PEPE*z2[lArmZ][RelY],pZ+z1[lArmZ][RelZ],z1[lArmZ][RelrX],z1[lArmZ][RelrY],angle);
- zombie[j][rArm]=CreateObject(z1[rArmZ][partModel],pX+z1[rArmZ][RelX]*PIPO+PEPE*z2[rArmZ][RelX],pY+z1[rArmZ][RelY]*PIPO+PEPE*z2[rArmZ][RelY],pZ+z1[rArmZ][RelZ],z1[rArmZ][RelrX],z1[rArmZ][RelrY],angle);
- zombie[j][rLeg]=CreateObject(z1[rLegZ][partModel],pX+z1[rLegZ][RelX]*PIPO+PEPE*z2[rLegZ][RelX],pY+z1[rLegZ][RelY]*PIPO+PEPE*z2[rLegZ][RelY],pZ+z1[rLegZ][RelZ],z1[rLegZ][RelrX],z1[rLegZ][RelrY],angle);
- zombie[j][lLeg]=CreateObject(z1[lLegZ][partModel],pX+z1[lLegZ][RelX]*PIPO+PEPE*z2[lLegZ][RelX],pY+z1[lLegZ][RelY]*PIPO+PEPE*z2[lLegZ][RelY],pZ+z1[lLegZ][RelZ],z1[lLegZ][RelrX],z1[lLegZ][RelrY],angle);
- zombie[j][LegsH]=true;
- zombie[j][speed]=random(100)+50;
- zombie[j][ArmAngle]=0;
- zombie[j][ArmStatus]=random(5)+5;
- zombie[j][undead]=true;
- zombie[j][HP]=100;
- zombie[j][pedazos]= brazo1 + brazo2 + pierna1 + pierna2;
- zombie[j][angulo]=angle;
- NOFZombies++;
- }
- return 1;
- }
- //------------------------------------------------------------------------------
- public zombieAtaca()
- {
- new Float:pX,Float:pY,Float:pZ,Float:angle,Float:PEPE,Float:PIPO,Float:AA1,Float:AA2,Float:H;
- new vehicleStatus;
- if (NOFZombies<1 && !apocalipsis)
- {
- if (TimerAPO!=-1){KillTimer(TimerAPO);}
- if (TimerAtaca!=-1){KillTimer(TimerAtaca);}
- }
- HoldingFire();
- for (new j=0;j<TOTALZombies;j++)
- {
- if(zombie[j][undead]&&IsPlayerConnected(zombie[j][target]) && GetPlayerInterior(zombie[j][target])==0)
- {
- vehicleStatus = IsPlayerInAnyVehicle(zombie[j][target]);
- GetPlayerPos(zombie[j][target],pX,pY,pZ);
- pZ+=0.7;
- GetObjectPos(zombie[j][head],X,Y,Z);
- angle = 180.0-atan2(X-pX,Y-pY);
- angle+=vaiven;
- vaiven*=-1;
- PEPE = floatsin((angle*3.14159/180.0));
- PIPO = floatcos((angle*3.14159/180.0));
- zombie[j][angulo]=angle;
- if(floatabs(zombie[j][ArmAngle])>10.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;j<TOTALZombies;j++){zombie[j][target]=id;}
- TimerAtaca=SetTimer("zombieAtaca",ZTimerSpeed,1);
- return 1;
- }
- SendClientMessage(playerid, 0xFFFFFFAA, "There are no zombies");
- return 1;
- }
- if (strcmp(cmd, "/zstop", true)==0)
- {
- if (NOFZombies>0)
- {
- if (TimerAtaca!=-1)
- {
- KillTimer(TimerAtaca);
- }
- for (new j=0;j<TOTALZombies;j++)
- {
- if (zombie[j][undead])
- {
- StopObject(zombie[j][head]);
- StopObject(zombie[j][torso]);
- StopObject(zombie[j][rArm]);
- StopObject(zombie[j][lArm]);
- StopObject(zombie[j][rLeg]);
- StopObject(zombie[j][lLeg]);
- }
- }
- return 1;
- }
- SendClientMessage(playerid, 0xFFFFFFAA, "There are no zombies");
- return 1;
- }
- if (strcmp(cmd, "/zclean", true)==0)
- {
- cleanZombies();
- SendClientMessage(playerid, 0xFFFFFFAA, "There are no zombies anymore!");
- return 1;
- }
- if (strcmp(cmd, "/ttt", true)==0)
- {
- tmp = strtok(cmdtext, idx);
- if(!strlen(tmp))
- {
- SendClientMessage(playerid, 0xFFFFFFAA, "USO: /ttt [hora]");
- return 1;
- }
- new hora = strval(tmp);
- SetWorldTime(hora);
- format(tmp, sizeof(tmp), "Ahora la hora es: %d", hora);
- SendClientMessage(playerid, 0xFFFFFFAA, tmp);
- return 1;
- }
- if (strcmp(cmd, "/www", true)==0)
- {
- tmp = strtok(cmdtext, idx);
- if(!strlen(tmp))
- {
- SendClientMessage(playerid, 0xFFFFFFAA, "USO: /www [weather]");
- return 1;
- }
- new www = strval(tmp);
- SetWeather(www);
- format(tmp, sizeof(tmp), "Ahora el clima es: %d", www);
- SendClientMessage(playerid, 0xFFFFFFAA, tmp);
- return 1;
- }
- if (strcmp(cmd, "/zcantZombies", true)==0)
- {
- tmp = strtok(cmdtext, idx);
- if(!strlen(tmp))
- {
- SendClientMessage(playerid, 0xFFFFFFAA, "USO: /zcantZombies [cuantity]");
- return 1;
- }
- cleanZombies();
- TOTALZombies = strval(tmp);
- return 1;
- }
- if (strcmp(cmd, "/ambient", true)==0)
- {
- SetWorldTime(0);
- SetWeather(8);
- return 1;
- }
- if (strcmp(cmd, "/apocalipsison", true)==0)
- {
- apocalipsis = true;
- for (new i=0;i<MAX_PLAYERS;i++)
- {
- if(IsPlayerConnected(i))
- {
- QuitarArmasZombie(i);
- money[playerid]=GetPlayerMoney(playerid);
- ResetPlayerMoney(playerid);
- }
- }
- scorez=0;
- scorep=0;
- SetWorldTime(0);
- SetWeather(8);
- GameTextForAll("~r~apocalipsis ~w~mode:~b~on~w~! ~n~~n~~n~~g~ZOMBIES~w~!!!",5000,5);
- if (TimerAPO!=-1){KillTimer(TimerAPO);}
- TimerAPO = SetTimer("attacknearest",10000,1);
- if (TimerAtaca!=-1){KillTimer(TimerAtaca);}
- TimerAtaca=SetTimer("zombieAtaca",ZTimerSpeed,1);
- while (NOFZombies<TOTALZombies)CreateRandomZombie();
- attacknearest();
- return 1;
- }
- if (strcmp(cmd, "/apocalipsisoff", true)==0)
- {
- if (apocalipsis)
- {
- for (new i=0;i<MAX_PLAYERS;i++)if(IsPlayerConnected(i)){DevolverArmasZombie(i);GivePlayerMoney(i,money[i]);}
- format(tmp,255,"~w~SCORE ~r~Zombies~w~: %d ~b~Humans~w~: %d~n~~n~~r~apocalipsis ~w~mode:~b~off~w~",scorez,scorep);
- GameTextForAll(tmp,6000,4);
- apocalipsis = false;
- SetWorldTime(12);
- SetWeather(7);
- cleanZombies();
- }
- if (TimerAPO!=-1){KillTimer(TimerAPO);}
- if (TimerAtaca!=-1){KillTimer(TimerAtaca);}
- return 1;
- }
- if (strcmp(cmd, "/vaiven", true)==0)
- {
- tmp = strtok(cmdtext, idx);
- if (!strlen(tmp))
- {
- SendClientMessage(playerid, 0xFFFFFFAA, "USO: /vaiven [angulo]");
- return 1;
- }
- vaiven=floatstr(tmp);
- return 1;
- }
- if (strcmp(cmd, "/zSetWeaponSet", true)==0)
- {
- tmp = strtok(cmdtext, idx);
- if (!strlen(tmp))
- {
- SendClientMessage(playerid, 0xFFFFFFAA, "USO: /zSetWeaponSet [SET]");
- return 1;
- }
- if (strval(tmp)<sizeof(set))
- {
- format(tmp,sizeof(tmp),"Please pick a number beetwen 0-%d",sizeof(set));
- SendClientMessage(playerid, 0xFFFFFFAA, tmp);
- return 1;
- }
- setNumber=strval(tmp);
- return 1;
- }
- if (strcmp(cmd, "/zGetWeapon", true)==0)
- {
- tmp = strtok(cmdtext, idx);
- if (!strlen(tmp))
- {
- SendClientMessage(playerid, 0xFFFFFFAA, "USO: /zGetWeapon [weapon]");
- return 1;
- }
- GivePlayerWeapon(playerid,strval(tmp),10000);
- return 1;
- }
- if (strcmp(cmd, "/zGiveWeaponForAll", true)==0)
- {
- tmp = strtok(cmdtext, idx);
- if (!strlen(tmp))
- {
- SendClientMessage(playerid, 0xFFFFFFAA, "USO: /zGiveWeaponForAll [weapon]");
- return 1;
- }
- new w = strval(tmp);
- for (new i=0;i<MAX_PLAYERS;i++)if(IsPlayerConnected(i))
- GivePlayerWeapon(i,w,10000);
- return 1;
- }
- }//IF PLAYER ADMIN
- return 0;
- }
- //------------------------------------------------------------------------------
- fire(playerid,STAT)
- {
- new tmp[250];
- new weap = GetPlayerWeapon(playerid);
- format(tmp,sizeof(tmp),"ARMA ID : %d ", weap);
- SendClientMessageToAll(0xFFFF00AA,tmp);
- if (!weapL[weap][allow])
- {
- GameTextForPlayer(playerid,weapL[weap][mnsg],2000,5);
- return 1;
- }
- if (!weapL[weap][continua] && STAT==HOLD)
- {
- return 1;
- }
- Ticket[playerid]=tickcount()+delay;
- new Float:pX,Float:pY,Float:pZ,Float:pA,Float:PEPE,Float:PIPO;
- new Float:zzX,Float:zzY,Float:zzA;
- GetPlayerPos(playerid,pX,pY,pZ);
- GetPlayerFacingAngle(playerid,pA);
- pZ=pZ+0.7;
- new ran;
- for (new j=0;j<TOTALZombies;j++)
- {
- if (IsValidObject(zombie[j][torso]))
- {
- GetObjectPos(zombie[j][head],X,Y,Z);
- zzX=X-pX;zzY=Y-pY;zzA=atan2(zzX,zzY);if(zzA>0)zzA-=360.0;
- }
- if (zombie[j][undead]&&(floatsqroot(floatpower(zzX,2)+floatpower(zzY,2)))<weapL[weap][range] && (floatabs(zzA+pA)<weapL[weap][wide]))
- {
- Z-=1.7;
- zombie[j][HP]-= random(weapL[weap][damageMax]-weapL[weap][damageMin])+weapL[weap][damageMin];
- GameTextForPlayer(playerid,weapL[weap][mnsg],delay-100,5);
- PEPE = floatsin((zombie[j][angulo]*3.14159/180.0));
- PIPO = floatcos((zombie[j][angulo]*3.14159/180.0));
- /* if (weapL[weap][cutting] || weapL[weap][instaGib])
- {
- ran = random (30);
- if (ran < 5)
- {
- zombie[j][undead]=false;
- NOFZombies--;
- if (apocalipsis)
- {
- format(tmp,sizeof(tmp),"~w~SCORE~n~~r~Zombies~w~: %d ~n~~b~Humans~w~: %d ~y~+1",scorez,scorep);
- scorep++;
- GameTextForAll(tmp,2000,4);
- SetTimer("CreateRandomZombie",10000,0);
- attacknearest();
- }
- Z+=1.7;
- DestroyObject(zombie[j][head]);
- StopObject(zombie[j][torso]);
- if (zombie[j][pedazos] & brazo1)
- MoveObject(zombie[j][rArm],X+z1[rArmZ][RelX]*PIPO+PEPE*z2[rArmZ][RelX],Y+z1[rArmZ][RelY]*PIPO+PEPE*z2[rArmZ][RelY],Z-0.253135,100.0);
- if (zombie[j][pedazos] & brazo2)
- MoveObject(zombie[j][lArm],X+z1[lArmZ][RelX]*PIPO+PEPE*z2[lArmZ][RelX],Y+z1[lArmZ][RelY]*PIPO+PEPE*z2[lArmZ][RelY],Z-0.265793,100.0);
- if (zombie[j][pedazos] & pierna1)
- MoveObject(zombie[j][rLeg],X+z1[rLegZ][RelX]*PIPO+PEPE*z2[rLegZ][RelX],Y+z1[rLegZ][RelY]*PIPO+PEPE*z2[rLegZ][RelY],Z+z1[rLegZ][RelZ],100.0);
- if (zombie[j][pedazos] & pierna2)
- MoveObject(zombie[j][lLeg],X+z1[lLegZ][RelX]*PIPO+PEPE*z2[lLegZ][RelX],Y+z1[lLegZ][RelY]*PIPO+PEPE*z2[lLegZ][RelY],Z+z1[lLegZ][RelZ],100.0);
- NOFZombies--;
- Z-=1.7;
- }
- else
- */ if (weapL[weap][cutting])
- {
- if ((zombie[j][pedazos] & brazo1) || (zombie[j][pedazos] & brazo2))
- {
- if (ran < 20)
- {
- if (( ran < 10 || !(zombie[j][pedazos] & brazo2)) && (zombie[j][pedazos] & brazo1))
- {
- zombie[j][pedazos]-=brazo1;MoveObject(zombie[j][rArm],X+z1[rArmZ][RelX]*PIPO+PEPE*z2[rArmZ][RelX],Y+z1[rArmZ][RelY]*PIPO+PEPE*z2[rArmZ][RelY],Z,1.0);
- }
- else
- {
- zombie[j][pedazos]-=brazo2;MoveObject(zombie[j][lArm],X+z1[lArmZ][RelX]*PIPO+PEPE*z2[lArmZ][RelX],Y+z1[lArmZ][RelY]*PIPO+PEPE*z2[lArmZ][RelY],Z,1.0);
- }
- }
- }
- else if (zombie[j][HP]<40 && (zombie[j][pedazos] & pierna1 ) && (zombie[j][pedazos] & pierna2))
- {
- if (ran < 15){zombie[j][pedazos]-=pierna1;MoveObject(zombie[j][rLeg],X+z1[rLegZ][RelX]*PIPO+PEPE*z2[rLegZ][RelX],Y+z1[rLegZ][RelY]*PIPO+PEPE*z2[rLegZ][RelY],Z,1.0);}
- else{zombie[j][pedazos]-=pierna2;MoveObject(zombie[j][lLeg],X+z1[lLegZ][RelX]*PIPO+PEPE*z2[lLegZ][RelX],Y+z1[lLegZ][RelY]*PIPO+PEPE*z2[lLegZ][RelY],Z,1.0);}
- zombie[j][speed]-=float(40);
- }
- // }
- }
- if (zombie[j][HP]<0 && zombie[j][undead])
- {
- zombie[j][undead]=false;
- NOFZombies--;
- MoveObject(zombie[j][head],X,Y,Z,1.5);
- MoveObject(zombie[j][torso],X+z1[torsoZ][RelX]*PIPO+PEPE*z2[torsoZ][RelX],Y+z1[torsoZ][RelY]*PIPO+PEPE*z2[torsoZ][RelY],Z+0.4,1.5);
- if (zombie[j][pedazos] & brazo1)
- MoveObject(zombie[j][rArm],X+z1[rArmZ][RelX]*PIPO+PEPE*z2[rArmZ][RelX],Y+z1[rArmZ][RelY]*PIPO+PEPE*z2[rArmZ][RelY],Z,1.5);
- if (zombie[j][pedazos] & brazo2)
- MoveObject(zombie[j][lArm],X+z1[lArmZ][RelX]*PIPO+PEPE*z2[lArmZ][RelX],Y+z1[lArmZ][RelY]*PIPO+PEPE*z2[lArmZ][RelY],Z,1.5);
- if (zombie[j][pedazos] & pierna1)
- StopObject(zombie[j][rLeg]);
- if (zombie[j][pedazos] & pierna2)
- StopObject(zombie[j][lLeg]);
- if (apocalipsis)
- {
- format(tmp,sizeof(tmp),"~w~SCORE~n~~r~Zombies~w~: %d ~n~~b~Humans~w~: %d ~y~+1",scorez,scorep);
- scorep++;
- GameTextForAll(tmp,2000,4);
- ran = random(10);
- SetTimer("CreateRandomZombie",ran*1000,0);
- attacknearest();
- }
- }
- }
- }
- return 1;
- }
- //------------------------------------------------------------------------------
- public HoldingFire()
- {
- new keys,updown,leftright;
- for (new i=0;i<MAX_PLAYERS;i++)
- {
- if (IsPlayerConnected(i))
- {
- GetPlayerKeys(i,keys,updown,leftright);
- if ((keys & KEY_FIRE)&&(!IsPlayerInAnyVehicle(i))&&(Ticket[i]<tickcount()))
- {
- fire(i,HOLD);
- }
- }
- }
- }
- //------------------------------------------------------------------------------
- public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
- {
- if ((NOFZombies>0) && (newkeys & KEY_FIRE)&&(!IsPlayerInAnyVehicle(playerid))&&(Ticket[playerid]<tickcount()))
- {
- fire(playerid,PRESS);
- }
- }
- //------------------------------------------------------------------------------
- public CreateRandomZombie()
- {
- new playerid = random(MAX_PLAYERS);
- while (!IsPlayerConnected(playerid)&&GetPlayerInterior(playerid)==0)playerid = random(MAX_PLAYERS);
- new Float:pX,Float:pY,Float:pZ,Float:Ang;
- GetPlayerPos(playerid,pX,pY,pZ);
- Ang=float(random(360));
- pX=pX+50.0*floatsin(Ang,degrees);
- pY=pY+50.0*floatcos(Ang,degrees);
- pZ=pZ+0.7;
- CrearZombie(pX,pY,pZ,Ang);
- }
- //------------------------------------------------------------------------------
- public QuitarArmasZombie(playerid)
- {
- LastWeaponUsed[playerid]=GetPlayerWeapon(playerid);GetPlayerWeapon(playerid);
- new WeaponId;
- new ammo;
- for (new i=0;i<11;i++)
- {
- GetPlayerWeaponData(playerid, i, WeaponId, ammo);
- WeaponList[playerid][i][pWeapId]=WeaponId;
- WeaponList[playerid][i][pAmmo]=ammo;
- }
- ResetPlayerWeapons(playerid);
- return 1;
- }
- //------------------------------------------------------------------------------
- public DevolverArmasZombie(playerid)
- {
- new index;
- for (new i=0;i<11;i++)
- {
- if (WeaponList[playerid][i][pWeapId]!=0)
- {
- if (WeaponList[playerid][i][pWeapId]!=LastWeaponUsed[playerid])
- {
- GivePlayerWeapon(playerid,WeaponList[playerid][i][pWeapId],WeaponList[playerid][i][pAmmo]);
- }
- else
- {
- index=i;
- }
- }
- }
- GivePlayerWeapon(playerid,WeaponList[playerid][index][pWeapId],WeaponList[playerid][index][pAmmo]);
- return 1;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement