Oduzimanje novca nakon smrti

Započeo marko1rp
22. Maj 2019. Zaključano
623
pregleda
8
postova
marko1rp
2
Rookie
22. Maj 2019.
Problem(error/warning): uopšteno
Deo skripte:

public OnPlayerDeath(playerid, killerid, reason)
return 1;

stock SetPlayerMoney(pid, mny) {
ResetPlayerMoney(pid);
GivePlayerMoney(pid, mny);
return 1;
}

// i ovo je ukoliko je password dobar
{
        cache_get_value_int(0, "money", playerInfo);   
        setPlayerMoney(playerid, playerInfo);
}


Debug iz server_log(ukoliko je u pitanju crashanje servera - crashdetect log):
Slika/video ingame problema(obavezno ako je ingame problem):

Znači oduzima se $100 nakon svake smrti.
Skripta je od 0, neću da dodajem 100$ sa GivePlayerMoney nakon smrti, gledao sam mnogo skripti na balkan-samp-u, forum.sa-mp-u, ni u jednoj nisam video da je to neko radio, takođe, dosta sam googlovao vezano za ovaj problem, ne nađem rešenje koje pomaže, a da je kako treba.
Nikola-.-
6
Kingpin
22. Maj 2019.
public OnPlayerDeath(playerid, killerid, reason)
return 1;

return ti prekida funkciju, tako da ti ovaj kod ispod ne vazi.
stock SetPlayerMoney(pid, mny) {
ResetPlayerMoney(pid);
GivePlayerMoney(pid, mny);

Ovo stavi van pablika onplayerdeath

{
        cache_get_value_int(0, "money", playerInfo); 
        setPlayerMoney(playerid, playerInfo);
}

Ovo je za ucitavanje iz baze, ne za upisivanje.
public OnPlayerDeath(playerid,killerid,reason)
{
SetPlayerMoney(playerid,GetPlayerMoney(playerid)-100);
new query;
mysql_format(handle, query, sizeof(query), "UPDATE imetablezaigrace SET money=`%d` WHERE id=`%d`", playerInfo, playerInfo);
mysql_tquery(handle, query);
return 1;
}

Ja bi ovako uradio, ne kazem da je najbolje ali to je ono sto sam mogo da sklepam ovde na poso za ovih 3 minuta xd
marko1rp
2
Rookie
22. Maj 2019.
Argh, nisi me razumeo.
Ja neću da mi se oduzima -100 koji se oduzimaju po defaultu.

OnPlayerDeath sam okačio da se vidi da se u tom callbacku ne poziva oduzimanje novca.

Ovo jeste izvan OnPlayerDeath, logično, nalazi se u u funkciji koja se poziva ukoliko je sifra dobra.

{
        cache_get_value_int(0, "money", playerInfo); 
        setPlayerMoney(playerid, playerInfo);
}


A ovo je funkcija sama za sebe, return u OnPlayerDeath nema veze sa njom

stock SetPlayerMoney(pid, mny) {
ResetPlayerMoney(pid);
GivePlayerMoney(pid, mny);
return 1;
}
Nikola-.-
6
Kingpin
22. Maj 2019.
Cekaj, stani znaci tebi kad umres oduzme 100$ ili?
marko1rp
2
Rookie
22. Maj 2019.
Da, i vidim da nisam jedini sa tim problemom.
ÄŒitam po sampovom forumu da je to po default-u tako.

Ja sam zbog toga okačio OnPlayerDeath da se vidi da ja oduzimanje ne pozivam nigde.
Nikola-.-
6
Kingpin
22. Maj 2019.
Meni se to nikad nije desilo, ili nisam primetio
marko1rp
2
Rookie
22. Maj 2019.
Nisi primetio, probaj.

#include a_samp
#include YSI\y_commands

main(){}

public OnGameModeInit() {
ShowPlayerMarkers(PLAYER_MARKERS_MODE_OFF);
UsePlayerPedAnims();
EnableStuntBonusForAll(0);
DisableInteriorEnterExits();
ShowPlayerMarkers(false);  SetNameTagDrawDistance(30); AllowInteriorWeapons(1);
return 1;
}

public OnGameModeExit() {
return 1;
}

public OnPlayerConnect(playerid) {
ResetPlayerMoney(playerid);
GivePlayerMoney(playerid, 10000);
SetSpawnInfo( playerid, 0, 0, 2852.2173,1824.4058,10.7575, 0.0, 0, 0, 0, 0, 0, 0 );
SpawnPlayer(playerid);
return 1;
}

public OnPlayerSpawn(playerid) {
    SetPlayerColor(playerid, 0xE3E3E3FF);
}

public OnPlayerDeath(playerid, killerid, reason)
return 1;

public OnPlayerCommandText(playerid,cmdtext[])
return 1;

public e_COMMAND_ERRORS:OnPlayerCommandReceived(playerid, cmdtext[], e_COMMAND_ERRORS:success)
{
    if (success == COMMAND_UNDEFINED) SendClientMessage(playerid,-1,"Komanda ne postoji!");
    return success;
}

YCMD:kill(playerid, params[], help)
{
#pragma unused params
#pragma unused help
SetPlayerHealth(playerid, 0);
return 1;
}

FunnyGamingDay - FGD
6
OG Legend
22. Maj 2019.
Meni se to nikad nije desilo, skriptam skoro punih 4 godine, to mi se uopste nije desilo.
Ako ti nista ne poziva u OnPlayerDeath, a vidim da ne poziva, i oduzima ti 100$ na svakom Deathu, jednostavno stavi samo
public OnPlayerDeath(playerid, killerid, reason)
{
GivePlayerMoney( playerid, quantity /*u tvom slucaju je 100*/ ); return ( true );
}

Former SA:MP server developer

Morate biti prijavljeni da biste odgovorili na ovu temu.

Prijava

© 2026 SmartShark. All rights reserved.

Powered by Momentum|v2026.3.001 Alpha