[Pomoc] House Crash


Započeo ShadowNET, Mart 26, 2016, 10:16:15 PRE PODNE

prethodna tema - sledeća tema

0 članova i 1 gost pregledaju ovu temu.

Skripta koju koristim:0
Detaljan opis problema:Kada kupik kucu komandom /kupikucu server padne(crash).Ovo se desava samo ako na hostu.Tacnije kada ima vise od 1 igraca.
Dio skripte:
CMD:kupikucu(playerid, params[])
{
        new string[210];
        new i = GetClosetHouseID(playerid);
 		if(Player[playerid][Houseid] != 999) return SCM(playerid,COLOR_RED,"Greska: "COL_WHITE"Vec imas kucu");
		if(!IsPlayerInRangeOfPoint(playerid,5.0,House[i][EnterX],House[i][EnterY],House[i][EnterZ])) return SCM(playerid,COLOR_RED,"Nisi blizu kuce");
		if(GetPlayerMoney(playerid) < House[i][Price]) return SCM(playerid, COLOR_RED, "Nemas toliko novca.");
		if(GetPlayerScore(playerid) < House[i][Level]) return SCM(playerid, COLOR_RED, "Nemas dovoljan level da kupis ovu kucu");
		format(House[i][Owner], 32, "%s", GetName(playerid));
		if(House[i][hCar] > 0) format(HouseOwner[House[i][hCar]],64,"%s",GetName(playerid));
		House[i][On_Sell] = 0;
		Player[playerid][Houseid] = i;
		DestroyDynamicPickup(House[i][PickupU]);
		House[i][PickupU] = CreateDynamicPickup(1272, 23,  House[i][EnterX],House[i][EnterY],House[i][EnterZ],-1,-1,-1,100.0);
		GivePlayerMoney(playerid, -House[i][Price]);
		DestroyDynamicMapIcon(House[i][Icon]);
		House[i][Icon] = CreateDynamicMapIcon(House[i][EnterX],House[i][EnterY],House[i][EnterZ], 32, 0, -1, -1, -1, 100.0);
		CheckHouse(i);
		format(string,sizeof(string),"{E0BC1B}Vlasnik "COL_WHITE"%s\n{E0BC1B}Vrsta kuce: "COL_WHITE"%s\n{E0BC1B}Cena: "COL_WHITE"%d\n{E0BC1B}Level: "COL_WHITE"%d\n{E0BC1B}Rent Cena: "COL_WHITE"%d\n{E0BC1B}Adresa: "COL_WHITE"%s\n (/renthouse)",House[i][Owner],House[i][HouseName],House[i][Price],House[i][Level],House[i][RentPrice],House[i][Address]);
        UpdateDynamic3DTextLabelText(House[i][DLabel],-1,string);
        UpdatePlayerInformation(playerid);
		return 1;
}

Neke slike/video za lakse dobivanje pomoci(neobavezno):/

Moze da bude da ti je do ZCMD
probaj zameni ovako to kupikucu
YCMD:kupikucu(playerid, params[], help)
{
    #pragma unused help
    #pragma unused params
One And Only
Old Member
Since AVGUST 2013. :)
GAME OVER - SCRIPTING
SINCE 2009 - 2025

daj vamo takodje OnPlayerCommandReceived moguce da tu nesto ima...

My Bike KTM 450 SXF 2008

Moguce da je do zcmd al ceo mod mi je na ZCMD da li ce smetati ako samo tu komandu prebacim u YCMD?

Citat: ShadowNET poslato Mart 26, 2016, 13:43:29 POSLE PODNE
Moguce da je do zcmd al ceo mod mi je na ZCMD da li ce smetati ako samo tu komandu prebacim u YCMD?

nece smetati, moras dodati onda i onaj parametar help, pogledaj OnPlayerCommandReceived  ima li sta tu, ako nema onda dodaj debug na neku komandu i vidi gdje skripta kresuje...

My Bike KTM 450 SXF 2008

Prebacio sam je u YCMD ali izbaci mi simbol is never used kupikucu.
Dodao sam help i #pragme.
Nisam ni jednom koristio funkciju OnPlayerCommandReceived tako da je ni nemam u modu



