Ir para conteúdo
  • Cadastre-se

RESOLVIDO NPCs change sex/change name


Posts Recomendados

Preciso de algums npcs para colocar no meu server os que eu achei deram erro então vim pedir aqui

 

Vou Listar a Seguir os Npcs :

 

1º Npc change sex Resolvido

 

 

2º Npc Change Namer

 

Npc que troca o nome do jogador por certa quantia configuravel

 

 


UP 

 

Ajuda ae amigos Porfavor preciso muito deles

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

wq3bBzt.png
Pokémon Dust Evolution
 
É aonde começa sua nova aventura!! 

 

Facebook

 
Verifique Atualizações

 

Link para o post
Compartilhar em outros sites

O título do seu tópico estava inadequado. Sem oferecer nenhuma ideia do que ele se trata, poucos vão se interessar em te ajudar.
Da próxima vez, crie um tópico com um título que descreva o assunto dele.

- Conteúdo das Regras Gerais do fórum:
2.3 - Use títulos e ícones adequados:
Ao criar um novo tópico no fórum, dê a ele um título que esteja relacionado ao conteúdo do tópico. Títulos como "Ajudaaa!" ou "Entrem aqui!" só pioram as coisas: ninguém vai saber do que se trata, e menos pessoas irão entrar para olhar o que você postou e também evite de usar o CAPSLOCK ao criar seu título.

The corrupt fear us.

The honest support us.

The heroic join us.

Link para o post
Compartilhar em outros sites

Ok, Desculpa ae :rock:  

 

Aproveitando aqui @UP

wq3bBzt.png
Pokémon Dust Evolution
 
É aonde começa sua nova aventura!! 

 

Facebook

 
Verifique Atualizações

 

Link para o post
Compartilhar em outros sites

1º pedido:

local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
local talkState = {}
function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end
function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end
function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end
function onThink() npcHandler:onThink() end
function creatureSayCallback(cid, type, msg)
    if not npcHandler:isFocused(cid) then
        return false
    end
    local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid
    local price = xxx           --Preço para trocar de sexo.
    if msgcontains(msg:lower(), "change") or msgcontains(msg:lower(), "sex") then
        selfSay("Do you wanna change your sex? It will cost {"..price.." gold}.", cid)
        talkState[talkUser] = 1
        return true
    elseif msgcontains(msg:lower(), "yes") and talkState[talkUser] == 1 then
        if doPlayerRemoveMoney(cid, price) then
            doPlayerSetSex(cid, getPlayerSex(cid) == 0 and 1 or 0)
            selfSay("You sucefully changed your sex.", cid)
            talkState[talkUser] = 0
            return true
        else
            selfSay("You do not have enough gold.", cid)
            talkState[talkUser] = 0
            return true
        end
    elseif msgcontains(msg:lower(), "no") and talkState[talkUser] == 1 then
        selfSay("Ok, bye.", cid)
        talkState[talkUser] = 0
        return true
    end
    return true
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())            

2º pedido:

