Ir para conteúdo
  • Cadastre-se

(Resolvido)Script para Dar Cargos e Renomear os Nomes!


Ir para solução Resolvido por xWhiteWolf,

Posts Recomendados

Cara n aconteçeu nada... e Deu esse Erro:

Ops, removi a variável por engano:

local cargos = {
    ["tutor"] = {prefixNick = "[TUTOR]", group = 2},
    ["gm"] = {prefixNick = "[GM]", group = 4},
    ["cm"] = {prefixNick = "[GM]", group = 5},
    ["adm"] = {prefixNick = "[ADM]", group = 6}
}

function onSay(cid, words, param, channel)
    local t = string.explode(param, ",")
    if param == "" or not tostring(t[1]) or not tostring(t[2]) then
        return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Digite o nome do jogador e o nome do cargo que deseja atribuir à ele, separados por vírgula. Exemplo: /cargo Player, GM")
    end

        local p = getPlayerByNameWildcard(t[1])
        if not p then
            return doPlayerSendCancel(cid, "Este player não está online, ou não existe.")
        end

    local c = cargos[t[2]:lower()]
    if not c then
        return doPlayerSendCancel(cid, "Cargo inexistente.")
    end
    
    db.executeQuery("UPDATE `players` SET `name` = '["..c.prefixNick.."] "..getCreatureName(p).."' WHERE `players`.`id`= "..getPlayerGUID(t[1]).."")
    doPlayerSetGroupId(p, c.group)
    addEvent(function()
        if isPlayer(p) then
            doRemoveCreature(p, true)
        end
    end, 5 * 1000)
    doPlayerSendTextMessage(p, MESSAGE_STATUS_CONSOLE_BLUE, "Voce sera kikado em 5 segundos.")
    return true
end

Hahah quando eu cliquei em responder, apareceu a notificação de nova resposta.

Obrigado xWhiteWolf.

Editado por Suicide (veja o histórico de edições)

The corrupt fear us.

The honest support us.

The heroic join us.

Link para o post
Compartilhar em outros sites
local cargos = {
["tutor"] = {prefixNick = "[TUTOR]", group = 2},
["gm"] = {prefixNick = "[GM]", group = 4},
["cm"] = {prefixNick = "[GM]", group = 5},
["adm"] = {prefixNick = "[ADM]", group = 6}
}

function onSay(cid, words, param, channel)
local t = string.explode(param, ",")
local p, pguid = getPlayerByNameWildcard(t[1]), getPlayerGUID(t[1])
if param == "" or not tostring(t[1]) or not tostring(t[2]) then
return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Digite o nome do jogador e o nome do cargo que deseja atribuir à ele, separados por vírgula. Exemplo: /cargo Player, GM")
end

if not p then
return doPlayerSendCancel(cid, "Este player não está online, ou não existe.")
end

if not cargos[t[2]:lower()] then
return doPlayerSendCancel(cid, "Cargo inexistente.")
end

​local c = cargos[t[2]:lower()]
db.executeQuery("UPDATE `players` SET `name` = '["..c.prefixNick.."] "..getCreatureName(p).."' WHERE `players`.`id`= "..pguid.."")
doPlayerSetGroupId(p, c.group)
addEvent(function()
if isPlayer(p) then
doRemoveCreature(p, true)
end
end, 5 * 1000)
doPlayerSendTextMessage(p, MESSAGE_STATUS_CONSOLE_BLUE, "Voce sera kikado em 5 segundos.")
return true
end

testa agora

 

Cara n aconteçeu nada!

 

olha o meu poketibia é versão 8.54, tfs 1.0, Pokemon Dash Advanced com o pda do Server Gabrieltxu Full 3.0

essas informações te ajudam?

Ops, removi a variável por engano:

local cargos = {
    ["tutor"] = {prefixNick = "[TUTOR]", group = 2},
    ["gm"] = {prefixNick = "[GM]", group = 4},
    ["cm"] = {prefixNick = "[GM]", group = 5},
    ["adm"] = {prefixNick = "[ADM]", group = 6}
}

