Tomas99 0 Odesláno: 3. Duben, 2016 Share Odesláno: 3. Duben, 2016 Zdravím vás lidi. Tak jsem se maličko nudil a někdo po mě chtěl udělat script na respawn prázdních aut. Pak už jsi o něj neřekl tak ho dám tady vám. Vozidla se respawnují bud po určité době, kterou lze změnit na řádku 6 a7 Nebo je můžete respawnout pomocí příkazu /rc #include <a_samp> #define FILTERSCRIPT #define RESPAWN_MESSAGE #define RESPAWN_TIME 60000 #define RESPAWN_DELAY 10000 #define COLOR_RED 0xAA3333AA #define COLOR_LIME 0x10F441AA new string[24+MAX_PLAYERS]; #if defined FILTERSCRIPT public OnFilterScriptInit() { SetTimer("respawn_delay", RESPAWN_TIME, true); return 1; } public OnPlayerCommandText(playerid, cmdtext[]) { if(!strcmp(cmdtext, "/rc", true)) { new Float:delay = RESPAWN_DELAY / 1000; if (IsPlayerAdmin(playerid)){ format(string, sizeof(string), "[RESPAWN] Všechny prázdné vozidla budou respawnuti za: %.0f Sekund!", delay); SendClientMessageToAll(COLOR_RED, string); SetTimer("respawn", RESPAWN_DELAY, false); return 1; }else{ SendClientMessage(playerid, COLOR_RED, "Nejste Administrátor!"); return 1; } } return 0; } forward respawn(); forward respawn_delay(); forward a_respawn(); public respawn() { for(new car = 1; car <= MAX_VEHICLES; car++) { if(IsVehicleEmpty(car)) SetVehicleToRespawn(car); } SendClientMessageToAll(COLOR_LIME, "[RESPAWN] Všechny prázdná vozidla na serveru byli respawnuti!"); } public a_respawn() { for(new car = 1; car <= MAX_VEHICLES; car++) { if(IsVehicleEmpty(car)) SetVehicleToRespawn(car); } } public respawn_delay() { new Float:delay = RESPAWN_DELAY / 1000; SetTimer("respawn", RESPAWN_DELAY, false); format(string, sizeof(string), "[RESPAWN] Všechny prázdné vozidla budou respawnuti %.0f Sekund!", delay); SendClientMessageToAll(COLOR_RED, string); } stock IsVehicleEmpty(vehicleid) { for(new i=0; i<MAX_PLAYERS; i++) { if(IsPlayerInVehicle(i, vehicleid)) return 0; } return 1; } #endif Link to comment Share on other sites More sharing options...
Scydo 397 Odesláno: 3. Duben, 2016 Share Odesláno: 3. Duben, 2016 new string[24+MAX_PLAYERS]; ~> Právě jsi deklaroval proměnnou s polem 524. Chat ti stejně vezme sotva 144+1/PM.~> Proč udáváš čas v milisekundách a pak to zase dělíš? ~> Proč přidáváš zbytečně ten preprocesor? ~> Raději jsem udělal svojí verzi, zcela novou, protože upřímně... #include <a_samp> #define dRespawnTime (5) /* Sekundy */ new sString[144 + 1]; IsVehicleEmpty(vehicleid) { for(new i = 0, j = GetPlayerPoolSize(); i <= j; i++) { if(IsPlayerInAnyVehicle(i) && GetPlayerVehicleID(i) == vehicleid) return false; } return true; } GetPlayerNick(playerid) { new sNick[MAX_PLAYER_NAME + 1]; GetPlayerName(playerid, sNick, sizeof(sNick)); return sNick; } forward tOnPlayerRespawnCars(playerid); forward tOnGlobalRespawnCars(); public OnFilterScriptInit() { SetTimer("tOnGlobalRespawnCars", dRespawnTime * 1000, true); return true; } public OnPlayerCommandText(playerid, cmdtext[]) { if (!strcmp("/rc", cmdtext)) { if (!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, 0xFF000000, "Nemáte dostatečné oprávnění"); format(sString, sizeof(sString), "Všechna prázdná vozidla budou respawnuta za %i sekund", dRespawnTime); SendClientMessageToAll(0xFF000000, sString); SetTimerEx("tOnPlayerRespawnCars", dRespawnTime * 1000, false, "i", playerid); return true; } return false; } public tOnPlayerRespawnCars(playerid) { for(new iVehicles=1, j = GetVehiclePoolSize(); iVehicles<=j; iVehicles++) if(IsVehicleEmpty(iVehicles)) SetVehicleToRespawn(iVehicles); format(sString, sizeof(sString), "Administrátor %s respawnul všechna vozidla", GetPlayerNick(playerid)); SendClientMessageToAll(0xFF000000, sString); return true; } public tOnGlobalRespawnCars() { for(new iVehicles=1, j = GetVehiclePoolSize(); iVehicles<=j; iVehicles++) if(IsVehicleEmpty(iVehicles)) SetVehicleToRespawn(iVehicles); SendClientMessageToAll(0xFF000000, "Všechna prázdná vozidla byla respawnuta"); return true; } ~> Pro remcaly jsem to vyzkoušel a funguje to v pohodě. Jak příkazem tak automaticky. 2/10 za shanu, a že to zase není zase tak extrémní hrůza, jako umí někteří "vytvořit"(či okopčit). Link to comment Share on other sites More sharing options...
Tomas99 0 Odesláno: 3. Duben, 2016 Author Share Odesláno: 3. Duben, 2016 Ani nevím proč jsem to tak udělal, taky jsem si toho již všimnul, ale už se mi to nechtělo upravovat. A jinak děkuju za tvůj názor. Kouknu na ten tvůj kod. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now