Testirao sam sa debug (print)  da vidim sta ce biti i testovi su sledeci.
Prvo komanndu sam ovako prepravio:
CMD:kupikucu(playerid, params[])
{
   		printf("%s Unosi komandu kupi kucu", PlayerName(playerid));
        new string[210];
        new i = GetClosetHouseID(playerid);
 		if(Player[playerid][Houseid] != 999) return SCM(playerid,COLOR_RED,"Greska: "COL_WHITE"Vec imas kucu");
		if(!IsPlayerInRangeOfPoint(playerid,5.0,House[i][EnterX],House[i][EnterY],House[i][EnterZ])) return SCM(playerid,COLOR_RED,"Nisi blizu kuce");
		if(GetPlayerMoney(playerid) < House[i][Price]) return SCM(playerid, COLOR_RED, "Nemas toliko novca.");
		if(GetPlayerScore(playerid) < House[i][Level]) return SCM(playerid, COLOR_RED, "Nemas dovoljan level da kupis ovu kucu");
		print("Provere izvrsene komanda krece sa dodelom kuce");
		format(House[i][Owner], 32, "%s", GetName(playerid));
		if(House[i][hCar] > 0) format(HouseOwner[House[i][hCar]],64,"%s",GetName(playerid));
		House[i][On_Sell] = 0;
		Player[playerid][Houseid] = i;
		print("Debug 1");
		DestroyDynamicPickup(House[i][PickupU]);
		House[i][PickupU] = CreateDynamicPickup(1272, 23,  House[i][EnterX],House[i][EnterY],House[i][EnterZ],-1,-1,-1,100.0);
		GivePlayerMoney(playerid, -House[i][Price]);
		print("Debug 2");
		DestroyDynamicMapIcon(House[i][Icon]);
		House[i][Icon] = CreateDynamicMapIcon(House[i][EnterX],House[i][EnterY],House[i][EnterZ], 32, 0, -1, -1, -1, 100.0);
		CheckHouse(i);
		print("Debug 3");
		format(string,sizeof(string),"{E0BC1B}Vlasnik "COL_WHITE"%s\n{E0BC1B}Vrsta kuce: "COL_WHITE"%s\n{E0BC1B}Cena: "COL_WHITE"%d\n{E0BC1B}Level: "COL_WHITE"%d\n{E0BC1B}Rent Cena: "COL_WHITE"%d\n{E0BC1B}Adresa: "COL_WHITE"%s\n (/renthouse)",House[i][Owner],House[i][HouseName],House[i][Price],House[i][Level],House[i][RentPrice],House[i][Address]);
        UpdateDynamic3DTextLabelText(House[i][DLabel],-1,string);
        print("Debug 4");
        UpdatePlayerInformation(playerid);
        print("Komanda uspesno izvrsena");
		return 1;
}

E sad sta sam primetio kada kupim kucu pise da sam kupio kucu ali se ovaj 3Dtextlabel uopste ne promeni kao ni pickup.
Vec server padne i onda kada ga restartujem i udjem opet na server sve se lepo promeni.
Evo Server log sta se desavalo:
[11:57:41] Admin Unosi komandu kupi kucu
[11:57:51] Admin Unosi komandu kupi kucu
[11:58:04] Admin Unosi komandu kupi kucu
[11:58:04] Provere izvrsene komanda krece sa dodelom kuce
[11:58:04] Debug 1
[11:58:04] Debug 2
[11:58:04] Debug 3
[11:58:04] Debug 4

Kao sto se vidi neke stvari su se vise puta napisale.I poslednji print se nije ispisao...
Zna li neko kako ovo resiti?

daj public UpdatePlayerInformation

My Bike KTM 450 SXF 2008

stock UpdatePlayerInformation(playerid)
{
new dFile[32];
format(dFile, 35, FILE_FOR_PLAYER, GetName(playerid));

new
	INI:UserFile = INI_Open(dFile);

    INI_WriteFloat(UserFile, "pSpawnX", Player[playerid][SpawnX]);
    INI_WriteFloat(UserFile, "pSpawnY", Player[playerid][SpawnY]);
    INI_WriteFloat(UserFile, "pSpawnZ", Player[playerid][SpawnZ]);
    INI_WriteInt(UserFile, "pSpawn", Player[playerid][Spawn]);
    INI_WriteInt(UserFile, "pSpawnInt", Player[playerid][SpawnInt]);
    INI_WriteInt(UserFile, "pVW", Player[playerid][SpawnVW]);
    INI_WriteInt(UserFile, "RobHouse", Player[playerid][RobHouse]);
    INI_WriteInt(UserFile, "HouseID", Player[playerid][Houseid]);
    INI_WriteInt(UserFile, "Bill", Player[playerid][Min]);

	INI_Close(UserFile);
}

Hmm, probaj ovo ubaciti pa ako ti ovet crashuje, onda mi posalji iz loga sta je napisalo:
stock UpdatePlayerInformation(playerid) {
	new dFile[64];
	format(dFile, 64, FILE_FOR_PLAYER, GetName(playerid));
	if(fexist(dFile)) {
		newINI:UserFile = INI_Open(dFile);
		print("debug1");
		INI_WriteFloat(UserFile, "pSpawnX", Player[playerid][SpawnX]);
		INI_WriteFloat(UserFile, "pSpawnY", Player[playerid][SpawnY]);
		INI_WriteFloat(UserFile, "pSpawnZ", Player[playerid][SpawnZ]);
		INI_WriteInt(UserFile, "pSpawn", Player[playerid][Spawn]);
		INI_WriteInt(UserFile, "pSpawnInt", Player[playerid][SpawnInt]);
		print("debug2");
		INI_WriteInt(UserFile, "pVW", Player[playerid][SpawnVW]);
		INI_WriteInt(UserFile, "RobHouse", Player[playerid][RobHouse]);
		INI_WriteInt(UserFile, "HouseID", Player[playerid][Houseid]);
		INI_WriteInt(UserFile, "Bill", Player[playerid][Min]);
		print("debug3");
		INI_Close(UserFile);
	}
}

My Bike KTM 450 SXF 2008

Komanda proradila.Radi skoro sve  >:(
Medjutim ada kupim kucu stari pickup i textlabel se ne uniste nego ostanu a novi se pojave tako da na jednom mestu budu oba.

Citat: ShadowNET poslato Mart 27, 2016, 14:59:20 POSLE PODNE
Komanda proradila.Radi skoro sve  >:(
Medjutim ada kupim kucu stari pickup i textlabel se ne uniste nego ostanu a novi se pojave tako da na jednom mestu budu oba.


pogledaj dali ih kreira streamer i dali ih on unistava...

My Bike KTM 450 SXF 2008

Za text:
UpdateDynamic3DTextLabelText

Za pickup
DestroyDynamicPickup
CreateDynamicPickup