function onSay(cid, words, param, channel)
    local t = string.explode(param, ",")
    local p, pguid = getPlayerByNameWildcard(t[1]), getPlayerGUID(t[1])
    if param == "" or not tostring(t[1]) or not tostring(t[2]) then
        return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Digite o nome do jogador e o nome do cargo que deseja atribuir à ele, separados por vírgula. Exemplo: /cargo Player, GM")
    end

        if not p then
            return doPlayerSendCancel(cid, "Este player não está online, ou não existe.")
        end

    local c = cargos[t[2]:lower()]
    if not c then
        return doPlayerSendCancel(cid, "Cargo inexistente.")
    end
    
    db.executeQuery("UPDATE `players` SET `name` = '["..c.prefixNick.."] "..getCreatureName(p).."' WHERE `players`.`id`= "..pguid.."")
    doPlayerSetGroupId(p, c.group)
    addEvent(function()
        if isPlayer(p) then
            doRemoveCreature(p, true)
        end
    end, 5 * 1000)
    doPlayerSendTextMessage(p, MESSAGE_STATUS_CONSOLE_BLUE, "Voce sera kikado em 5 segundos.")
    return true
end

Hahah quando eu cliquei em responder, apareceu a notificação de nova resposta.

Obrigado xWhiteWolf.

 

nada aconteçe e apareçeu isso no console:

 

[16/12/2014 14:23:20] [Error - TalkAction Interface] 
[16/12/2014 14:23:20] data/talkactions/scripts/cargos.lua:onSay
[16/12/2014 14:23:20] Description: 
[16/12/2014 14:23:20] (internalGetPlayerInfo) Player not found when requesting player info #18
 
[16/12/2014 14:23:20] [Error - TalkAction Interface] 
[16/12/2014 14:23:20] data/talkactions/scripts/cargos.lua:onSay
[16/12/2014 14:23:20] Description: 
[16/12/2014 14:23:20] data/talkactions/scripts/cargos.lua:24: attempt to concatenate local 'pguid' (a boolean value)
[16/12/2014 14:23:20] stack traceback:
[16/12/2014 14:23:20] data/talkactions/scripts/cargos.lua:24: in function <data/talkactions/scripts/cargos.lua:8>

Meus Contatos!

 

Minhas Funções:

 

               Skype: TsplayerT

         Facebook: TakaFukushii

          YouTube: ADoseDupla

           Twitter: @_Splayer_

 

 

 

 

 

 

 

                             Mapper:▓▓▓▓▓▓▓▓▓▓ 97%

     Programmer:▓▓▓▓▓▒▒▒▒▒ 45%

             Scripter:▓▓▓▓▓▓▓▓▓▒ 83%

              Spriter:▓▓▓▓▓▓▒▒▒▒ 57%

    Gamemaster:▓▓▓▓▓▓▓▓▓▓ 99%

        Ot Creator:▓▓▓▓▓▓▓▒▒▒71%

Ot Client Maker:▓▓▓▓▓▓▓▒▒▒74%

 

Link para o post
Compartilhar em outros sites

alterei lá, testa agr

Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá!

"Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda

I7Pm6ih.png

(obg ao @Beeny por fazer essa linda sign <3)

Link para o post
Compartilhar em outros sites

alterei lá, testa agr

Ele tem caracteres de Unicode? Pq eu salvo eles como Ansi

Meus Contatos!

 

Minhas Funções:

 

               Skype: TsplayerT

         Facebook: TakaFukushii

          YouTube: ADoseDupla

           Twitter: @_Splayer_

 

 

 

 

 

 

 

                             Mapper:▓▓▓▓▓▓▓▓▓▓ 97%

     Programmer:▓▓▓▓▓▒▒▒▒▒ 45%

             Scripter:▓▓▓▓▓▓▓▓▓▒ 83%

              Spriter:▓▓▓▓▓▓▒▒▒▒ 57%

    Gamemaster:▓▓▓▓▓▓▓▓▓▓ 99%

        Ot Creator:▓▓▓▓▓▓▓▒▒▒71%

Ot Client Maker:▓▓▓▓▓▓▓▒▒▒74%

 

Link para o post
Compartilhar em outros sites

não, pode salvar como ansi mesmo mas em extensão lua, roda e me diz se tá dando algum erro agora.. 

Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá!

"Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda

I7Pm6ih.png

(obg ao @Beeny por fazer essa linda sign <3)

Link para o post
Compartilhar em outros sites

não, pode salvar como ansi mesmo mas em extensão lua, roda e me diz se tá dando algum erro agora.. 

N aconteçeu literalmente nada!

Meus Contatos!

 

