[POMOC] Ne kreira label/pickup za stan (ON GAME MODE INIT)

Započeo Ermin.
17. Nov. 2013. Zaključano
491
pregleda
11
postova
ermin.a
5
Underboss
17. Nov. 2013.
Skripta koju koristim: scratch
Detaljan opis problema: pa ovak, radio sam stan sistem, uradio sam ga radi perfekt, odem IG, kucam /kreirajstan
Kreira ga, postavi 3dLabel i Pickup IG, napravi Fajl i ostalo..

eh kad odem GMX, treba da sacuva stanova ( sto i uradi ), ali
kad se GM pokrene ponovo, tj OnGameModeInit kad se poziva
nece da kreira Labele & Pickupe za stanove, iako ucita sve stanove..

dat cu kod za /kreirajstan i za citanje prilikom initializiranja GMa

Dio skripte:
for(new idx = 1; idx < sizeof(StanInfo); idx ++)
{
  //new str;
  //format(str, sizeof(str), STANPATH, idx);
  //if(fexist(str))
  //{

        INI_ParseFile(StanPath(idx), "LoadStan_%i", .bExtra = true, .extra = idx);

if(StanInfo == 1)
{
      StanInfo = CreateDynamicPickup(1239, 1, StanInfo, StanInfo, StanInfo, 0);
      new labelstring;
              format(labelstring, sizeof(labelstring),
      "{F0C948}Vlasnik stana: {FFFFFF}%s\n{F0C948}Level: {FFFFFF}%d",
      StanInfo, StanInfo);
      StanInfo = CreateDynamic3DTextLabel(labelstring, 0xAAAAAAFF, StanInfo, StanInfo, StanInfo, 10.0);
        }
        else if(StanInfo == 0)
        {
    StanInfo = CreateDynamicPickup(1273, 1, StanInfo, StanInfo, StanInfo, 0);
    new labelstring2;
    format(labelstring2, sizeof(labelstring2),
    "{F0C948}Stan se prodaje!\nCijena: {FFFFFF}%d\n{F0C948}Level: {FFFFFF}%d",
    StanInfo, StanInfo);
    StanInfo = CreateDynamic3DTextLabel(labelstring2, 0xAAAAAAFF, StanInfo, StanInfo, StanInfo, 10.0);
}
//}  // if string exist
} // kraj loopa

