Pomoc oko servera

Započeo Claus
25. Jul 2019. Zaključano
935
pregleda
11
postova
TIMIC
4
Enforcer
25. Jul 2019.
Problem(error/warning): Izbacuje mi ovo u server.log, znam da je u pitanju nesto pod OnPlayerDeath, ali ne znam tacno sta, ako bi mogao neko da mi pomogne, bio bih mu veoma zahvalan. 😄 . PS: Pokusavao sam da optimizujem malo mod, jer me jebe i acks limit. Pre ovoga se ovo nije desavalo...
Deo skripte:
public OnPlayerDeath(playerid, killerid, reason)
{
if(killerid != INVALID_PLAYER_ID)
{
    if(InDM != 0)
    {
    for(new i = 0; i <= GetPlayerPoolSize(); i++)
      {
        new string;
          if(InDM == 1)
          {
              format(string, sizeof(string), ""ROZA"(death)"BELA" %s "ROZA"was slain "BELA"%s.", GetName(killerid), GetName(playerid));
              SCM(i, -1, string);
          }
          else if(InDM == 2)
          {
              format(string, sizeof(string), ""ROZA"(death)"BELA" %s "ROZA"was slain "BELA"%s.", GetName(killerid), GetName(playerid));
              SCM(i, -1, string);
          }
          else if(InDM == 3)
          {
              format(string, sizeof(string), ""ROZA"(death)"BELA" %s "ROZA"was slain "BELA"%s.", GetName(killerid), GetName(playerid));
              SCM(i, -1, string);
          }
      }
    }
SendDeathMessage( killerid, playerid, reason );
PlayerInfo++;
PlayerInfo++;
SetPlayerScore(killerid, PlayerInfo );
PlayerInfo = PlayerInfo + 500;
ResetPlayerMoney(killerid); GivePlayerMoney(killerid, PlayerInfo );
PlayerInfo++; SavePlayer( killerid ); SavePlayer( playerid );
SendDeathMessage( INVALID_PLAYER_ID, playerid, reason );
        PlayerInfo++; SavePlayer ( playerid );
}
Mrtva_Kamera = 1;
if(Mrtva_Kamera == 1)
{
Mrtva_Kamera = 0;
if(Ubijen_Kamera != INVALID_PLAYER_ID)
TogglePlayerSpectating(playerid, 1);
PlayerSpectatePlayer(playerid, killerid);
GameTextForPlayer(playerid, "Spawn is in 3 seconds!", 3000, 4);
SetTimerEx("Specaj_Igraca", 5000, false, "i", playerid);
}
else
{
TogglePlayerSpectating(playerid, 0);
}
new string, Name;
    GetPlayerName(killerid, Name, sizeof(Name));
    PlayerTotalKills++;
    PlayerTotalKills = 0;
    if(PlayerTotalKills == 3) {
        format(string, sizeof(string), ""SVETLOPLAVA"(SPREE): "BELA"%s "SVETLOPLAVA"is on a "BELA"3 "SVETLOPLAVA"killing spree!", Name);
        SCMTA(-1, string);
        return 1;
    }
    if(PlayerTotalKills == 5) {
        format(string, sizeof(string), ""SVETLOPLAVA"(SPREE): "BELA"%s "SVETLOPLAVA"is on a "BELA"5 "SVETLOPLAVA"killing spree!", Name);
        SCMTA(-1, string);
        return 1;
    }
    if(PlayerTotalKills == 8) {
        format(string, sizeof(string), ""SVETLOPLAVA"(SPREE): "BELA"%s "SVETLOPLAVA"is on a "BELA"8 "SVETLOPLAVA"killing spree!", Name);
        SCMTA(-1, string);
        return 1;
    }
    if(PlayerTotalKills == 10) {
        format(string, sizeof(string), ""SVETLOPLAVA"(SPREE): "BELA"%s "SVETLOPLAVA"is on a "BELA"10 "SVETLOPLAVA"killing spree!", Name);
        SCMTA(-1, string);
        return 1;
    }
    if(PlayerTotalKills == 15) {
        format(string, sizeof(string), ""SVETLOPLAVA"(SPREE): "BELA"%s "SVETLOPLAVA"is on a "BELA"15 "SVETLOPLAVA"killing spree!", Name);
        SCMTA(-1, string);
        return 1;
}
return 1;
}

Debug iz server_log(ukoliko je u pitanju crashanje servera - crashdetect log):
 [20:16:20] Run time error 4: "Array index out of bounds"