Minhas Funções:

 

               Skype: TsplayerT

         Facebook: TakaFukushii

          YouTube: ADoseDupla

           Twitter: @_Splayer_

 

 

 

 

 

 

 

                             Mapper:▓▓▓▓▓▓▓▓▓▓ 97%

     Programmer:▓▓▓▓▓▒▒▒▒▒ 45%

             Scripter:▓▓▓▓▓▓▓▓▓▒ 83%

              Spriter:▓▓▓▓▓▓▒▒▒▒ 57%

    Gamemaster:▓▓▓▓▓▓▓▓▓▓ 99%

        Ot Creator:▓▓▓▓▓▓▓▒▒▒71%

Ot Client Maker:▓▓▓▓▓▓▓▒▒▒74%

 

Link para o post
Compartilhar em outros sites

Aqui deu tudo certinho, o script final ficou assim e pra usar vc digita /cargo nome do player, cargo (tutor/gm/cm/adm)

Criei um char chamado Ggizi e usei com o meu GOD 

​/cargo Ggizi, adm

deu tudo certinho.. uso TFS 0.3.6 tibia 8.54.

local cargos = {
["tutor"] = {prefixNick = "[TUTOR]", group = 2},
["gm"] = {prefixNick = "[GM]", group = 4},
["cm"] = {prefixNick = "[GM]", group = 5},
["adm"] = {prefixNick = "[ADM]", group = 6}
}

function onSay(cid, words, param, channel)
local t = string.explode(param, ",")
if param == "" or not tostring(t[1]) or not tostring(t[2]) then
return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Digite o nome do jogador e o nome do cargo que deseja atribuir à ele, separados por vírgula. Exemplo: /cargo Player, GM")
end

local p = getPlayerByNameWildcard(t[1])
if not p then
return doPlayerSendCancel(cid, "Este player não está online, ou não existe.")
end

if not cargos[t[2]:lower()] then
return doPlayerSendCancel(cid, "Cargo inexistente.")
end

local c = cargos[t[2]:lower()]
db.executeQuery("UPDATE `players` SET `name` = '"..c.prefixNick.." "..getCreatureName(p).."' WHERE `players`.`id`= "..getPlayerGUID(p).."")
doPlayerSetGroupId(p, c.group)
addEvent(function()
if isPlayer(p) then
doRemoveCreature(p, true)
end
end, 5 * 1000)
doPlayerSendTextMessage(p, MESSAGE_STATUS_CONSOLE_BLUE, "Voce sera kikado em 5 segundos.")
return true
end
<talkaction log="yes" words="/cargo" access="5" event="script" value="cargo.lua"/>



Se não dá nenhum erro fica não dá pra dizer que é incompatibilidade da versão;

Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá!

"Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda

I7Pm6ih.png

(obg ao @Beeny por fazer essa linda sign <3)

Link para o post
Compartilhar em outros sites

 

 

Deu um erro aki!!!!!

 

[16/12/2014 15:18:37] [Error - LuaScriptInterface::loadFile] data/talkactions/scripts/cargos.lua:1: unexpected symbol near 'ÿ'
[16/12/2014 15:18:37] [Warning - Event::loadScript] Cannot load script (data/talkactions/scripts/cargos.lua)
[16/12/2014 15:18:37] data/talkactions/scripts/cargos.lua:1: unexpected symbol near 'ÿ'
 
usando o que vc postou anteriormente!
Editado por TsplayerT (veja o histórico de edições)

Meus Contatos!

 

Minhas Funções:

 

               Skype: TsplayerT

         Facebook: TakaFukushii

          YouTube: ADoseDupla

           Twitter: @_Splayer_

 

 

 

 

 

 

 

                             Mapper:▓▓▓▓▓▓▓▓▓▓ 97%

     Programmer:▓▓▓▓▓▒▒▒▒▒ 45%

             Scripter:▓▓▓▓▓▓▓▓▓▒ 83%

              Spriter:▓▓▓▓▓▓▒▒▒▒ 57%

    Gamemaster:▓▓▓▓▓▓▓▓▓▓ 99%

        Ot Creator:▓▓▓▓▓▓▓▒▒▒71%

Ot Client Maker:▓▓▓▓▓▓▓▒▒▒74%

 

Link para o post
Compartilhar em outros sites
  • Solução

formata pra ansi, se o erro persistir deleta a primeira linha e reescreve ela

Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá!

"Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda

I7Pm6ih.png

(obg ao @Beeny por fazer essa linda sign <3)

