605 main () { AntiDeAMX(); }619 AntiDeAMX(); [/quote]a 606. sornál kezdeném a helyedben
main () { AntiDeAMX(); }public OnGameModeInit(){format(AdminJelszo, 32, ADMINPASS);skinlista = LoadModelSelectionMenu(\"fskin.txt\");skinlista2 = LoadModelSelectionMenu(\"nskin.txt\"); akj = LoadModelSelectionMenu(\"akj.txt\"); kkj = LoadModelSelectionMenu(\"kkj.txt\");UsePlayerPedAnims();new S[128]; AntiDeAMX();
D:\\MOD\\hejj.pwn(1) : warning 235: public function lacks forward declaration (symbol \"OnPlayerText\")D:\\MOD\\hejj.pwn(3) : error 017: undefined symbol \"SetPlayerChatBubble\"D:\\MOD\\hejj.pwn(4) : warning 217: loose indentationPawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase1 Error.public OnPlayerText(playerid, text[]){ SetPlayerChatBubble(playerid, text, 0x0dff00AA, 70.0, 10000); return 1;}
#include <a_samp>
D:\\mod1\\filterscripts\\WeatherAndTime.pwn(61) : warning 217: loose indentationD:\\mod1\\filterscripts\\WeatherAndTime.pwn(70) : error 021: symbol already defined: \"OnFilterScriptInit\"D:\\mod1\\filterscripts\\WeatherAndTime.pwn(104) : error 021: symbol already defined: \"OnFilterScriptExit\"D:\\mod1\\filterscripts\\WeatherAndTime.pwn(133) : error 021: symbol already defined: \"Textdraw0\"D:\\mod1\\filterscripts\\WeatherAndTime.pwn(135) : error 021: symbol already defined: \"OnlinePlayers\"D:\\mod1\\filterscripts\\WeatherAndTime.pwn(138) : error 021: symbol already defined: \"OnFilterScriptInit\"D:\\mod1\\filterscripts\\WeatherAndTime.pwn(172) : error 021: symbol already defined: \"OnFilterScriptExit\"D:\\mod1\\filterscripts\\WeatherAndTime.pwn(181) : error 021: symbol already defined: \"OnPlayerConnect\"D:\\mod1\\filterscripts\\WeatherAndTime.pwn(191) : error 021: symbol already defined: \"OnPlayerDisconnect\"Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase 8 Errors.
// Automatic Weather and Time filterscript created by MetalScript// ----------------------------------------------------------------------// This filterscript changes weather and time randomly every five minutes.// You can also change the Timer to whatever you want.#include #define FILTERSCRIPT#if defined FILTERSCRIPTforward WeatherAndTime();// Time time ids.new const RandomWorldTime[24][1] ={ {0},{1},{2},{3},{4},{5},{6},{7},{8},{9},{10},{11},{12},{13},{14},{15},{16},{17},{18},{19},{20},{21},{22},{23}};// Weather ids.new const RandomWeather[11][1] ={ {1},{2},{3},{4},{5},{7},{8},{9},{10},{15},{16}};public OnFilterScriptInit(){ print(\"\\n---------------------------------------------------------------\");print(\" Ryox178\'s Automatic Weather and Time filterscript loaded.\");print(\"---------------------------------------------------------------\\n\");//TimerSetTimer(\"WeatherAndTime\", 240000, true); //You can change the timer >>//60000 - 1 minute//120000 - 2 minutes//180000 - 3 minutes//240000 - 4 minutes//300000 - 5 minutes//500000 - 10 minutesreturn 1;}public OnFilterScriptExit(){print(\" Ryox178\'s Automatic Weather and Time unloaded.\");return 1;} public WeatherAndTime(){ new rwt = random(sizeof RandomWorldTime);SetWorldTime(RandomWorldTime[rwt][0]);new rw = random(sizeof RandomWeather);SetWeather(RandomWeather[rw][0]);SendClientMessageToAll(0xFFFFFF, \"{0x0000BBAA}Servername: {FFFFFF}Weather and time updated.\");// Sends a message every ten minutes to all players.}public OnPlayerText(playerid, text[]){ SetPlayerChatBubble(playerid, text, 0x0dff00AA, 70.0, 10000); return 1;} new Text:Textdraw0, Text:Textdraw1, OnlinePlayers;public OnFilterScriptInit(){ print(\"Fs By Cappy\'s Role Play\"); print(\"Számláló készítette Bence\"); Textdraw0 = TextDrawCreate(500.000000, 100.000000, \"népeség:\"); TextDrawBackgroundColor(Textdraw0, 255); TextDrawFont(Textdraw0, 1); TextDrawLetterSize(Textdraw0, 0.500000, 1.000000); TextDrawColor(Textdraw0, -1); TextDrawSetOutline(Textdraw0, 1); TextDrawSetProportional(Textdraw0, 1); Textdraw1 = TextDrawCreate(584.000000, 99.000000, \"x\"); TextDrawBackgroundColor(Textdraw1, 255); TextDrawFont(Textdraw1, 2); TextDrawLetterSize(Textdraw1, 0.500000, 1.000000); TextDrawColor(Textdraw1, -1); TextDrawSetOutline(Textdraw1, 0); TextDrawSetProportional(Textdraw1, 1); TextDrawSetShadow(Textdraw1, 1); for(new i; i < MAX_PLAYERS; i ++) { if(IsPlayerConnected(i)) { OnlinePlayers++; TextDrawShowForPlayer(i, Textdraw0); TextDrawShowForPlayer(i, Textdraw1); } } return 1;}public OnFilterScriptExit(){ TextDrawHideForAll(Textdraw0); TextDrawDestroy(Textdraw0); TextDrawHideForAll(Textdraw1); TextDrawDestroy(Textdraw1); return 1;}public OnPlayerConnect(playerid){ OnlinePlayers++; new newtext[41]; format(newtext, sizeof(newtext), \"%d\", OnlinePlayers, GetMaxPlayers()); TextDrawSetString(Textdraw1, newtext); TextDrawShowForPlayer(playerid, Textdraw1); TextDrawShowForPlayer(playerid, Textdraw0); return 1;}public OnPlayerDisconnect(playerid, reason){ OnlinePlayers--; new newtext[41]; format(newtext, sizeof(newtext), \"%d\", OnlinePlayers, GetMaxPlayers()); TextDrawSetString(Textdraw1, newtext); TextDrawHideForPlayer(playerid, Textdraw1); return 1;} new Text:Textdraw0, Text:Textdraw1, OnlinePlayers;public OnFilterScriptInit(){ print(\"Fs By Cappy\'s Role Play\"); print(\"Számláló készítette Bence\"); Textdraw0 = TextDrawCreate(500.000000, 100.000000, \"népeség:\"); TextDrawBackgroundColor(Textdraw0, 255); TextDrawFont(Textdraw0, 1); TextDrawLetterSize(Textdraw0, 0.500000, 1.000000); TextDrawColor(Textdraw0, -1); TextDrawSetOutline(Textdraw0, 1); TextDrawSetProportional(Textdraw0, 1); Textdraw1 = TextDrawCreate(584.000000, 99.000000, \"x\"); TextDrawBackgroundColor(Textdraw1, 255); TextDrawFont(Textdraw1, 2); TextDrawLetterSize(Textdraw1, 0.500000, 1.000000); TextDrawColor(Textdraw1, -1); TextDrawSetOutline(Textdraw1, 0); TextDrawSetProportional(Textdraw1, 1); TextDrawSetShadow(Textdraw1, 1); for(new i; i < MAX_PLAYERS; i ++) { if(IsPlayerConnected(i)) { OnlinePlayers++; TextDrawShowForPlayer(i, Textdraw0); TextDrawShowForPlayer(i, Textdraw1); } } return 1;}public OnFilterScriptExit(){ TextDrawHideForAll(Textdraw0); TextDrawDestroy(Textdraw0); TextDrawHideForAll(Textdraw1); TextDrawDestroy(Textdraw1); return 1;}public OnPlayerConnect(playerid){ OnlinePlayers++; new newtext[41]; format(newtext, sizeof(newtext), \"%d\", OnlinePlayers, GetMaxPlayers()); TextDrawSetString(Textdraw1, newtext); TextDrawShowForPlayer(playerid, Textdraw1); TextDrawShowForPlayer(playerid, Textdraw0); return 1;}public OnPlayerDisconnect(playerid, reason){ OnlinePlayers--; new newtext[41]; format(newtext, sizeof(newtext), \"%d\", OnlinePlayers, GetMaxPlayers()); TextDrawSetString(Textdraw1, newtext); TextDrawHideForPlayer(playerid, Textdraw1); return 1;}#endif
#include a_sampstockText:Textdraws[2],RandomWeather[11][1] = { {1},{2},{3},{4},{5},{7},{8},{9},{10},{15},{16} },OnlinePlayers = 0;public OnFilterScriptInit(){Textdraws[0] = TextDrawCreate(500.000000, 100.000000, \"népeség:\");TextDrawBackgroundColor(Textdraws[0], 255);TextDrawFont(Textdraws[0], 1);TextDrawLetterSize(Textdraws[0], 0.500000, 1.000000);TextDrawColor(Textdraws[0], -1);TextDrawSetOutline(Textdraws[0], 1);TextDrawSetProportional(Textdraws[0], 1);Textdraws[1] = TextDrawCreate(584.000000, 99.000000, \"x\");TextDrawBackgroundColor(Textdraws[1], 255);TextDrawFont(Textdraws[1], 2);TextDrawLetterSize(Textdraws[1], 0.500000, 1.000000);TextDrawColor(Textdraws[1], -1);TextDrawSetOutline(Textdraws[1], 0);TextDrawSetProportional(Textdraws[1], 1);TextDrawSetShadow(Textdraws[1], 1);SetTimer(\"WeatherAndTime\", 240000, true);for(new i; i < MAX_PLAYERS; i ++){if(IsPlayerConnected(i)){ TextDrawShowForPlayer(i, Textdraws[0]); TextDrawShowForPlayer(i, Textdraws[1]); OnlinePlayers++;}}return 1;}public OnFilterScriptExit(){ TextDrawHideForAll(Textdraws[0]); TextDrawDestroy(Textdraws[0]); TextDrawHideForAll(Textdraws[1]); TextDrawDestroy(Textdraws[1]); return 1;}public OnPlayerConnect(playerid){TextDrawShowForPlayer(playerid, Textdraws[0]); TextDrawShowForPlayer(playerid, Textdraws[1]); new newtext[10]; format(newtext, sizeof(newtext), \"%d/%d\", OnlinePlayers, GetMaxPlayers()); TextDrawSetString(Textdraws[1], newtext); OnlinePlayers++; return 1;}public OnPlayerDisconnect(playerid, reason){TextDrawHideForPlayer(playerid, Textdraws[0]); TextDrawHideForPlayer(playerid, Textdraws[1]);new newtext[10]; format(newtext, sizeof(newtext), \"%d/%d\", OnlinePlayers, GetMaxPlayers()); TextDrawSetString(Textdraws[1], newtext); OnlinePlayers--; return 1;}public OnPlayerText(playerid, text[]){SetPlayerChatBubble(playerid, text, 0x0dff00AA, 70.0, 10000);return 1;}forward WeatherAndTime();public WeatherAndTime(){ SetWorldTime(random(24)); SetWeather(random(sizeof(RandomWeather)));SendClientMessageToAll(0xFFFFFF, \"{0x0000BBAA}Servername: {FFFFFF}Weather and time updated.\");return 1;}
#include a_samp#include fixcharsstock Text:Textdraws[2], RandomWeather[11][1] = { {1},{2},{3},{4},{5},{7},{8},{9},{10},{15},{16} }, OnlinePlayers;public OnFilterScriptInit(){ Textdraws[0] = TextDrawCreate(500.000000, 100.000000, \"népeség:\"); TextDrawBackgroundColor(Textdraws[0], 255); TextDrawFont(Textdraws[0], 1); TextDrawLetterSize(Textdraws[0], 0.500000, 1.000000); TextDrawColor(Textdraws[0], -1); TextDrawSetOutline(Textdraws[0], 1); TextDrawSetProportional(Textdraws[0], 1); Textdraws[1] = TextDrawCreate(584.000000, 99.000000, \"x\"); TextDrawBackgroundColor(Textdraws[1], 255); TextDrawFont(Textdraws[1], 2); TextDrawLetterSize(Textdraws[1], 0.500000, 1.000000); TextDrawColor(Textdraws[1], -1); TextDrawSetOutline(Textdraws[1], 0); TextDrawSetProportional(Textdraws[1], 1); TextDrawSetShadow(Textdraws[1], 1); SetTimer(\"WeatherAndTime\", 240000, true); for(new i; i < MAX_PLAYERS; i ++) { if(IsPlayerConnected(i)) { TextDrawShowForPlayer(i, Textdraws[0]); TextDrawShowForPlayer(i, Textdraws[1]); OnlinePlayers++; } } return 1;}public OnFilterScriptExit(){ TextDrawHideForAll(Textdraws[0]); TextDrawDestroy(Textdraws[0]); TextDrawHideForAll(Textdraws[1]); TextDrawDestroy(Textdraws[1]); return 1;}public OnPlayerConnect(playerid){ TextDrawShowForPlayer(playerid, Textdraws[0]); TextDrawShowForPlayer(playerid, Textdraws[1]); new newtext[10]; format(newtext, sizeof(newtext), \"%d/%d\", OnlinePlayers, GetMaxPlayers()); TextDrawSetString(Textdraws[1], newtext); OnlinePlayers++; return 1;}public OnPlayerDisconnect(playerid, reason){ TextDrawHideForPlayer(playerid, Textdraws[0]); TextDrawHideForPlayer(playerid, Textdraws[1]); new newtext[10]; format(newtext, sizeof(newtext), \"%d/%d\", OnlinePlayers, GetMaxPlayers()); TextDrawSetString(Textdraws[1], newtext); OnlinePlayers--; return 1;}public OnPlayerText(playerid, text[]){ SetPlayerChatBubble(playerid, text, 0x0dff00AA, 70.0, 10000); return 1;}forward WeatherAndTime();public WeatherAndTime(){ SetWorldTime(random(24)); SetWeather(random(sizeof(RandomWeather))); SendClientMessageToAll(0xFFFFFF, \"{0x0000BBAA}Servername: {FFFFFF}Weather and time updated.\"); return 1;}
#pragma tabsize 0 // ******************************************************************************************************************** #define GameModeName \"[HUN]Kamionozz es Szorakozz$$\" // ******************************************************************************************************************** // Limit the amount of cops with a value greater than 0 // Setting this to \"3\" would mean: // - having 3 normal players (non-cop players) before the first cop can join the server // - having 6 normal players before 2 cops can be active // - having 9 normal players before the third cop can join and so on // Leaving this at 0 disables the police-limitation, so anyone can choose the police class anytime // ******************************************************************************************************************** // ******************************************************************************************************************** // ******************************************************************************************************************** new PlayersBeforePolice = 0; // ******************************************************************************************************************** // ******************************************************************************************************************** // Include default files #include <a_samp> #include <zcmd> #include <dutils> #include <sscanf2> #include <streamer> #include <fixchars> // Include all define-statements and custom-type declarations and the arrays which use them // These files need to be included before the functions get included, because the functions use the defines, custom types and the arrays // Also include the defined loads (for truckers, military, mafia, ...) and locations arrays #include <PPC_DefTexts> #include <PPC_ServerSettings> #include <PPC_Defines> #include <PPC_DefLocations> #include <PPC_DefLoads> #include <PPC_DefCars> #include <PPC_DefPlanes> #include <PPC_DefTrailers> #include <PPC_DefBuyableVehicles> // Include functions for this gamemode #include <PPC_GlobalTimer> #include <PPC_Common> #include <PPC_Housing> #include <PPC_Business> #include <PPC_GameModeInit> #include <PPC_FileOperations> #include <PPC_Speedometer> #include <PPC_MissionsTrucking> #include <PPC_MissionsBus> #include <PPC_MissionsPilot> #include <PPC_MissionsPolice> #include <PPC_MissionsMafia> #include <PPC_MissionsAssistance> #include <PPC_MissionsCourier> #include <PPC_MissionsRoadworker> #include <PPC_Convoys> #include <PPC_Dialogs> #include <PPC_PlayerCommands> #include <PPC_Toll> // The main function (used only once when the server loads) main() { // Print some standard lines to the server\'s console print(\"\\n----------------------------------\"); print(GameModeName); print(\"----------------------------------\\n\"); } // This callback gets called when the server initializes the gamemode public OnGameModeInit() { new HostCommand[128]; // Change the hostname format(HostCommand, 128, \"hostname %s\", GameModeName); SendRconCommand(HostCommand); SetGameModeText(GameModeName); // Set the Mode of the gamemode, which appears in the list of servers GameModeInit_VehiclesPickups(); // Add all static vehicles and pickups when the server starts that are required (also load the houses) GameModeInit_Classes(); // Add character models to the class-selection (without weapons) Convoys_Init(); // Setup textdraws and default data for convoys ShowPlayerMarkers(1); // Show players on the entire map (and on the radar) ShowNameTags(1); // Show player names (and health) above their head ManualVehicleEngineAndLights(); // Let the server control the vehicle\'s engine and lights EnableStuntBonusForAll(0); // Disable stunt bonus for all players DisableInteriorEnterExits(); // Removes all building-entrances in the game UsePlayerPedAnims(); // Use CJ\'s walking animation // Start the timer that will show timed messages every 2 minutes SetTimer(\"Timer_TimedMessages\", 1000 * 60 * 2, true); // Start the timer that will show a random bonus mission for truckers every 5 minutes SetTimer(\"ShowRandomBonusMission\", 1000 * 60 * 5, true); // Start the timer that checks the toll-gates SetTimer(\"Toll\", 1000, true); // Fix the bugged houses (after fixing the houses, you can remove this line, as it\'s not needed anymore) FixHouses(); // While the gamemode starts, start the global timer, and run it every second SetTimer(\"GlobalTimer\", 1000, true); return 1; } // This callback gets called when a player connects to the server public OnPlayerConnect(playerid) { GameTextForPlayer(playerid,\"~w~HUN Kamionos Szerver\",3000,4); SendClientMessage(playerid, 0xFFFFFFFF, \"{FFFF00}Üdvözlünk a szerveren!\"); SendClientMessage(playerid, 0xFFFFFFFF, \"{FFFF00}Szerver tulajdonosok: Szily88 es Csabee\"); SendClientMessage(playerid, 0xFFFFFFFF, \"{FFFF00}ADMIN:[RC]Zsolti!\"); SendClientMessage(playerid, 0xFFFFFFFF, \"{FF0000}Skype:szilixdd \"); SendClientMessage(playerid, 0xFFFFFFFF, \"{FF0000}A szabályokért{FFFF00}/rules{FF0000}A parancsokért {FFFF00}/cmds\"); // Always allow NPC\'s to login without password or account if (IsPlayerNPC(playerid)) return 1; // Setup local variables new Name[MAX_PLAYER_NAME], NewPlayerMsg[128], HouseID; // Setup a PVar to allow cross-script money-transfers (only from filterscript to this mainscript) and scorepoints SetPVarInt(playerid, \"PVarMoney\", 0); SetPVarInt(playerid, \"PVarScore\", 0); // Get the playername GetPlayerName(playerid, Name, sizeof(Name)); // Also store this name for the player GetPlayerName(playerid, APlayerData[playerid][PlayerName], 24); // Send a message to all players to let them know somebody else joined the server format(NewPlayerMsg, 128, TXT_PlayerJoinedServer, Name, playerid); SendClientMessageToAll(0xFFFFFFFF, NewPlayerMsg); // Try to load the player\'s datafile (\"PlayerFile_Load\" returns \"1\" is the file has been read, \"0\" when the file cannot be read) if (PlayerFile_Load(playerid) == 1) { // Check if the player is still banned if (APlayerData[playerid][banTime] < gettime()) // Player ban-time is passed ShowPlayerDialog(playerid, DialogLogin, DIALOG_STYLE_INPUT, TXT_DialogLoginTitle, TXT_DialogLoginMsg, TXT_DialogLoginButton1, TXT_DialogButtonCancel); else // Player is still banned { ShowRemainingBanTime(playerid); // Show the remaining ban-time to the player is days, hours, minutes, seconds Kick(playerid); // Kick the player } } else ShowPlayerDialog(playerid, DialogRegister, DIALOG_STYLE_INPUT, TXT_DialogRegisterTitle, TXT_DialogRegisterMsg, TXT_DialogRegisterButton1, TXT_DialogButtonCancel); // The houses have been loaded but not the cars, so load all vehicles assigned to the player\'s houses for (new HouseSlot; HouseSlot < MAX_HOUSESPERPLAYER; HouseSlot++) { // Get the HouseID from this slot HouseID = APlayerData[playerid][Houses][HouseSlot]; // Check if there is a house in this slot if (HouseID != 0) HouseFile_Load(HouseID, true); // Load the cars of the house } // Speedometer setup Speedometer_Setup(playerid); // MissionText TextDraw setup APlayerData[playerid][MissionText] = TextDrawCreate(320.0, 430.0, \" \"); // Setup the missiontext at the bottom of the screen TextDrawAlignment(APlayerData[playerid][MissionText], 2); // Align the missiontext to the center TextDrawUseBox(APlayerData[playerid][MissionText], 1); // Set the missiontext to display inside a box TextDrawBoxColor(APlayerData[playerid][MissionText], 0x00000066); // Set the box color of the missiontext // Display a message if the player hasn\'t accepted the rules yet if (APlayerData[playerid][RulesRead] == false) SendClientMessage(playerid, 0xFFFFFFFF, \"{FF0000}A szabályokért{FFFF00}/rules{FF0000}A parancsokért {FFFF00}/cmds\"); return 1; } // This function shows the player how long his ban still is when he tries to login (in days, hours, minutes, seconds) ShowRemainingBanTime(playerid) { // Setup local variables new TotalBanTime, Days, Hours, Minutes, Seconds, Msg[128]; // Get the total ban-time TotalBanTime = APlayerData[playerid][banTime] - gettime(); // Calculate days if (TotalBanTime >= 86400) { Days = TotalBanTime / 86400; TotalBanTime = TotalBanTime - (Days * 86400); } // Calculate hours if (TotalBanTime >= 3600) { Hours = TotalBanTime / 3600; TotalBanTime = TotalBanTime - (Hours * 3600); } // Calculate minutes if (TotalBanTime >= 60) { Minutes = TotalBanTime / 60; TotalBanTime = TotalBanTime - (Minutes * 60); } // Calculate seconds Seconds = TotalBanTime; // Display the remaining ban-time for this player SendClientMessage(playerid, 0xFFFFFFFF, TXT_StillBanned); format(Msg, 128, TXT_BannedDuration, Days, Hours, Minutes, Seconds); SendClientMessage(playerid, 0xFFFFFFFF, Msg); } // This callback gets called when a player disconnects from the server public OnPlayerDisconnect(playerid, reason) { // Always allow NPC\'s to logout without password or account if (IsPlayerNPC(playerid)) return 1; // Setup local variables new Name[24], Msg[128], HouseID; // Get the playername GetPlayerName(playerid, Name, sizeof(Name)); // Stop spectate mode for all players who are spectating this player for (new i; i < MAX_PLAYERS; i++) if (IsPlayerConnected(i)) // Check if the player is connected if (GetPlayerState(i) == PLAYER_STATE_SPECTATING) // Check if this player is spectating somebody if (APlayerData[spectateID] == playerid) // Check if this player is spectating me { TogglePlayerSpectating(i, 0); // Turn off spectate-mode APlayerData[spectateID] = INVALID_PLAYER_ID; APlayerData[spectateType] = ADMIN_SPEC_TYPE_NONE; SendClientMessage(i, 0xFFFFFFFF, \"{FF0000}Ki lépett a megfigyelt játékos ezért vége a spec modnak.\"); } // Send a message to all players to let them know somebody left the server format(Msg, 128, TXT_PlayerLeftServer, Name, playerid); SendClientMessageToAll(0xFFFFFFFF, Msg); // If the player entered a proper password (the player has an account) if (strlen(APlayerData[playerid][PlayerPassword]) != 0) { // Save the player data and his houses PlayerFile_Save(playerid); } // Stop any job that may have started (this also clears all mission data) switch (APlayerData[playerid][PlayerClass]) { case ClassTruckDriver: Trucker_EndJob(playerid); // Stop any trucker job case ClassBusDriver: BusDriver_EndJob(playerid); // Stop any busdriver job case ClassPilot: Pilot_EndJob(playerid); // Stop any pilot job case ClassPolice: Police_EndJob(playerid); // Stop any police job case ClassMafia: Mafia_EndJob(playerid); // Stop any mafia job case ClassAssistance: Assistance_EndJob(playerid); case ClassRoadWorker: Roadworker_EndJob(playerid); } // If the player is part of a convoy, kick him from it Convoy_Leave(playerid); // Unload all the player\'s house-vehicles to make room for other player\'s vehicles for (new HouseSlot; HouseSlot < MAX_HOUSESPERPLAYER; HouseSlot++) { // Get the HouseID from this slot HouseID = APlayerData[playerid][Houses][HouseSlot]; // Check if there is a house in this slot if (HouseID != 0) { // Unload the cars of the house House_RemoveVehicles(HouseID); // Set the house so it cannot be entered by anyone (close the house) AHouseData[HouseID][HouseOpened] = false; } } // Clear the data in the APlayerData array to make sure the next player with the same id doesn\'t hold wrong data APlayerData[playerid][spectateID] = -1; APlayerData[playerid][spectateVehicle] = -1; APlayerData[playerid][spectateType] = ADMIN_SPEC_TYPE_NONE; APlayerData[playerid][LoggedIn] = false; APlayerData[playerid][AssistanceNeeded] = false; APlayerData[playerid][PlayerPassword] = 0; APlayerData[playerid][PlayerLevel] = 0; APlayerData[playerid][PlayerJailed] = 0; APlayerData[playerid][PlayerFrozen] = 0; // Clearing this variable automatically kills the frozentimer APlayerData[playerid][bans] = 0; APlayerData[playerid][banTime] = 0; APlayerData[playerid][Muted] = false; APlayerData[playerid][RulesRead] = false; APlayerData[playerid][AutoReportTime] = 0; APlayerData[playerid][TruckerLicense] = 0; APlayerData[playerid][busLicense] = 0; APlayerData[playerid][PlayerClass] = 0; APlayerData[playerid][Warnings] = 0; APlayerData[playerid][PlayerMoney] = 0; APlayerData[playerid][PlayerScore] = 0; for (new HouseSlot; HouseSlot < MAX_HOUSESPERPLAYER; HouseSlot++) APlayerData[playerid][Houses][HouseSlot] = 0; for (new BusSlot; BusSlot < MAX_BUSINESSPERPLAYER; BusSlot++) APlayerData[playerid][business][busSlot] = 0; APlayerData[playerid][CurrentHouse] = 0; // Clear bank account info APlayerData[playerid][bankPassword] = 0; APlayerData[playerid][bankLoggedIn] = false; APlayerData[playerid][bankMoney] = 0; // Clear stats APlayerData[playerid][statsTruckerJobs] = 0; APlayerData[playerid][statsConvoyJobs] = 0; APlayerData[playerid][statsBusDriverJobs] = 0; APlayerData[playerid][statsPilotJobs] = 0; APlayerData[playerid][statsMafiaJobs] = 0; APlayerData[playerid][statsMafiaStolen] = 0; APlayerData[playerid][statsPoliceFined] = 0; APlayerData[playerid][statsPoliceJailed] = 0; APlayerData[playerid][statsCourierJobs] = 0; APlayerData[playerid][statsRoadworkerJobs] = 0; APlayerData[playerid][statsAssistance] = 0; APlayerData[playerid][statsMetersDriven] = 0.0; // Clear police warnings APlayerData[playerid][PoliceCanJailMe] = false; APlayerData[playerid][PoliceWarnedMe] = false; APlayerData[playerid][Value_PoliceCanJailMe] = 0; // Make sure the jailtimer has been destroyed KillTimer(APlayerData[playerid][PlayerJailedTimer]); KillTimer(APlayerData[playerid][Timer_PoliceCanJailMe]); // Destroy the speedometer TextDraw for this player and the timer, also set the speed to 0 Speedometer_Cleanup(playerid); // Also destroy the missiontext TextDraw for this player TextDrawDestroy(APlayerData[playerid][MissionText]); // Destroy a rented vehicle is the player had any if (APlayerData[playerid][RentedVehicleID] != 0) { // Clear the data for the already rented vehicle AVehicleData[APlayerData[playerid][RentedVehicleID]][Model] = 0; AVehicleData[APlayerData[playerid][RentedVehicleID]][Fuel] = 0; AVehicleData[APlayerData[playerid][RentedVehicleID]][Owned] = false; AVehicleData[APlayerData[playerid][RentedVehicleID]][Owner] = 0; AVehicleData[APlayerData[playerid][RentedVehicleID]][PaintJob] = 0; for (new j; j < 14; j++) { AVehicleData[APlayerData[playerid][RentedVehicleID]][Components][j] = 0; } // Destroy the vehicle DestroyVehicle(APlayerData[playerid][RentedVehicleID]); // Clear the RentedVehicleID APlayerData[playerid][RentedVehicleID] = 0; } return 1; } // This callback gets called whenever a player uses the chat-box public OnPlayerText(playerid, text[]) { // Block the player\'s text if he has been muted if (APlayerData[playerid][Muted] == true) { // Let the player know he\'s still muted SendClientMessage(playerid, 0xFFFFFFFF, \"{FF0000}Te még mindig némítva vagy.\"); // Don\'t allow his text to be sent to the chatbox return 0; } return 1; } // This callback gets called when a player interacts with a dialog public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) { // Select the proper dialog to process switch (dialogid) { case DialogRegister: Dialog_Register(playerid, response, inputtext); // The \"Register\"-dialog case DialogLogin: Dialog_Login(playerid, response, inputtext); // The \"Login\"-dialog case DialogStatsOtherPlayer: Dialog_StatsOtherPlayer(playerid, response, listitem); case DialogStatsHouse: Dialog_StatsHouse(playerid, response, listitem); case DialogStatsGoHouse: Dialog_StatsGoHouse(playerid, response, listitem); case DialogStatsGoBusiness: Dialog_StatsGoBusiness(playerid, response, listitem); case DialogRescue: Dialog_Rescue(playerid, response, listitem); // The rescue-dialog case DialogBuyLicenses: Dialog_BuyLicenses(playerid, response, listitem); // The license-dialog (allows the player to buy trucker/busdriver licenses) case DialogRules: Dialog_Rules(playerid, response); case DialogTruckerJobMethod: Dialog_TruckerSelectJobMethod(playerid, response, listitem); // The work-dialog for truckers (shows the loads he can carry and lets the player choose the load) case DialogTruckerSelectLoad: Dialog_TruckerSelectLoad(playerid, response, listitem); // The load-selection dialog for truckers (shows the startlocations for the selected load and let the player choose his startlocation) case DialogTruckerStartLoc: Dialog_TruckerSelectStartLoc(playerid, response, listitem); // The start-location dialog for truckers (shows the endlocations for the selected load and let the player choose his endlocation) case DialogTruckerEndLoc: Dialog_TruckerSelectEndLoc(playerid, response, listitem); // The end-location dialog for truckers (processes the selected endlocation and starts the job) case DialogBusJobMethod: Dialog_BusSelectJobMethod(playerid, response, listitem); // The work-dialog for busdrivers (process the options to choose own busroute or auto-assigned busroute) case DialogBusSelectRoute: Dialog_BusSelectRoute(playerid, response, listitem); // Choose the busroute and start the job case DialogCourierSelectQuant: Dialog_CourierSelectQuant(playerid, response, listitem); case DialogBike: Dialog_Bike(playerid, response, listitem); // The bike-dialog case DialogCar: Dialog_Car(playerid, response, listitem); // The car-dialog (which uses a split dialog structure) case DialogPlane: Dialog_Plane(playerid, response, listitem); // The plane-dialog (which uses a split dialog structure) case DialogTrailer: Dialog_Trailer(playerid, response, listitem); // The trailer-dialog (which uses a split dialog structure) case DialogBoat: Dialog_Boat(playerid, response, listitem); // The boat-dialog case DialogRentCarClass: Dialog_RentProcessClass(playerid, response, listitem); // The player chose a vehicleclass from where he can rent a vehicle case DialogRentCar: Dialog_RentCar(playerid, response, listitem); // The player chose a vehicle from the list of vehicles from the vehicleclass he chose before case DialogPlayerCommands: Dialog_PlayerCommands(playerid, response, listitem); // Displays all commands in a split-dialog structure case DialogPrimaryCarColor: Dialog_PrimaryCarColor(playerid, response, listitem); case DialogSedundaryCarColor: Dialog_SedundaryCarColor(playerid, response, listitem); case DialogWeather: Dialog_Weather(playerid, response, listitem); // The weather dialog case DialogCarOption: Dialog_CarOption(playerid, response, listitem); // The caroption dialog case DialogSelectConvoy: Dialog_SelectConvoy(playerid, response, listitem); case DialogHouseMenu: Dialog_HouseMenu(playerid, response, listitem); // Process the main housemenu case DialogUpgradeHouse: Dialog_UpgradeHouse(playerid, response, listitem); // Process the house-upgrade menu case DialogGoHome: Dialog_GoHome(playerid, response, listitem); // Port to one of your houses case DialogHouseNameChange: Dialog_ChangeHouseName(playerid, response, inputtext); // Change the name of your house case DialogSellHouse: Dialog_SellHouse(playerid, response); // Sell the house case DialogBuyCarClass: Dialog_BuyCarClass(playerid, response, listitem); // The player chose a vehicleclass from where he can buy a vehicle case DialogBuyCar: Dialog_BuyCar(playerid, response, listitem); // The player chose a vehicle from the list of vehicles from the vehicleclass he chose before case DialogSellCar: Dialog_SellCar(playerid, response, listitem); case DialogBuyInsurance: Dialog_BuyInsurance(playerid, response); case DialogGetCarSelectHouse: Dialog_GetCarSelectHouse(playerid, response, listitem); case DialogGetCarSelectCar: Dialog_GetCarSelectCar(playerid, response, listitem); case DialogUnclampVehicles: Dialog_UnclampVehicles(playerid, response); case DialogCreateBusSelType: Dialog_CreateBusSelType(playerid, response, listitem); case DialogBusinessMenu: Dialog_BusinessMenu(playerid, response, listitem); case DialogGoBusiness: Dialog_GoBusiness(playerid, response, listitem); case DialogBusinessNameChange: Dialog_ChangeBusinessName(playerid, response, inputtext); // Change the name of your business case DialogSellBusiness: Dialog_SellBusiness(playerid, response); // Sell the business case DialogBankPasswordRegister: Dialog_BankPasswordRegister(playerid, response, inputtext); case DialogBankPasswordLogin: Dialog_BankPasswordLogin(playerid, response, inputtext); case DialogBankOptions: Dialog_BankOptions(playerid, response, listitem); case DialogBankDeposit: Dialog_BankDeposit(playerid, response, inputtext); case DialogBankWithdraw: Dialog_BankWithdraw(playerid, response, inputtext); case DialogBankTransferMoney: Dialog_BankTransferMoney(playerid, response, inputtext); case DialogBankTransferName: Dialog_BankTransferName(playerid, response, inputtext); case DialogBankCancel: Dialog_BankCancel(playerid, response); case DialogHelpItemChosen: Dialog_HelpItemChosen(playerid, response, listitem); case DialogHelpItem: Dialog_HelpItem(playerid, response); case DialogOldPassword: Dialog_OldPassword(playerid, response, inputtext); case DialogNewPassword: Dialog_NewPassword(playerid, response, inputtext); case DialogConfirmPassword: Dialog_ConfirmPassword(playerid, response); } return 1; } // this callback gets called when a player clicks on another player on the scoreboard public OnPlayerClickPlayer(playerid, clickedplayerid, source) { // Check if the player is an admin of at least level 1 if (APlayerData[playerid][PlayerLevel] >= 1) { // Setup local variables new Name[24], DialogTitle[128], PlayerStatList[3000], PlayerIP[16], NumHouses, NumBusinesses; // Construct the dialog-title GetPlayerName(clickedplayerid, Name, sizeof(Name)); format(DialogTitle, 128, \"Statisztika: %s\", Name); // Add the IP of the player to the list GetPlayerIp(clickedplayerid, PlayerIP, sizeof(PlayerIP)); format(PlayerStatList, sizeof(PlayerStatList), \"%s{FFFFFF}Játékos-IP: {00FF00}%s\\n\", PlayerStatList, PlayerIP); // Add the level of the player to the list format(PlayerStatList, sizeof(PlayerStatList), \"%s{FFFFFF}Admin-level: {00FF00}%i\\n\", PlayerStatList, APlayerData[clickedplayerid][PlayerLevel]); // Add the class of the player to the list switch(APlayerData[clickedplayerid][PlayerClass]) { case ClassTruckDriver: format(PlayerStatList, sizeof(PlayerStatList), \"%s{FFFFFF}Munka: {00FF00}Kamionos\\n\", PlayerStatList); case ClassBusDriver: format(PlayerStatList, sizeof(PlayerStatList), \"%s{FFFFFF}Munka: {00FF00}Buszos\\n\", PlayerStatList); case ClassPilot: format(PlayerStatList, sizeof(PlayerStatList), \"%s{FFFFFF}Munka: {00FF00}Pilóta\\n\", PlayerStatList); case ClassPolice: format(PlayerStatList, sizeof(PlayerStatList), \"%s{FFFFFF}Munka: {00FF00}Rendör\\n\", PlayerStatList); case ClassMafia: format(PlayerStatList, sizeof(PlayerStatList), \"%s{FFFFFF}Munka: {00FF00}Mafia\\n\", PlayerStatList); case ClassCourier: format(PlayerStatList, sizeof(PlayerStatList), \"%s{FFFFFF}Munka: {00FF00}Pizzafutár\\n\", PlayerStatList); case ClassAssistance: format(PlayerStatList, sizeof(PlayerStatList), \"%s{FFFFFF}Munka: {00FF00}Szerelo\\n\", PlayerStatList); } // Add money and score of the player to the list format(PlayerStatList, sizeof(PlayerStatList), \"%s{FFFFFF}Pénz: {00FF00}%i\\n\", PlayerStatList, APlayerData[clickedplayerid][PlayerMoney]); format(PlayerStatList, sizeof(PlayerStatList), \"%s{FFFFFF}POntok: {00FF00}%i\\n\", PlayerStatList, APlayerData[clickedplayerid][PlayerScore]); // Add wanted-level of the player to the list format(PlayerStatList, sizeof(PlayerStatList), \"%s{FFFFFF}Körözés: {00FF00}%i\\n\", PlayerStatList, GetPlayerWantedLevel(clickedplayerid)); // Add truckerlicense and busdriver license of the player to the list if (APlayerData[clickedplayerid][TruckerLicense] == 1) format(PlayerStatList, sizeof(PlayerStatList), \"%s{FFFFFF}Kamionos jogsi: {00FF00}Yes\\n\", PlayerStatList); else format(PlayerStatList, sizeof(PlayerStatList), \"%s{FFFFFF}Kamionos jogsi: {00FF00}No\\n\", PlayerStatList); if (APlayerData[clickedplayerid][busLicense] == 1) format(PlayerStatList, sizeof(PlayerStatList), \"%s{FFFFFF}Busz jogis: {00FF00}Yes\\n\", PlayerStatList); else format(PlayerStatList, sizeof(PlayerStatList), \"%s{FFFFFF}Busz jogis: {00FF00}No\\n\", PlayerStatList); format(PlayerStatList, sizeof(PlayerStatList), \"%s{FFFFFF}Sikeresen Befejezted a Kamionos munkát: {00FF00}%i\\n\", PlayerStatList, APlayerData[clickedplayerid][statsTruckerJobs]); format(PlayerStatList, sizeof(PlayerStatList), \"%s{FFFFFF}Sikeresen Befejezted a convoy munkát: {00FF00}%i\\n\", PlayerStatList, APlayerData[clickedplayerid][statsConvoyJobs]); format(PlayerStatList, sizeof(PlayerStatList), \"%s{FFFFFF}Sikeresen Befejezted a buszos munkát: {00FF00}%i\\n\", PlayerStatList, APlayerData[clickedplayerid][statsBusDriverJobs]); format(PlayerStatList, sizeof(PlayerStatList), \"%s{FFFFFF}Sikeresen Befejezted a pilota munkát: {00FF00}%i\\n\", PlayerStatList, APlayerData[clickedplayerid][statsPilotJobs]); format(PlayerStatList, sizeof(PlayerStatList), \"%s{FFFFFF}Sikeresen Befejezted a maffia melot: {00FF00}%i\\n\", PlayerStatList, APlayerData[clickedplayerid][statsMafiaJobs]); format(PlayerStatList, sizeof(PlayerStatList), \"%s{FFFFFF}Stolen mafia-loads: {00FF00}%i\\n\", PlayerStatList, APlayerData[clickedplayerid][statsMafiaStolen]); format(PlayerStatList, sizeof(PlayerStatList), \"%s{FFFFFF}Fined players: {00FF00}%i\\n\", PlayerStatList, APlayerData[clickedplayerid][statsPoliceFined]); format(PlayerStatList, sizeof(PlayerStatList), \"%s{FFFFFF}Jailed players: {00FF00}%i\\n\", PlayerStatList, APlayerData[clickedplayerid][statsPoliceJailed]); format(PlayerStatList, sizeof(PlayerStatList), \"%s{FFFFFF}Sikeresen Befejezted a csomagszálitást: {00FF00}%i\\n\", PlayerStatList, APlayerData[clickedplayerid][statsCourierJobs]); format(PlayerStatList, sizeof(PlayerStatList), \"%s{FFFFFF}Sikeresen Befejezted a Ut karbantartoi munkát: {00FF00}%i\\n\", PlayerStatList, APlayerData[clickedplayerid][statsRoadworkerJobs]); format(PlayerStatList, sizeof(PlayerStatList), \"%s{FFFFFF}Assistolt játékos: {00FF00}%i\\n\", PlayerStatList, APlayerData[clickedplayerid][statsAssistance]); format(PlayerStatList, sizeof(PlayerStatList), \"%s{FFFFFF}Megtett méter!: {00FF00}%f\\n\", PlayerStatList, APlayerData[clickedplayerid][statsMetersDriven]); // Count the number of houses/businesses that the player has and add them to the list for (new i; i < MAX_HOUSESPERPLAYER; i++) if (APlayerData[clickedplayerid][Houses] != 0) NumHouses++; for (new i; i < MAX_BUSINESSPERPLAYER; i++) if (APlayerData[clickedplayerid][business] != 0) NumBusinesses++; format(PlayerStatList, sizeof(PlayerStatList), \"%s{FFFFFF}Házak: {00FF00}%i (Dupla kattintás)\\n\", PlayerStatList, NumHouses); format(PlayerStatList, sizeof(PlayerStatList), \"%s{FFFFFF}Boltok: {00FF00}%i (upla kattintás)\\n\", PlayerStatList, NumBusinesses); // Store the player-id of the other player so the other dialogs can display his statistics further (houses, businesses, cars) APlayerData[playerid][DialogOtherPlayer] = clickedplayerid; // Show the statistics of the other player ShowPlayerDialog(playerid, DialogStatsOtherPlayer, DIALOG_STYLE_LIST, DialogTitle, PlayerStatList, TXT_DialogButtonSelect, TXT_DialogButtonCancel); // Let the player buy a license } return 1; } // This callback gets called when a player picks up any pickup public OnPlayerPickUpPickup(playerid, pickupid) { // If the player picks up the Buy_License pickup at the driving school in Doherty if (pickupid == Pickup_License) // Ask the player which license he wants to buy ShowPlayerDialog(playerid, DialogBuyLicenses, DIALOG_STYLE_LIST, TXT_DialogLicenseTitle, TXT_DialogLicenseList, TXT_DialogButtonBuy, TXT_DialogButtonCancel); // Let the player buy a license return 1; } // This callback gets called when a player spawns somewhere public OnPlayerSpawn(playerid) { // Always allow NPC\'s to spawn without logging in if (IsPlayerNPC(playerid)) return 1; // Check if the player properly logged in by typing his password if (APlayerData[playerid][LoggedIn] == false) { SendClientMessage(playerid, 0xFFFFFFFF, TXT_FailedLoginProperly); Kick(playerid); // Kick the player if he didn\'t log in properly } // Setup local variables new missiontext[200]; // Spawn the player in the global world (where everybody plays the game) SetPlayerVirtualWorld(playerid, 0); SetPlayerInterior(playerid, 0); // Also set a variable that tracks in which house the player currently is APlayerData[playerid][CurrentHouse] = 0; // Disable the clock TogglePlayerClock(playerid, 0); // Delete all weapons from the player ResetPlayerWeapons(playerid); // Set the missiontext based on the chosen class switch (APlayerData[playerid][PlayerClass]) { case ClassTruckDriver: // Truck-driver class { format(missiontext, sizeof(missiontext), Trucker_NoJobText); // Preset the missiontext SetPlayerColor(playerid, ColorClassTruckDriver); // Set the playercolor (chatcolor for the player and color on the map) } case ClassBusDriver: // Bus-driver class { format(missiontext, sizeof(missiontext), BusDriver_NoJobText); // Preset the missiontext SetPlayerColor(playerid, ColorClassBusDriver); // Set the playercolor (chatcolor for the player and color on the map) } case ClassPilot: // Pilot class { format(missiontext, sizeof(missiontext), Pilot_NoJobText); // Preset the missiontext SetPlayerColor(playerid, ColorClassPilot); // Set the playercolor (chatcolor for the player and color on the map) } case ClassPolice: // Police class { format(missiontext, sizeof(missiontext), Police_NoJobText); // Preset the missiontext SetPlayerColor(playerid, ColorClassPolice); // Set the playercolor (chatcolor for the player and color on the map) // Start the PlayerCheckTimer to scan for wanted players (be sure the timer has been destroyed first) KillTimer(APlayerData[playerid][PlayerCheckTimer]); APlayerData[playerid][PlayerCheckTimer] = SetTimerEx(\"Police_CheckWantedPlayers\", 1000, true, \"i\", playerid); // Check if the police player can get weapons if (PoliceGetsWeapons == true) { // Give up to 12 weapons to the player for (new i; i < 12; i++) GivePlayerWeapon(playerid, APoliceWeapons, PoliceWeaponsAmmo); } } case ClassMafia: // Mafia class { format(missiontext, sizeof(missiontext), Mafia_NoJobText); // Preset the missiontext SetPlayerColor(playerid, ColorClassMafia); // Set the playercolor (chatcolor for the player and color on the map) // Start the PlayerCheckTimer to scan for players that carry mafia-loads (be sure the timer has been destroyed first) KillTimer(APlayerData[playerid][PlayerCheckTimer]); APlayerData[playerid][PlayerCheckTimer] = SetTimerEx(\"Mafia_CheckMafiaLoads\", 1000, true, \"i\", playerid); } case ClassCourier: // Courier class { format(missiontext, sizeof(missiontext), Courier_NoJobText); // Preset the missiontext SetPlayerColor(playerid, ColorClassCourier); // Set the playercolor (chatcolor for the player and color on the map) } case ClassAssistance: // Assistance class { format(missiontext, sizeof(missiontext), Assistance_NoJobText); // Preset the missiontext SetPlayerColor(playerid, ColorClassAssistance); // Set the playercolor (chatcolor for the player and color on the map) // Start the PlayerCheckTimer to scan for players who need assistance (be sure the timer has been destroyed first) KillTimer(APlayerData[playerid][PlayerCheckTimer]); APlayerData[playerid][PlayerCheckTimer] = SetTimerEx(\"Assistance_CheckPlayers\", 1000, true, \"i\", playerid); } case ClassRoadWorker: // Roadworker class { format(missiontext, sizeof(missiontext), RoadWorker_NoJobText); // Preset the missiontext SetPlayerColor(playerid, ColorClassRoadWorker); // Set the playercolor (chatcolor for the player and color on the map) } } // Set the missiontext TextDrawSetString(APlayerData[playerid][MissionText], missiontext); // Show the missiontext for this player TextDrawShowForPlayer(playerid, APlayerData[playerid][MissionText]); // If the player spawns and his jailtime hasn\'t passed yet, put him back in jail if (APlayerData[playerid][PlayerJailed] != 0) Police_JailPlayer(playerid, APlayerData[playerid][PlayerJailed]); return 1; } // This callback gets called whenever a player enters a checkpoint public OnPlayerEnterCheckpoint(playerid) { // Check the player\'s class switch (APlayerData[playerid][PlayerClass]) { case ClassTruckDriver: // Truckdriver class Trucker_OnPlayerEnterCheckpoint(playerid); // Process the checkpoint (load or unload goods) case ClassBusDriver: // BusDriver class { GameTextForPlayer(playerid, TXT_BusDriverMissionPassed, 3000, 4); // Show a message to let the player know he finished his job BusDriver_EndJob(playerid); // End the current mission } case ClassPilot: // Pilot class Pilot_OnPlayerEnterCheckpoint(playerid); // Process the checkpoint (load or unload) case ClassMafia: // Mafia class Mafia_OnPlayerEnterCheckpoint(playerid); case ClassCourier: // Courier class Courier_OnPlayerEnterCheckpoint(playerid); case ClassRoadWorker: // Roadworker class { // Only end the mission when doing \"repair-speedcamera\" jobtype (checkpoint is the base of the roadworker) if (APlayerData[playerid][JobID] == 1) // Repairing speedcamera\'s { GameTextForPlayer(playerid, TXT_RoadworkerMissionPassed, 3000, 4); // Show a message to let the player know he finished his job Roadworker_EndJob(playerid); // End the current mission } if (APlayerData[playerid][JobID] == 2) // Towing broken vehicle to shredder Roadworker_EnterCheckpoint(playerid); } } return 1; } // This callback gets called when a player enters a race-checkpoint public OnPlayerEnterRaceCheckpoint(playerid) { // Check the player\'s class switch (APlayerData[playerid][PlayerClass]) { case ClassBusDriver: // BusDriver class Bus_EnterRaceCheckpoint(playerid); // Process the checkpoint case ClassRoadWorker: // Roadworker class Roadworker_EnterRaceCheckpoint(playerid); } return 1; } // This callback gets called whenever a player dies public OnPlayerDeath(playerid, killerid, reason) { // Setup local variables new VictimName[24], KillerName[24], Msg[128]; // Clear the missiontext TextDrawSetString(APlayerData[playerid][MissionText], \" \"); // Hide the missiontext for this player (when the player is choosing a class, it\'s not required to show any mission-text) TextDrawHideForPlayer(playerid, APlayerData[playerid][MissionText]); // Stop any job that may have started switch (APlayerData[playerid][PlayerClass]) { case ClassTruckDriver: Trucker_EndJob(playerid); case ClassBusDriver: BusDriver_EndJob(playerid); case ClassPilot: Pilot_EndJob(playerid); case ClassPolice: Police_EndJob(playerid); case ClassMafia: Mafia_EndJob(playerid); case ClassCourier: Courier_EndJob(playerid); case ClassAssistance: Assistance_EndJob(playerid); case ClassRoadWorker: Roadworker_EndJob(playerid); } // If the player is part of a convoy, kick him from it Convoy_Leave(playerid); // If another player kills you, he\'ll get an extra star of his wanted level if (killerid != INVALID_PLAYER_ID) { // Increase the wanted level of the killer by one star SetPlayerWantedLevel(killerid, GetPlayerWantedLevel(killerid) + 1); // Get the name of the killed player and the killer GetPlayerName(playerid, VictimName, sizeof(VictimName)); GetPlayerName(killerid, KillerName, sizeof(KillerName)); // Let the killed know the police are informed about the kill format(Msg, 128, \"{FF0000}Megöltél {FFFF00}%s{FF0000}, egy jatékost ezér köröz a rendörség\", VictimName); SendClientMessage(killerid, 0xFFFFFFFF, Msg); // Inform all police players about the kill format(Msg, 128, \"{00FF00}Játékos {FFFF00}%s {00FF00}megölted {FFFF00}%s {00FF00}játékost,ezért most keres a rendorség.\", KillerName, VictimName); Police_SendMessage(Msg); } return 1; } // This callback gets called when the player is selecting a class (but hasn\'t clicked \"Spawn\" yet) public OnPlayerRequestClass(playerid, classid) { SetPlayerInterior(playerid,14); SetPlayerPos(playerid,258.4893,-41.4008,1002.0234); SetPlayerFacingAngle(playerid, 270.0); SetPlayerCameraPos(playerid,256.0815,-43.0475,1004.0234); SetPlayerCameraLookAt(playerid,258.4893,-41.4008,1002.0234); // Display a short message to inform the player about the class he\'s about to choose switch (classid) { case 0, 1, 2, 3, 4, 5, 6, 7: // Classes that will be truckdrivers { // Display the name of the class GameTextForPlayer(playerid, TXT_ClassTrucker, 3000, 4); // Store the class for the player (truckdriver) APlayerData[playerid][PlayerClass] = ClassTruckDriver; } case 8, 9: // Classes that will be bus-drivers { // Display the name of the class GameTextForPlayer(playerid, TXT_ClassBusDriver, 3000, 4); // Store the class for the player (busdriver) APlayerData[playerid][PlayerClass] = ClassBusDriver; } case 10: // Classes that will be Pilot { // Display the name of the class GameTextForPlayer(playerid, TXT_ClassPilot, 3000, 4); // Store the class for the player (pilot) APlayerData[playerid][PlayerClass] = ClassPilot; } case 11, 12, 13: // Classes that will be police { // Display the name of the class GameTextForPlayer(playerid, TXT_ClassPolice, 3000, 4); // Store the class for the player (police) APlayerData[playerid][PlayerClass] = ClassPolice; } case 14, 15, 16: // Classes that will be mafia { // Display the name of the class GameTextForPlayer(playerid, TXT_ClassMafia, 3000, 4); // Store the class for the player (mafia) APlayerData[playerid][PlayerClass] = ClassMafia; } case 17, 18: // Classes that will be courier { // Display the name of the class GameTextForPlayer(playerid, TXT_ClassCourier, 3000, 4); // Store the class for the player (courier) APlayerData[playerid][PlayerClass] = ClassCourier; } case 19: // Classes that will be assistance { // Display the name of the class GameTextForPlayer(playerid, TXT_ClassAssistance, 3000, 4); // Store the class for the player (assistance) APlayerData[playerid][PlayerClass] = ClassAssistance; } case 20, 21, 22: // Classes that will be roadworker { // Display the name of the class GameTextForPlayer(playerid, TXT_ClassRoadWorker, 3000, 4); // Store the class for the player (roadworker) APlayerData[playerid][PlayerClass] = ClassRoadWorker; } } return 1; } // This callback is called when the player attempts to spawn via class-selection public OnPlayerRequestSpawn(playerid) { new Index, Float:x, Float:y, Float:z, Float:Angle, Name[24], Msg[128]; // Get the player\'s name GetPlayerName(playerid, Name, sizeof(Name)); // Choose a random spawnlocation based on the player\'s class switch (APlayerData[playerid][PlayerClass]) { case ClassTruckDriver: { Index = random(sizeof(ASpawnLocationsTrucker)); // Get a random array-index to chose a random spawnlocation x = ASpawnLocationsTrucker[index][spawnX]; // Get the X-position for the spawnlocation y = ASpawnLocationsTrucker[index][spawnY]; // Get the Y-position for the spawnlocation z = ASpawnLocationsTrucker[index][spawnZ]; // Get the Z-position for the spawnlocation Angle = ASpawnLocationsTrucker[index][spawnAngle]; // Get the rotation-angle for the spawnlocation format(Msg, 128, \"{00FF00}Játékos {FFFF00}%s{00FF00} Belépet {FFFF00}A kamionos csoportba\", Name); } case ClassBusDriver: { Index = random(sizeof(ASpawnLocationsBusDriver)); x = ASpawnLocationsBusDriver[index][spawnX]; // Get the X-position for the spawnlocation y = ASpawnLocationsBusDriver[index][spawnY]; // Get the Y-position for the spawnlocation z = ASpawnLocationsBusDriver[index][spawnZ]; // Get the Z-position for the spawnlocation Angle = ASpawnLocationsBusDriver[index][spawnAngle]; // Get the rotation-angle for the spawnlocation format(Msg, 128, \"{00FF00}Játékos {FFFF00}%s{00FF00} Belépet {FFFF00}A Buszos csoportba\", Name); } case ClassPilot: { Index = random(sizeof(ASpawnLocationsPilot)); x = ASpawnLocationsPilot[index][spawnX]; // Get the X-position for the spawnlocation y = ASpawnLocationsPilot[index][spawnY]; // Get the Y-position for the spawnlocation z = ASpawnLocationsPilot[index][spawnZ]; // Get the Z-position for the spawnlocation Angle = ASpawnLocationsPilot[index][spawnAngle]; // Get the rotation-angle for the spawnlocation format(Msg, 128, \"{00FF00}Játékos {FFFF00}%s{00FF00} Belépet {FFFF00}A pilota csoportba\", Name); } case ClassPolice: { // Count the number of normal players (all classes except police) and count the amount of police players new NormalPlayers, PolicePlayers, bool:CanSpawnAsCop = false; // Block this check if PlayersBeforePolice is set to 0 (this allows anyone to join as police) if (PlayersBeforePolice > 0) { // Loop through all players for (new pid; pid < MAX_PLAYERS; pid++) { // Exclude this player, as he doesn\'t have a class yet, he\'s still choosing here if (pid != playerid) { // Also exclude all players who are still in the class-selection screen, as they don\'t have a class selected yet if (GetPlayerInterior(pid) != 14) { // Check if this player is logged in if (APlayerData[pid][LoggedIn] == true) { // Count the amount of normal players and police players switch (APlayerData[pid][PlayerClass]) { case ClassPolice: PolicePlayers++; case ClassTruckDriver, ClassBusDriver, ClassPilot, ClassMafia, ClassCourier, ClassAssistance, ClassRoadWorker: NormalPlayers++; } } } } } // Check if there are less police players than allowed if (PolicePlayers < (NormalPlayers / PlayersBeforePolice)) CanSpawnAsCop = true; // There are less police players than allowed, so the player can choose this class else CanSpawnAsCop = false; // The maximum amount of police players has been reached, the player can\'t choose to be a cop // Check if the player isn\'t allowed to spawn as police if (CanSpawnAsCop == false) { // Let the player know the maximum amount of cops has been reached GameTextForPlayer(playerid, \"Maximális összege a zsaruk már elérte.\", 5000, 4); SendClientMessage(playerid, 0xFFFFFFFF, \"{FF0000}A maximális összege zsaruk már elérte, válasszon egy másik munka csoportot.\"); return 0; // Don\'t allow the player to spawn as police player } } // If the player has less than 100 scorepoints if (APlayerData[playerid][PlayerScore] < 80) { // Let the player know he needs 100 scorepoints GameTextForPlayer(playerid, \"100 pont kell hogy rend&#245;r lehes\", 5000, 4); SendClientMessage(playerid, 0xFFFFFFFF, \"{FF0000}100 pont kell hogy rend&#245;r lehes\"); return 0; // Don\'t allow the player to spawn as police player } // If the player has a wanted level if (GetPlayerWantedLevel(playerid) > 0) { // Let the player know he can