[npc] Npc Premium Com Escolha De Dias

alex008
em NPCs, monsters e raids

alex008

Im Hoster
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 25/07/08Posts: 55Char no Tibia: Alex Terceiro

NPC premium BY ALEX0007

 

TUTORIAL:

 

vá em data/npc e copie um arquivo qualquer, renomeie-o para premmy

agora abra-o, exclua tudo dentro e cole isso:

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

<npc name="premmy" script="data/npc/scripts/premmy.lua" walkinterval="3000" floorchange="0" access="5" >

<health now="150" max="150"/>

<look type="57" head="78" body="86" legs="114" feet="116" addons="0" corpse="2212"/>

<parameters>

<parameter key="message_greet" value="Ola |PLAYERNAME|. Eu vendo {premium account}."/>

<parameter key="message_farewell" value="Adeus. volte quando precisar de ajuda."/>

</parameters>

</npc>

 

agora va na pasta data/npc/scripts e copie um arquivo qualquer, renomeie-o para premmy

agora abra-o, exclua tudo dentro e cole 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({'prem'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Eu vendo premium account somente por {GPs}, infelizmente nao temos outra forma de pagamento.'})

function creatureSayCallback(cid, type, msg)

p = 10000 -- valor da P.A 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, 'gp') or msgcontains(msg, 'gps') or msgcontains(msg, 'GP') or msgcontains(msg, 'GPs') or msgcontains(msg, 'GPS') then

selfSay('Pois bem, cada dia de premium account 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 P.A: {'..n..'} por {'..n*(p)..'} GPs?', cid)

talkState[talkUser] = 3

else

selfSay('Você nao tem GPs suficientes para comprar {'..n..'} dias de P.A.', 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 P.A.', 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 GPs suficientes!', cid)

talkState[talkUser] = 0

else

doPlayerAddPremiumDays(cid, n)

selfSay('Compra efetuada com sucesso, dias de P.A:{ '..n..' }.', cid)

talkState[talkUser] = 0

end

else

npcHandler:say('Voce nao pode ter mais que 350 dias de Premium!', 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

 

Simulação de conversa:

EU: hi

Premmy: Ola alex. Eu vendo premium account.

EU: premium account

Premmy: Eu vendo premium account somente por GPs, infelizmente nao temos outra forma de pagamento.

EU: gps

Premmy: Pois bem, cada dia de premium account custa 10000 GPs, quantos dias você deseja comprar?

EU: 3

Premmy: Dias de P.A: 3 por 30000 GPs?

EU: sim, yes

Premmy: Compra efetuada com sucesso, dias de P.A:3.

 

 

na verdade esse script eu fiz pra ter dois modos de compra (gps e créditos), eu apenas modifiquei um pouco para comprar somente por GPs

NAO testei ainda, mais tenho certeza que finciona

para mudar o outfit do NPC acesse meu script - [action] Criando Outfit Para Npc Facilmente

Qualquer problema favor avisar, que eu arrumarei ;]

noobinhu

Ex Administrador
avatar
Marquês
Marquês

INFOS

Grupo: MarquêsRegistrado: 01/03/06Posts: 1022Gênero: Masculino

boa :)

 

só falta agora aprender diminuir os scripts para uma melhor visualização do mesmo, menos ifs, menos ends, melhor visualização... isso você aprende com o temppo e exercitando

makabrotaliban

avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 08/01/09Posts: 331Char no Tibia: Orcshaball

Excelente trabalho manow !!

 

...tah de parabéns mesmo !!

 

...Isso vaolriza muito o RPG do jogo e ainda dificulta server de exp baixa !!

 

Simplesmente adorei !!

 

Grato Pelo post !!

 

...e continue assim !!

 

SEM MAIS

- Xtibia.com seu site de Tibia e OTServer ! -

Schiavinato

Aprendendo Scripting *-*
avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 12/08/07Posts: 345Char no Tibia: Lokeded

Opaaa

 

Thanks Man

 

Eu vou usar esse script pra fazer meu npc q vende vip(akele do noobinhu)

 

Eu pedi em Pedidos de Scripting, mas ngm me deu resposta

 

Vai esse msm

 

Flw

The Crystal Server(Sorcerer´s Stone) - Project



 

Venha participar deste projeto - Desenvolvido por Shynzo

 

Link para download do distro:

http://www.xtibia.com/forum/topic/143282-862-the-crystal-server-v018/

Link da formação do projeto:

http://www.xtibia.com/forum/topic/143247-the-crystal-server-recruta/

anderson1257

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 25/04/09Posts: 18

Opa, vou usar no meu projeto... Vou tentar editar pra as moedas vips do meu jogo!

valeuuh cara!





Tibia não é 3D mais é xD

selfarion

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 03/02/07Posts: 31Char no Tibia: Nenhum.

Interessante o seu NPC !

 

Depois darei uma revisada, e se sobrar tempo..

ponho no meu ot =]

 

No fim das contas, eh bem util !!

 

abração..

 

Selfarion.

satan666

Antichrist Superstar
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 07/05/08Posts: 612Char no Tibia: leviana luciferiana

vlw mesmo nao tava conseguindo fazer esse npc e tava precisando muito.

 

testando aki encontrei um erro se o cara for la com o dinheiro contado tipo se o dia de p.a for 5k e o cara for la com os 5k o npc diz que ele nao tem dinheiro suficiente pra comprar um dia de p.a.

vo ve se consigo arrumar isso e te mando pra atualizar.

 

pronto ta atualizado retirei esse erro que tava nele.

 

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({'prem'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Eu vendo premium account, se quiser saber mais {informaçoes} e so me dizer.'})

function creatureSayCallback(cid, type, msg)

p = 5000 -- valor da P.A em GP

v = 4999 -- nao mude

if(not npcHandler:isFocused(cid)) then

return false

end

local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid

---------- MSGs ----------

if msgcontains(msg, 'infor') or msgcontains(msg, 'informacoes') or msgcontains(msg, 'informaçoes') or msgcontains(msg, 'info') then

selfSay('Pois bem, cada dia de premium account 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) > v*n then

selfSay('Gostaria de comprar {'..n..'} dia de premium account por {'..n*(p)..'} GPs?', cid)

talkState[talkUser] = 3

else

selfSay('Você precisa ter {'..n*(p)..'} GPs pra poder comprar {'..n..'} dias de Premium account.', 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 Premium account', 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 dinheiro suficiente!', cid)

talkState[talkUser] = 0

else

doPlayerAddPremiumDays(cid, n)

selfSay('Compra efetuada com sucesso, voce comprou { '..n..' }. dias de premium account por {'..n*(p)..'} Gps.', cid)

talkState[talkUser] = 0

end

else

npcHandler:say('Voce nao pode ter mais que 350 dias de Premium!', 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

ainda tomei a liberdade de modifica a conversa com o npc que tava " com todo o perdao da palavra" uma droga.

espero que atualize pra ficar sem erro algum uma grande ideia sua que eu estava projetando o meu mas tava sem tempo entao nao deu tempo de concluilo.

parabens.

creationb.jpg

"Um Deus que usasse seu poder para criar seres humanos que de antemão sabia que seriam atormentados eternamente, e que os predestinasse a isso,



não poderia ser sábio, nem justo e tampouco amoroso.

Além de nos submeter a isso vim a nos julgar e condenar por nossos atos aos tormentos do inferno.

pra minha pessoa isso não é um Deus Pai amoroso e bondoso como o chaman, seu padrão seria muito mais inferior do que o de muitos homens."

HellSing

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 24/01/08Posts: 11Char no Tibia: Hell Sing

Teria como tu me manda um script para creditos para trokar por iten tipo assim eu criei os itens e so falta a moeda

! Agradeço Cassiano Mesquita!

My Sign In:

Sanf

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 12/01/09Posts: 87Char no Tibia: Creepbreed

é pra qual versão? aguardo.

email: tansio_drowning@hotmail.com

 

 

Vendo Bronson server full todas features.. interessados add msn.

xxterrivel

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 14/04/09Posts: 5Char no Tibia: [GoD]MaTHeuS

Anúncio Removido

DaNDaNrOxX

oi mosso
avatar
Marquês
Marquês

INFOS

Grupo: MarquêsRegistrado: 18/01/08Posts: 1455Char no Tibia: Saint Claire

Usuário xxterrivel alertado em 10% e suspenso de postar por 7 dias.

Eu avisei para você parar de fazer anúncios em tópicos que não é para isto.

 

 

Entrada na equipe: 23/10/2008 Cargo: Estagiário

Promoção: 25/11/2008 Cargo: Moderador

Promoção: 21/10/2009 Cargo: Coordenador

Remoção: 09/05/2010 Motivo: Estudos

Retorno: 15/11/2010 Cargo: Moderador

Remoção: 20/12/2012.