local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
local talkState = {}
function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end
function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end
function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end
function onThink() npcHandler:onThink() end
function creatureSayCallback(cid, type, msg)
    if not npcHandler:isFocused(cid) then
        return false
    end
    local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid
    local price = xxx                        --Preço para trocar o nome.
    local characters = {}                    --Configure nesta tabela os caracteres (ou palavras) proibidos.
    local delay = 5                          --Tempo para o jogador ser desconectado após trocar o nome.
    if msgcontains(msg:lower(), "name") or msgcontains(msg:lower(), "change") then
        selfSay("Do you wanna change your name? It will cost {"..price.." gold}.", cid)
        talkState[talkUser] = 1
        return true
    elseif msgcontains(msg:lower(), "yes") and talkState[talkUser] == 1 then
        if getPlayerMoney(cid) >= price then
            selfSay("OK, tell me your new name.", cid)
            talkState[talkUser] = 2
            return true
        else
            selfSay("You do not have enough money.", cid)
            talkState[talkUser] = 0
            return true
        end
    elseif talkState[talkUser] == 2 then
        local query = db.getResult("SELECT name FROM players")
        if query:getID() == -1 then
            selfSay("Database inexistent.", cid)
            talkState[talkUser] = 0
            return true
        end
        repeat
            local name = query:getDataString("name")
            if msg == name then
                selfSay("This name is already in use.", cid)
                talkState[talkUser] = 0
                return true
            end
        until not query:next()
        query:free()
        for i = 1, #characters do
            if msg:find(characters[i]) then
                selfSay("Sorry, this name isn't available.", cid)
                talkState[talkUser] = 0
                return true
            end
        end
        db.executeQuery("UPDATE players SET name = '"..msg.."' WHERE id = "..getPlayerGUID(cid))
        doPlayerRemoveMoney(cid, price)
        selfSay("You changed your name to {"..msg.."}. In "..delay.." second"..(delay > 1 and "s" or "")..", you will be disconected.", cid)
        addEvent(function()
            if isPlayer(cid) then
                doRemoveCreature(cid)
            end
        end, delay * 1000)
        talkState[talkUser] = 0
        return true
    elseif msgcontains(msg:lower(), "no") and talkState[talkUser] == 1 then
        selfSay("Ok, bye.", cid)
        talkState[talkUser] = 0
        return true
    end
    return true
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())            
Editado por zipter98 (veja o histórico de edições)

não respondo pms solicitando suporte em programação/scripting

Link para o post
Compartilhar em outros sites

 

1º pedido:

local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
local talkState = {}
function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end
function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end
function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end
function onThink() npcHandler:onThink() end
function creatureSayCallback(cid, type, msg)
    if not npcHandler:isFocused(cid) then
        return false
    end
    local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid
    local price = xxx           --Preço para trocar de sexo.
    if msgcontains(msg:lower(), "change") or msgcontains(msg:lower(), "sex") then
        selfSay("Do you wanna change your sex? It will cost {"..price.." gold}.", cid)
        talkState[talkUser] = 1
        return true
    elseif msgcontains(msg:lower(), "yes") and talkState[talkUser] == 1 then
        if doPlayerRemoveMoney(cid, price) then
            doPlayerSetSex(cid, getPlayerSex(cid) == 0 and 1 or 0)
            selfSay("You sucefully changed your sex.", cid)
            talkState[talkUser] = 0
            return true
        else
            selfSay("You do not have enough gold.", cid)
            talkState[talkUser] = 0
            return true
        end
    elseif msgcontains(msg:lower(), "no") and talkState[talkUser] == 1 then
        selfSay("Ok, bye.", cid)
        talkState[talkUser] = 0
        return true
    end
    return true
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())            

2º pedido:

local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
local talkState = {}
function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end
function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end
function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end
function onThink() npcHandler:onThink() end
function creatureSayCallback(cid, type, msg)
    if not npcHandler:isFocused(cid) then
        return false
    end
    local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid
    local price = xxx                        --Preço para trocar o nome.
    local characters = {}                    --Configure nesta tabela os caracteres (ou palavras) proibidos.
    local delay = 5                          --Tempo para o jogador ser desconectado após trocar o nome.
    if msgcontains(msg:lower(), "name") or msgcontains(msg:lower(), "change") then
        selfSay("Do you wanna change your name? It will cost {"..price.." gold}.", cid)
        talkState[talkUser] = 1
        return true
    elseif msgcontains(msg:lower(), "yes") and talkState[talkUser] == 1 then
        if getPlayerMoney(cid) >= price then
            selfSay("OK, tell me your new name.", cid)
            talkState[talkUser] = 2
            return true
        else
            selfSay("You do not have enough money.", cid)
            talkState[talkUser] = 0
            return true
        end
    elseif talkState[talkUser] == 2 then
        local query = db.getResult("SELECT name FROM players")
        if query:getID() == -1 then
            selfSay("Database inexistent.", cid)
            talkState[talkUser] = 0
            return true
        end
        repeat
            local name = query:getDataString("name")
            if msg == name then
                selfSay("This name is already in use.", cid)
                talkState[talkUser] = 0
                return true
            end
        until not query:next()
        query:free()
        for i = 1, #characters do
            if msg:find(characters[i]) then
                selfSay("Sorry, this name isn't available.", cid)
                talkState[talkUser] = 0
                return true
            end
        end
        db.executeQuery("UPDATE players SET name = "..msg.." WHERE id = "..getPlayerGUID(cid))
        doPlayerRemoveMoney(cid, price)
        selfSay("You changed your name to {"..msg.."}. In "..delay.." second"..(delay > 1 and "s" or "")..", you will be disconected.", cid)
        addEvent(function()
            if isPlayer(cid) then
                doRemoveCreature(cid)
            end
        end, delay * 1000)
        talkState[talkUser] = 0
        return true
    elseif msgcontains(msg:lower(), "no") and talkState[talkUser] == 1 then
        selfSay("Ok, bye.", cid)
        talkState[talkUser] = 0
        return true
    end
    return true
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())            

