18.10.2016, 16:30
(
Последний раз редактировалось dugi; 18.10.2016 в 18:21.
)
I downloaded this GameMode from the internet and because it has awesome systems i wanted to optimize it. I found this under OnPlayerUpdate. I wanted to check with you guys will this cause any lag on server because i know that OnPlayerUpdate is called so many times.. Thanks in advance 
EDIT:If it is going to cause lag or any problems at performance shoudl i make timers for these??
C'mon.. I am asking from opinion not for making whole system..
sorry for this please but

PHP код:
public OnPlayerUpdate(playerid)
{
////////////////////////////////////////////////////////////////////////////////////
zadnjiupdate[playerid] = GetTickCount();
/////////////////////////////////////////////////////////////////////////////////////
if(MechanicCallTime[playerid] > 0)
{
if(MechanicCallTime[playerid] == 30) { MechanicCallTime[playerid] = 0; DisablePlayerCheckpoint(playerid); PlayerPlaySound(playerid, 1056, 0.0, 0.0, 0.0); GameTextForPlayer(playerid, "~r~Marker uklonjen", 2500, 1); }
else
{
new string[20];
format(string, sizeof(string), "%d", 30 - MechanicCallTime[playerid]);
GameTextForPlayer(playerid, string, 1500, 6);
MechanicCallTime[playerid] += 1;
}
}
//////////////////////////////////////////////////////////////////////////////////////
//moneyz
/*new MStringy[128];
new money = GetPlayerMoney(playerid);
valstr(MStringy,money - PMoney[playerid]);
if(strlen(MStringy)<=8)
{
new Stringy[128];
new minm = money - PMoney[playerid];
if(minm != 0)
{
if(minm < 0)
{
format(Stringy,sizeof(Stringy),"%d$",minm);
if(!GetPlayerWantedLevel(playerid))
{
TextDrawSetString(MoneyText[playerid],Stringy);
TextDrawColor(MoneyText[playerid],0xff000099);
TextDrawShowForPlayer(playerid,MoneyText[playerid]);
}
else
{
TextDrawSetString(WMoneyText[playerid],Stringy);
TextDrawColor(WMoneyText[playerid],0xff000099);
TextDrawShowForPlayer(playerid,WMoneyText[playerid]);
}
}
else
{
format(Stringy,sizeof(Stringy),"+%d$",minm);
if(!GetPlayerWantedLevel(playerid))
{
TextDrawSetString(MoneyText[playerid],Stringy);
TextDrawColor(MoneyText[playerid],0x295921FF);
TextDrawShowForPlayer(playerid,MoneyText[playerid]);
}
else
{
TextDrawSetString(WMoneyText[playerid],Stringy);
TextDrawColor(WMoneyText[playerid],0x295921FF);
TextDrawShowForPlayer(playerid,WMoneyText[playerid]);
}
}
KillTimer(MoneyHide[playerid]);
MoneyHide[playerid]=SetTimerEx("HideMoneyText",4000,0,"i",playerid);
}
PMoney[playerid] = money;
}*/
/////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////
/*if(GetSpeed(playerid) > 300)
{
if(!VoziloJeAvion(GetPlayerVehicleID(playerid)))
{
if(PlayerInfo[playerid][pAdmin] == 8) return 1;
new string[128];
format(string, sizeof(string), ""SERVERPLAVA"[SF:RP]{ffffff} Igrac %s(ID: %d) mozda koristi speed hack, /specon!",GetName(playerid),playerid);
AdminGameSage(-1, string);
return 1;
}
}*/
////////////////////////////////////////////////////////////////////////////////////
new Float:Armour; GetPlayerArmour(playerid, Armour);
if(Armour > 99.0)
{
SPI(playerid,"Kikovani ste zbog armour hacka!");
freeze[playerid] = SetTimerEx("KonektKick", 1000, 0, "d", playerid);
return 1;
}
////////////////////////////////////////////////////////////////////////////////////
if(GetPlayerSpecialAction(playerid) == SPECIAL_ACTION_USEJETPACK && PlayerInfo[playerid][pAdmin] < 1337)
{
SPI(playerid,"Kikovani ste zbog jetpack hacka!");
freeze[playerid] = SetTimerEx("KonektKick", 1000, 0, "d", playerid);
return 1;
}
////////////////////////////////////////////////////////////////////////////////////
CheckWeapons(playerid);
////////////////////////////////////////////////////////////////////////////////////
if(KupovinaAuta[playerid] == true)
{
new string[128];
new Keys, ud, lr;
GetPlayerKeys(playerid, Keys, ud, lr);
if(lr > 0)
{
AutoModel++;
if(AutoModel > PRODAJA_AUTA-1) { AutoModel = 0; }
DestroyVehicle(IzlozbenoAuto);
IzlozbenoAuto = JBC_CreateVehicle(AutoSalon[AutoModel][0], AIZLOZBENO_X,AIZLOZBENO_Y,AIZLOZBENO_Z,AIZLOZBENO_A, 1, 1, 30000);
format(string,sizeof(string),"~r~%s",ImenaVozila[GetVehicleModel(IzlozbenoAuto) - 400]);
PlayerTextDrawSetString(playerid,TDProdajaVozila[2][playerid],string);
format(string,sizeof(string),"~w~Cijena: ~r~%d$",AutoSalon[AutoModel][1]);
PlayerTextDrawSetString(playerid,TDProdajaVozila[3][playerid],string);
//==================================================================
//==================================================================
//==================================================================
format(string,sizeof(string),"~w~Kilovati(kW): ~b~%d",AutoOpis[AutoModel][AutoOpiskW]);
PlayerTextDrawSetString(playerid,TDProdajaVozila[19][playerid],string);
format(string,sizeof(string),"~w~Kubikaza: ~b~%s",AutoOpis[AutoModel][AutoOpisKubikaza]);
PlayerTextDrawSetString(playerid,TDProdajaVozila[20][playerid],string);
format(string,sizeof(string),"~w~Konjskih snaga(hp): ~b~%d",AutoOpis[AutoModel][AutoOpisHP]);
PlayerTextDrawSetString(playerid,TDProdajaVozila[21][playerid],string);
format(string,sizeof(string),"~w~broj vrata: ~b~%d",AutoOpis[AutoModel][AutoOpisBrVrata]);
PlayerTextDrawSetString(playerid,TDProdajaVozila[23][playerid],string);
format(string,sizeof(string),"~w~pogon: ~b~%s",AutoOpis[AutoModel][AutoOpisPogon]);
PlayerTextDrawSetString(playerid,TDProdajaVozila[24][playerid],string);
format(string,sizeof(string),"~w~emisioni standard: ~b~%s",AutoOpis[AutoModel][AutoOpisEmStand]);
PlayerTextDrawSetString(playerid,TDProdajaVozila[25][playerid],string);
format(string,sizeof(string),"~w~sjedecih mjesta: ~b~%d",AutoOpis[AutoModel][AutoOpisSjedMj]);
PlayerTextDrawSetString(playerid,TDProdajaVozila[26][playerid],string);
format(string,sizeof(string),"~w~broj stepeni prijenosa: ~b~%s",AutoOpis[AutoModel][AutoOpisBrStepPr]);
PlayerTextDrawSetString(playerid,TDProdajaVozila[27][playerid],string);
format(string,sizeof(string),"~w~Tip vozila: ~b~%s",AutoOpis[AutoModel][AutoOpisTipV]);
PlayerTextDrawSetString(playerid,TDProdajaVozila[28][playerid],string);
format(string,sizeof(string),"~w~- ABS: ~b~%s",AutoOpis[AutoModel][AutoOpisABS]);
PlayerTextDrawSetString(playerid,TDProdajaVozila[30][playerid],string);
format(string,sizeof(string),"~w~- Servo: ~b~%s",AutoOpis[AutoModel][AutoOpisServo]);
PlayerTextDrawSetString(playerid,TDProdajaVozila[31][playerid],string);
format(string,sizeof(string),"~w~- airbag: ~b~%s",AutoOpis[AutoModel][AutoOpisAirBag]);
PlayerTextDrawSetString(playerid,TDProdajaVozila[32][playerid],string);
format(string,sizeof(string),"~w~- klima: ~b~%s",AutoOpis[AutoModel][AutoOpisKlima]);
PlayerTextDrawSetString(playerid,TDProdajaVozila[33][playerid],string);
format(string,sizeof(string),"~w~- ESP: ~b~%s",AutoOpis[AutoModel][AutoOpisESP]);
PlayerTextDrawSetString(playerid,TDProdajaVozila[34][playerid],string);
format(string,sizeof(string),"~w~- tempomat: ~b~%s",AutoOpis[AutoModel][AutoOpisTempomat]);
PlayerTextDrawSetString(playerid,TDProdajaVozila[35][playerid],string);
format(string,sizeof(string),"~w~- parking senzor: ~b~%s",AutoOpis[AutoModel][AutoOpisParkSenz]);
PlayerTextDrawSetString(playerid,TDProdajaVozila[36][playerid],string);
format(string,sizeof(string),"~w~- Grijanje u sjedistima: ~b~%s",AutoOpis[AutoModel][AutoOpisGrijUSj]);
PlayerTextDrawSetString(playerid,TDProdajaVozila[37][playerid],string);
format(string,sizeof(string),"~w~- Gorivo: ~b~%s",AutoOpis[AutoModel][AutoOpisGorivo]);
PlayerTextDrawSetString(playerid,TDProdajaVozila[22][playerid],string);
//==================================================================
//==================================================================
//==================================================================
PlayerTextDrawSetPreviewModel(playerid, TDProdajaVozila[0][playerid], AutoSalon[AutoModel][0]);
PlayerTextDrawShow(playerid, TDProdajaVozila[0][playerid]);
//==================================================================
PlayerTextDrawSetPreviewModel(playerid,TDProdajaVozila[4][playerid], AutoSalon[AutoModel][0]);
PlayerTextDrawShow(playerid, TDProdajaVozila[4][playerid]);
//==================================================================
PlayerTextDrawSetPreviewModel(playerid,TDProdajaVozila[5][playerid], AutoSalon[AutoModel][0]);
PlayerTextDrawShow(playerid, TDProdajaVozila[5][playerid]);
//==================================================================
}
else if(lr < 0)
{
AutoModel--;
if(AutoModel < 0) { AutoModel = PRODAJA_AUTA-1; }
DestroyVehicle(IzlozbenoAuto);
IzlozbenoAuto = JBC_CreateVehicle(AutoSalon[AutoModel][0], AIZLOZBENO_X,AIZLOZBENO_Y,AIZLOZBENO_Z,AIZLOZBENO_A, 1, 1, 30000);
format(string,sizeof(string),"~r~%s",ImenaVozila[GetVehicleModel(IzlozbenoAuto) - 400]);
PlayerTextDrawSetString(playerid,TDProdajaVozila[2][playerid],string);
format(string,sizeof(string),"~w~Cijena: ~r~%d$",AutoSalon[AutoModel][1]);
PlayerTextDrawSetString(playerid,TDProdajaVozila[3][playerid],string);
//==================================================================
//==================================================================
//==================================================================
format(string,sizeof(string),"~w~Kilovati(kW): ~b~%d",AutoOpis[AutoModel][AutoOpiskW]);
PlayerTextDrawSetString(playerid,TDProdajaVozila[19][playerid],string);
format(string,sizeof(string),"~w~Kubikaza: ~b~%s",AutoOpis[AutoModel][AutoOpisKubikaza]);
PlayerTextDrawSetString(playerid,TDProdajaVozila[20][playerid],string);
format(string,sizeof(string),"~w~Konjskih snaga(hp): ~b~%d",AutoOpis[AutoModel][AutoOpisHP]);
PlayerTextDrawSetString(playerid,TDProdajaVozila[21][playerid],string);
format(string,sizeof(string),"~w~broj vrata: ~b~%d",AutoOpis[AutoModel][AutoOpisBrVrata]);
PlayerTextDrawSetString(playerid,TDProdajaVozila[23][playerid],string);
format(string,sizeof(string),"~w~pogon: ~b~%s",AutoOpis[AutoModel][AutoOpisPogon]);
PlayerTextDrawSetString(playerid,TDProdajaVozila[24][playerid],string);
format(string,sizeof(string),"~w~emisioni standard: ~b~%s",AutoOpis[AutoModel][AutoOpisEmStand]);
PlayerTextDrawSetString(playerid,TDProdajaVozila[25][playerid],string);
format(string,sizeof(string),"~w~sjedecih mjesta: ~b~%d",AutoOpis[AutoModel][AutoOpisSjedMj]);
PlayerTextDrawSetString(playerid,TDProdajaVozila[26][playerid],string);
format(string,sizeof(string),"~w~broj stepeni prijenosa: ~b~%s",AutoOpis[AutoModel][AutoOpisBrStepPr]);
PlayerTextDrawSetString(playerid,TDProdajaVozila[27][playerid],string);
format(string,sizeof(string),"~w~Tip vozila: ~b~%s",AutoOpis[AutoModel][AutoOpisTipV]);
PlayerTextDrawSetString(playerid,TDProdajaVozila[28][playerid],string);
format(string,sizeof(string),"~w~- ABS: ~b~%s",AutoOpis[AutoModel][AutoOpisABS]);
PlayerTextDrawSetString(playerid,TDProdajaVozila[30][playerid],string);
format(string,sizeof(string),"~w~- Servo: ~b~%s",AutoOpis[AutoModel][AutoOpisServo]);
PlayerTextDrawSetString(playerid,TDProdajaVozila[31][playerid],string);
format(string,sizeof(string),"~w~- airbag: ~b~%s",AutoOpis[AutoModel][AutoOpisAirBag]);
PlayerTextDrawSetString(playerid,TDProdajaVozila[32][playerid],string);
format(string,sizeof(string),"~w~- klima: ~b~%s",AutoOpis[AutoModel][AutoOpisKlima]);
PlayerTextDrawSetString(playerid,TDProdajaVozila[33][playerid],string);
format(string,sizeof(string),"~w~- ESP: ~b~%s",AutoOpis[AutoModel][AutoOpisESP]);
PlayerTextDrawSetString(playerid,TDProdajaVozila[34][playerid],string);
format(string,sizeof(string),"~w~- tempomat: ~b~%s",AutoOpis[AutoModel][AutoOpisTempomat]);
PlayerTextDrawSetString(playerid,TDProdajaVozila[35][playerid],string);
format(string,sizeof(string),"~w~- parking senzor: ~b~%s",AutoOpis[AutoModel][AutoOpisParkSenz]);
PlayerTextDrawSetString(playerid,TDProdajaVozila[36][playerid],string);
format(string,sizeof(string),"~w~- Grijanje u sjedistima: ~b~%s",AutoOpis[AutoModel][AutoOpisGrijUSj]);
PlayerTextDrawSetString(playerid,TDProdajaVozila[37][playerid],string);
format(string,sizeof(string),"~w~- Gorivo: ~b~%s",AutoOpis[AutoModel][AutoOpisGorivo]);
PlayerTextDrawSetString(playerid,TDProdajaVozila[22][playerid],string);
//==================================================================
//==================================================================
//==================================================================
PlayerTextDrawSetPreviewModel(playerid,TDProdajaVozila[0][playerid], AutoSalon[AutoModel][0]);
PlayerTextDrawShow(playerid, TDProdajaVozila[0][playerid]);
//==================================================================
PlayerTextDrawSetPreviewModel(playerid,TDProdajaVozila[4][playerid], AutoSalon[AutoModel][0]);
PlayerTextDrawShow(playerid, TDProdajaVozila[4][playerid]);
//==================================================================
PlayerTextDrawSetPreviewModel(playerid,TDProdajaVozila[5][playerid], AutoSalon[AutoModel][0]);
PlayerTextDrawShow(playerid, TDProdajaVozila[5][playerid]);
//==================================================================
}
else if(Keys & KEY_SECONDARY_ATTACK)
{
//if(PlayerInfo[playerid][pPosedovanjeAuta] != -1) return SPI(playerid, "Vec posjedujes auto!");
if(PlayerInfo[playerid][pPosedovanjeAuta] == -1) { }
else if(PlayerInfo[playerid][pPosedovanjeAuta2] == -1) { }
else if(PlayerInfo[playerid][pPosedovanjeAuta3] == -1) { }
else { GRESKA(playerid,"Vec imate 3 vozila."); return 1; }
if(PlayerInfo[playerid][pNovacDzep] < AutoSalon[AutoModel][1]) return GRESKA(playerid,"Nemate dovoljno novca!");
for(new i = 0; i < sizeof(VoziloInfo); i++)
{
new Fajl[64];
format(Fajl, sizeof(Fajl), AUTO_FILE, i);
if(!fexist(Fajl))
{
new poz = random(sizeof(RandomAutoSpawn));
g_NovacMinus(playerid,AutoSalon[AutoModel][1]);
new ime[MAX_PLAYER_NAME];
RPIme(playerid, ime);
if(PlayerInfo[playerid][pPosedovanjeAuta] == -1) { PlayerInfo[playerid][pPosedovanjeAuta] = i; }
else if(PlayerInfo[playerid][pPosedovanjeAuta2] == -1) { PlayerInfo[playerid][pPosedovanjeAuta2] = i; }
else if(PlayerInfo[playerid][pPosedovanjeAuta3] == -1) { PlayerInfo[playerid][pPosedovanjeAuta3] = i; }
else { return 1; }
VoziloInfo[i][vModel] = AutoSalon[AutoModel][0];
VoziloInfo[i][vPozX] = RandomAutoSpawn[poz][0];
VoziloInfo[i][vPozY] = RandomAutoSpawn[poz][1];
VoziloInfo[i][vPozZ] = RandomAutoSpawn[poz][2];
VoziloInfo[i][vPozA] = RandomAutoSpawn[poz][3];
VoziloInfo[i][vInterior] = 0;
VoziloInfo[i][vVirtualWorld] = 0;
VoziloInfo[i][vBoja1] = 1;
VoziloInfo[i][vBoja2] = 1;
VoziloInfo[i][vImaVlasnika] = 1;
VoziloInfo[i][vZakljucan] = 1;
VoziloInfo[i][vDroga] = 0;
VoziloInfo[i][vMats] = 0;
VoziloInfo[i][vOruzje] = -1;
VoziloInfo[i][vMunicija] = 0;
VoziloInfo[i][vKomponenta1] = 0;
VoziloInfo[i][vKomponenta2] = 0;
VoziloInfo[i][vKomponenta3] = 0;
VoziloInfo[i][vKomponenta4] = 0;
VoziloInfo[i][vKomponenta5] = 0;
VoziloInfo[i][vKomponenta6] = 0;
VoziloInfo[i][vKomponenta7] = 0;
VoziloInfo[i][vKomponenta8] = 0;
VoziloInfo[i][vKomponenta9] = 0;
VoziloInfo[i][vKomponenta10] = 0;
VoziloInfo[i][vKomponenta11] = 0;
VoziloInfo[i][vKomponenta12] = 0;
VoziloInfo[i][vKomponenta13] = 0;
VoziloInfo[i][vPaintJob] = 999;
VoziloInfo[i][vRadio] = 0;
LinkVehicleToInterior(VoziloInfo[i][vID], VoziloInfo[i][vInterior]);
SetVehicleVirtualWorld(VoziloInfo[i][vID], VoziloInfo[i][vVirtualWorld]);
//strmid(VoziloInfo[i][vVlasnik], GetName(playerid), 0, strlen(GetName(playerid)), 999);
strmid(VoziloInfo[i][vVlasnik], GetName(playerid), 0, strlen(GetName(playerid)), 999);
TogglePlayerControllable(playerid, 1);
VoziloInfo[i][vID] = JBC_CreateVehicle(AutoSalon[AutoModel][0], VoziloInfo[i][vPozX],VoziloInfo[i][vPozY],VoziloInfo[i][vPozZ],VoziloInfo[i][vPozA], VoziloInfo[i][vBoja1], VoziloInfo[i][vBoja2], 30000);
KupovinaAuta[playerid] = false; autokatalog = 0;
SetVehicleNumberPlate(VoziloInfo[i][vID], "Neregistrovan");
UkloniVozilaTD(playerid); SetCameraBehindPlayer(playerid);
SacuvajVozilo(i); SavePlayer(playerid); StatusMotora(playerid, 1);
SetPlayerCheckpoint(playerid, VoziloInfo[i][vPozX],VoziloInfo[i][vPozY],VoziloInfo[i][vPozZ], 5.0);
PosaoGPS[playerid] = 1; Fuel[GetPlayerVehicleID(playerid)] = 45;
SPI(playerid, "Uspjesno ste kupili auto!");
SPI(playerid, "Autom mozete upravljati komandom /v!");
SPI(playerid, "Lokacija vaseg auta je oznacena crveno na mapi!");
SPI(playerid, "Ako ne parkirate svoje vozilo negdje drugo, u roku 24h ce vam biti prodato!");
break;
}
}
}
else if (Keys & KEY_JUMP)
{
TogglePlayerControllable(playerid, 1);
SPI(playerid, "Odustali ste od kupovine auta!");
KupovinaAuta[playerid] = false; autokatalog = 0;
UkloniVozilaTD(playerid);
SetCameraBehindPlayer(playerid);
}
}
///////////////////////////////////////////////////////////////////////////////////
if(RadioAktiviran[playerid] == 1 && !IsPlayerInAnyVehicle(playerid)) return RadioAktiviran[playerid] = 0, StopAudioStreamForPlayer(playerid);
///////////////////////////////////////////////////////////////////////////////////
if(UsaoAutoProdaja[playerid] != -1 && !IsPlayerInAnyVehicle(playerid)) return UsaoAutoProdaja[playerid] = -1;
///////////////////////////////////////////////////////////////////////////////////
if(UsaoMotorProdaja[playerid] != -1 && !IsPlayerInAnyVehicle(playerid)) return UsaoMotorProdaja[playerid] = -1;
////////////////////////////////////////////////////////////////////////////////////
if(UsaoAvionProdaja[playerid] != -1 && !IsPlayerInAnyVehicle(playerid)) return UsaoAvionProdaja[playerid] = -1;
////////////////////////////////////////////////////////////////////////////////////
if(UsaoPloviloProdaja[playerid] != -1 && !IsPlayerInAnyVehicle(playerid)) return UsaoPloviloProdaja[playerid] = -1;
///////////////////////////////////////////////////////////////////////////////////
if(Poligon[playerid] >= 1)
{
if(IsPlayerInAnyVehicle(playerid))
{
if(GetSpeed(playerid) > 100)
{
Poligon[playerid] = 0;
DisablePlayerCheckpoint(playerid);
RemovePlayerFromVehicle(playerid);
SPI(playerid,"Pali ste na vozackom ispitu jer ste prekoracili briznu od 100kmh na gradskoj voznji!");
SetVehicleToRespawn(GetPlayerVehicleID(playerid)); SetPlayerInterior(playerid, 3); JBC_SetPlayerPos(playerid, 2832.7949,817.3245,-22.1245); TogglePlayerControllable(playerid, 0); freeze[playerid] = SetTimerEx("Freeze",2000, false, "i", playerid);
}
}
}
///////////////////////////////////////////////////////////////////////////////////
if(IsPlayerInAnyVehicle(playerid))
{
if(!VoziloJeBicikla(GetVehicleModel(GetPlayerVehicleID(playerid))))
{
new String[128];
format(String,sizeof(String),"%s",GetVehicleName(GetPlayerVehicleID(playerid)));
PlayerTextDrawSetString(playerid, SPEEDOMETAR[2][playerid], String);
new sspeed[50];
format(sspeed, sizeof(sspeed), "%d", GetSpeed(playerid));
PlayerTextDrawSetString(playerid, SPEEDOMETAR[4][playerid], sspeed); // ovo se blokira kod novog brzinomjera
new fuel[50];
format(fuel, sizeof(fuel), "%d", Fuel[GetPlayerVehicleID(playerid)]);
PlayerTextDrawSetString(playerid, SPEEDOMETAR[6][playerid], fuel); // ovo se blokira kod novog brzinomjera
new Float: Pos[4]; // ovo se blokira kod novog brzinomjera
GetVehicleVelocity(GetPlayerVehicleID(playerid), Pos[0], Pos[1], Pos[2]); // ovo se blokira kod novog brzinomjera
new keys, ud, lr;
GetPlayerKeys(playerid, keys, ud, lr);
}
}
return 1;
}
C'mon.. I am asking from opinion not for making whole system..
sorry for this please but
PHP код:
public OnPlayerConnect(playerid)
{
Bump(playerid);
return 1;
}