YCMD:kreirajstan(playerid, params[], help)
{
#pragma unused help
if(PlayerInfo < 1338)
    return SCM(playerid, TAMNOCRVENA, "[CA:RP]"siva" Nisi ovlasten da koristis ovu komandu!");
new id,cijena,level;
if(sscanf(params, "iii",id,cijena,level))
    return SCM(playerid, SIVA, "Koristi: /kreirajstan [id stana] ");
else if(id < 1 || id > MAX_STANOVA)
    return SCM(playerid, SIVA, "  Id stana ne moze biti ispod 1 ili preko "#MAX_STANOVA);
else if(cijena < 1 || cijena > MAX_STAN_CIJENA)
    return SCM(playerid, SIVA, "  Cijena stana ne moze biti ispod 1 ili preko "#MAX_STAN_CIJENA);
else if(level < 1 || level > MAX_STAN_LEVEL)
    return SCM(playerid, SIVA, "  Level stana ne moze biti ispod 1 ili preko "#MAX_STAN_LEVEL);

new fostring;
format(fostring, 16, STANPATH, id);
if(fexist(fostring))
    return SCM(playerid, SIVA, "  Stan sa tim IDom vec postoji!");

new Float:pos;
GetPlayerPos(playerid, pos, pos, pos);

StanInfo = 0;
StanInfo = CreateDynamicPickup(1273, 1, pos, pos, pos, 0);
strmid(StanInfo, "Niko", 0, strlen("Niko"), 255);

new label;
format(label, 128,
"{F0C948}Stan se prodaje!\nCijena: {FFFFFF}%d\n{F0C948}Level: {FFFFFF}%d", cijena, level);
StanInfo = CreateDynamic3DTextLabel(label, 0x333333FF, pos, pos, pos, 10.0);

StanInfo = 0;
StanInfo = cijena;
StanInfo = level;
StanInfo = 1;
StanInfo = pos;
StanInfo = pos;
StanInfo = pos;
StanInfo = 1;
StanInfo = POCETNI_STAN_VIRTUAL_WORLD + id;

SacuvajStan(id);
return 1;
}


Neke slike/video za lakse dobivanje pomoci(neobavezno):
ermin.a
5
Underboss
17. Nov. 2013.
BUMP, zna li neko rjesenje, hitno je ?
ermin.a
5
Underboss
17. Nov. 2013.
E jesam evo, IG sam napravio 3 stana:

id 1, id 3 i id 7

pokrenem mod printa mi:

Stan 1 ucitan!
Stan 3 ucitan!
Stan 7 ucitan!

ali ne kreira labele pickupe itd, evo kod gdje sam pokuso ponovo

forward UcitajSveStanove();
public UcitajSveStanove()
{
    for(new idx = 1; idx < sizeof(StanInfo); idx ++)
{
new fString;
format(fString, 90, STANPATH, idx);
if(!fexist(fString)) continue;
if(fexist(fString))
{
INI_ParseFile(StanPath(idx), "LoadStan_%i", .bExtra = true, .extra = idx);
printf("Stan %d ucitan!", idx);

if(StanInfo == 1)
{
StanInfo = CreateDynamicPickup(1239, 1, StanInfo, StanInfo, StanInfo, 0);
new labelstring;
format(labelstring, sizeof(labelstring),
"{F0C948}Vlasnik stana: {FFFFFF}%s\n{F0C948}Level: {FFFFFF}%d",
StanInfo, StanInfo);
StanInfo = CreateDynamic3DTextLabel(labelstring, 0xAAAAAAFF, StanInfo, StanInfo, StanInfo, 10.0);

}

else if(StanInfo == 0)
{
StanInfo = CreateDynamicPickup(1273, 1, StanInfo, StanInfo, StanInfo, 0);
new labelstring2;
format(labelstring2, sizeof(labelstring2),
"{F0C948}Stan se prodaje!\nCijena: {FFFFFF}%d\n{F0C948}Level: {FFFFFF}%d",
StanInfo, StanInfo);
StanInfo = CreateDynamic3DTextLabel(labelstring2, 0xAAAAAAFF, StanInfo, StanInfo, StanInfo, 10.0);

}

continue;
} //fexist
}//loop
}//callback
ermin.a
5
Underboss
17. Nov. 2013.
OnGameModeInit:
UcitajSveStanove();
ermin.a
5
Underboss
17. Nov. 2013.
Nema to veze msm, jer kad IG kucam /kreirajstan blabla,
kreira se i label i pickup.. (CreateDynamic3dTextLabel/Pickup)

edit: pokusat cu preko tajmera, tj da prvo ucita, pa da kroz 2-3 sekunde kreira labele, moguce da 'ne stigne' ucitat, tj da prvo izvrsi CreateLabel nego LoadStan  😄
ermin.a
5
Underboss
17. Nov. 2013.
EDIT:

skonto sam do cega je, Ne ucitava mi stanove, znaci postavio sam debug ako je "Posjedovan" = 1 da printa "", a ako je 0 da printa "",

znaci 2 stana su mi owned = 1 a 2 su owned = 0,

(po defaultu je 0 logicno, jer ne postavlja tj ne cita iz fajla propisno)

a printa za svaki da je NONOWNED (znaci nesto kod ucitavanja ne valja)

evo moguci kodovi:
INI_ParseFile(StanPath(idx), "LoadStan_%i", .bExtra = true, .extra = idx);

stock StanPath(stanid)
{
new string;
format(string,sizeof(string),STANPATH,stanid);
return string;
}

public LoadStan_data(idx, name[], value[])
{
//---------------------------------------------------------------------
INI_Int("Posjedovan", StanInfo);
    INI_String("Vlasnik", StanInfo, MAX_PLAYER_NAME);
INI_Int("Cijena", StanInfo);
INI_Int("Level", StanInfo);
INI_Int("Zakljucan", StanInfo);
INI_Float("UlazX", StanInfo);
INI_Float("UlazY", StanInfo);
INI_Float("UlazZ", StanInfo);
INI_Float("IzlazX", StanInfo);
INI_Float("IzlazY", StanInfo);
INI_Float("IzlazZ", StanInfo);
INI_Int("Interijer", StanInfo);
INI_Int("World", StanInfo);

//---------------------------------------------------------------------
    return 1;
}
ermin.a
5
Underboss
18. Nov. 2013.
A stavio sam da mi printa kod Loadanja:
Stan %d ucitan

A kod kreiranja labela pickupa
ako je posjedovan:
 pickup/label za stan %d kreirani!

ako nije
[non-owned] pickup/label za stan %d kreirani!


i pokrenem GM, nakon par sekundi mi samo ispise:

[non-owned] pickup/label za stan 1 kreirani!
[non-owned] pickup/label za stan 2 kreirani!
[non-owned] pickup/label za stan 3 kreirani!
[non-owned] pickup/label za stan 4 kreirani!
// Iako su stan 2 i 4 Owned..


Evo novi kod sam napiso,nece da ucita naravno.. :/
forward UcitajSveStanove();
public UcitajSveStanove()
{
    for(new i = 1; i < sizeof(StanInfo); i++)
  {
      INI_ParseFile(StanPath(i), "LoadStan_%i", .bExtra = true, .extra = i);
  }
}

forward stan_crt(); // ovo koristim kao tajmer, znaci nakon ucitavanja pokrene se tajmer
// da bi eventualno 'stiglo' ucitat sve stanove..
public stan_crt()
{
  new fstring;
  for(new idx = 1; idx < sizeof(StanInfo); idx++)
  {
      format(fstring, 64, STANPATH, idx);
      if(fexist(fstring))
      {
        if(StanInfo == 1)
        {
            StanInfo = CreateDynamicPickup(1239, 1, StanInfo, StanInfo, StanInfo, 0);
            new labelstring;
            format(labelstring, sizeof(labelstring),"{F0C948}Vlasnik stana: {FFFFFF}%s\n{F0C948}Level: {FFFFFF}%d",StanInfo, StanInfo);
            StanInfo = CreateDynamic3DTextLabel(labelstring, 0xAAAAAAFF, StanInfo, StanInfo, StanInfo, 10.0);
            printf("owned > %d > label/pickup created", idx);
        }

        else if(StanInfo == 0)
        {
            StanInfo = CreateDynamicPickup(1273, 1, StanInfo, StanInfo, StanInfo, 0);
            new labelstring2;
            format(labelstring2, sizeof(labelstring2),"{F0C948}Stan se prodaje!\nCijena: {FFFFFF}%d\n{F0C948}Level: {FFFFFF}%d",StanInfo, StanInfo);
            StanInfo = CreateDynamic3DTextLabel(labelstring2, 0xAAAAAAFF, StanInfo, StanInfo, StanInfo, 10.0);
            printf("non-owned > %d > label/pickup created", idx);
        }
      }
  }
  KillTimer(stan_crt_timer);
}
MadDog
5
Crime Lord
18. Nov. 2013.
mozes li mi dati enum za stanove?
ermin.a
5
Underboss
18. Nov. 2013.
evo sve moguce varijable..
enum sInfo
{
sPosjedovan,
sVlasnik,
sCijena,
sLevel,
sZakljucan,
Float:sUlazx,
Float:sUlazy,
Float:sUlazz,
Float:sIzlazx,
Float:sIzlazy,
Float:sIzlazz,
sInt,
sWorld,
sVaniPickup,
Text3D:sLabel

}
new StanInfo;
Nermin(CH)
5
Underboss
19. Nov. 2013.
Znaci isti problem imam, potpuno isti. Pa da ne bi otvarao novu temu, bumpam ovu 🙂
ermin.a
5
Underboss
19. Nov. 2013.
MOZE LOCK!

Problem je bio u:

INI_ParseFile(StanPath(i), "LoadStan_%d", .bExtra = true, .extra = i);


ustvari treba

INI_ParseFile(StanPath(i), "LoadStan_%s", .bExtra = true, .extra = i);

Morate biti prijavljeni da biste odgovorili na ovu temu.

Prijava

© 2026 SmartShark. All rights reserved.

Powered by Momentum|v2026.3.001 Alpha