Ir para conteúdo

Featured Replies

Postado

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

 

 

  • Respostas 21
  • Visualizações 611
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • Editei

  • Qualquer coisa tenta colocar a local function dentro da função onSay, na 1 linha dentro da onSay

  • A parte de remover não está funcionando então, tenta assim:   function onSay(cid, words, param) local remover = 0 if(param == '') then doPlayerSendTextMessage(cid, MESSAGE_STATUS_

Posted Images

Postado

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 por rogaforyn2 (veja o histórico de edições)

Postado
  • 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

 

 

 

 

image.thumb.png.87a7c9015ee0a75c1b2cb4ef50de3147.png

 

Botei mais 1 end foi sem dar erro

 

mais 

 

quando uso comando ele n vai

image.png

esse erro da logo em seguida depois que escrevo

 

 

image.png

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.

Visitante
Responder

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.6k

Informação Importante

Confirmação de Termo