Ir para conteúdo
  • Cadastre-se

Posts Recomendados

Opa, tudo bem?

Então, eu peguei o script do Dalk da base que eu uso (Pokemon Dash Advanced (1.0)) e tentei  dar uma adaptada para o jeito que eu queria. Se alguém puder me ajudar, ficarei extremamente grato.

Eu sou novo em lua, estou recém aprendendo, mas estou precisando desse NPC por agora.

 

Eu gostaria que ele trocasse o nome dos players por 3 diamonds (eu peguei um código que fazia por name_lock e tentei adaptar no meu código, mas quando eu digo "yes", não acontece nada). De preferência, trocar o nome falando com o NPC mesmo, não por name_lock, exemplo: hi/change name/yes/nome que eu quero/yes. Ai o player reloga e o nome é trocado. Mas se não tiver como e o único jeito for por name_lock mesmo, sem problemas.

 

E a opção de trocar de cidade natal.

 

Erro depois de dar "change name", "yes":

(sou burro e não sei inserir imagem)

 

http://prntscr.com/anp4f0

 

Thanks boyz 

 

dalk.lua:

Spoiler

 


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
msg = string.lower(msg)
---------
local configs = {
diamondsID = 2145,  --id do diamond no items.xml/otb... (achu q vais ter q criar, ou pegar algum item q ja tenha ae...)
VIP = {days = 30, cost = 10},    --days = qnts dias de VIP o player compra por vez.... cost = custo para virar VIP...
SEX = {cost = 3},   --cost = custo para trocar de sexo...
NAME = {cost = 3},
TOWN = {cost = 3},
}  


       
        if (msgcontains(msg, 'diamond account') or msgcontains(msg, 'diamond')) then  
           selfSay("You want to buy a diamond account and be VIP for "..configs.VIP.days.." days? It will cost "..configs.VIP.cost.." diamonds!", cid)   
           talkState[talkUser] = 2
           return true    
          
        elseif msgcontains(msg, 'yes') and talkState[talkUser] == 2 then
           if getPlayerItemCount(cid, configs.diamondsID) >= configs.VIP.cost then
              selfSay("Ok then, now you have "..configs.VIP.days.." days of VIP! Enjoy!", cid)
              doPlayerAddPremiumDays(cid, configs.VIP.days)
              doPlayerRemoveItem(cid, configs.diamondsID, configs.VIP.cost)
              talkState[talkUser] = 0
              return true
           else
              selfSay("You need atleast "..configs.VIP.cost.." diamonds to do that!", cid)
              talkState[talkUser] = 0
              return true
           end
           
        elseif (msgcontains(msg, 'sex change') or msgcontains(msg, 'sex')) then
           selfSay("So you want to change of sex? It will cost "..configs.SEX.cost.." diamonds", cid) 
           talkState[talkUser] = 3
           return true
        
        elseif msgcontains(msg, 'yes') and talkState[talkUser] == 3 then
           if getPlayerItemCount(cid, configs.diamondsID) >= configs.SEX.cost then
              local sex = getPlayerSex(cid)
              selfSay("Ok then, now you are of the sex "..(sex == 1 and "female" or "male")..". Enjoy!", cid)
              doPlayerSetSex(cid, (sex == 1 and 0 or 1))
              doPlayerRemoveItem(cid, configs.diamondsID, configs.SEX.cost)
              talkState[talkUser] = 0
              return true
           else
              selfSay("You need atleast "..configs.SEX.cost.." diamonds to do that!", cid)
              talkState[talkUser] = 0
              return true
           end
		   
		   elseif msgcontains(msg, 'change name') then
			selfSay("So you want to change your name? It will cost "..configs.NAME.cost.." diamonds", cid) 
			talkState[talkUser] = 4
			return true
			
			elseif msgcontains (msg, 'yes') and talkState[talkUser] == 4 then
				if getPlayerItemCount(cid, config.diamondsID) >= config.NAME.cost then
					doPlayerRemoveItem(cid, configs.diamondsID, configs.NAME.cost)
					npcHandler:releaseFocus(cid)
					doAddPlayerBanishment(getPlayerGUID(cid), PLAYERBAN_LOCK)
					doRemoveCreature(cid)
					talkState[talkUser] = 0
					return true
				else
		      selfSay("You need atleast "..configs.NAME.cost.." diamonds to do that!", cid)
              talkState[talkUser] = 0
              return true
			end        
           
		   elseif (msgcontains(msg, 'change town') or msgcontains(msg, 'sex')) then
           selfSay("So you want to change your hometown? It will cost "..configs.TOWN.cost.." diamonds", cid) 
           talkState[talkUser] = 5
           return true
		   
        elseif msgcontains(msg, 'yes') and talkState[talkUser] == 5 then
           selfSay("Ok then, tell me what city do you want?", cid)
           talkState[talkUser] = 6
           return true
           
        elseif places[msg] and talkState[talkUser] == 6 then
           if getPlayerItemCount(cid, configs.diamondsID) >= configs.TOWN.cost then
              selfSay("Done, enjoy your new city!", cid)
              doPlayerSetTown(cid, places[msg]) 
              doPlayerRemoveItem(cid, configs.diamondsID, configs.TOWN.cost)
              talkState[talkUser] = 0
              return true
           else
              selfSay("You need atleast "..configs.TOWN.cost.." diamonds to do that!", cid)
              talkState[talkUser] = 0
              return true
           end 
           
        elseif msgcontains(msg, 'no') then
          selfSay("Ok then, tell me again what you want...", cid)
          talkState[talkUser] = 0
          return true 
        end

return true
end

npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())             

 

.Dalk.xml:

Spoiler

<?xml version="1.0" encoding="UTF-8"?>

<npc name="Dalk" script="dalk.lua" walkinterval="3000" floorchange="0" access="5" level="1" maglevel="1">
<health now="150" max="150"/>
<look type="1419" head="114" body="119" legs="114" feet="114" corpse="2212"/>

<parameters>
	<parameter key="message_greet" value="Welcome |PLAYERNAME|, I can sell to you: {Diamond Account}, {Sex Change}, {Change Name}, {Change Town} what you want?"/>
</parameters>
</npc>

 

 

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

Não dou suporte via PM, crie um tópico caso tenha dúvidas.

Isso previne que outras pessoas com a mesma dúvida criem tópicos desnecessários.

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.

  • Conteúdo Similar

    • Por LeoTK
      Salve galera neste tópico irei postar algumas prints do mapa do servidor para quem queira acompanhar e quem sabe até utilizar de inspiração para mapear o seu NTO.
       
      #Att 11/08/2022

       
       
       
       
      Konoha (Em Desenvolvimento)
       
       
       
       
    • Por DiigooMix
      Como o título já diz, será que alguém possui sprite do hitto e se possível as transformações dele?
    • Por OmegaZero
      Olá gostaria que alguém me ajudasse com uma "scripting" não sei se é pela mesma, seria o seguinte uma determinada arma teria a chance de dar double hit e não sei oque fazer alguem poderia ajudar?

      OBS:não sei se é o local correto se não for mova, desculpe
    • Por Madarasenju
      Olá galera do Tibia King, queria por uns npc's no meu server que não tem função de trade nem nada do tipo, queria que eles só andassem como enfeite, Rep+ Pra quem me ajudar... grato desde já.
    • Por SilenceRoot
      A magia é assim o você usa a a magia e ela ficará ativado por 10 segundos, até que o inimigo lance a primeira magia ou todos de uma vez, quando ele lançar a primeira magia, ele não lhe acertará ou seja esquivando dela, e logo em seguida será teletransportado aleatoriamente ao redor do inimigo que usou.
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo