Balkan SA:MP

PAWN skriptanje, gamemodovi, filterskripte, include fajlovi, mape, pluginovi => Razgovor u vezi PAWN - skriptanja => Temu započeo: ShadowNET poslato Mart 26, 2016, 10:16:15 PRE PODNE

Naslov: [Pomoc] House Crash
Poruka od: ShadowNET poslato Mart 26, 2016, 10:16:15 PRE PODNE
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:[pawn]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[EnterX],House[EnterY],House[EnterZ])) return SCM(playerid,COLOR_RED,"Nisi blizu kuce");
      if(GetPlayerMoney(playerid) < House[Price]) return SCM(playerid, COLOR_RED, "Nemas toliko novca.");
      if(GetPlayerScore(playerid) < House[Level]) return SCM(playerid, COLOR_RED, "Nemas dovoljan level da kupis ovu kucu");
      format(House[Owner], 32, "%s", GetName(playerid));
      if(House[hCar] > 0) format(HouseOwner[House[hCar]],64,"%s",GetName(playerid));
      House[On_Sell] = 0;
      Player[playerid][Houseid] = i;
      DestroyDynamicPickup(House[PickupU]);
      House[PickupU] = CreateDynamicPickup(1272, 23,  House[EnterX],House[EnterY],House[EnterZ],-1,-1,-1,100.0);
      GivePlayerMoney(playerid, -House[Price]);
      DestroyDynamicMapIcon(House[Icon]);
      House[Icon] = CreateDynamicMapIcon(House[EnterX],House[EnterY],House[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[Owner],House[HouseName],House[Price],House[Level],House[RentPrice],House[Address]);
        UpdateDynamic3DTextLabelText(House[DLabel],-1,string);
        UpdatePlayerInformation(playerid);
      return 1;
}[/pawn]
Neke slike/video za lakse dobivanje pomoci(neobavezno):/
Naslov: Odg: [Pomoc] House Crash
Poruka od: xLanmi poslato Mart 26, 2016, 10:30:08 PRE PODNE
Moze da bude da ti je do ZCMD
probaj zameni ovako to kupikucu
[pawn]YCMD:kupikucu(playerid, params[], help)
{
    #pragma unused help
    #pragma unused params[/pawn]
Naslov: Odg: [Pomoc] House Crash
Poruka od: Vuzimir poslato Mart 26, 2016, 13:12:14 POSLE PODNE
daj vamo takodje OnPlayerCommandReceived moguce da tu nesto ima...
Naslov: Odg: [Pomoc] House Crash
Poruka od: 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?
Naslov: Odg: [Pomoc] House Crash
Poruka od: Vuzimir poslato Mart 26, 2016, 16:54:00 POSLE PODNE
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...
Naslov: Odg: [Pomoc] House Crash
Poruka od: ShadowNET poslato Mart 26, 2016, 19:42:27 POSLE PODNE
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
Naslov: Odg: [Pomoc] House Crash
Poruka od: GoodbyeSamp poslato Mart 27, 2016, 01:08:26 PRE PODNE
uzmi
Naslov: Odg: [Pomoc] House Crash
Poruka od: GoodbyeSamp poslato Mart 27, 2016, 01:09:01 PRE PODNE
probaj da stavis debug
Naslov: Odg: [Pomoc] House Crash
Poruka od: ShadowNET poslato Mart 27, 2016, 11:52:47 PRE PODNE
Testirao sam sa debug (print)  da vidim sta ce biti i testovi su sledeci.
Prvo komanndu sam ovako prepravio:
[pawn]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[EnterX],House[EnterY],House[EnterZ])) return SCM(playerid,COLOR_RED,"Nisi blizu kuce");
      if(GetPlayerMoney(playerid) < House[Price]) return SCM(playerid, COLOR_RED, "Nemas toliko novca.");
      if(GetPlayerScore(playerid) < House[Level]) return SCM(playerid, COLOR_RED, "Nemas dovoljan level da kupis ovu kucu");
      print("Provere izvrsene komanda krece sa dodelom kuce");
      format(House[Owner], 32, "%s", GetName(playerid));
      if(House[hCar] > 0) format(HouseOwner[House[hCar]],64,"%s",GetName(playerid));
      House[On_Sell] = 0;
      Player[playerid][Houseid] = i;
      print("Debug 1");
      DestroyDynamicPickup(House[PickupU]);
      House[PickupU] = CreateDynamicPickup(1272, 23,  House[EnterX],House[EnterY],House[EnterZ],-1,-1,-1,100.0);
      GivePlayerMoney(playerid, -House[Price]);
      print("Debug 2");
      DestroyDynamicMapIcon(House[Icon]);
      House[Icon] = CreateDynamicMapIcon(House[EnterX],House[EnterY],House[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[Owner],House[HouseName],House[Price],House[Level],House[RentPrice],House[Address]);
        UpdateDynamic3DTextLabelText(House[DLabel],-1,string);
        print("Debug 4");
        UpdatePlayerInformation(playerid);
        print("Komanda uspesno izvrsena");
      return 1;
}[/pawn]
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:
[pawn][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[/pawn]
Kao sto se vidi neke stvari su se vise puta napisale.I poslednji print se nije ispisao...
Zna li neko kako ovo resiti?
Naslov: Odg: [Pomoc] House Crash
Poruka od: Vuzimir poslato Mart 27, 2016, 13:37:00 POSLE PODNE
daj public UpdatePlayerInformation
Naslov: Odg: [Pomoc] House Crash
Poruka od: ShadowNET poslato Mart 27, 2016, 13:38:41 POSLE PODNE
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);
}
Naslov: Odg: [Pomoc] House Crash
Poruka od: Vuzimir poslato Mart 27, 2016, 13:42:06 POSLE PODNE
Hmm, probaj ovo ubaciti pa ako ti ovet crashuje, onda mi posalji iz loga sta je napisalo: [pawn]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);
   }
}[/pawn]
Naslov: Odg: [Pomoc] House Crash
Poruka od: 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.
Naslov: Odg: [Pomoc] House Crash
Poruka od: Vuzimir poslato Mart 27, 2016, 15:09:49 POSLE PODNE
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...
Naslov: Odg: [Pomoc] House Crash
Poruka od: ShadowNET poslato Mart 27, 2016, 15:35:39 POSLE PODNE
Za text: UpdateDynamic3DTextLabelText

Za pickup DestroyDynamicPickup
CreateDynamicPickup

Naslov: Odg: [Pomoc] House Crash
Poruka od: [BS]Paolo poslato Mart 27, 2016, 15:45:06 POSLE PODNE
samo restartuj server i bice ti oke pickup
Naslov: Odg: [Pomoc] House Crash
Poruka od: ShadowNET poslato Mart 27, 2016, 15:49:28 POSLE PODNE
Znaci svaki put kada neko kupi kucu treba da restartujem server...
Naslov: Odg: [Pomoc] House Crash
Poruka od: ShadowNET poslato Mart 27, 2016, 16:10:27 POSLE PODNE
Fixed  ;D
Moze lock
ps: Hvala Vuzimir-u  na svo ulozeno vreme  :)