Problem(error/warning): uopšteno
Deo skripte:
[pawn]
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[playerid][pMoney]);
setPlayerMoney(playerid, playerInfo[playerid][pMoney]);
}
[/pawn]
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.
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[playerid][pMoney]);
setPlayerMoney(playerid, playerInfo[playerid][pMoney]);
}
Ovo je za ucitavanje iz baze, ne za upisivanje.
public OnPlayerDeath(playerid,killerid,reason)
{
SetPlayerMoney(playerid,GetPlayerMoney(playerid)-100);
new query[64];
mysql_format(handle, query, sizeof(query), "UPDATE imetablezaigrace SET money=`%d` WHERE id=`%d`", playerInfo[playerid][pMoney], playerInfo[playerid][pSQLID]);
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
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.
[pawn]
{
cache_get_value_int(0, "money", playerInfo[playerid][pMoney]);
setPlayerMoney(playerid, playerInfo[playerid][pMoney]);
}
[/pawn]
A ovo je funkcija sama za sebe, return u OnPlayerDeath nema veze sa njom
[pawn]
stock SetPlayerMoney(pid, mny) {
ResetPlayerMoney(pid);
GivePlayerMoney(pid, mny);
return 1;
}
[/pawn]
Cekaj, stani znaci tebi kad umres oduzme 100$ ili?
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.
Meni se to nikad nije desilo, ili nisam primetio
Nisi primetio, probaj.
[pawn]
#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;
}
[/pawn]
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
[pawn]public OnPlayerDeath(playerid, killerid, reason)
{
GivePlayerMoney( playerid, quantity /*u tvom slucaju je 100*/ ); return ( true );
} [/pawn]