Skripta koju koristim: Od 0.
Detaljan opis problema: Bit će dole.
Dio skripte:
1.PROBLEM
Imam /amoney komandu kojom admin daje igraću novac, sve je tu uredu ali kada mu da novac u /stats-ima ostane stara vrijednost.
Moje pitanje je kako da 'apdejtujem' stats kada mu se da novac.
2. PROBLEM
Napravio sam da pri registraciji korisnik bira u dialogu izmeÄ'u 3 spawna koji želi, te da mu se to snimi i uÄitava pri svakom loginu.
I sve to fino radi, samo kada se registrujem i kada odaberem spawn npr 1 odmah me spawna što je uredu, dok na loginu kada unesem pw moram kliknuti na spawn iako imam SpawnPlayer(playerid);
Mozda za ovo drugo stavis kada ukucas password da ti se pokaze dialog sa spawnovima :)
1. problem: je l imas funkciju za azuriranje igraca, primer SacuvajIgraca(playerid) ?
2.problem. kod potvrde logina stavi ovako SetTimerEx("spawnuj",1000,false,"i",playerid);
i na kraju skripte stavi ovako forward spawnuj();
public spawnuj()
{
foreach (Player, i)
{
SpawnPlayer(i);
}
return 1;
}
Blaeks nemam to prvo, na koji naćin da ga napravim?
A za drugo stavio sam i opet neće da spawna. :$
1.problem: isto kao sto spremas informacije pod onplayerdisconnect tako napravis public SacuvajIgraca i onda gde god nekom povecavas varijable stavljas i to SacuvajIgraca
2.problem: ne moguce, ja tako imam na mom modu i radi, stavis tajmer kada igrac vec ukuca sifru, i ovo na kraj skripte, i mora da radi, prosto mora
1. problem: možeš li mi dati primjer pa ću ja da uradim ostalo, u kodu ako može.
2. problem: login mi je pod onplayerconnect jer nemam onplayerlogin, i kada ukuca šifru opet samo stoji i moram kliknuti na spawn
evo kod:
if(fexist(UserPath(playerid)))
{
INI_ParseFile(UserPath(playerid), "LoadUser_%s", .bExtra = true, .extra = playerid);
ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT,"Prijavljivanje","{FFFFFF}_________________________________________________________________\n\n{39AACC} DOBRODOÅ LI NAZAD NA BUENO ROLEPLAY SERVER.\n\n Vi ste registrovani molili bih vas da se logujete.\n\n {F81414} Ukucajte lozinku da bi se ulogovali:\n\n{FFFFFF}_________________________________________________________________\n","Prijavi se","Izadji");
SetPlayerScore(playerid, PlayerInfo[playerid][pLevel]);
}
else
{
ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT,"Registracija","{FFFFFF}_________________________________________________________________\n\n{39AACC} DOBRODOÅ LI NAZAD NA BUENO ROLEPLAY SERVER.\n\n Vi niste registrovani molili bih vas da to uradite.\n\n{F81414} Ukucajte lozinku da bi se registrovali:\n\n{FFFFFF}_________________________________________________________________\n","Registruj se","Izadji");
}
2.problem: ma je l ti imas pod ondialogresponse ocitavanje dialoga ?
1.problem: INI_WriteInt(File, "varijabla_beka", PlayerInfo[playerid][pVarijabla]);
Riješio sam drugi problem, nisam imao provjere za spawn od onih 3 tako da nije spawnalo dodao sam provjere i sada radi.
A ovo:INI_WriteInt(File, "varijabla_beka", PlayerInfo[playerid][pVarijabla]);
Dodajem sad npr ispod amoney kada mu da pare da se snimi?
YCMD:amoney(playerid, params[], help)
{
#pragma unused help
if(PlayerInfo[playerid][pAdmin] < 3) return SCM(playerid, COLOR_LIGHTBLUE,"Trebate biti admin lvl 3 da bi koristili ovo!");
new
pplayerid,money,string[128];
if(sscanf(params, "ui", pplayerid,money)) return SCM(playerid, COLOR_LIGHTBLUE,"KORISTENJE: /amoney [Player ID/Player Name] [Money]");
GivePlayerMoney(pplayerid, money);
format(string,sizeof(string),"{39AACC}Admin {FFFFFF}%s {39AACC}ti je dao {FFFFFF}$%d",GetName(playerid),money);
SCM(pplayerid,-1,string);
format(string,sizeof(string),"{39AACC}Igrac {FFFFFF}%s {39AACC}je primio {FFFFFF}$%d",GetName(pplayerid),money);
SCM(playerid,-1,string);
return 1;
}
stavis ovo na kraj skripte forward SacuvajAcc(playerid);
public SacuvajAcc(playerid)
{
new INI:File = INI_Open(UserPath(playerid));
INI_WriteInt(File,"Novac",PlayerInfo[playerid][pNovac]);
INI_Close(File);
return 1;
}
i onda u komandi stavis SacuvajIgraca(pplayerid);
ako me razumes
Razumijem te, uradio sam tako ali opet na /statsu ostaje vrijednost prije korištenja /amoneya
YCMD:stats(playerid,params[], help)
{
#pragma unused help,params
Level=PlayerInfo[playerid][pLevel];
Novac=PlayerInfo[playerid][pNovac];
Respekti=PlayerInfo[playerid][pRespekti];
Paypoeni=PlayerInfo[playerid][pPayPoeni];
GetPlayerName(playerid,playernamee,sizeof(playernamee));
format(playernamee,sizeof playernamee,"STATS %s",playernamee);
msgbox="Level: %d\nNovac: %d\nRespekti: %d\nPayPoeni: %d\n";
format(stringa,sizeof stringa,msgbox, Level, Novac, Respekti, Paypoeni);
ShowPlayerDialog(playerid,Dialogonclick,0,playernamee,stringa,"Ok","");
return 1;
}
zasto onda u statsu ne ucitas novac ovako GetPlayerMoney(playerid)
Stavio sam sad ovako i radi:
YCMD:stats(playerid,params[], help)
{
#pragma unused help,params
Level=PlayerInfo[playerid][pLevel];
Money=GetPlayerMoney(playerid);
Respekti=PlayerInfo[playerid][pRespekti];
Paypoeni=PlayerInfo[playerid][pPayPoeni];
GetPlayerName(playerid,playernamee,sizeof(playernamee));
format(playernamee,sizeof playernamee,"STATS %s",playernamee);
msgbox="Level: %d\nNovac: %d\nRespekti: %d\nPayPoeni: %d\n";
format(stringa,sizeof stringa,msgbox, Level, Money, Respekti, Paypoeni);
ShowPlayerDialog(playerid,Dialogonclick,0,playernamee,stringa,"Ok","");
return 1;
}
Hvala Blaeks, lock.