Wysłany: 2012-09-13, 15:23
DMN
Wiek: 33 Na forum: 5015 dni Posty: 15
Piwa : 17
P?tla w public OnGameModeInit()
Kod: for(new i = 0; i < MAX_ITEMS; i++)
{
new string[32];
format(string, sizeof(string),"Items/Item%d", i);
if(DOF_FileExists(string))
{
LoadItem(i);
}
}
I sam public.
Kod: public LoadItem(uid)
{
new string[20];
new valid = -1;
format(string, sizeof(string), "Items/Item%d.ini", uid);
if(!DOF_FileExists(string))
{
printf("SERWER: Pr?ba wczytania Przedmiotu(UID:%d) zako?czona niepowodzeniem", uid);
return 1;
}
else
{
ItemInfo[uid][iUID] = DOF_GetInt(string, "UID");
ItemInfo[uid][iType] = DOF_GetInt(string, "Type");
strmid(ItemInfo[uid][iName], DOF_GetString(string, "Name"), 0, 34, 34);
strmid(ItemInfo[uid][iDescription], DOF_GetString(string, "Description"), 0, 34, 34);
ItemInfo[uid][iOwned] = DOF_GetInt(string, "Owned");
ItemInfo[uid][iOwner] = DOF_GetInt(string, "Owner");
ItemInfo[uid][iUsed] = DOF_GetInt(string, "Used");
ItemInfo[uid][iValue1] = DOF_GetInt(string, "Value1");
ItemInfo[uid][iValue2] = DOF_GetInt(string, "Value2");
ItemInfo[uid][iValue3] = DOF_GetInt(string, "Value3");
ItemInfo[uid][iValue4] = DOF_GetInt(string, "Value4");
ItemInfo[uid][iCap] = DOF_GetInt(string, "Cap");
ItemInfo[uid][iPos_x] = DOF_GetFloat(string, "Pos_x");
ItemInfo[uid][iPos_x] = DOF_GetFloat(string, "Pos_y");
ItemInfo[uid][iPos_x] = DOF_GetFloat(string, "Pos_z");
ItemInfo[uid][iPos_x] = DOF_GetFloat(string, "Angle");
ItemInfo[uid][iWorld] = DOF_GetInt(string, "World");
DOF_SaveFile();
if(ItemInfo[uid][iOwned] == 0)
{
for (new i=0; i < sizeof(ItemModels) && valid == -1; i++)
{
if (ItemInfo[uid][iType] == ItemModels[0][i]) valid = i;
}
if(valid == -1)
{
format(string, sizeof(string), "%s", ItemInfo[uid][iName]);
ItemName[uid] = Create3DTextLabel(string, COLOR_LIGHTBLUE, 0.0, 0.0, 0.0, 20.0, 0, 0);
}
ItemSpawned[uid] = CreateObject(ItemModels[0][valid], ItemInfo[uid][iPos_x], ItemInfo[uid][iPos_y], ItemInfo[uid][iPos_z], 0.0, 0.0, 0.0);
}
printf("SERWER: Przedmiot(UID:%d) zosta? pomy?lnie wczytany.", uid);
}
return 1;
}
W publicu zrobi?em 2 mo?liwo?ci, je?eli plik istnieje to go wczyta, je?eli nie to go pominie. Niestety przy w??czaniu serwera, na konsoli nic nie wyskakuje. Gdzie pope?ni?em b??d?
Wysłany: 2012-09-13, 15:53
Combacior
Wiek: 29 Na forum: 5795 dni Posty: 1516
Piwa : 2161
Nie masz rozszerzenia pliku (prawdopodobnie)
Kod: format(string, sizeof(string),"Items/Item%d", i);
Zamie? to na
Kod: format(string, sizeof(string),"Items/Item%d.ini", i);
Wysłany: 2012-09-13, 17:29
DMN
Wiek: 33 Na forum: 5015 dni Posty: 15
Piwa : 17
Dzi?ki, piwo leci. A teraz opcja taka, ?e nie chce mi stworzy? Tekstu3D, w og?le nie chce wywo?a? publica.
Kod: public AddItem(uid)
{
if(ItemInfo[uid][iOwned] == 0)
{
new string[32];
format(string, sizeof(string), "%s", ItemInfo[uid][iName]);
ItemName[uid] = Create3DTextLabel(string, COLOR_LIGHTBLUE, ItemInfo[uid][iPos_x], ItemInfo[uid][iPos_y], ItemInfo[uid][iPos_z], 15, ItemInfo[uid][iWorld]);
printf("SERWER: Przedmiot(UID:%d) zosta? pomy?lnie zespawnowany na mapie", uid);
}
return 0;
}
Dodam, ?e upewni?em si?, ?e zmienna iOwned wynosi 0.
Tagi: wczytywanie :: plików :: przy :: starcie :: serwera.
Anonymous
Na forum: 245 dni
Posty: 1
Anonymous Koniecznie zajrzyj na: