// Prison Break GM 0.1 // Coded by Chiarboss // ©2007 // Dont edit code or part of it without my permission // To get permission contact: marco.chiarelli@hotmail.it #include #pragma tabsize 0 static gTeam[MAX_PLAYERS]; new score1=0; new score2=0; new nplayers=0; enum PlayerSpawnInfo { Float:PlayerX, Float:PlayerY, Float:PlayerZ, Float:PlayerAngle } enum WeaponsSpawnInfo { weapons } new Float:gRandomSpawns[][PlayerSpawnInfo] = { {294.9862,182.8244,1007.1719,176.6981}, {291.1122,168.0318,1007.1794,5.1582}, {232.1261,162.4986,1003.0234,271.0125}, {236.7538,139.3263,1003.0234,356.0715}, {208.7920,146.8226,1003.0234,178.8916}, {214.3057,168.2244,1003.0234,174.2150}, {215.8343,183.1265,1003.0313,179.8550}, {210.7516,179.6956,1003.0378,264.9141}, {209.8513,159.1564,1003.0234,264.6241} }; new gRandomWeapons[][WeaponsSpawnInfo] = { {25}, {26}, {27}, {28}, {29}, {32} }; //colori #define COLOR_GREY 0xAFAFAFAA #define COLOR_GREEN 0x33AA33AA #define COLOR_YELLOW 0xFFFF00AA #define COLOR_BLUE 0x1111AAFF #define COLOR_PINK 0xFF66FFAA #define COLOR_LIGHTBLUE 0x33CCFFAA #define COLOR_DARKRED 0x660000AA #define COLOR_ORANGE 0xFF9900AA #define COLOR_RED 0xAA3333AA #define TEAM_EVA 1 #define TEAM_POLICE 2 //------------------------------------------------------------------------- new tk[MAX_PLAYERS]; new inarmory[MAX_PLAYERS]; new consecutive[MAX_PLAYERS]; new st; new armory; new removev; new invehicle[MAX_PLAYERS]; new gRoundTime = 1200000; //20 minutes new gRoundUpdate0 = 300000; new gRoundUpdate1 = 900000; //------------------------------------------------------------------------- forward Update0(); forward Update1(); forward showkills(); forward ExitVehicle(playerid); forward CheckScore(); forward GameModeExitFunc(); //------------------------------------------------------------------------- main() { print("\nLoaded Prison Break GM 0.1\n"); SetTimer("showkills",600000,0); } //------------------------------------------------------------------------- public OnGameModeInit() { st = 0; armory = 1; AllowInteriorWeapons(1); UsePlayerPedAnims(); SetGameModeText("Prison Break GM 0.1"); ShowPlayerMarkers(1); ShowNameTags(1); SetTimer("CheckScore", gRoundTime, 0); SetTimer("Update0", gRoundUpdate0, 0); SetTimer("Update1", gRoundUpdate1, 0); AddStaticVehicle(598,2313.8635,2485.2583,3.0189,89.5957,0,1); AddStaticVehicle(598,2250.9019,2431.3232,3.0195,357.9146,0,1); AddStaticVehicle(598,2307.7917,2430.6523,-7.7086,358.7066,0,1); AddStaticVehicle(598,2303.3462,2430.6445,-7.7064,358.8187,0,1); AddStaticVehicle(427,2299.1582,2460.2100,3.4052,269.4389,0,1); AddStaticVehicle(427,2313.7556,2494.6633,-7.3212,90.2865,0,1); AddStaticVehicle(601,2228.5059,2458.8682,-7.6945,134.8329,1,1); AddStaticVehicle(432,2290.2031,2412.6062,10.5861,230.7378,1,1); AddStaticVehicle(433,2273.7000,2445.0596,10.9522,0.2772,4,4); AddStaticVehicle(433,2260.5081,2476.4238,10.9522,179.1590,4,4); AddStaticVehicle(497,2295.7390,2434.4946,47.1543,90.9098,0,1); AddStaticVehicle(417,2264.1208,2453.2156,47.1533,180.8143,11,6); AddPlayerClass(0,189.0006,178.6303,1003.0234,269.5417,0,0,0,0,0,0); AddPlayerClass(104,193.6156,178.7599,1003.0234,271.6625,0,0,0,0,0,0); AddPlayerClass(247,189.9293,158.7564,1003.0234,272.2658,0,0,0,0,0,0); AddPlayerClass(248,196.7741,158.9106,1003.0234,267.8791,0,0,0,0,0,0); AddPlayerClass(282,0.0,0.0,0.0,0.0,0,0,0,0,0,0); AddStaticPickup(349, 15, 221.1082,170.7055,1003.0234); AddStaticPickup(342, 15, 215.3978,182.2558,1003.0313); AddStaticPickup(342, 15, 212.5045,182.3825,1003.0313); AddStaticPickup(346, 15, 208.8048,146.3170,1003.0234); AddStaticPickup(335, 15, 211.5125,146.6538,1003.0234); AddStaticPickup(358, 15, 2261.2910,2435.0044,46.9766); AddStaticPickup(358, 15, 2260.8521,2456.4946,46.9766); SetWorldTime(20); return 1; } //------------------------------------------------------------------------- public showkills() { if(nplayers!=0){ new tmp[256]; format(tmp,sizeof(tmp),"~n~~r~Eva Team: ~w~%d points ~n~~b~ Cops Team: ~w~%d points",score1,score2); GameTextForAll(tmp,3000,3);} return 1; } //------------------------------------------------------------------------- public Update0() { GameTextForAll("~n~~y~Time Remaining: ~w~15 minutes!", 3000, 3); return 1; } //------------------------------------------------------------------------- public Update1() { GameTextForAll("~n~~y~Time Remaining: ~w~5 minutes!", 3000, 3); return 1; } //------------------------------------------------------------------------- public OnPlayerConnect(playerid) { SendClientMessage(playerid, 0xFF8A00AA, "Welcome to Prison Break GM 0.1 [coded by Chiarboss]"); SendClientMessage(playerid, 0xFF8A00AA, "Big thanks to [TSK]Don_Valerio for inspiring me."); SendClientMessage(playerid, 0xFFFFFFAA, "Type /about if you don't now how this mode work"); SendClientMessage(playerid, 0xFFFF00AA, "Type /help for knowing the rules of GM"); GameTextForPlayer(playerid, "~g~- ~r~Prison Break ~g~-", 6000, 1); SendClientMessage(playerid,COLOR_RED,"Choice a character!"); GivePlayerMoney(playerid, 10000); SetPlayerColor(playerid, COLOR_GREY); // Set the player's color to inactive invehicle[playerid] = 0; inarmory[playerid] = 0; nplayers++; return 1; } //------------------------------------------------------------------------- public OnPlayerText(playerid) { printf("OnPlayerText(%d)", playerid); return 1; } //------------------------------------------------------------------------- public OnPlayerInfoChange(playerid) { printf("OnPlayerInfoChange(%d)"); return 1; } //------------------------------------------------------------------------- public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger) { new randSHOP=random(sizeof(gRandomWeapons)); new string[256]; new name[MAX_PLAYER_NAME]; if ( vehicleid == 7 || vehicleid == 8 || vehicleid == 9 || vehicleid == 10) { GetPlayerName(playerid,name, sizeof(name)); format(string, sizeof(string), "..:: %s entered into Offensive Vehicle ::..", name); SendClientMessageToAll(0xAA3333AA,string); } if ( vehicleid == 7) { if(gTeam[playerid] == TEAM_POLICE) { if(GetPlayerScore(playerid) >= 2) { SetVehicleParamsForPlayer(78, playerid, 0, 0); SetVehicleParamsForPlayer(79, playerid, 0, 0); removev = SetTimer("ExitVehicle", 30000, 0); invehicle[playerid] ++; GetPlayerName(playerid,name, sizeof(name)); format(string, sizeof(string), "- Welcome to SWAT Van Shop, %s; -", name); SendClientMessage(playerid, 0xFF8A00AA, string); SendClientMessage(playerid, 0xFF8A00AA, "Here you can buy"); SendClientMessage(playerid, 0xFF8A00AA, "----------------------------------"); SendClientMessage(playerid, 0xFF8A00AA, "/ammunation [1000$]"); SendClientMessage(playerid, 0xFF8A00AA, "/spistol [1200$]"); SendClientMessage(playerid, 0xFF8A00AA, "/charges [2000$]"); SendClientMessage(playerid, 0xFF8A00AA, "----------------------------------"); } else { SetVehicleParamsForPlayer(78, playerid, 0, 1); SetVehicleParamsForPlayer(79, playerid, 0, 1); GameTextForPlayer(playerid,"~n~~b~You ~w~dont have ~b~enough points! ~w~Kill to earn and ~b~come back!",3000,3); } } else { GivePlayerWeapon(playerid,gRandomWeapons[randSHOP][weapons],550); } } printf("OnPlayerEnterVehicle(%d, %d, %d)", playerid, vehicleid, ispassenger); return 1; } //------------------------------------------------------------------------- public ExitVehicle(playerid) { invehicle[playerid] = 0; SendClientMessage(playerid,0xFF8A00AA, "The invehicle variable has been disabled"); return 1; } //------------------------------------------------------------------------- public OnPlayerExitVehicle(playerid, vehicleid) { new string[256]; new name[MAX_PLAYER_NAME]; if ( vehicleid == 7 || vehicleid == 8 || vehicleid == 9 || vehicleid == 10) { GetPlayerName(playerid,name, sizeof(name)); format(string, sizeof(string), "..:: %s exited from Offensive Vehicle ::..", name); SendClientMessageToAll(0xAA3333AA,string); } printf("OnPlayerExitVehicle(%d, %d)", playerid, vehicleid); return 1; } //------------------------------------------------------------------------- public OnPlayerSpawn(playerid) { new randSPAWN=random(sizeof(gRandomSpawns)); consecutive[playerid] = 0; SetPlayerCheckpoint(playerid,2245.4878,2497.5300,10.8203,5.0); SetPlayerInterior(playerid,3); PlayerPlaySound(playerid, 1098, 0, 0, 0); if(gTeam[playerid] == TEAM_EVA) { SetPlayerColor(playerid,COLOR_RED); // Blue GameTextForPlayer(playerid,"~n~~n~~r~Go ~w~to the ~r~BIG CHECKPOINT!", 5000, 3); } else if(gTeam[playerid] == TEAM_POLICE) { SetPlayerPos(playerid,gRandomSpawns[randSPAWN][PlayerX],gRandomSpawns[randSPAWN][PlayerY],gRandomSpawns[randSPAWN][PlayerZ]); SetPlayerFacingAngle(playerid,gRandomSpawns[randSPAWN][PlayerAngle]); SetPlayerColor(playerid,COLOR_GREEN); // Green SendClientMessage(playerid,0xFF8A00AA,"Type /armory to enter in your Personal Armory."); GameTextForPlayer(playerid,"~n~~n~~b~Control ~w~the prisoners...", 5000, 3); GivePlayerWeapon(playerid, 24, 2000); GivePlayerWeapon(playerid, 3, 1); } return 1; } //------------------------------------------------------------------------- //+----------------------+--------------------------+ //| AntiTeamkill 0.3 | Coded by Franc[e]sco | //| | noffaganzo@hotmail.it | //| | and | //| | Yom yomki@hotmail.fr | //+----------------------+--------------------------+ //| Dont edit the code without my permission. | //| To get permission contact noffaganzo@hotmail.it | //+- - - - - - - - - - - Updates - - - - - - - - - -+ //| Yom - added console message when kick | //+-------------------------------------------------+ public OnPlayerDeath(playerid, killerid, reason) { new string[256]; new name[MAX_PLAYER_NAME]; if(killerid == INVALID_PLAYER_ID) { SendDeathMessage(INVALID_PLAYER_ID,playerid,reason); } else { if(gTeam[killerid] != gTeam[playerid]) { // Valid kill if(gTeam[killerid]==TEAM_POLICE){score2++;} consecutive[killerid]++; st++; GetPlayerName(killerid,name, sizeof(name)); SetPlayerScore(killerid, GetPlayerScore(killerid) + 1); if(st == 1) { format(string, sizeof(string), "%s made the first kill! +3 kills to him!",name); SetPlayerScore(killerid, GetPlayerScore(killerid) + 2); SendClientMessageToAll(COLOR_YELLOW,string); } if(consecutive[killerid] == 5) { format(string, sizeof(string), "%s is rockin' out!",name); SendClientMessageToAll(COLOR_YELLOW,string); } else if(consecutive[killerid] == 6) { format(string, sizeof(string), "OMG! %s is pwning you all!",name); SendClientMessageToAll(COLOR_YELLOW,string); } else if(consecutive[killerid] == 7) { format(string, sizeof(string), "WOW! %s ~w~is an omicide fury!",name); SendClientMessageToAll(COLOR_YELLOW,string); } else if(consecutive[killerid] >= 8) { format(string, sizeof(string), "%s: the king of the server... 0.0",name); SendClientMessageToAll(COLOR_YELLOW,string); } SendDeathMessage(killerid,playerid,reason); SetPlayerScore(killerid,GetPlayerScore(killerid)+1); GivePlayerMoney(killerid, 1000); GivePlayerMoney(playerid, -1000); GameTextForPlayer(playerid, "~n~~y~Wasted!", 1000, 3); GameTextForPlayer(killerid, "~n~~y~Good shot!", 1000, 3); } else { SendClientMessage(killerid, COLOR_RED, "No teamkilling! Be careful the next time!"); SendDeathMessage(killerid,playerid,reason); SetPlayerScore(killerid,GetPlayerScore(killerid)-1); GivePlayerMoney(killerid, -2000); new Float:x; new Float:y; new Float:z; GetPlayerPos(playerid, x, y, z); z = 1000; SetPlayerPos(killerid, Float:x, Float:y, Float:z); tk[killerid] ++; if(tk[killerid] == 2) { SendClientMessage(killerid, COLOR_RED, "Once again and you will be kicked!"); } if(tk[killerid] >= 3) { GetPlayerName(killerid,name, sizeof(name)); printf(" -A.T.K Script-: %s kicked for teamkilling",name); Kick(killerid); format(string, sizeof(string), "The AntiTeamkill system kicked %s for teamkilling!",name); SendClientMessageToAll(COLOR_GREEN, string); } } } return 1; } //------------------------------------------------------------------------- stock SetupPlayerForClassSelection(playerid) { PlayerPlaySound(playerid, 1097, 0, 0, 0); } //------------------------------------------------------------------------- public OnPlayerRequestClass(playerid, classid) { printf("OnPlayerRequestClass(%d, %d)", playerid, classid); SetPlayerClass(playerid, classid); SetPlayerInterior(playerid,3); SetupPlayerForClassSelection(playerid); switch (classid) { case 0,1: { SetPlayerCameraPos(playerid, 200.8300,179.2358,1003.0324); SetPlayerPos(playerid, 203.4223,179.2181,1003.0324); SetPlayerFacingAngle(playerid, 87.5657); SetPlayerCameraLookAt(playerid, 200.8300,179.2358,1003.0324); GameTextForPlayer(playerid, "~n~~r~EVA Squad Prisoners", 5000, 3); } case 2,3: { SetPlayerCameraPos(playerid, 201.4807,158.2105,1003.0234); SetPlayerPos(playerid, 203.6180,158.1124,1003.0234); SetPlayerFacingAngle(playerid, 87.5657); SetPlayerCameraLookAt(playerid, 201.4807,158.2105,1003.0234); GameTextForPlayer(playerid, "~n~~r~EVA Squad Prisoners", 5000, 3); } case 4: { SetPlayerCameraPos(playerid, 260.1319,179.3298,1003.0234); SetPlayerPos(playerid, 265.5176,179.4147,1003.0234); SetPlayerFacingAngle(playerid, 88.8190); SetPlayerCameraLookAt(playerid, 260.1319,179.3298,1003.0234); GameTextForPlayer(playerid, "~n~~b~Cop~n~~n~~w~Weapons: ~b~Desert Eagle, Nightstick", 5000, 3); } } return 1; } //------------------------------------------------------------------------- public OnPlayerEnterCheckpoint(playerid) { new name[MAX_PLAYER_NAME]; new string[256]; GetPlayerName(playerid,name,sizeof(name)); if(gTeam[playerid] == TEAM_EVA) { GameTextForAll("~y~EVA Team ~w~scored!", 5000, 6); score1++; format(string,sizeof(string),"Thanks a lot %s for your job!"); for(new i=0; i= 1000){ SendClientMessage(playerid, 0xFF8A00AA, "- You have recharged your healthbar for 1000$. -"); SetPlayerHealth(playerid,100); GivePlayerMoney(playerid, -1000); inarmory[playerid] = 0; } else { SendClientMessage(playerid, 0xFF8A00AA, "You dont have enough money! Kill to earn and come back!"); } return 1; } } if(strcmp(cmd,"/armour", true)==0) { if (inarmory[playerid] == 1) { if(GetPlayerMoney(playerid) >= 1200){ SendClientMessage(playerid,0xFF8A00AA, "- You have bought a Beretta Armour for 1200$"); SetPlayerArmour(playerid,100); GivePlayerMoney(playerid, -1200); inarmory[playerid] = 0; } else { SendClientMessage(playerid, 0xFF8A00AA, "You dont have enough money! Kill to earn and come back!"); } return 1; } } if (strcmp(cmd, "/combat", true)==0) { if (inarmory[playerid] == 1) { if(GetPlayerMoney(playerid) >= 2000){ SendClientMessage(playerid, 0xFF8A00AA, "- You have bought a Combat Shotgun for 2000$. -"); GivePlayerWeapon(playerid, 27, 99999); GivePlayerMoney(playerid, -2000); inarmory[playerid] = 0; } else { SendClientMessage(playerid, 0xFF8A00AA, "You dont have enough money! Kill to earn and come back!"); } return 1; } } if (strcmp(cmd, "/AK47", true)==0) { if (inarmory[playerid] == 1) { if(GetPlayerMoney(playerid) >= 4500){ SendClientMessage(playerid, 0xFF8A00AA, "- You have bought an AK47 for 4500$. -"); GivePlayerWeapon(playerid, 30, 99999); GivePlayerMoney(playerid, -4500); inarmory[playerid] = 0; } else { SendClientMessage(playerid, 0xFF8A00AA, "You dont have enough money! Kill to earn and come back!"); } return 1; } } if (strcmp(cmd, "/rifle", true)==0) { if (inarmory[playerid] == 1) { if(GetPlayerMoney(playerid) >= 5000){ SendClientMessage(playerid, 0xFF8A00AA, "- You have bought a Rifle for 5000$. -"); GivePlayerWeapon(playerid, 33, 500); GivePlayerMoney(playerid, -5000); inarmory[playerid] = 0; } else { SendClientMessage(playerid, 0xFF8A00AA, "You dont have enough money! Kill to earn and come back!"); } return 1; } } if(strcmp(cmd, "/ammunation", true) == 0) { if(invehicle[playerid] == 1) { if(GetPlayerMoney(playerid) >= 1000) { new name[MAX_PLAYER_NAME]; GetPlayerName(playerid,name, sizeof(name)); format(string, sizeof(string), "- %s teleported to LV Ammunation for 1000$. -",name); SetPlayerPos(playerid,2158.9075,945.0707,10.8203); SendClientMessageToAll(0xFF8A00AA,string); GivePlayerMoney(playerid, -1000); invehicle[playerid] = 0; KillTimer(removev); } else { SendClientMessage(playerid, 0xFF8A00AA, "You dont have enough money! Kill to earn and come back!"); } return 1; } } if(strcmp(cmd,"/sniping",true)==0) { if(invehicle[playerid] == 1) { if(GetPlayerMoney(playerid) >= 1200) { new name[MAX_PLAYER_NAME]; GetPlayerName(playerid,name, sizeof(name)); format(string, sizeof(string), "- %s teleported to Sniping Portal for 1200$. -",name); SendClientMessageToAll(0xFF8A00AA,string); GivePlayerMoney(playerid, -1200); SetPlayerPos(playerid,2261.6462,2445.0271,46.9766); SetPlayerFacingAngle(playerid,89.9468); SetPlayerInterior(playerid,0); invehicle[playerid] = 0; KillTimer(removev); } else { SendClientMessage(playerid, 0xFF8A00AA, "You dont have enough money! Kill to earn and come back!"); } return 1; } } if(strcmp(cmd, "/spistol", true) == 0) { if(invehicle[playerid] == 1) { if(GetPlayerMoney(playerid) >= 2000) { new name[MAX_PLAYER_NAME]; GetPlayerName(playerid,name, sizeof(name)); format(string, sizeof(string), "- %s bought a Silenced Pistol for 2000$. -",name); SendClientMessageToAll(0xFF8A00AA,string); GivePlayerMoney(playerid, -2000); GivePlayerWeapon(playerid,33,500); invehicle[playerid] = 0; KillTimer(removev); } else { SendClientMessage(playerid, 0xFF8A00AA, "You dont have enough money! Kill to earn and come back!"); } return 1; } } return 0; } //------------------------------------------------------------------------- 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; } //------------------------------------------------------------------------- public CheckScore() { if(score1>score2) {GameTextForAll("The ~r~EVA Team ~y~wins!", 5000, 6);} else if(score2>1){GameTextForAll("The ~b~Police Team ~y~wins!", 5000, 6);} else if(score1==score2){GameTextForAll("~y~Incredible... DRAW!!!", 5000, 6);} for(new i=0; i