Ir para conteúdo
  • Cadastre-se

Posts Recomendados

Opa, fala ae galerinha do TK :D

Eu tenho um npc no meu server que vende VIP, ele ja veio com o servidor, mas veio com alguns Bug's acho... 

Eu falo VIP, Days e ele pergunta quantos dias de vip eu quero, eu respondo 15 por exemplo mas ele em qualquer ocasião fala que só é possível comprar menos de 350 dias... alguem pode me ajudar a arrumar? O script dele é este:

 

 

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
local node1 = keywordHandler:addKeyword({'vip'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Se Você Quise Compra Vip So Fala { days } .'})
function creatureSayCallback(cid, type, msg)
p = 10000 -- Valor Da Premium account Em GP
if(not npcHandler:isFocused(cid)) then
return false
end
local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid
---------- MSGs ----------
if msgcontains(msg, 'premium') or msgcontains(msg, 'Premium') or msgcontains(msg, 'premium') or msgcontains(msg, 'Premium Accounts') or msgcontains(msg, 'days') then
selfSay('Pois Bem , Cada dia de VIP custa '..p..' GPs, quantos dias você deseja comprar?', cid)
talkState[talkUser] = 1
---== compra por GPs ==---
elseif talkState[talkUser] == 1 then
if getNumber(msg) < 350 then
n = getNumber(msg)
if n ~= 0 then
if getPlayerMoney(cid) > p*n then
selfSay('Dias de Vip: {'..n..'} por {'..n*(p)..'} GPs?', cid)
talkState[talkUser] = 3
else
selfSay('Você nao tem Gold suficientes para comprar {'..n..'} dias de VIP.', cid)
talkState[talkUser] = 0
end
else
selfSay('Escolha Um Numero Acima De Zero.', cid)
talkState[talkUser] = 0
end
else
selfSay('Você Nao Pode Comprar Mais Que 350 Dias De Vip.', cid)
talkState[talkUser] = 0
end
elseif talkState[talkUser] == 3 then ---== GPs ==---
if msgcontains(msg, 'yes') or msgcontains(msg, 'sim') or msgcontains(msg, 'SIM') or msgcontains(msg, 'YES') then
if getPlayerPremiumDays(cid)+n <= 350 then
if (doPlayerRemoveMoney(cid, p*n) ~= TRUE) then
npcHandler:say('Voce Nao Tem Gold Suficientes!', cid)
talkState[talkUser] = 0
else
doPlayerAddPremiumDays(cid, n)
selfSay('Compra Efetuada Com Sucesso , Dias De Vip:{ '..n..' }.', cid)
talkState[talkUser] = 0
end
else
npcHandler:say('Voce Nao Pode Ter Mais Que 350 Dias De Vip!', cid)
talkState[talkUser] = 0
end
end
elseif msgcontains(msg, 'no') or msgcontains(msg, 'nao') or msgcontains(msg, 'não') or msgcontains(msg, 'NO') or msgcontains(msg, 'NAO') or msgcontains(msg, 'NÃO')then
selfSay('Tudo Bem.', cid)
talkState[talkUser] = 0
end
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())
-- function maded by Gesior--
function getNumber(txt) --return number if its number and is > 0, else return 0
x = string.gsub(txt,"%a","")
x = tonumber(x)
if x ~= nill and x > 0 then
return x
else
return 0
end
end

 

Link para o post
Compartilhar em outros sites

Neste caso .. 

		if getPlayerPremiumDays(cid)+n <= 350 then
			if (doPlayerRemoveMoney(cid, p*n) ~= TRUE) then
				npcHandler:say('Voce Nao Tem Gold Suficientes!', cid)
				talkState[talkUser] = 0
			else
				doPlayerAddPremiumDays(cid, n)
				selfSay('Compra Efetuada Com Sucesso , Dias De Vip:{ '..n..' }.', cid)
				talkState[talkUser] = 0
			end
		else
			npcHandler:say('Voce Nao Pode Ter Mais Que 350 Dias De Vip!', cid)
			talkState[talkUser] = 0
		end

Traduzindo ... 

• Se o seu número que você escolher + os números de dias de premium for maior que 350 o NPC dirá: Voce Nao Pode Ter Mais Que 350 Dias De Vip!

O NPC aparentemente está correto, o problema é que ele dá dias de premium e não VIP (doPlayerAddPremiumDays)

 

OBS:
• Quando for postar códigos coloque-os dentro da opção CÓDIGO ... ele vai ficar visualmente melhor, igual ao que eu postei ...

• Quando for código grandes coloque-os dentro de spoiler, assim [.spoiler] código [./spoiler] .. sem os pontos que eu coloquei!

Espero ter ajudado

 

Link para o post
Compartilhar em outros sites

O npc ta vendendo premium não vip

 

doPlayerAddPremiumDays(cid, n)

16s5uc.gif2moe247.gif  swvimf.gif 

 

 

 

raell, me come

 

 

Link para o post
Compartilhar em outros sites

Aaaah sim, e tem como eu fazer com que ele venda VIP days? O meu é aquele sistema do Mock sabe.. '-' KK

tava procurando aqui e não achei ;s

Link para o post
Compartilhar em outros sites

Aaaah sim, e tem como eu fazer com que ele venda VIP days? O meu é aquele sistema do Mock sabe.. '-' KK

tava procurando aqui e não achei ;s

http://www.tibiaking.com/forum/topic/20589-vip-system-by-mock-100/

16s5uc.gif2moe247.gif  swvimf.gif 

 

 

 

raell, me come

 

 

Link para o post
Compartilhar em outros sites
http://www.tibiaking.com/forum/topic/20589-vip-system-by-mock-100/

Então, foi dai mesmo que fiz meu sistema de VIP, mas não consigo adicionar NPC para esse sistema :/

Link para o post
Compartilhar em outros sites

Desculpa o double, mas ninguém consegue me ajudar com um script mais ou menos como desse npc que venda dias de VIP do Mock?

Link para o post
Compartilhar em outros sites

Opa, tenta isso:


    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
    local node1 = keywordHandler:addKeyword({'vip'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Se Você Quise Compra Vip So Fala { days } .'})
    function creatureSayCallback(cid, type, msg)
    p = 10000 -- Valor Da Vip account Em GP
    if(not npcHandler:isFocused(cid)) then
    return false
    end
    local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid
    ---------- MSGs ----------
    if msgcontains(msg, 'vip') or msgcontains(msg, 'vip') or msgcontains(msg, 'vip') or msgcontains(msg, 'Vip Accounts') or msgcontains(msg, 'days') then
    selfSay('Pois Bem , Cada dia de VIP custa '..p..' GPs, quantos dias você deseja comprar?', cid)
    talkState[talkUser] = 1
    ---== compra por GPs ==---
    elseif talkState[talkUser] == 1 then
    if getNumber(msg) < 350 then
    n = getNumber(msg)
    if n ~= 0 then
    if getPlayerMoney(cid) > p*n then
    selfSay('Dias de Vip: {'..n..'} por {'..n*(p)..'} GPs?', cid)
    talkState[talkUser] = 3
    else
    selfSay('Você nao tem Gold suficientes para comprar {'..n..'} dias de VIP.', cid)
    talkState[talkUser] = 0
    end
    else
    selfSay('Escolha Um Numero Acima De Zero.', cid)
    talkState[talkUser] = 0
    end
    else
    selfSay('Você Nao Pode Comprar Mais Que 350 Dias De Vip.', cid)
    talkState[talkUser] = 0
    end
    elseif talkState[talkUser] == 3 then ---== GPs ==---
    if msgcontains(msg, 'yes') or msgcontains(msg, 'sim') or msgcontains(msg, 'SIM') or msgcontains(msg, 'YES') then
    if vip.getDays(days)+n <= 350 then
    if (doPlayerRemoveMoney(cid, p*n) ~= TRUE) then
    npcHandler:say('Voce Nao Tem Gold Suficientes!', cid)
    talkState[talkUser] = 0
    else
    doPlayerAddVipDays(cid, n)
    selfSay('Compra Efetuada Com Sucesso , Dias De Vip:{ '..n..' }.', cid)
    talkState[talkUser] = 0
    end
    else
    npcHandler:say('Voce Nao Pode Ter Mais Que 350 Dias De Vip!', cid)
    talkState[talkUser] = 0
    end
    end
    elseif msgcontains(msg, 'no') or msgcontains(msg, 'nao') or msgcontains(msg, 'não') or msgcontains(msg, 'NO') or msgcontains(msg, 'NAO') or msgcontains(msg, 'NÃO')then
    selfSay('Tudo Bem.', cid)
    talkState[talkUser] = 0
    end
    end
    npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
    npcHandler:addModule(FocusModule:new())
    -- function maded by Gesior--
    function getNumber(txt) --return number if its number and is > 0, else return 0
    x = string.gsub(txt,"%a","")
    x = tonumber(x)
    if x ~= nill and x > 0 then
    return x
    else
    return 0
    end
    end

Te ajudei?? REP + e ficamos quites... <ahttp://www.tibiaking.com/forum/uploads/emoticons/default_happyy.png' alt=';D'>

Atenciosamente,

Daniel.

Abraços!

Link para o post
Compartilhar em outros sites
22:03 Vip: Pois Bem , Cada dia de VIP custa 10000 GPs, quantos dias você deseja comprar?
22:03 [ADM] [140]: 30
22:03 Vip: Dias de Vip: 30 por 300000 GPs?
22:03 [ADM] [140]: yes


Ai ele não responde '-'
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