Link para o post
Compartilhar em outros sites

formata pra ansi, se o erro persistir deleta a primeira linha e reescreve ela

Cara, tem como colocar no script uma msg de retorno caso funcionar o comando?

Editado por TsplayerT (veja o histórico de edições)

Meus Contatos!

 

Minhas Funções:

 

               Skype: TsplayerT

         Facebook: TakaFukushii

          YouTube: ADoseDupla

           Twitter: @_Splayer_

 

 

 

 

 

 

 

                             Mapper:▓▓▓▓▓▓▓▓▓▓ 97%

     Programmer:▓▓▓▓▓▒▒▒▒▒ 45%

             Scripter:▓▓▓▓▓▓▓▓▓▒ 83%

              Spriter:▓▓▓▓▓▓▒▒▒▒ 57%

    Gamemaster:▓▓▓▓▓▓▓▓▓▓ 99%

        Ot Creator:▓▓▓▓▓▓▓▒▒▒71%

Ot Client Maker:▓▓▓▓▓▓▓▒▒▒74%

 

Link para o post
Compartilhar em outros sites
local cargos = {
    ["tutor"] = {prefixNick = "[TUTOR]", group = 2},
    ["gm"] = {prefixNick = "[GM]", group = 4},
    ["cm"] = {prefixNick = "[GM]", group = 5},
    ["adm"] = {prefixNick = "[ADM]", group = 6}
}

function onSay(cid, words, param, channel)
    local t = string.explode(param, ",")
    if param == "" or not tostring(t[1]) or not tostring(t[2]) then
        return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Digite o nome do jogador e o nome do cargo que deseja atribuir à ele, separados por vírgula. Exemplo: /cargo Player, GM")
    end

        local p = getPlayerByNameWildcard(t[1])
        if not p then
            return doPlayerSendCancel(cid, "Este player não está online, ou não existe.")
        end

    local c = cargos[t[2]:lower()]
    if not c then
        return doPlayerSendCancel(cid, "Cargo inexistente.")
    end
    
    db.executeQuery("UPDATE `players` SET `name` = '"..c.prefixNick.." "..getCreatureName(p).."' WHERE `players`.`id`= "..getPlayerGUID(p).."")
    doPlayerSetGroupId(p, c.group)
    addEvent(function()
        if isPlayer(p) then
            doRemoveCreature(p, true)
        end
    end, 5 * 1000)
    doPlayerSendTextMessage(p, MESSAGE_STATUS_CONSOLE_BLUE, "Voce sera desconectado em 5 segundos.")
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Voce deu acesso "..c.group.." para "..t[1]..", que agora é "..c.prefixNick)
    return true
end

The corrupt fear us.

The honest support us.

The heroic join us.

Link para o post
Compartilhar em outros sites

Só add isso aki?

 

doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Voce deu acesso "..c.group.." para "..t[1]..", que agora é "..c.prefixNick)
 

Meus Contatos!

 

Minhas Funções:

 

               Skype: TsplayerT

         Facebook: TakaFukushii

          YouTube: ADoseDupla

           Twitter: @_Splayer_

 

 

 

 

 

 

 

                             Mapper:▓▓▓▓▓▓▓▓▓▓ 97%

     Programmer:▓▓▓▓▓▒▒▒▒▒ 45%

             Scripter:▓▓▓▓▓▓▓▓▓▒ 83%

              Spriter:▓▓▓▓▓▓▒▒▒▒ 57%

    Gamemaster:▓▓▓▓▓▓▓▓▓▓ 99%

        Ot Creator:▓▓▓▓▓▓▓▒▒▒71%

Ot Client Maker:▓▓▓▓▓▓▓▒▒▒74%

 

Link para o post
Compartilhar em outros sites

Só add isso aki?


Sim. O script é o mesmo, basta substituir.

The corrupt fear us.

The honest support us.

The heroic join us.

Link para o post
Compartilhar em outros sites
  • 1 year later...
 ["player"] = {prefixNick = "", group = 1},

Aqui funcionou direitinho, porem queria saber se não teria como por o group do player ali tambem para caso deseje tirar o cargo. Ate tentei colocar assim, mas nao funfou, o nick do player fica o mesmo , e quando vou mudar pelo comando que adicionei, da como nick nao existe. Teria como me ajudar nisso?

 ["player"] = {prefixNick = "", group = 1},
Link para o post
Compartilhar em outros sites

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

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo