Здравствуйте. Скачал я базу данных xml, долго редактировал под свой сервер. Дело в том что я запретил команду логин,регистер и т.д. Мне нужно что бы xml база запускалась не когда игрок залогиниться а когда зайдёт на сервер.
local ALLOW_SAVE = true;
local SAVE_TIME = 60;
function onPlayerLogin(_,account)
if not xmlLoadFile("users/"..getAccountName(account)..".xml") then
local XMLROOT = xmlCreateFile("users/"..getAccountName(account)..".xml","user");
xmlCreateChild(XMLROOT, "Nickname")
xmlCreateChild(XMLROOT, "Money")
xmlCreateChild(XMLROOT, "Skin")
xmlSaveFile(XMLROOT);
xmlUnloadFile(XMLROOT);
else
local XMLROOT = xmlLoadFile("users/"..getAccountName(account)..".xml");
local Money = xmlNodeGetValue (xmlFindChild( XMLROOT, "Money", 0 ));
local Skin = xmlNodeGetValue (xmlFindChild( XMLROOT, "Skin", 0 ));
setPlayerMoney(source,Money);
setElementModel(source,Skin);
xmlSaveFile(XMLROOT);
xmlUnloadFile(XMLROOT);
end
setElementData(source,"account:name",getAccountName(account))
end
function onPlayerLogout()
local XMLROOT = xmlLoadFile("users/"..getElementData(source,"account:name")..".xml");
if XMLROOT then
xmlNodeSetValue (xmlFindChild( XMLROOT, "Money", 0), getPlayerMoney(source));
xmlNodeSetValue (xmlFindChild( XMLROOT, "Skin", 0), getElementModel(source));
xmlSaveFile(XMLROOT);
xmlUnloadFile(XMLROOT);
end
end
function saveAllAccounts()
for key, thePlayer in ipairs(getElementsByType("player")) do
local XMLROOT = xmlLoadFile("users/"..getElementData(thePlayer,"account:name")..".xml");
if XMLROOT then
xmlNodeSetValue (xmlFindChild( XMLROOT, "Money", 0), getPlayerMoney(thePlayer));
xmlNodeSetValue (xmlFindChild( XMLROOT, "Skin", 0), getElementModel(thePlayer));
xmlSaveFile(XMLROOT);
xmlUnloadFile(XMLROOT);
end
end
print(" ");
print(" *** All accounts are saved! / Все аккаунты сохранены ***");
print(" ");
end
if ALLOW_SAVE then
setTimer(saveAllAccounts,SAVE_TIME*60000,0)
end
addEventHandler("onResourceStop", getResourceRootElement(),saveAllAccounts)
addEventHandler("onPlayerLogin", root,onPlayerLogin)
addEventHandler("onPlayerLogout", root,onPlayerLogout)
addEventHandler("onPlayerQuit", root,onPlayerLogout)
Исправьте код если не трудно.