Vou testar já garantiu seu Rep por tentar qual quer coisa coloco como melhor resposta 

Amigo deu Erro no de mudar o nome na database e o de mudar o sexo faz tudo menos mudar o sexo do player

wq3bBzt.png
Pokémon Dust Evolution
 
É aonde começa sua nova aventura!! 

 

Facebook

 
Verifique Atualizações

 

Link para o post
Compartilhar em outros sites

apenas um erro que foi no do nome!!! 

 

deu este erro : OTSYS_SQLITE3_PREPARE(): SQLITE ERROR: no such column: gabriel (UPDATE players SET name = gabriel WHERE id = 2)

wq3bBzt.png
Pokémon Dust Evolution
 
É aonde começa sua nova aventura!! 

 

Facebook

 
Verifique Atualizações

 

Link para o post
Compartilhar em outros sites

Na verdade o primeiro script é funcional sim, mas como ele não colocou a função pro char deslogar, o sex só é mudado ao deslogar, basta adiciona o :

doRemoveCreature(cid)

EQD4Qy4.gif

Link para o post
Compartilhar em outros sites

Pode adicionar para min configurado ? eu ainda não sei muito estou estudando lua ainda

wq3bBzt.png
Pokémon Dust Evolution
 
É aonde começa sua nova aventura!! 

 

Facebook

 
Verifique Atualizações

 

Link para o post
Compartilhar em outros sites
local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
local talkState = {}
function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end
function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end
function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end
function onThink() npcHandler:onThink() end
function creatureSayCallback(cid, type, msg)
    if not npcHandler:isFocused(cid) then
        return false
    end
    local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid
    local price = xxx           --Preço para trocar de sexo.
    if msgcontains(msg:lower(), "change") or msgcontains(msg:lower(), "sex") then
        selfSay("Do you wanna change your sex? It will cost {"..price.." gold}.", cid)
        talkState[talkUser] = 1
        return true
    elseif msgcontains(msg:lower(), "yes") and talkState[talkUser] == 1 then
        if doPlayerRemoveMoney(cid, price) then
            doPlayerSetSex(cid, getPlayerSex(cid) == 0 and 1 or 0)
            selfSay("You sucefully changed your sex.", cid)
	    doRemoveCreature(cid)
            talkState[talkUser] = 0
            return true
        else
            selfSay("You do not have enough gold.", cid)
            talkState[talkUser] = 0
            return true
        end
    elseif msgcontains(msg:lower(), "no") and talkState[talkUser] == 1 then
        selfSay("Ok, bye.", cid)
        talkState[talkUser] = 0
        return true
    end
    return true
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())   

Dps da o feedback do tópico  do npc mendigo se funcionou ou não ... vou dar uma olhada no de change name e já edito aqui. 

EQD4Qy4.gif

