Naslov problema*: Ucitavanje objekata iz scriptfiles pri pokretanju servera
Opis problema*: Pravim neki sistem za dodavanje namestaja u kuce, objekti se uopste ne kreiraju pri porketanju servera i funkcija UcitajHouseItem uopste ne vraca DEBUG kao da se uopste ne poziva
Pokušaj rešavanja*: Sve zivo
Deo programskog koda*: stock SacuvajHouseItem(houseid, idxd)
{
new hiFile;
format(hiFile, sizeof(hiFile), "HouseItems/%d/%d.ini", houseid, idxd); // putanja fajla
new INI:File = INI_Open(hiFile);
INI_WriteInt(File, "ItemID", HouseItemInfo);
INI_WriteInt(File, "ObjID", HouseItemInfo);
INI_WriteInt(File, "Model", HouseItemInfo);
INI_WriteFloat(File, "PosX", HouseItemInfo);
INI_WriteFloat(File, "PosY", HouseItemInfo);
INI_WriteFloat(File, "PosZ", HouseItemInfo);
INI_WriteFloat(File, "RotX", HouseItemInfo);
INI_WriteFloat(File, "RotY", HouseItemInfo);
INI_WriteFloat(File, "RotZ", HouseItemInfo);
INI_WriteInt(File, "Int", HouseItemInfo);
INI_WriteInt(File, "VW", HouseItemInfo);
INI_Close(File);
return 1;
}
public UcitajHouseItem(extraid, const name[], const value[])
{
new houseid = extraid / 1000;
new objid = extraid % 1000;
INI_Int("ItemID", HouseItemInfo);
INI_Int("ObjID", HouseItemInfo);
INI_Int("Model", HouseItemInfo);
INI_Float("PosX", HouseItemInfo);
INI_Float("PosY", HouseItemInfo);
INI_Float("PosZ", HouseItemInfo);
INI_Float("RotX", HouseItemInfo);
INI_Float("RotY", HouseItemInfo);
INI_Float("RotZ", HouseItemInfo);
INI_Int("Int", HouseItemInfo);
INI_Int("VW", HouseItemInfo);
HouseItemInfo = CreateDynamicObject(
HouseItemInfo,
HouseItemInfo,
HouseItemInfo,
HouseItemInfo,
HouseItemInfo,
HouseItemInfo,
HouseItemInfo,
HouseItemInfo,
HouseItemInfo
);
return 1;
}
for(new id = 1; id < MAX_HOUSE; id++)
{
new hFile;
format(hFile, sizeof(hFile), KUCE_PATH, id);
if(fexist(hFile))
{
INI_ParseFile(hFile, "UcitajKuce", .bExtra = true, .extra = id);
UpdateHouseLabel(id);
for(new o = 0; o < MAX_HOUSE_OBJECTS; o++)
{
new itemFile;
format(itemFile, sizeof(itemFile), "HouseItems/%d/%d.ini", id, o);
printf("TRAZIM: %s", itemFile);
if(fexist(itemFile))
{
if(!INI_ParseFile(itemFile, "UcitajHouseItem", .bExtra = true, .extra = id*1000 + o))
{
printf(" INI_ParseFile nije uspeo za: %s", itemFile);
}
else
{
printf(" INI_ParseFile ok za: %s", itemFile);
}
}
}
}
}
Debug informacije: TRAZIM: HouseItems/3/1.ini
[02:49:34] INI_ParseFile ok za: HouseItems/3/1.ini
[02:49:34] TRAZIM: HouseItems/3/2.ini
[02:49:34] INI_ParseFile ok za: HouseItems/3/2.ini
[02:49:34] TRAZIM: HouseItems/3/3.ini
[02:49:34] INI_ParseFile ok za: HouseItems/3/3.ini
Fotografija problema u igri: Vaš odgovor
Korišćene biblioteke (includes): Vaš odgovor
Dodatne informacije: Vaš odgovor
Ucitavanje objekata iz scriptfiles pri pokretanju servera
196
pregleda
5
postova
pre 4 meseca
Po ovome bih rekao da ti pravi CreateDynamicObject pravi prazan objekat ili ga cak i nepravi jer je model 0?
Za printf probaj ovako nesto
Probaj ti sam da dodas vrednosti u scriptfiles model,kordinate i vidi sta se desava i posalji kompletan house jer ovako je samo nagadjanje
Za printf probaj ovako nesto
printf(" cb UcitajHouseItem extraid=%d key=%s val=%s", extraid, name, value); odma ispod public i ovako bi ja nesto uradio
printf(" cb UcitajHouseItem extraid=%d key=%s val=%s", extraid, name, value);
new houseid = extraid / 1000;
new objid = extraid % 1000;
INI_Int ("ItemID", HouseItemInfo);
INI_Int ("ObjID", HouseItemInfo);
INI_Int ("Model", HouseItemInfo);
INI_Float("PosX", HouseItemInfo);
INI_Float("PosY", HouseItemInfo);
INI_Float("PosZ", HouseItemInfo);
INI_Float("RotX", HouseItemInfo);
INI_Float("RotY", HouseItemInfo);
INI_Float("RotZ", HouseItemInfo);
INI_Int ("Int", HouseItemInfo);
INI_Int ("VW", HouseItemInfo);
// sad krecemo sa kreiranjem ("VW") jer po nekoj logici tek sad treba da se kreira dok yini obradi
if (!strcmp(name, "VW", true))
{
new model = HouseItemInfo;
if (model <= 0)
{
printf(" house=%d obj=%d ima nevažeći model=%d (preskačem kreiranje).", houseid, objid, model);
return 1;
}
HouseItemInfo = CreateDynamicObject(model,HouseItemInfo,
HouseItemInfo,
HouseItemInfo,
HouseItemInfo,
HouseItemInfo,
HouseItemInfo,
HouseItemInfo, // worldid
HouseItemInfo // interiorid
);
printf(" Kreiran object id=%d (model=%d) za house=%d obj=%d VW=%d INT=%d.",
HouseItemInfo,
model, houseid, objid,
HouseItemInfo,
HouseItemInfo
);
}
return 1;
}Probaj ti sam da dodas vrednosti u scriptfiles model,kordinate i vidi sta se desava i posalji kompletan house jer ovako je samo nagadjanje
pre 4 meseca
https://pastebin.com/8PRJy19G
posle dodavanja tvog printf
TRAZIM: HouseItems/3/1.ini
[10:27:02] cb UcitajHouseItem extraid=3001 key=ItemID val=1
[10:27:02] cb UcitajHouseItem extraid=3001 key=ObjID val=0
[10:27:02] cb UcitajHouseItem extraid=3001 key=Model val=1814
[10:27:02] cb UcitajHouseItem extraid=3001 key=PosX val=2282.885498
[10:27:02] cb UcitajHouseItem extraid=3001 key=PosY val=-1138.485717
[10:27:02] cb UcitajHouseItem extraid=3001 key=PosZ val=1049.888305
[10:27:02] cb UcitajHouseItem extraid=3001 key=RotX val=0.000000
[10:27:02] cb UcitajHouseItem extraid=3001 key=RotY val=0.000000
[10:27:02] cb UcitajHouseItem extraid=3001 key=RotZ val=0.000000
[10:27:02] cb UcitajHouseItem extraid=3001 key=Int val=11
[10:27:02] cb UcitajHouseItem extraid=3001 key=VW val=3
[10:27:02] INI_ParseFile ok za: HouseItems/3/1.ini
posle dodavanja tvog printf
TRAZIM: HouseItems/3/1.ini
[10:27:02] cb UcitajHouseItem extraid=3001 key=ItemID val=1
[10:27:02] cb UcitajHouseItem extraid=3001 key=ObjID val=0
[10:27:02] cb UcitajHouseItem extraid=3001 key=Model val=1814
[10:27:02] cb UcitajHouseItem extraid=3001 key=PosX val=2282.885498
[10:27:02] cb UcitajHouseItem extraid=3001 key=PosY val=-1138.485717
[10:27:02] cb UcitajHouseItem extraid=3001 key=PosZ val=1049.888305
[10:27:02] cb UcitajHouseItem extraid=3001 key=RotX val=0.000000
[10:27:02] cb UcitajHouseItem extraid=3001 key=RotY val=0.000000
[10:27:02] cb UcitajHouseItem extraid=3001 key=RotZ val=0.000000
[10:27:02] cb UcitajHouseItem extraid=3001 key=Int val=11
[10:27:02] cb UcitajHouseItem extraid=3001 key=VW val=3
[10:27:02] INI_ParseFile ok za: HouseItems/3/1.ini
pre 4 meseca
Po ovome moze da bude streamer plugin,wv i enterior probaj da budes u vw 3 i enterijeru 11 da bi video da li radi ili ne.
Jako losa stvar sto se objid ne upisuje u yini jer je to run time vrednost, i moguce da ga parsiras
Jako losa stvar sto se objid ne upisuje u yini jer je to run time vrednost, i moguce da ga parsiras
Morate biti prijavljeni da biste odgovorili na ovu temu.
Prijava