Postado Outubro 19, 2017 7 anos Salve Clan Do Tibiaking queria Script que Fucionase assim! Player: !key dfhgvdsgsfdgisfduibgfsdhgd (Key) Servidor: Pronto items Recebidos Tipo Code Key de Jogos só poder ser usada uma vez a key Adm: /key 99,99,99,99,99 Id dos items < Servidor : Key Criada Codigo: dfhgvdsgsfdgisfduibgfsdhgd (Aleatorio) ..................._________.............................. Ou /Key dfhgvdsgsfdgisfduibgfsdhgd, Id do item , quantidade ..... Acho que deu para explicar Vlw
Postado Outubro 20, 2017 7 anos Usa só caracter, testa aí, talvez vai ter que usar banco pra pegar a table global quando logar. Comando pra criar local gid = 6 -- Group id necessario pra usar o comando, veja em xml/groups.xml codes = {} function onSay(cid, words, param) if getPlayerGroupId(cid) < gid then return true end if(param == '') then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Use o comando, o codigo, id do item e qtd, separare por virgula.") return true end local a = string.explode(param, ",") if(a[2] == '') then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Coloque a id do item.") end if(a[3] == '') then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Coloque a qtd do item.") end if has_value(codes, a[1]) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Esse codigo ja existe.") return true else table.insert(codes, a[1] .. "," .. a[2] .. "," .. a[3] .. ";") doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Codigo adicionado.") end local function has_value (tab, val) for index, value in ipairs(tab) do if value == val then return true end end return true end Comando pra pegar o código function onSay(cid, words, param) if getPlayerGroupId(cid) < gid then return true end if(param == '') then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Use o comando, o codigo, id do item e qtd, separare por virgula.") return true end local index for i, code in ipairs(codes) do local a = string.explode(code, ",") if a[1] == param then doPlayerAddItem(cid, a[2], a[3]) doSendAnimatedText(getThingPos(cid), "Codigo aceito!", TEXTCOLOR_RED) table.remove(codes, index) end index = index + 1 end return true end Não testei, provavelmente tem que usar banco msm, uma vez fiz um script com variáveis assim e não precisou, então tem que ver msm, o index pode bugar e se bugar posso mudar a forma como to usando a variável pra um jeito bem mais fácil. Com o banco de dados teria que pegar a tabela no login, mas quando você adicionar o jogador só pode pegar se relogar, mas testa aí. TEnta usar só caracteres e números, sem coisas estranhas tipo < > / % # @ ! ¨ . , ; !nomedocomando ashuashusha,1234,1 !outrocomando ahsuhuash Editado Outubro 20, 2017 7 anos por rogaforyn2 (veja o histórico de edições)
Postado Outubro 20, 2017 7 anos Autor 12 horas atrás, rogaforyn2 disse: Usa só caracter, testa aí, talvez vai ter que usar banco pra pegar a table global quando logar. Comando pra criar local gid = 6 -- Group id necessario pra usar o comando, veja em xml/groups.xml codes = {} function onSay(cid, words, param) if getPlayerGroupId(cid) < gid then return true end if(param == '') then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Use o comando, o codigo, id do item e qtd, separare por virgula.") return true end local a = string.explode(param, ",") if(a[2] == '') then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Coloque a id do item.") end if(a[3] == '') then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Coloque a qtd do item.") end if has_value(codes, a[1]) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Esse codigo ja existe.") return true else table.insert(codes, a[1] .. "," .. a[2] .. "," .. a[3] .. ";") doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Codigo adicionado.") end local function has_value (tab, val) for index, value in ipairs(tab) do if value == val then return true end end return true end Comando pra pegar o código function onSay(cid, words, param) if getPlayerGroupId(cid) < gid then return true end if(param == '') then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Use o comando, o codigo, id do item e qtd, separare por virgula.") return true end local index for i, code in ipairs(codes) do local a = string.explode(code, ",") if a[1] == param then doPlayerAddItem(cid, a[2], a[3]) doSendAnimatedText(getThingPos(cid), "Codigo aceito!", TEXTCOLOR_RED) table.remove(codes, index) end index = index + 1 end return true end Não testei, provavelmente tem que usar banco msm, uma vez fiz um script com variáveis assim e não precisou, então tem que ver msm, o index pode bugar e se bugar posso mudar a forma como to usando a variável pra um jeito bem mais fácil. Com o banco de dados teria que pegar a tabela no login, mas quando você adicionar o jogador só pode pegar se relogar, mas testa aí. TEnta usar só caracteres e números, sem coisas estranhas tipo < > / % # @ ! ¨ . , ; !nomedocomando ashuashusha,1234,1 !outrocomando ahsuhuash Botei mais 1 end foi sem dar erro mais quando uso comando ele n vai esse erro da logo em seguida depois que escrevo
Participe da conversa
Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.