// P&P // Scriptato da >RLZ #pragma tabsize 0 new gTeam[MAX_PLAYERS]; // Tracks the team assignment for each player #define TEAM_Pappone 1 #define TEAM_Prostituta 2 #define TEAM_Clienti_Insoddisfatti 3 #define COLOR_YELLOW 0xFFFF00AA #define COLOR_GRI 0xAFAFAFAA #define COLOR_YESIL 0x33AA33AA #define COLOR_KIRMIZI 0xAA3333AA #define COLOR_SARI 0xFFFF00AA #define COLOR_PEMBE 0xFF66FFAA #define COLOR_MAVI 0x0000BBAA #define COLOR_ACIKMAVI 0x33CCFFAA #define COLOR_BORDO 0x660000AA #define COLOR_TURUNCU 0xFF9900AA #define IPIV IsPlayerInVehicle new consecutive[MAX_PLAYERS]; new check[MAX_PLAYERS]; new ingameprox; new ingamepimp; new HighestScore; new HighestScorers[MAX_PLAYERS]; new score1=0; new score2=0; new score3=0; new nplayers=0; new gRoundTime = 1200000; //20 minutes new gRoundUpdate0 = 300000; new gRoundUpdate1 = 900000; forward Timer(playerid); forward ForCheckScan(); forward Update0(); forward Update1(); forward GameModeExitFunc(); forward ScanPoint(); forward showkills(); main() { print("\n----------------------------------"); print(" Save&Fuck the Girl"); print("----------------------------------\n"); SetTimer("showkills",600000,0); } // ----------------------------------------------------------------------------- public OnGameModeInit() { UsePlayerPedAnims(); SetTeamCount(3); ShowNameTags(1); ShowPlayerMarkers(1); SetGameModeText("Salva E Scopa La Puttana"); SetTimer("ForCheckScan", gRoundTime, 0); SetTimer("Update0", gRoundUpdate0, 0); SetTimer("Update1", gRoundUpdate1, 0); ingameprox = 0; ingamepimp = 0; AddPlayerClass(125,-2623.8508,1409.6643,7.0938,237.4491,24,999,31,999,28,999); // Spawn Pappone AddPlayerClass(12,-2352.2598,1341.7062,11.6945,78.5658,28,999,0,0,0,0); // spawn puttana AddPlayerClass(51,-2566.2800,838.0185,51.1555,278.1353,31,999,28,999,24,999); // cliente 1 AddPlayerClass(52,-2565.7244,851.5989,55.2261,244.1918,31,999,28,999,24,999); // cliente 2 AddPlayerClass(57,-2565.9785,862.6231,58.4558,274.1664,31,999,28,999,24,999); // cliente 3 AddPlayerClass(70,-2571.8257,874.9139,61.4874,276.5478,31,999,28,999,24,999); // Cliente 4 AddPlayerClass(60,-2572.4802,878.5837,62.8097,262.6566,31,999,28,999,24,999); // Cliente 5 AddStaticVehicle(429,-2541.6731,904.2690,64.8261,94.7710,53,1); AddStaticVehicle(429,-2557.1650,904.3766,64.8281,91.1990,53,1); AddStaticVehicle(429,-2573.4661,904.2439,64.8281,93.5803,53,1); AddStaticVehicle(429,-2590.1797,904.0776,64.8281,89.2145,53,1); AddStaticVehicle(429,-2592.2524,912.4124,64.8281,275.3755,53,1); AddStaticVehicle(429,-2579.3872,912.4666,64.8281,270.2159,53,1); AddStaticVehicle(429,-2564.9871,912.6069,64.8281,272.2004,53,1); AddStaticVehicle(429,-2553.7944,912.6260,64.8309,269.8191,53,1); AddStaticVehicle(429,-2541.9434,912.3932,64.8338,268.2315,53,1); AddStaticVehicle(533,-2605.9348,1389.4996,7.1520,221.5735,113,113); // Pappamobile 1 AddStaticVehicle(533,-2605.9348+50,1389.4996,7.1520,221.5735,113,113); AddStaticVehicle(533,-2605.9348+100,1389.4996,7.1520,221.5735,113,113); AddStaticVehicle(533,-2605.9348+150,1389.4996,7.1520,221.5735,113,113); AddStaticVehicle(533,-1755.0509,951.6688,24.7422,180.1205,113,113); // 1 albergo AddStaticVehicle(533,-2657.2966,617.6890,14.4545,54.6805,113,113); // Albergo 2 AddStaticVehicle(533,-2164.8164,-429.2122,35.3359,267.3134,113,113); // Albergo 3 AddStaticVehicle(533,1087.4594,1073.6592,10.8382,331.1071,113,113); // Albergo 4 AddStaticVehicle(533,2048.4226,1623.7150,10.6719,14.0368,113,113); // Albergo 5 AddStaticVehicle(533,2338.5608,2453.7439,14.9688,280.2928,113,113); // Albergo 6 return 1; } // ----------------------------------------------------------------------------- public showkills() { if(nplayers!=0){new tmp[256]; format(tmp,sizeof(tmp),"~n~~g~Pappone: ~w~%d punti ~n~~g~Prostituta: ~w~%d punti ~n~~g~Clienti Insoddisfatti: ~w~%d punti",score1,score2,score3); 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 OnPlayerRequestClass(playerid, classid) { if(ingameprox == 1 && ingamepimp == 1) { SetSpawnInfo(playerid,TEAM_Clienti_Insoddisfatti,51,-2566.2800,838.0185,51.1555,278.1353,31,999,28,999,24,999); } switch (classid) { case 0: { gTeam[playerid] = TEAM_Pappone; GameTextForPlayer(playerid, "~g~Pappone", 500, 3); SetPlayerPos(playerid,-828.1331,1492.1543,18.3899); SetPlayerFacingAngle(playerid, 90.0); SetPlayerCameraPos(playerid,-832.3343,1491.9839,18.0397); SetPlayerCameraLookAt(playerid,-828.1331,1492.1543,18.3899); if(ingamepimp >= 1) { gTeam[playerid] = TEAM_Pappone; GameTextForPlayer(playerid, "~g~Pappone ~r~(LIMITE RAGGIUNTO)", 500, 3); SetPlayerPos(playerid,-828.1331,1492.1543,18.3899); SetPlayerFacingAngle(playerid, 90.0); SetPlayerCameraPos(playerid,-832.3343,1491.9839,18.0397); SetPlayerCameraLookAt(playerid,-828.1331,1492.1543,18.3899); } } case 1: { gTeam[playerid] = TEAM_Prostituta; GameTextForPlayer(playerid, "~g~Prostituta", 500, 3); SetPlayerPos(playerid,-828.1331,1492.1543,18.3899); SetPlayerFacingAngle(playerid, 90.0); SetPlayerCameraPos(playerid,-832.3343,1491.9839,18.0397); SetPlayerCameraLookAt(playerid,-828.1331,1492.1543,18.3899); if(ingameprox >= 1) { gTeam[playerid] = TEAM_Prostituta; GameTextForPlayer(playerid, "~g~Prostituta ~r~(LIMITE RAGGIUNTO)", 500, 3); SetPlayerPos(playerid,-828.1331,1492.1543,18.3899); SetPlayerFacingAngle(playerid, 90.0); SetPlayerCameraPos(playerid,-832.3343,1491.9839,18.0397); SetPlayerCameraLookAt(playerid,-828.1331,1492.1543,18.3899); } } case 2,3,4,5,6: { gTeam[playerid] = TEAM_Clienti_Insoddisfatti; GameTextForPlayer(playerid, "~g~Clienti Insoddisfatti", 500, 3); SetPlayerPos(playerid,1482.8057,-1895.2834,22.2588); SetPlayerFacingAngle(playerid, 270.0); SetPlayerCameraPos(playerid,1486.7917,-1892.0590,22.2337); SetPlayerCameraLookAt(playerid,1482.8057,-1895.2834,22.2588); } } return 1; } // ----------------------------------------------------------------------------- stock SetPlayerClass(playerid, classid) { if(classid == 0) { gTeam[playerid] = TEAM_Pappone; } else if(classid == 1) { gTeam[playerid] = TEAM_Prostituta; } else if(classid == 2 || classid == 3 || classid == 4 || classid == 5 || classid == 6) { gTeam[playerid] = TEAM_Clienti_Insoddisfatti; } } // ----------------------------------------------------------------------------- public OnGameModeExit() { print("GameModeExit()"); return 1; } // ----------------------------------------------------------------------------- public OnPlayerConnect(playerid) { SendClientMessage(playerid, COLOR_TURUNCU, "Ciao E Benvenuto!!! Scegli Il Tuo Ruolo!"); SendClientMessage(playerid, COLOR_YESIL, "Scrivi /help per sapere gli obiettivi di questa GM."); SendClientMessage(playerid, COLOR_MAVI, "Scrivi /about per sapere chi ha fatto questa GM"); GameTextForPlayer(playerid, "~g~- ~r~P ~y~& ~r~P ~g~-", 6000, 1); return 1; } // ----------------------------------------------------------------------------- public OnPlayerDisconnect(playerid) { if(gTeam[playerid] == TEAM_Pappone) { ingamepimp = 0; } if(gTeam[playerid] == TEAM_Prostituta) { ingameprox = 0; } new string [256]; new name[MAX_PLAYER_NAME]; GetPlayerName(playerid,name, sizeof(name)); format(string, sizeof(string), "%s è uscito e ha rinunciato a una bella Figa.",name); SendClientMessageToAll(COLOR_TURUNCU,string); return 1; } // ----------------------------------------------------------------------------- public OnPlayerSpawn(playerid) { if(gTeam[playerid] == TEAM_Pappone && ingamepimp >= 1) { SetPlayerHealth(playerid,0); } if(gTeam[playerid] == TEAM_Prostituta && ingameprox >= 1) { SetPlayerHealth(playerid,0); } SetPlayerInterior(playerid,0); consecutive[playerid] = 0; SetPlayerCheckpoint(playerid,-1755.0509,951.6688,24.7422,5.0); PlayerPlaySound(playerid, 1098, 0, 0, 0); SetCameraBehindPlayer(playerid); SetPlayerInterior(playerid,0); if(gTeam[playerid] == TEAM_Prostituta) { ingameprox ++; SetVehicleParamsForPlayer(10,playerid,0,0); SetVehicleParamsForPlayer(11,playerid,0,0); SetVehicleParamsForPlayer(12,playerid,0,0); SetVehicleParamsForPlayer(13,playerid,0,0); SetVehicleParamsForPlayer(14,playerid,0,0); SetVehicleParamsForPlayer(15,playerid,0,0); SetVehicleParamsForPlayer(16,playerid,0,0); SendClientMessage(playerid, COLOR_YESIL, "Aiuta il Pappone A Salvarti... Altrimenti Preparati Al Sesso Sadomaso... E Farà Molto... Molto Male..."); SetPlayerColor(playerid,COLOR_KIRMIZI); } if(gTeam[playerid] == TEAM_Pappone) { ingamepimp++; SetVehicleParamsForPlayer(10,playerid,0,0); SetVehicleParamsForPlayer(11,playerid,0,0); SetVehicleParamsForPlayer(12,playerid,0,0); SetVehicleParamsForPlayer(13,playerid,0,0); SetVehicleParamsForPlayer(14,playerid,0,0); SetVehicleParamsForPlayer(15,playerid,0,0); SetVehicleParamsForPlayer(16,playerid,0,0); SendClientMessage(playerid, COLOR_YESIL, "Salva La Prostituta! Segui i CheckPoints E Non Te Ne Pentirai!"); SetPlayerColor(playerid,COLOR_SARI); } if(gTeam[playerid] == TEAM_Clienti_Insoddisfatti) { SendClientMessage(playerid, COLOR_YESIL, "Uccidi Il Pappone!!! Muovi Le Chiappe!"); SetVehicleParamsForPlayer(10,playerid,0,1); SetVehicleParamsForPlayer(11,playerid,0,1); SetVehicleParamsForPlayer(12,playerid,0,1); SetVehicleParamsForPlayer(13,playerid,0,1); SetVehicleParamsForPlayer(14,playerid,0,1); SetVehicleParamsForPlayer(15,playerid,0,1); SetVehicleParamsForPlayer(16,playerid,0,1); SetPlayerColor(playerid,COLOR_MAVI); } return 1; } 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_Pappone){score1++;} else if(gTeam[killerid]==TEAM_Prostituta){score2++;} else if(gTeam[killerid]==TEAM_Clienti_Insoddisfatti){score3++;} 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); PlayerPlaySound(playerid, 1057, 0, 0, 0); consecutive[playerid]++; if(consecutive[killerid] == 5 && gTeam[killerid] == TEAM_Clienti_Insoddisfatti ) { format(string, sizeof(string), "%s ~w~ha davvero voglia di Figa!!!",name); SendClientMessageToAll(COLOR_YELLOW,string); } if(consecutive[killerid] == 5 && gTeam[killerid] == TEAM_Pappone) { format(string, sizeof(string), "%s ha come movente le Puttanelle!!!",name); SendClientMessageToAll(COLOR_YELLOW,string); } if(consecutive[killerid] == 5 && gTeam[killerid] == TEAM_Prostituta) { format(string, sizeof(string), "%s è assetata come non mai...",name); SendClientMessageToAll(COLOR_YELLOW,string); } } else { if(gTeam[killerid] == TEAM_Clienti_Insoddisfatti) { //Team Killer! SendDeathMessage(killerid,playerid,reason); SetPlayerScore(killerid,GetPlayerScore(killerid)-1); GameTextForPlayer(killerid,"Sei Gay O Altro?! Devi Uccidere Il Pappone Per Scoparti La Prostituta!",2500,5); GivePlayerMoney(killerid, 0); PlayerPlaySound(playerid, 1057, 0, 0, 0); } } } return 1; } public OnVehicleSpawn(vehicleid) { printf("OnVehicleSpawn(%d)", vehicleid); return 1; } public OnVehicleDeath(vehicleid, killerid) { printf("OnVehicleDeath(%d, %d)", vehicleid, killerid); new string [256]; new name[MAX_PLAYER_NAME]; GetPlayerName(killerid,name, sizeof(name)); format(string, sizeof(string), "%s Ha Fatto Rimanere A Piedi Qualcuno.",name); SendClientMessageToAll(COLOR_MAVI,string); return 1; } public OnPlayerText(playerid) { printf("OnPlayerText(%d)", playerid); return 1; } public OnPlayerCommandText(playerid, cmdtext[]) { new cmd[256]; new idx; cmd = strtok(cmdtext, idx); if(strcmp(cmd,"/help",true)==0) { SendClientMessage(playerid,COLOR_YESIL,"E' una semplice GM..."); SendClientMessage(playerid,COLOR_YESIL,"Ci sono tre diversi Team in cui spawnare:"); SendClientMessage(playerid,COLOR_YESIL,"Nel Team Pappone, nel Team Prostituta e nel Team Clienti Insoddisfatti"); SendClientMessage(playerid,COLOR_YESIL,"I primi due (P&P), sono alleati; il loro scopo sarà attraversare tutti i"); SendClientMessage(playerid,COLOR_YESIL,"check sparsi per SF con le pappamobili (Feltzer)."); SendClientMessage(playerid,COLOR_YESIL,"Il Team P&P vincerà se riuscirà ad attraversare correttamente tutti e sei"); SendClientMessage(playerid,COLOR_YESIL,"i checkpoint. Il secondo Team invece, dovrà impedire di svolgere il ruolo al"); SendClientMessage(playerid,COLOR_YESIL,"Team P&P, per un tot di venti minuti."); SendClientMessage(playerid,COLOR_YESIL,"Per sapere la lista dei comandi scrivi /cmdlist"); return 1; } if(strcmp(cmd,"/about",true)==0) { SendClientMessage(playerid,COLOR_MAVI,"P&P"); SendClientMessage(playerid,COLOR_MAVI,"Questa gamemode è stata creata da >RLZ ' ') && ((index - offset) < (sizeof(result) - 1))) { result[index - offset] = string[index]; index++; } result[index - offset] = EOS; return result; } // ----------------------------------------------------------------------------- public OnPlayerInfoChange(playerid) { printf("OnPlayerInfoChange(%d)"); return 1; } // ----------------------------------------------------------------------------- public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger) { printf("OnPlayerEnterVehicle(%d, %d, %d)", playerid, vehicleid, ispassenger); new string [256]; new name[MAX_PLAYER_NAME]; GetPlayerName(playerid,name, sizeof(name)); format(string, sizeof(string), "%s ha messo le ali sotto i piedi.",name); SendClientMessageToAll(COLOR_MAVI,string); return 1; } // ----------------------------------------------------------------------------- public OnPlayerExitVehicle(playerid, vehicleid) { printf("OnPlayerExitVehicle(%d, %d)", playerid, vehicleid); new string [256]; new name[MAX_PLAYER_NAME]; GetPlayerName(playerid,name, sizeof(name)); format(string, sizeof(string), "%s crede che è più figo se arriva camminando con uno sguardo minaccioso.",name); SendClientMessageToAll(COLOR_MAVI,string); return 1; } // ----------------------------------------------------------------------------- public OnPlayerStateChange(playerid, newstate, oldstate) { printf("OnPlayerStateChange(%d, %d, %d)", playerid, newstate, oldstate); return 1; } // ----------------------------------------------------------------------------- public OnPlayerEnterCheckpoint(playerid) { if ((gTeam[playerid] == TEAM_Pappone) || (gTeam[playerid] == TEAM_Prostituta) && IPIV(playerid,10) || IPIV(playerid,11) || IPIV(playerid,12) || IPIV(playerid,13) || IPIV(playerid,14) || IPIV(playerid,15) || IPIV(playerid,16)) { DisablePlayerCheckpoint(playerid); new checkstatus0[128]; new checkstatus1[128]; check[playerid]++; format(checkstatus0, 128, "Stai all'albergo %d di 6.", check[playerid]); SendClientMessage(playerid, COLOR_MAVI, checkstatus0); format(checkstatus1, 128, "~w~Il Team P&P si trova all'albergo ~r~%d di 6!", check[playerid]); GameTextForAll(checkstatus1 , 3000, 3); switch(check[playerid]) { case 1: {SetPlayerCheckpoint(playerid,-2657.2966,617.6890,14.4545,25.0);} case 2: {SetPlayerCheckpoint(playerid,-2164.8164,-429.2122,35.3359,25.0);} case 3: {SetPlayerCheckpoint(playerid,1087.4594,1073.6592,10.8382,25.0);} case 4: {SetPlayerCheckpoint(playerid,2048.4226,1623.7150,10.6719,25.0);} case 5: {SetPlayerCheckpoint(playerid,2338.5608,2453.7439,14.9688,25.0);} case 6: { for (new i=0; i HighestScore){ for (new i=0; i 0){ HighestScorers[numberscorers]=playerid; numberscorers++; } score=0; } } } return numberscorers; } // ----------------------------------------------------------------------------- stock CheckScore(){ new numberscorers=CheckPlayerScore(); //not sure if the () should be attached new giveplayername[MAX_PLAYER_NAME]; new string[256]; if(numberscorers > 0){ for (new i=0; i