Язык: lua
Что из себя представляет: функция, которая должна сохранять инвентарь в файл
- Код: выделить все
Base/Inventory/"..name..".txt
Ещё вам может помочь
Якобы рабочий вариант функции.
- Код: выделить все
function BE_Save_Inventory(playerid,params)
local name = GetPlayerName(playerid);
for i = 0, 500 do
GetPlayerItem(playerid,i);
end
end
Проблема этого варианта: он тупо не сохраняет предметы. Ну, это из кода видно, просто пусть тут будет, мало ли.
Вот мой нерабочий вариант #1
- Код: выделить все
function BE_Save_Inventory(playerid,params)
local name = Player[playerid].real_name;
Player[playerid].save = true;
io.open("Base/Inventory/"..name..".txt","r+");
if file then
for i = 0, 500
do
io.open("Base/Inventory/"..name..".txt","+l");
local tmp = file:read("*l");
if tmp then
local result, item, amount = sscanf(tmp,"sd");
GetPlayerItem(playerid,item,amount);
file = io.write();
file:close();
end
end
else
file = io.open("Base/Inventory/"..name..".txt", "w+");
file:write();
file:close();
for i = 0, 500 do
io.open("Base/Inventory/"..name..".txt","+l");
local tmp = file:read("*l");
if tmp then
local result, item, amount = sscanf(tmp,"sd");
GetPlayerItem(playerid,item,amount);
file = io.write();
file:close();
end
end
end
file:close();
end
Скриншоты ошибки:


Вот мой нерабочий вариант #2
- Код: выделить все
function BE_Save_Inventory(playerid)
local name = Player[playerid].real_name;
file = io.open("Base/Inventory/"..name..".txt", "w");
if file then
for i = 0, 500 do
local c,d = GetPlayerItem(playerid,i);
local it = string.format("%s %s %d,",c, " " ,d);
file:write(it);
end
file:close();
end
end
Как вы могли заметить тут всё упирается в GetPlayerItem(playerid,i), вот справка из вики по этому калбэку: