Castillo Posted July 27, 2010 Posted July 27, 2010 (edited) hey there, i want to save the player cordinates when he quits but the problem is that dunno why dosnt check my character or somthing like that, i set the element data of "charname" when he selects it, that works fine but not this part. dosnt give any errors or warnings. if someone can help me thanks Edited August 1, 2010 by Guest San Andreas Utopia RPG (SAUR) Owner & Developer. Education is the most powerful weapon which you can use to change the world.
dzek (varez) Posted July 27, 2010 Posted July 27, 2010 what is this return i -1 Multi theft auto tools - replace cars and peds, move your map or compile your Lua files online! programista php rzeszów Need free webhosting for your small site? PM me. Need help with portforwarding? PM me. Do not PM me asking for help with scripting. Having problems with port forwarding? Send me pm, I can do whole thing for you using TeamViewer (already helped about 20 people, no worries)!
Castillo Posted July 27, 2010 Author Posted July 27, 2010 what is thisreturn i -1 i use this function for other 3 functions, create character,login,save. if isnt like that it wont work... San Andreas Utopia RPG (SAUR) Owner & Developer. Education is the most powerful weapon which you can use to change the world.
dzek (varez) Posted July 27, 2010 Posted July 27, 2010 ah, sorry, i didnt sleep well tonight and got confused ;| Multi theft auto tools - replace cars and peds, move your map or compile your Lua files online! programista php rzeszów Need free webhosting for your small site? PM me. Need help with portforwarding? PM me. Do not PM me asking for help with scripting. Having problems with port forwarding? Send me pm, I can do whole thing for you using TeamViewer (already helped about 20 people, no worries)!
Castillo Posted July 27, 2010 Author Posted July 27, 2010 ah, sorry, i didnt sleep well tonight and got confused ;| ok, any idea why dosnt work ? San Andreas Utopia RPG (SAUR) Owner & Developer. Education is the most powerful weapon which you can use to change the world.
dzek (varez) Posted July 27, 2010 Posted July 27, 2010 try little debugging function onquitdb () outputDebugString("player "..getPlayerName(source).." logged out/quit") local root = xmlLoadFile ("playerdb.xml") local index = getUserIndex (getAccountName(getPlayerAccount(source)),root) outputDebugString ("index: "..tostring(index)) if (index) then outputDebugString("if condition was true") local accountR2 = xmlFindChild (root,"user",index) outputDebugString(tostring(accountR2)) -- i think it will be something like "res: 0388782" (random number) if i remember correctly, or it can be false/nil (not sure) if child cant be found for _aux=0, #xmlNodeGetChildren(accountR2)-1 do outputDebugString("for iteration") local charname = getElementData(source,"charname") outputDebugString("charname=="..tostring(charname)) local accountR = xmlFindChild (accountR2,"character",_aux) outputDebugString(tostring(accountR)) -- as above if (tostring(xmlNodeGetAttribute(accountR,"name")) == charname) then outputDebugString("name was equal charname") getmoney = getPlayerMoney (source) outputDebugString("money: "..tostring(getmoney)) x, y, z = getElementPosition ( source ) outputDebugString("xyz: "..tostring(x).." "..tostring(y).." "..tostring(z)) outputDebugString(tostring(xmlNodeSetAttribute (accountR,"x",x))) -- should return true on success (not sure, check in wiki) -- i assume others will be true too if first one is true xmlNodeSetAttribute (accountR,"y",y) xmlNodeSetAttribute (accountR,"z",z) xmlNodeSetAttribute (accountR,"cash",getmoney) xmlNodeSetAttribute (accountR, "w0", getPedWeapon ( source, 0 )) xmlNodeSetAttribute (accountR, "w1", getPedWeapon ( source, 1 )) xmlNodeSetAttribute (accountR, "w2", getPedWeapon ( source, 2 )) xmlNodeSetAttribute (accountR, "a2", getPedTotalAmmo ( source, 2 )) xmlNodeSetAttribute (accountR, "w3", getPedWeapon ( source, 3 )) xmlNodeSetAttribute (accountR, "a3", getPedTotalAmmo ( source, 3 )) xmlNodeSetAttribute (accountR, "w4", getPedWeapon ( source, 4 )) xmlNodeSetAttribute (accountR, "a4", getPedTotalAmmo ( source, 4 )) xmlNodeSetAttribute (accountR, "w5", getPedWeapon ( source, 5 )) xmlNodeSetAttribute (accountR, "a5", getPedTotalAmmo ( source, 5 )) xmlNodeSetAttribute (accountR, "w6", getPedWeapon ( source, 6 )) xmlNodeSetAttribute (accountR, "a6", getPedTotalAmmo ( source, 6 )) xmlNodeSetAttribute (accountR, "w7", getPedWeapon ( source, 7 )) xmlNodeSetAttribute (accountR, "a7", getPedTotalAmmo ( source, 7 )) xmlNodeSetAttribute (accountR, "w8", getPedWeapon ( source, 8 )) xmlNodeSetAttribute (accountR, "a8", getPedTotalAmmo ( source, 8 )) xmlNodeSetAttribute (accountR, "w9", getPedWeapon ( source, 9 )) xmlNodeSetAttribute (accountR, "a9", getPedTotalAmmo ( source, 9 )) xmlNodeSetAttribute (accountR, "w10", getPedWeapon ( source, 10 )) xmlNodeSetAttribute (accountR, "w11", getPedWeapon ( source, 11 )) xmlNodeSetAttribute (accountR, "w12", getPedWeapon ( source, 12 )) end end end end addEventHandler ( "onPlayerQuit", getRootElement(), onquitdb ) addEventHandler ( "onPlayerLogout", getRootElement(), onquitdb ) try this Multi theft auto tools - replace cars and peds, move your map or compile your Lua files online! programista php rzeszów Need free webhosting for your small site? PM me. Need help with portforwarding? PM me. Do not PM me asking for help with scripting. Having problems with port forwarding? Send me pm, I can do whole thing for you using TeamViewer (already helped about 20 people, no worries)!
Castillo Posted July 27, 2010 Author Posted July 27, 2010 says: Info: Player Solidsnake14 logged out/quit and then info: index: nil also says name was equal charname money: 5000 true charname == Solidsnake14 San Andreas Utopia RPG (SAUR) Owner & Developer. Education is the most powerful weapon which you can use to change the world.
dzek (varez) Posted July 27, 2010 Posted July 27, 2010 now you should know all, right? do you understand what your script is doing? lets check -- your getUserIndex returned nil = returned nothing function getUserIndex (username,root) for i,v in ipairs (xmlNodeGetChildren (root)) do local name = xmlNodeGetAttribute (v,"account") -- after this "if" we have return, after end of this if we have nothing -- so its easy to deduct that username IS NOT equal name -- so, in your XML theres no node for that username, -- and you have to create it if (username == name) then return i -1 end end end Multi theft auto tools - replace cars and peds, move your map or compile your Lua files online! programista php rzeszów Need free webhosting for your small site? PM me. Need help with portforwarding? PM me. Do not PM me asking for help with scripting. Having problems with port forwarding? Send me pm, I can do whole thing for you using TeamViewer (already helped about 20 people, no worries)!
dzek (varez) Posted July 27, 2010 Posted July 27, 2010 says: Info: Player Solidsnake14 logged out/quitand then info: index: nil also says name was equal charname money: 5000 true charname == Solidsnake14 this isn't all output, right? Multi theft auto tools - replace cars and peds, move your map or compile your Lua files online! programista php rzeszów Need free webhosting for your small site? PM me. Need help with portforwarding? PM me. Do not PM me asking for help with scripting. Having problems with port forwarding? Send me pm, I can do whole thing for you using TeamViewer (already helped about 20 people, no worries)!
Castillo Posted July 28, 2010 Author Posted July 28, 2010 says: Info: Player Solidsnake14 logged out/quitand then info: index: nil also says name was equal charname money: 5000 true charname == Solidsnake14 this isn't all output, right? right, its not all what it outputs it outputs also cordinates but still not saving. San Andreas Utopia RPG (SAUR) Owner & Developer. Education is the most powerful weapon which you can use to change the world.
50p Posted July 28, 2010 Posted July 28, 2010 You have to save the file. Where do you save it? xmlSaveFile - MTA Script Editor - Ask your scripting questions properly, please. - 50p's public resources - Meta.xml - what is it for? How is it possible LOL
Castillo Posted July 28, 2010 Author Posted July 28, 2010 You have to save the file. Where do you save it? xmlSaveFile aaaaaaaaaaaaaaaa my bad, thanks it worked now! thank you all who helped me. Edit: i got a problem, if i logout the data dosnt get saved San Andreas Utopia RPG (SAUR) Owner & Developer. Education is the most powerful weapon which you can use to change the world.
dzek (varez) Posted July 28, 2010 Posted July 28, 2010 ehhh.. debug.. watch line by line whats going on.. spot your error and fix it Multi theft auto tools - replace cars and peds, move your map or compile your Lua files online! programista php rzeszów Need free webhosting for your small site? PM me. Need help with portforwarding? PM me. Do not PM me asking for help with scripting. Having problems with port forwarding? Send me pm, I can do whole thing for you using TeamViewer (already helped about 20 people, no worries)!
50p Posted July 28, 2010 Posted July 28, 2010 You have to save the file. Where do you save it? xmlSaveFile aaaaaaaaaaaaaaaa my bad, thanks it worked now! thank you all who helped me. Edit: i got a problem, if i logout the data dosnt get saved Inside your function you getPlayerAccount but when player logs out, his account is a "guest" account. You should modify your function so it gets player's current account IF onPlayerQuit called this function and use player's previous account IF onPlayerLogout called this function. You can use another secret variable eventName to check which event called this function. Like: function onquitdb( prevAccount ) ... local index; if eventName == "onPlayerQuit" then index = getUserIndex (getAccountName(getPlayerAccount(source)),root) elseif eventName == "onPlayerLogout" then index = getUserIndex (getAccountName(prevAccount),root) end ... end - MTA Script Editor - Ask your scripting questions properly, please. - 50p's public resources - Meta.xml - what is it for? How is it possible LOL
Castillo Posted July 28, 2010 Author Posted July 28, 2010 (edited) u mean to do somthing like this? ps: it works now but it gives me "bad arguments" in some lines like: if (tostring(xmlNodeGetAttribute(accountR,"name")) == charname) then Edited August 1, 2010 by Guest San Andreas Utopia RPG (SAUR) Owner & Developer. Education is the most powerful weapon which you can use to change the world.
50p Posted July 28, 2010 Posted July 28, 2010 And I thought you're smarter than you are. Do you know what debug means? Do you know what "bad argument" means? Then what else do you need to know? - MTA Script Editor - Ask your scripting questions properly, please. - 50p's public resources - Meta.xml - what is it for? How is it possible LOL
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now