elchinooo98 Posted February 17, 2016 Share Posted February 17, 2016 Hola otra vez pidiendo ayuda bueno esta vez les vengo a pedir ayuda para hacer un comando de 2 partes por ejemplo : quiero hacer un comando que le setee data a un player... /setdata elchinoo(nick del player) y asi... como se hacen esos comandos ? (perdon si no me explique bien) Desde ya se agradece la ayuda como siempre Link to comment
knightscript Posted February 17, 2016 Share Posted February 17, 2016 Hay 2 formas de hacer lo que quieres, una sería setAccountData para guardar la información en la cuenta, y otra sería setElementData , esta sería para elementos, como dice la propia funcion, pero por ahora te mostraré como se hace con AccountData, function setheads( source, cmd, value ) local playerAccount = getPlayerAccount(source) local myheads = setAccountData(playerAccount,"headshots",tonumber(value)) if (myheads == true) then outputChatBox("Éxito") end end addCommandHandler("setheads",setheads) Este comando lo que hace es que al poner /setheads 20, te pone en tu cuenta en el campo "headshots" la cantidad de 20, sin embargo hay otra manera de hacer esto: function addtokens(source, cmd, target, amount) local targetPlayer = getPlayerFromName ( target ) if (targetPlayer) and (amount) then local targettokens = getElementData(targetPlayer,"tokens") local thetokens = targettokens + amount local settargettokens = setElementData(targetPlayer,"tokens",thetokens) end end addCommandHandler("addtokens",addtokens) este de aquí lo que hace es que al poner /addtokens (nombre del jugador) (cantidad) agrega la cantidad de "tokens" que definas, ejemplo: /addtokens Knight 30 (agregará a el jugador conectado "Knight" la cantidad de 30 tokens) function settokens(source, cmd, target, amount) local targetPlayer = getPlayerFromName ( target ) if (targetPlayer) and (amount) then local targettokens = getElementData(targetPlayer,"tokens") local thetokens = amount local settargettokens = setElementData(targetPlayer,"tokens",thetokens) end end addCommandHandler("settokens",settokens) este lo que hace es remplaza el valor de "tokens" al que tu quieras, se utiliza igual que el anterior, solo que este en vez de agregar, lo remplaza. Link to comment
elchinooo98 Posted February 17, 2016 Author Share Posted February 17, 2016 Hay 2 formas de hacer lo que quieres, una sería setAccountData para guardar la información en la cuenta, y otra sería setElementData , esta sería para elementos, como dice la propia funcion, pero por ahora te mostraré como se hace con AccountData, function setheads( source, cmd, value ) local playerAccount = getPlayerAccount(source) local myheads = setAccountData(playerAccount,"headshots",tonumber(value)) if (myheads == true) then outputChatBox("Éxito") end end addCommandHandler("setheads",setheads) Este comando lo que hace es que al poner /setheads 20, te pone en tu cuenta en el campo "headshots" la cantidad de 20, sin embargo hay otra manera de hacer esto: function addtokens(source, cmd, target, amount) local targetPlayer = getPlayerFromName ( target ) if (targetPlayer) and (amount) then local targettokens = getElementData(targetPlayer,"tokens") local thetokens = targettokens + amount local settargettokens = setElementData(targetPlayer,"tokens",thetokens) end end addCommandHandler("addtokens",addtokens) este de aquí lo que hace es que al poner /addtokens (nombre del jugador) (cantidad) agrega la cantidad de "tokens" que definas, ejemplo: /addtokens Knight 30 (agregará a el jugador conectado "Knight" la cantidad de 30 tokens) function settokens(source, cmd, target, amount) local targetPlayer = getPlayerFromName ( target ) if (targetPlayer) and (amount) then local targettokens = getElementData(targetPlayer,"tokens") local thetokens = amount local settargettokens = setElementData(targetPlayer,"tokens",thetokens) end end addCommandHandler("settokens",settokens) este lo que hace es remplaza el valor de "tokens" al que tu quieras, se utiliza igual que el anterior, solo que este en vez de agregar, lo remplaza. Gracias por la explicacion variada ... lo que yo quiero lograr lo podria sacar de aca no? (un comando que al poner /setpoli (nick del player) le setee esto : setElementData(target,"team1",true) o como podria hacer este comando funcionar¿? Link to comment
Enargy, Posted February 18, 2016 Share Posted February 18, 2016 function setData(player,_,who) if who then who = getPlayerFromPartialName(tostring(who)); if who then if getElementData(player, "team1") ~= true then setElementData(player, "team1", true) return true; end return false; end return false; end return false; end addCommandHandler("setpoli", setData) function getPlayerFromPartialName(name) local name = name and name:gsub("#%x%x%x%x%x%x", ""):lower() or nil if name then for _, player in ipairs(getElementsByType("player")) do local name_ = getPlayerName(player):gsub("#%x%x%x%x%x%x", ""):lower() if name_:find(name, 1, true) then return player end end end end Link to comment
elchinooo98 Posted February 18, 2016 Author Share Posted February 18, 2016 Gracias por responder ya lo pude lograr Link to comment
Recommended Posts