Link para o post
Compartilhar em outros sites

Cuntinua o mesmo erro :

 

OTSYS_SQLITE3_PREPARE(): SQLITE ERROR: no such column: Gabriel (UPDATE players SET name = Gabriel WHERE id = 2)


UP

wq3bBzt.png
Pokémon Dust Evolution
 
É aonde começa sua nova aventura!! 

 

Facebook

 
Verifique Atualizações

 

Link para o post
Compartilhar em outros sites

UP preciso de NPC change name

wq3bBzt.png
Pokémon Dust Evolution
 
É aonde começa sua nova aventura!! 

 

Facebook

 
Verifique Atualizações

 

Link para o post
Compartilhar em outros sites

Tente assim o 2° Pedido.

local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
local talkState = {}
function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end
function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end
function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end
function onThink() npcHandler:onThink() end
function creatureSayCallback(cid, type, msg)

    if not npcHandler:isFocused(cid) then
        return false
    end
    local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid
    local price = xxx                        --Preço para trocar o nome.
    local characters = {}                    --Configure nesta tabela os caracteres (ou palavras) proibidos.
    local delay = 5                          --Tempo para o jogador ser desconectado após trocar o nome.
    if msgcontains(msg:lower(), "name") or msgcontains(msg:lower(), "change") then
        selfSay("Do you wanna change your name? It will cost {"..price.." gold}.", cid)
        talkState[talkUser] = 1
        return true
    elseif msgcontains(msg:lower(), "yes") and talkState[talkUser] == 1 then
        if getPlayerMoney(cid) >= price then
            selfSay("OK, tell me your new name.", cid)
            talkState[talkUser] = 2
            return true
        else
            selfSay("You do not have enough money.", cid)
            talkState[talkUser] = 0
            return true
        end
    elseif talkState[talkUser] == 2 then
        local query = db.getResult("SELECT name FROM players")
        if query:getID() == -1 then
            selfSay("Database inexistent.", cid)
            talkState[talkUser] = 0
            return true
        end
        repeat
            local name = query:getDataString("name")
            if msg == name then
                selfSay("This name is already in use.", cid)
                talkState[talkUser] = 0
                return true
            end
        until not query:next()
        query:free()
        for i = 1, #characters do
            if msg:find(characters[i]) then
                selfSay("Sorry, this name isn't available.", cid)
                talkState[talkUser] = 0
                return true
            end
        end
        db.executeQuery('UPDATE `'..sqlDatabase..'`.`players` SET `name` = "'..msg..'" WHERE `players`.`id` ='..getPlayerGUID(cid)' AND CONVERT( `players`.`name` USING utf8 ) = "'..old..'" LIMIT 1 ;')
        doPlayerRemoveMoney(cid, price)
        selfSay("You changed your name to {"..msg.."}. In "..delay.." second"..(delay > 1 and "s" or "")..", you will be disconected.", cid)
        addEvent(function()
            if isPlayer(cid) then
                doRemoveCreature(cid)
            end
        end, delay * 1000)
        talkState[talkUser] = 0
        return true
    elseif msgcontains(msg:lower(), "no") and talkState[talkUser] == 1 then
        selfSay("Ok, bye.", cid)
        talkState[talkUser] = 0
        return true
    end
    return true
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())       

Te ajudei?
Se você achar que eu mereço, me dê uma "rep+" e selecione meu post como "melhor resposta"

 

Skype: JoadsonAion

Link para o post
Compartilhar em outros sites

UP

wq3bBzt.png
Pokémon Dust Evolution
 
É aonde começa sua nova aventura!! 

 

Facebook

 
Verifique Atualizações

 

Link para o post
Compartilhar em outros sites

Aqui está, testado e funcioando perfeitamente.