[20:16:20] AMX backtrace:
[20:16:20] #0 0005fa10 in public WC_OnPlayerDeath (3, 65535, 55) from rdm.amx
[20:16:20] #1 0004defc in ?? (3, 0, 65535, 55, 0, 0) from rdm.amx
[20:16:20] #2 000398b0 in ?? (3, 0, -1082130432) from rdm.amx
[20:16:20] #3 00063b24 in public cmd_kill (3, 22860028) from rdm.amx
[20:16:20] #4 native CallLocalFunction () from samp03svr
[20:16:20] #5 00038778 in public OnPlayerCommandText (3, 22859996) from rdm.amx 

Slika/video ingame problema(obavezno ako je ingame problem): //
TerzaScripting
5
Underboss
25. Jul 2019.
ne mozes ovo
GetPlayerName(killerid, Name, sizeof(Name));
bez invalid playerid
TIMIC
4
Enforcer
25. Jul 2019.
Terza Lazarevic wrote on July 25, 2019, 11:33 am:
ne mozes ovo
GetPlayerName(killerid, Name, sizeof(Name));
bez invalid playerid
Ima vec
if(killerid != INVALID_PLAYER_ID)
TerzaScripting
5
Underboss
25. Jul 2019.
тιмιc wrote on July 25, 2019, 11:40 am:
Ima vec
if(killerid != INVALID_PLAYER_ID)
ne, nema
TIMIC
4
Enforcer
25. Jul 2019.
Terza Lazarevic wrote on July 25, 2019, 11:45 am:
ne, nema
Ne razumem te
TerzaScripting
5
Underboss
25. Jul 2019.
Ako koristis u OnPlayerDeath "killerid" i pritom želiš da igraču uvećaš ubistva moraš koristiti
if(killerid != INVALID_PLAYER_ID)


U tvom slučaju ti mu uzimaš ime a da pritom nisi ni proverio da li je to igrač uopste koji ga je ubio
GetPlayerName(killerid, Name, sizeof(Name));


.. koliko vidim ispod toga još koristiš killerid bez ove provere
TIMIC
4
Enforcer
25. Jul 2019.
Terza Lazarevic wrote on July 25, 2019, 12:04 pm:
Ako koristis u OnPlayerDeath "killerid" i pritom želiš da igraču uvećaš ubistva moraš koristiti
if(killerid != INVALID_PLAYER_ID)


U tvom slučaju ti mu uzimaš ime a da pritom nisi ni proverio da li je to igrač uopste koji ga je ubio
GetPlayerName(killerid, Name, sizeof(Name));


.. koliko vidim ispod toga još koristiš killerid bez ove provere
Meni sve lepo radi, neki put se desi da se pomesa skor igracima, to je do cuvanja, jel bi mogao da mi sredis to?
TerzaScripting
5
Underboss
25. Jul 2019.
тιмιc wrote on July 25, 2019, 12:13 pm:
Meni sve lepo radi, neki put se desi da se pomesa skor igracima, to je do cuvanja, jel bi mogao da mi sredis to?
Ti mene očigledno ne sluÅ¡aÅ¡ 😄
TIMIC
4
Enforcer
25. Jul 2019.
Terza Lazarevic wrote on July 25, 2019, 12:14 pm:
Ti mene očigledno ne sluÅ¡aÅ¡ 😄
Ne brt, sve lepo procitam kako mi napises, ali ne mogu da skontam
TerzaScripting
5
Underboss
25. Jul 2019.

