// Jewelry Van's Attack GM 0.1b // 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]; #define SLOTS 28 enum SavePlayerPosEnum { Float:LastX, Float:LastY, Float:LastZ } new SavePlayerPos[SLOTS][SavePlayerPosEnum]; new UpdateSeconds = 1; //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_ATTACK 1 #define TEAM_DEFENCE 2 //------------------------------------------------------------------------- new scored = 0; new scoredex = 32; new st; new incar[MAX_PLAYERS]; new inarmory[MAX_PLAYERS],armory; new teleport; new tk[MAX_PLAYERS]; new removev[MAX_PLAYERS]; new consecutive[MAX_PLAYERS]; new confirmspeedo[MAX_PLAYERS],speedo; new briefing[MAX_PLAYERS],briefingex; new gRoundTimer,Text:Time; new DMTime; //------------------------------------------------------------------------- forward ExitTheGameMode(); forward ExitVehicle(playerid); forward DMTimer(); forward UpdateSpeed(); forward GameModeExitFunc(); //------------------------------------------------------------------------- main() { print("\nLoaded Jewelry Van's Attack GM 0.1b\n"); } //------------------------------------------------------------------------- public OnGameModeInit() { armory = 1; teleport = 0; speedo = 1; briefingex = 1; st = 0; UsePlayerPedAnims(); SetGameModeText("Jewelry Van's Attack GM 0.1b"); ShowPlayerMarkers(1); ShowNameTags(1); DMTime = 1200; gRoundTimer = SetTimer("DMTimer", 900, 1); SetTimer("UpdateSpeed", UpdateSeconds*1000, 1); AddPlayerClass(253,-1956.7261,103.4498,26.2734,270.4603,0,0,0,0,0,0); AddPlayerClass(165,-2933.6536,802.4637,6.3347,242.0898,0,0,0,0,0,0); AddPlayerClass(166,-2934.3787,799.3235,6.3566,242.0898,0,0,0,0,0,0); AddPlayerClass(185,-2935.8926,795.8499,6.4460,242.0898,0,0,0,0,0,0); AddPlayerClass(228,-2937.5754,793.3854,6.5653,242.0898,0,0,0,0,0,0); AddPlayerClass(246,-2938.9949,789.9232,6.7318,242.0898,0,0,0,0,0,0); AddPlayerClass(285,-2940.4260,786.4382,7.1702,242.0898,0,0,0,0,0,0); AddStaticVehicle(498,-1957.1616,79.5611,26.3847,271.4603,4,44); AddStaticVehicle(498,-1957.1730,84.2960,26.3671,270.6042,4,44); AddStaticVehicle(498,-1957.2189,88.3628,26.3625,269.8167,4,44); AddStaticVehicle(498,-1957.2915,92.1548,26.3506,270.2736,4,44); AddStaticVehicle(498,-1957.0951,96.4834,26.3488,270.6797,4,44); AddStaticVehicle(498,-1957.2277,100.4110,26.3770,270.4584,4,44); AddStaticVehicle(498,-1939.0298,100.3340,26.3978,269.1051,4,44); AddStaticVehicle(498,-1939.0577,96.2639,26.3969,268.8965,4,44); AddStaticVehicle(498,-1939.1421,92.5068,26.3977,269.4219,4,44); AddStaticVehicle(498,-1939.1769,88.2507,26.3981,270.3727,4,44); AddStaticVehicle(498,-1939.2245,84.3090,26.3974,270.4303,4,44); AddStaticVehicle(498,-1939.2618,80.0348,26.3980,270.2741,4,44); AddStaticVehicle(498,-1939.0942,104.5694,26.3986,269.4989,4,44); AddStaticVehicle(498,-1939.1354,108.5040,26.3969,269.9947,4,44); AddStaticVehicle(498,-1939.2113,112.6887,26.3982,270.3783,4,44); AddStaticVehicle(498,-1939.1627,117.1617,26.3978,270.0391,4,44); AddStaticVehicle(498,-1939.1611,121.1982,26.3986,270.0583,4,44); AddStaticVehicle(498,-1939.1683,125.3254,26.3972,269.2815,4,44); AddStaticVehicle(498,-1939.0952,129.6248,26.4006,269.0931,4,44); AddStaticVehicle(498,-1939.0410,133.5028,26.4012,269.5098,4,44); AddStaticVehicle(498,-1939.0361,137.2388,26.4061,268.4790,4,44); AddStaticVehicle(498,-1938.8981,141.6934,26.4060,267.8221,4,44); AddStaticVehicle(498,-1938.7684,145.6206,26.4061,268.9278,4,44); AddStaticVehicle(498,-1938.6729,149.7115,26.4044,268.2510,4,44); AddStaticVehicle(498,-1938.4117,153.7691,26.4060,267.6360,4,44); AddStaticVehicle(498,-1938.1688,158.2099,26.4050,267.1389,4,44); AddStaticVehicle(498,-1937.9128,162.3250,26.4025,267.5835,4,44); AddStaticVehicle(498,-1937.6863,166.3027,26.4014,267.1646,4,44); AddStaticVehicle(498,-1937.5359,170.2032,26.3985,266.6786,4,44); AddStaticVehicle(498,-1937.3444,173.8063,26.4058,266.7287,4,44); AddStaticVehicle(498,-1937.2139,177.3831,26.4018,267.1497,4,44); AddStaticVehicle(498,-1936.9556,181.1937,26.3979,266.1737,4,44); AddStaticVehicle(425,-1847.5438,-55.2581,24.7787,87.1743,6,6); AddStaticVehicle(468,-2935.8777,786.6596,5.8520,264.6116,6,6); AddStaticVehicle(468,-2935.4666,787.7634,5.9330,261.2940,6,6); AddStaticVehicle(468,-2935.3005,788.7513,5.9356,263.4027,6,6); AddStaticVehicle(468,-2934.8469,790.3813,5.9207,262.0441,6,6); AddStaticVehicle(468,-2934.5156,791.7520,5.9130,262.2480,6,6); AddStaticVehicle(468,-2934.0837,793.2596,5.8978,257.7062,6,6); AddStaticVehicle(468,-2933.5024,794.7552,5.8669,257.5434,6,6); AddStaticVehicle(468,-2933.0042,796.0815,5.8422,259.5602,6,6); AddStaticVehicle(468,-2932.3843,797.4918,5.8059,256.6351,6,6); AddStaticVehicle(468,-2932.1721,798.7304,5.8089,264.2170,6,6); AddStaticVehicle(413,-1963.4492,106.0247,27.8128,270.0768,16,3); AddStaticVehicle(413,-2860.1157,682.2510,23.3481,294.0786,16,3); AddStaticVehicle(440,-2162.8904,293.4481,35.2427,0.2040,16,3); AddStaticPickup(370, 15, -1951.7720,90.3860,26.2813); AddStaticPickup(370, 15, -2945.8127,797.6591,10.6708); return 1; } //------------------------------------------------------------------------- public UpdateSpeed() { new Float:x,Float:y,Float:z; new Float:distance,value,string[256]; for(new i=0; i 1){ value = floatround(value / UpdateSeconds); } if(confirmspeedo[i] == 1) { format(string,sizeof(string),"~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~w~MpH: ~h~~y~%d~n~~w~Jewelry Van's Remaining: ~y~(%d)",floatround(value/1600),scoredex); } else { format(string,sizeof(string),"~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~w~KM/H: ~h~~y~%d~n~~w~Jewelry Van's Remaining: ~y~(%d)",floatround(value/1000),scoredex); } GameTextForPlayer(i, string, 1100, 3); } SavePlayerPos[i][LastX] = x; SavePlayerPos[i][LastY] = y; SavePlayerPos[i][LastZ] = z; } } //------------------------------------------------------------------------- public DMTimer() { new tmp[256]; if(DMTime != 0.0) { DMTime --; TextDrawDestroy(Text:Time); if(DMTime > 11){format(tmp, sizeof tmp, "%s", TimeConvert(DMTime));}else{ format(tmp, sizeof tmp, "~r~%s", TimeConvert(DMTime));} } else { GameTextForAll("~r~The Attack Team~w~ win!", 5000, 6); SetTimer("ExitTheGameMode", 5000, 0); return 1; } Time = TextDrawCreate(300.0, 10.0, tmp); TextDrawUseBox(Text:Time, 1); TextDrawTextSize(Text:Time, 350.0, 30.0); TextDrawSetShadow(Text:Time, 0); TextDrawSetOutline(Text:Time, 1); TextDrawShowForAll(Text:Time); if(DMTime == 900) { SendClientMessageToAll(0xFF8A00AA,"Time Remaining: 15 minutes!"); return 1; } else if(DMTime == 300) { SendClientMessageToAll(0xFF8A00AA,"Time Remaining: 5 minutes!"); return 1; } else if(DMTime < 4) { for(new i=0; i 0 && vehicleid < 33) { GetPlayerName(playerid,name, sizeof(name)); format(string, sizeof(string), "..:: %s exited from one of Jewelry Van's ::..", name); for(new i=0; i= 1 || vehicleid <= 32) { incar[playerid]++; } if(newstate == PLAYER_STATE_ONFOOT && gTeam[playerid] == TEAM_DEFENCE) { incar[playerid] = 0; } if(newstate == PLAYER_STATE_DRIVER) { if (( vehicleid > 0 ) && ( vehicleid < 32 )) { format(string, sizeof(string), "..:: %s entered into one of Jewelry Van's ::..", name); for(new i=0; i= 2) { removev[playerid] = SetTimerEx("ExitVehicle",30000,0,"d",playerid); GetPlayerName(playerid,name, sizeof(name)); format(string, sizeof(string), "- Welcome to Vehicle Shop, %s; -", name); SendClientMessage(playerid, 0xFF8A00AA, string); SendClientMessage(playerid, 0xFF8A00AA, "Here you can buy"); SendClientMessage(playerid,0xFF8A00AA,"Type (/v)shop for view the wepons availables"); SendClientMessage(playerid,COLOR_RED,"Type /exit for exit from the Vehicle Shop."); } else { SetVehicleParamsForPlayer(44, playerid, 0, 1); SetVehicleParamsForPlayer(45, playerid, 0, 1); RemovePlayerFromVehicle(playerid); if (gTeam[playerid] == TEAM_ATTACK) { GameTextForPlayer(playerid,"~n~~r~You ~w~dont have ~r~enough points! ~w~Kill to earn and ~r~come back!",3000,3); } else if (gTeam[playerid] == TEAM_DEFENCE) { GameTextForPlayer(playerid,"~n~~g~You ~w~dont have ~g~enough points! ~w~Kill to earn and ~g~come back!",3000,3); } } } if ( vehicleid == 46) { if (GetPlayerScore(playerid) >= 5) { removev[playerid] = SetTimerEx("ExitVehicle",30000,0,"d",playerid); GetPlayerName(playerid,name, sizeof(name)); format(string, sizeof(string), "- Welcome to Lamer Van, %s; -", name); SendClientMessage(playerid, 0xFF8A00AA, string); SendClientMessage(playerid, 0xFF8A00AA, "Here you can buy"); SendClientMessage(playerid,0xFF8A00AA,"Type (/l)amervan for view the wepons availables"); SendClientMessage(playerid,COLOR_RED,"Type /exit for exit from the Vehicle Shop."); } else { RemovePlayerFromVehicle(playerid); if (gTeam[playerid] == TEAM_ATTACK) { GameTextForPlayer(playerid,"~n~~r~You ~w~dont have ~r~enough points! ~w~Kill to earn and ~r~come back!",3000,3); } else if (gTeam[playerid] == TEAM_DEFENCE) { GameTextForPlayer(playerid,"~n~~g~You ~w~dont have ~g~enough points! ~w~Kill to earn and ~g~come back!",3000,3); } } } } return 1; } //------------------------------------------------------------------------- public OnPlayerEnterCheckpoint(playerid) { new id = GetPlayerVehicleID(playerid),name[MAX_PLAYER_NAME],string[256]; GetPlayerName(playerid,name,sizeof(name)); if(incar[playerid] >= 1 && gTeam[playerid] == TEAM_DEFENCE) { if(scored >= 31) { KillTimer(gRoundTimer); GameTextForAll("~y~Defence team ~w~win!", 5000, 6); SetTimer("ExitTheGameMode", 5000, 0); incar[playerid] = 0; } else { scored++; scoredex--; GameTextForAll("~y~Defence team ~w~scored!", 5000, 6); format(string,sizeof(string),"Thanks a lot %s for your job.",name); for(new i=0; i= 8) { format(string, sizeof(string), "~y~%s~w~: the king of the server... 0.0",name); GameTextForAll(string, 6000, 6); } } //TEAM KILL 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; } //------------------------------------------------------------------------- public ExitTheGameMode() { KillTimer(gRoundTimer); for (new i=0; i= 3) { if(GetPlayerMoney(playerid) >= 5000){ new pname[MAX_PLAYER_NAME]; GetPlayerName(playerid,pname, sizeof(pname)); format(string, sizeof(string), "- %s teleported to Cranberry Station for 1000$. -",pname); SendClientMessageToAll(0xFF8A00AA,string); GivePlayerMoney(playerid, -5000); } else { SendClientMessage(playerid, COLOR_RED, "You dont have enough money! Kill to earn and come back!."); } } else { SendClientMessage(playerid,COLOR_RED, "You dont have enough points! Kill to earn and come back!."); } } else { SendClientMessage(playerid, COLOR_RED, "Only the Team Attack can use this command."); } } else { SendClientMessage(playerid,COLOR_RED,"This command has been disabled."); } return 1; } if(strcmp(cmd, "/armory", true)==0||strcmp(cmd,"/a",true)==0) { cmd=strtok(cmdtext,idx); if(armory == 1) { if(inarmory[playerid]==1) { if (strcmp(cmd, "MP5", true,3)==0) { if(GetPlayerMoney(playerid) >= 1000){ SendClientMessage(playerid, 0xFF8A00AA, "- You have bought a MP5 for 1000$. -"); GivePlayerWeapon(playerid, 29, 99999); GivePlayerMoney(playerid, -1000); inarmory[playerid] = 0; }else{SendClientMessage(playerid, 0xFF8A00AA, "You dont have enough money! Kill to earn and come back!.");}} if (strcmp(cmd, "sawnoff", true,7)==0) { if(GetPlayerMoney(playerid) >= 1200){ SendClientMessage(playerid, 0xFF8A00AA, "- You have bought a Sawn Off Shotgun for 1200$. -"); GivePlayerWeapon(playerid, 26, 99999); GivePlayerMoney(playerid, -1200); inarmory[playerid] = 0; }else{SendClientMessage(playerid, 0xFF8A00AA, "You dont have enough money! Kill to earn and come back!");}} return 1; } new pname[MAX_PLAYER_NAME]; GetPlayerName(playerid,pname, sizeof(pname)); inarmory[playerid] = 1; format(string, sizeof(string), "- Welcome to your Personal Shop, %s; -", pname); SendClientMessage(playerid, 0xFF8A00AA, string); SendClientMessage(playerid, 0xFF8A00AA, "Usage: (/s)hop [wname]"); SendClientMessage(playerid, 0xFF8A00AA, "----------------------------------"); SendClientMessage(playerid, 0xFF8A00AA, "- MP5 [1000$]"); SendClientMessage(playerid, 0xFF8A00AA, "- sawnoff [1200$]"); SendClientMessage(playerid, 0xFF8A00AA, "----------------------------------"); }else{SendClientMessage(playerid,0xFF8A00AA,"This command has been disabled.");} return 1; } if(strcmp(cmd,"/vshop1",true)==0||strcmp(cmd,"/v",true)==0) { cmd=strtok(cmdtext,idx); if(IsPlayerInVehicle(playerid,44) || IsPlayerInVehicle(playerid,45)) { if(strcmp(cmd, "ammunation", true,9) == 0||strcmp(cmd,"ammu",true,4)==0){ if(GetPlayerMoney(playerid) >= 1000) { new name[MAX_PLAYER_NAME]; GetPlayerName(playerid,name, sizeof(name)); format(string, sizeof(string), "- %s teleported to Fort Carson Ammunation for 1000$. -",name); SetPlayerPos(playerid,-314.9772,828.3542,14.2422); KillTimer(removev[playerid]); SendClientMessageToAll(0xFF8A00AA,string); GivePlayerMoney(playerid, -1000); }else{SendClientMessage(playerid, 0xFF8A00AA, "You dont have enough money! Kill to earn and come back!");}return 1;} if(strcmp(cmd, "mac10", true,5) == 0) { if(GetPlayerMoney(playerid) >= 1200) { new name[MAX_PLAYER_NAME]; GetPlayerName(playerid,name, sizeof(name)); format(string, sizeof(string), "- %s bought a Mac10 for 1200$. -",name); GivePlayerWeapon(playerid, 28, 2000); KillTimer(removev[playerid]); SendClientMessageToAll(0xFF8A00AA, string); GivePlayerMoney(playerid, -1200); }else{SendClientMessage(playerid, 0xFF8A00AA, "You dont have enough money! Kill to earn and come back!");}return 1;} if(strcmp(cmd, "rifle", true,5) == 0) { if(GetPlayerMoney(playerid) >= 2000) { new name[MAX_PLAYER_NAME]; GetPlayerName(playerid,name, sizeof(name)); format(string, sizeof(string), "- %s bought a Rifle for 2000$. -",name); GivePlayerWeapon(playerid, 33, 500); KillTimer(removev[playerid]); SendClientMessageToAll(0xFF8A00AA, string); GivePlayerMoney(playerid, -2000); }else{SendClientMessage(playerid, 0xFF8A00AA, "You dont have enough money! Kill to earn and come back!");}return 1;} SendClientMessage(playerid, 0xFF8A00AA, "Usage: (/v)shop [wname]"); SendClientMessage(playerid, 0xFF8A00AA, "----------------------------------"); SendClientMessage(playerid, 0xFF8A00AA, "- ammunation [1000$]"); SendClientMessage(playerid, 0xFF8A00AA, "- mac10 [1200$]"); SendClientMessage(playerid, 0xFF8A00AA, "- rifle [2000$]"); SendClientMessage(playerid, 0xFF8A00AA, "----------------------------------"); }else{SendClientMessage(playerid, 0xFF8A00AA, "You arent in one of Vehicle Shop!");} return 1;} if(strcmp(cmd,"/lamervan",true)==0||strcmp(cmd,"/l",true)==0) { cmd=strtok(cmdtext,idx); if(IsPlayerInVehicle(playerid,46)) { if(strcmp(cmd, "100hp", true,5) == 0) { if(GetPlayerMoney(playerid) >= 1000) { new name[MAX_PLAYER_NAME]; GetPlayerName(playerid,name, sizeof(name)); format(string, sizeof(string), "- %s recharged his healthbar for 1000$. -",name); SendClientMessageToAll(0xFF8A00AA,string); SetPlayerHealth(playerid,100); GivePlayerMoney(playerid, -1000); KillTimer(removev[playerid]); }else{SendClientMessage(playerid, 0xFF8A00AA, "You dont have enough money! Kill to earn and come back!");}return 1;} if(strcmp(cmd, "tec9", true,4) == 0) { if(GetPlayerMoney(playerid) >= 1200) { new name[MAX_PLAYER_NAME]; GetPlayerName(playerid,name, sizeof(name)); format(string, sizeof(string), "- %s bought a Tec9 for 1200$. -",name); GivePlayerWeapon(playerid, 32, 3000); KillTimer(removev[playerid]); SendClientMessageToAll(0xFF8A00AA,string); GivePlayerMoney(playerid, -1200); }else{SendClientMessage(playerid, 0xFF8A00AA, "You dont have enough money! Kill to earn and come back!");} return 1;} if(strcmp(cmd, "minigun", true,7) == 0) { if(GetPlayerMoney(playerid) >= 2000) { new name[MAX_PLAYER_NAME]; GetPlayerName(playerid,name, sizeof(name)); format(string, sizeof(string), "- %s bought a Minigun for 2000$. -",name); GivePlayerWeapon(playerid, 38, 200); SendClientMessageToAll(0xFF8A00AA,string); GivePlayerMoney(playerid, -2000); KillTimer(removev[playerid]); }else{SendClientMessage(playerid, 0xFF8A00AA, "You dont have enough money! Kill to earn and come back!");} return 1;} SendClientMessage(playerid, 0xFF8A00AA, "Usage: (/l)amervan [wname]"); SendClientMessage(playerid, 0xFF8A00AA, "----------------------------------"); SendClientMessage(playerid, 0xFF8A00AA, "- 100hp [1000$]"); SendClientMessage(playerid, 0xFF8A00AA, "- tec9 [1200$]"); SendClientMessage(playerid, 0xFF8A00AA, "- minigun [2000$]"); SendClientMessage(playerid, 0xFF8A00AA, "----------------------------------"); }else{SendClientMessage(playerid,COLOR_RED,"You arent in the Lamer Van!");}return 1;} if(strcmp(cmd,"/exit", true)==0) { if(IsPlayerInVehicle(playerid,44) || IsPlayerInVehicle(playerid,45) || IsPlayerInVehicle(playerid,46)) { KillTimer(removev[playerid]); RemovePlayerFromVehicle(playerid); TogglePlayerControllable(playerid,1);}else{SendClientMessage(playerid,COLOR_RED,"You arent in one of the Bonus Vehicles.");}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; } //------------------------------------------------------------------------ SetPlayerClass(playerid, classid) { if(classid == 0) { gTeam[playerid] = TEAM_DEFENCE; briefing[playerid] = 0; } else if(classid == 1 || classid == 2 || classid == 3 || classid == 4 || classid == 5 || classid == 6) { gTeam[playerid] = TEAM_ATTACK; briefing[playerid] = 1; } }