local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
local talkState = {}
function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end
function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end
function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end
function onThink() npcHandler:onThink() end
function creatureSayCallback(cid, type, msg)

    if not npcHandler:isFocused(cid) then
        return false
    end
    local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid
    local price = 250                        --Preço para trocar o nome.
    local characters = {}                    --Configure nesta tabela os caracteres (ou palavras) proibidos.
    local delay = 5                          --Tempo para o jogador ser desconectado após trocar o nome.
    if msgcontains(msg:lower(), "name") or msgcontains(msg:lower(), "change") then
        selfSay("Do you wanna change your name? It will cost {"..price.." gold}.", cid)
        talkState[talkUser] = 1
        return true
    elseif msgcontains(msg:lower(), "yes") and talkState[talkUser] == 1 then
        if getPlayerMoney(cid) >= price then
            selfSay("OK, tell me your new name.", cid)
            talkState[talkUser] = 2
            return true
        else
            selfSay("You do not have enough money.", cid)
            talkState[talkUser] = 0
            return true
        end
    elseif talkState[talkUser] == 2 then
        local query = db.getResult("SELECT name FROM players")
        if query:getID() == -1 then
            selfSay("Database inexistent.", cid)
            talkState[talkUser] = 0
            return true
        end
        repeat
            local name = query:getDataString("name")
            if msg == name then
                selfSay("This name is already in use.", cid)
                talkState[talkUser] = 0
                return true
            end
        until not query:next()
        query:free()
        for i = 1, #characters do
            if msg:find(characters[i]) then
                selfSay("Sorry, this name isn't available.", cid)
                talkState[talkUser] = 0
                return true
            end
        end
        local guid = getPlayerGUID(cid)
        db.executeQuery("UPDATE `players` SET `name` = " .. db.escapeString(msg) .. " WHERE `id` = " .. guid .. " LIMIT 1;")
        doPlayerRemoveMoney(cid, price)
        selfSay("You changed your name to {"..msg.."}. In "..delay.." second"..(delay > 1 and "s" or "")..", you will be disconected.", cid)
        addEvent(function()
            if isPlayer(cid) then
                doRemoveCreature(cid)
            end
        end, delay * 1000)
        talkState[talkUser] = 0
        return true
    elseif msgcontains(msg:lower(), "no") and talkState[talkUser] == 1 then
        selfSay("Ok, bye.", cid)
        talkState[talkUser] = 0
        return true
    end
    return true
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())  
Editado por joadson (veja o histórico de edições)

Te ajudei?
Se você achar que eu mereço, me dê uma "rep+" e selecione meu post como "melhor resposta"

 

Skype: JoadsonAion

Link para o post
Compartilhar em outros sites

ai amigo funcionando ^^ que merda ainda n funfo

 

[07/02/2015 15:53:47] Dreams has logged in.
[07/02/2015 15:54:09] OTSYS_SQLITE3_PREPARE(): SQLITE ERROR: near "LIMIT": syntax error (UPDATE "players" SET "name" = 'Gabriel ZOna' WHERE "id" = 2 LIMIT 1;)
[07/02/2015 15:54:14] Dreams has logged out.

wq3bBzt.png
Pokémon Dust Evolution
 
É aonde começa sua nova aventura!! 

 

Facebook

 
Verifique Atualizações

 

Link para o post
Compartilhar em outros sites

viixe é sqlite?
porque testei em mysql e funcinou.

Edit: troque essa linha db.executeQuery("UPDATE `players` SET `name` = " .. db.escapeString(msg) .. " WHERE `id` = " .. guid .. " LIMIT 1;")

por essa

db.executeQuery("UPDATE `players` SET `name` = " .. db.escapeString(msg) .. " WHERE `id` = " .. guid .. ";")

e faça o teste novamente.

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

Te ajudei?
Se você achar que eu mereço, me dê uma "rep+" e selecione meu post como "melhor resposta"

 

Skype: JoadsonAion

Link para o post
Compartilhar em outros sites

Aeeeeee agora funcionou!!!!

wq3bBzt.png
Pokémon Dust Evolution
 
É aonde começa sua nova aventura!! 

 

Facebook

 
Verifique Atualizações

 

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