public OnPlayerDeath(playerid, killerid, reason)
{
SendDeathMessage(killerid, playerid, reason);

if(killerid != INVALID_PLAYER_ID)
{
if(InDM != 0)
{
for(new i = 0; i <= GetPlayerPoolSize(); i++)
{
new string;
if(InDM == 1)
{
format(string, sizeof(string), ""ROZA"(death)"BELA" %s "ROZA"was slain "BELA"%s.", GetName(killerid), GetName(playerid));
SCM(i, -1, string);
}
else if(InDM == 2)
{
format(string, sizeof(string), ""ROZA"(death)"BELA" %s "ROZA"was slain "BELA"%s.", GetName(killerid), GetName(playerid));
SCM(i, -1, string);
}
else if(InDM == 3)
{
format(string, sizeof(string), ""ROZA"(death)"BELA" %s "ROZA"was slain "BELA"%s.", GetName(killerid), GetName(playerid));
SCM(i, -1, string);
}
}
}

Mrtva_Kamera = 1;
if(Mrtva_Kamera == 1)
{
Mrtva_Kamera = 0;
if(Ubijen_Kamera != INVALID_PLAYER_ID)
{
TogglePlayerSpectating(playerid, 1);
PlayerSpectatePlayer(playerid, killerid);
GameTextForPlayer(playerid, "Spawn is in 3 seconds!", 3000, 4);
SetTimerEx("Specaj_Igraca", 5000, false, "i", playerid);
}
}
else
{
TogglePlayerSpectating(playerid, 0);
}

new string, Name;
GetPlayerName(killerid, Name, sizeof(Name));

PlayerTotalKills++;
PlayerTotalKills = 0;

switch(PlayerTotalKills)
{
case 3,5,8,10,15:
{
format(string, sizeof(string), ""SVETLOPLAVA"(SPREE): "BELA"%s "SVETLOPLAVA"is on a "BELA"%d "SVETLOPLAVA"killing spree!", Name, PlayerTotalKills);
SCMTA(-1, string);    
}
}

PlayerInfo++;
PlayerInfo++;
SavePlayer(killerid);

SetPlayerScore(killerid, PlayerInfo);

PlayerInfo += 500;
ResetPlayerMoney(killerid);
GivePlayerMoney(killerid, PlayerInfo);

PlayerInfo++;
SavePlayer(playerid);
}

return 1;
}

Evo ti onda ovako, vidi da li radi ..
TIMIC
4
Enforcer
25. Jul 2019.
Terza Lazarevic wrote on July 25, 2019, 1:20 pm:

public OnPlayerDeath(playerid, killerid, reason)
{
SendDeathMessage(killerid, playerid, reason);

if(killerid != INVALID_PLAYER_ID)
{
if(InDM != 0)
{
for(new i = 0; i <= GetPlayerPoolSize(); i++)
{
new string;
if(InDM == 1)
{
format(string, sizeof(string), ""ROZA"(death)"BELA" %s "ROZA"was slain "BELA"%s.", GetName(killerid), GetName(playerid));
SCM(i, -1, string);
}
else if(InDM == 2)
{
format(string, sizeof(string), ""ROZA"(death)"BELA" %s "ROZA"was slain "BELA"%s.", GetName(killerid), GetName(playerid));
SCM(i, -1, string);
}
else if(InDM == 3)
{
format(string, sizeof(string), ""ROZA"(death)"BELA" %s "ROZA"was slain "BELA"%s.", GetName(killerid), GetName(playerid));
SCM(i, -1, string);
}
}
}

Mrtva_Kamera = 1;
if(Mrtva_Kamera == 1)
{
Mrtva_Kamera = 0;
if(Ubijen_Kamera != INVALID_PLAYER_ID)
{
TogglePlayerSpectating(playerid, 1);
PlayerSpectatePlayer(playerid, killerid);
GameTextForPlayer(playerid, "Spawn is in 3 seconds!", 3000, 4);
SetTimerEx("Specaj_Igraca", 5000, false, "i", playerid);
}
}
else
{
TogglePlayerSpectating(playerid, 0);
}

new string, Name;
GetPlayerName(killerid, Name, sizeof(Name));

PlayerTotalKills++;
PlayerTotalKills = 0;

switch(PlayerTotalKills)
{
case 3,5,8,10,15:
{
format(string, sizeof(string), ""SVETLOPLAVA"(SPREE): "BELA"%s "SVETLOPLAVA"is on a "BELA"%d "SVETLOPLAVA"killing spree!", Name, PlayerTotalKills);
SCMTA(-1, string);    
}
}

PlayerInfo++;
PlayerInfo++;
SavePlayer(killerid);

SetPlayerScore(killerid, PlayerInfo);

PlayerInfo += 500;
ResetPlayerMoney(killerid);
GivePlayerMoney(killerid, PlayerInfo);

PlayerInfo++;
SavePlayer(playerid);
}

return 1;
}

Evo ti onda ovako, vidi da li radi ..
Radi sve, ali jebe me i ackslimit, jel mi mozes pomoci kako da ga resim? Znam da je u pitanju optimizacija ali ne znam do cega je konkretno, kako da saznam?

Morate biti prijavljeni da biste odgovorili na ovu temu.

Prijava

© 2026 SmartShark. All rights reserved.

Powered by Momentum|v2026.3.001 Alpha