Problem(error/warning): idem ingame, kupim vikendica il stan, sve okej, kupim i kucu al kad idem relog, kad ugasim srw i upalim ponovo, vikendica i stan kaze da su oduzmeni od admina, evo slika dole.
Dio skripte: Balkan Evolution MOD (UP valjda izvorni)
Debug iz server_log(ukoliko je u pitanju crashanje servera - crashdetect log)
Slika/video ingame problema(obavezno ako je ingame problem): https://imgur.com/cIDwyt0
Daj prvo taj deo gde ispise tu poruku, ceo callback, pretpostavljam da je OnPlayerSpawn..
I onda salji kada igrac kupi kucu. Takodje mozes poslati i OnPlayerDisconnect kada se sacuva acc igraca
Citat: V01D poslato April 27, 2020, 16:25:41 POSLE PODNE
Daj prvo taj deo gde ispise tu poruku, ceo callback, pretpostavljam da je OnPlayerSpawn..
I onda salji kada igrac kupi kucu. Takodje mozes poslati i OnPlayerDisconnect kada se sacuva acc igraca
[pawn]
if(PLAYER_ENUM[playerid][pPosedovanje_Vikendice] != -1)
{
new vik_File[50];
format(vik_File, sizeof(vik_File), vik_File, PLAYER_ENUM[playerid][pPosedovanje_Vikendice]);
if(fexist(vik_File))
{
if(strcmp(VIKENDICA_ENUM[PLAYER_ENUM[playerid][pPosedovanje_Vikendice]][viVlasnik], GetName(playerid), true))
{
GRESKA(playerid, "Vikendica koja je bila u vasem vlasnistvu je prodata, kljuc vam je skinut!");
GRESKA(playerid, "Ukoliko mislite da je ovo greska ili zelite da znate razlog prodaje vase vikendice obratite se ADMINU!");
GRESKA(playerid, "Takodje je moguce da vam je vikendica prodata zbog neaktivnosti!");
PLAYER_ENUM[playerid][pPosedovanje_Vikendice] = -1; SacuvajKorisnike(playerid);
}
else
{
VIKENDICA_ENUM[PLAYER_ENUM[playerid][pPosedovanje_Vikendice]][viNeaktivnost] = 0;
SacuvajVikendicu(PLAYER_ENUM[playerid][pPosedovanje_Vikendice]);
VikendicaLP(PLAYER_ENUM[playerid][pPosedovanje_Vikendice]);
}
}
else
{
GRESKA(playerid, "Vikendica koja je bila u vasem vlasnistvu je obrisana, kljuc vam je skinut!");
GRESKA(playerid, "Ukoliko mislite da je ovo greska ili zelite da znate razlog brisanja vase vikendice obratite se ADMINU!");
PLAYER_ENUM[playerid][pPosedovanje_Vikendice] = -1; SacuvajKorisnike(playerid);
}
}
[/pawn]
[pawn]
CMD:kupivikendicu(playerid, params[])
{
#pragma unused params
for(new i; i < sizeof(VIKENDICA_ENUM); i++)
{
if(IsPlayerInRangeOfPoint(playerid, 3.0, VIKENDICA_ENUM
[viUlazX], VIKENDICA_ENUM[viUlazY], VIKENDICA_ENUM[viUlazZ]))
{
if(!strcmp(VIKENDICA_ENUM[viVlasnik], "Niko", true) && VIKENDICA_ENUM[viProveraVlasnika] == 0)
{
if(PLAYER_ENUM[playerid][pPosedovanje_Vikendice] != -1) return GRESKA(playerid, "Vec imas vikendicu!");
if(GetPlayerScore(playerid) < VIKENDICA_ENUM[viLevel]) return GRESKA(playerid, "Nemate dovoljan level za kupovinu vikendice!");
if(PLAYER_ENUM[playerid][pNovac] < VIKENDICA_ENUM[viCena]) return GRESKA(playerid, "Nemate dovoljno novca za kupovinu vikendice!");
strmid(VIKENDICA_ENUM[viVlasnik], GetName(playerid), 0, strlen(GetName(playerid)), 255);
VIKENDICA_ENUM[viProveraVlasnika] = 1;
VIKENDICA_ENUM[viZatvoreno] = 1;
SacuvajVikendicu(i);
PLAYER_ENUM[playerid][pPosedovanje_Vikendice] = i;
g_NovacMinus(playerid, VIKENDICA_ENUM[viCena]);
VikendicaLP(i);
INFO(playerid, "Cestitamo, kupili ste vikendicu!");
INFO(playerid, "Za komande vikendice koristite /vikendica!");
INFO(playerid, "Za ulaz u vikendicu koristi tipku F!");
return 1;
}
else return GRESKA(playerid, "Ta vikendica se ne prodaje!");
}
}
return 1;
}
[/pawn]
[pawn]
stock SacuvajVikendicu(idvikendice)
{
new vFile[128];
format(vFile, sizeof(vFile), VIKENDICE_FILE, idvikendice);
new INI:File = INI_Open(vFile);
INI_WriteInt(File,"ProveraVlasnika",VIKENDICA_ENUM[idvikendice][viProveraVlasnika]);
INI_WriteString(File,"Vlasnik",VIKENDICA_ENUM[idvikendice][viVlasnik]);
INI_WriteFloat(File,"UlazX",VIKENDICA_ENUM[idvikendice][viUlazX]);
INI_WriteFloat(File,"UlazY",VIKENDICA_ENUM[idvikendice][viUlazY]);
INI_WriteFloat(File,"UlazZ",VIKENDICA_ENUM[idvikendice][viUlazZ]);
INI_WriteFloat(File,"IzlazX",VIKENDICA_ENUM[idvikendice][viIzlazX]);
INI_WriteFloat(File,"IzlazY",VIKENDICA_ENUM[idvikendice][viIzlazY]);
INI_WriteFloat(File,"IzlazZ",VIKENDICA_ENUM[idvikendice][viIzlazZ]);
INI_WriteInt(File,"Level",VIKENDICA_ENUM[idvikendice][viLevel]);
INI_WriteInt(File,"Cena",VIKENDICA_ENUM[idvikendice][viCena]);
INI_WriteInt(File,"Novac",VIKENDICA_ENUM[idvikendice][viNovac]);
INI_WriteInt(File,"Int",VIKENDICA_ENUM[idvikendice][viInt]);
INI_WriteInt(File,"Zatvoreno",VIKENDICA_ENUM[idvikendice][viZatvoreno]);
INI_WriteInt(File,"VW",VIKENDICA_ENUM[idvikendice][viVW]);
INI_WriteInt(File,"Cannabis",VIKENDICA_ENUM[idvikendice][viMarihuana]);
INI_WriteInt(File,"Kokain",VIKENDICA_ENUM[idvikendice][viKokain]);
INI_WriteInt(File,"Mats",VIKENDICA_ENUM[idvikendice][viMaterijali]);
INI_Close(File);
return 1;
}
[/pawn]
izvinite al moze li neko da resi ovo, hitno mi je, obrisite mi komentar nije mi za postova
@V01D
Provjeri ucitavanje vikendice daj nam ovde da pogledamo
Citat: // lestra poslato April 29, 2020, 11:09:40 PRE PODNE
Provjeri ucitavanje vikendice daj nam ovde da pogledamo
[pawn]
lfunc UcitajVikendice(idvikendice, name[], value[])
{
INI_Int("ProveraVlasnika",VIKENDICA_ENUM[idvikendice][viProveraVlasnika]);
INI_String("Vlasnik",VIKENDICA_ENUM[idvikendice][viVlasnik],45);
INI_Float("UlazX",VIKENDICA_ENUM[idvikendice][viUlazX]);
INI_Float("UlazY",VIKENDICA_ENUM[idvikendice][viUlazY]);
INI_Float("UlazZ",VIKENDICA_ENUM[idvikendice][viUlazZ]);
INI_Float("IzlazX",VIKENDICA_ENUM[idvikendice][viIzlazX]);
INI_Float("IzlazY",VIKENDICA_ENUM[idvikendice][viIzlazY]);
INI_Float("IzlazZ",VIKENDICA_ENUM[idvikendice][viIzlazZ]);
INI_Int("Level",VIKENDICA_ENUM[idvikendice][viLevel]);
INI_Int("Cena",VIKENDICA_ENUM[idvikendice][viCena]);
INI_Int("Novac",VIKENDICA_ENUM[idvikendice][viNovac]);
INI_Int("Int",VIKENDICA_ENUM[idvikendice][viInt]);
INI_Int("Zatvoreno",VIKENDICA_ENUM[idvikendice][viZatvoreno]);
INI_Int("VW",VIKENDICA_ENUM[idvikendice][viVW]);
INI_Int("Cannabis",VIKENDICA_ENUM[idvikendice][viMarihuana]);
INI_Int("Kokain",VIKENDICA_ENUM[idvikendice][viKokain]);
INI_Int("Mats",VIKENDICA_ENUM[idvikendice][viMaterijali]);
return 1;
}
[/pawn]
1. kreiram vikendicu
2. kupujem vikendicu
3. /vikendica sve to radi perfektno
4. idem relog
5. u korisnika pise vikendica ta i taj da je igrac poseduje
6. u vikendica pise da se vlanik taj i taj, sve okej
7. ugasim mod, pustim ga opet
8. idem ing kazhe da je vikendica obrisana, a na serveru je a kod igraca /vikendica kaze da nema :@
Koliko vidim, ovo je neki ATH mod sa proverom neaktivnosti koja se verovatno ne cuva kako treba.
Nadji tu poruku u modu sa find opcijom i videces sta pravi problem.
Citat: algorhitmically poslato Maj 05, 2020, 13:20:37 POSLE PODNE
Koliko vidim, ovo je neki ATH mod sa proverom neaktivnosti koja se verovatno ne cuva kako treba.
Nadji tu poruku u modu sa find opcijom i videces sta pravi problem.
sve je isto kao kuca neaktivnost, a kuca sacuva kao sto treba stanove i vikendice nece
Moras prvo dodati timer npr svakih 1h da za sve vikendice dodaje ++ za ovo: viNeaktivnost, moras sacuvavati u fajl isto neaktivnost, posle tog npr ako je neaktivan 720h da mu oduzima kada udje vikendicu (to je cisto ako nekome se svidja neka vikendica a ne zna da adminu treba prijaviti da je neaktivan da se admin ne muci provjeravati da mu samo skine), ako je admin prije tog nije oduzeo, i tu dolazi ova provjera:
[pawn]if(strcmp(VIKENDICA_ENUM[PLAYER_ENUM[playerid][pPosedovanje_Vikendice]][viVlasnik], GetName(playerid), true)) {
if(PLAYER_ENUM[playerid][pPosedovanje_Vikendice]][viNeaktivnost] >= 720) {
GRESKA(playerid, "Vikendica koja je bila u vasem vlasnistvu je prodata, kljuc vam je skinut!");
GRESKA(playerid, "Ukoliko mislite da je ovo greska ili zelite da znate razlog prodaje vase vikendice obratite se ADMINU!");
GRESKA(playerid, "Takodje je moguce da vam je vikendica prodata zbog neaktivnosti!");
PLAYER_ENUM[playerid][pPosedovanje_Vikendice] = -1; SacuvajKorisnike(playerid);
}
else {
VIKENDICA_ENUM[PLAYER_ENUM[playerid][pPosedovanje_Vikendice]][viNeaktivnost] = 0;
SacuvajVikendicu(PLAYER_ENUM[playerid][pPosedovanje_Vikendice]);
VikendicaLP(PLAYER_ENUM[playerid][pPosedovanje_Vikendice]);
}
}
else {
GRESKA(playerid, "Vikendica koja je bila u vasem vlasnistvu je prodata, kljuc vam je skinut!");
GRESKA(playerid, "Ukoliko mislite da je ovo greska ili zelite da znate razlog prodaje vase vikendice obratite se ADMINU!");
GRESKA(playerid, "Takodje je moguce da vam je vikendica prodata zbog neaktivnosti!");
PLAYER_ENUM[playerid][pPosedovanje_Vikendice] = -1; SacuvajKorisnike(playerid);
}[/pawn]
@Vuzimir legendo hvala, fixano