Muinto Bom Cara, Estava Pensando em Fazer algo Assim agora nao preciso Mais!!
REP+
info
Grupo: Conde
Registrado: 30/01/10
Posts: 706
Reputação: +125
Gênero: Masculino
Char no Tibia: Bakwin

Muinto Bom Cara, Estava Pensando em Fazer algo Assim agora nao preciso Mais!!
REP+
info
Grupo: Herói
Registrado: 20/05/10
Posts: 3.4k
Reputação: +1.5k
Gênero: Masculino

achei o npc muito simples por dois motivos.
o primeiro é que nele tem uma falha,qualquer vocação pode usar esse npc,ou sejá um knight poderá virar um "vip sorcerer",já que não tem nenhuma função que faz a checkagem da voc do player.
e a segunda é que o npc só da uma vocação,o certo seriam no minimo 4 vocações.
procure melhorar amigo,você tem futuro
espero novos trabalhos seus por aqui
abraços
Editado Agosto 23 por Vodkart
info
Grupo: Conde
Registrado: 30/01/10
Posts: 706
Reputação: +125
Gênero: Masculino
Char no Tibia: Bakwin

Hmm, eu liguei nesses erros so que eu ia fazer para min tipow qalquer voc ia virar uma vocation vip '-' e nao Vip Kina e etc..
Mais se for para usar nesse tipo como o vodkart falo, é muinto simplisinho!!
TPW No Caso De Qualquer Voc Pegar As Vocs Vip!
Meu Ot É Baiak Yoruts 8.54 a 8.57.
Coloquei O Npc So Na Area Vip.
Assim Somente Vips Comprariam.
E No Caso De Vender 4 Vocs.
É So Copiar Iso Abaixo E Editar.
elseif(msgcontains(msg, 'vip druid') or msgcontains(msg, 'vip druid')) then
selfSay('Deseja virar {Vip Druid} por 50 crystal coins?', cid)
talkState[talkUser] = 2
elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 2) then
if(getPlayerItemCount(cid, 2160) >= 50) then
doPlayerRemoveItem(cid, 2160, 50)
doPlayerSetVocation(cid,10)
selfSay('Vocação trocada com sucesso , Agora você é um Vip Druid.', cid)
else
selfSay('Você não tem {crystal coins} Suficientes.', cid)
end
talkState[talkUser] = 0
No Final Coloque Iso.
end
return true
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())
Desculpa Se O Npc Não Ta Perfeito Vou Tentar Melhorar.
info
Grupo: Campones
Registrado: 29/05/09
Posts: 5
Reputação: 0

Putz cara tava disisperado atraz disso!!!!
só que tipow tem como arrumar isso ao inves de dinheiro ser por lvl?
se tiver como mi da uma ajuda plx!
info
Grupo: Herói
Registrado: 20/05/10
Posts: 3.4k
Reputação: +1.5k
Gênero: Masculino

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 a = {
[5] = {new_voc = 9,need_level = true,level = 60,cobrar = true,price = 100000,need_premium = true},
[6] = {new_voc = 10,need_level = true,level = 60,cobrar = true,price = 100000,need_premium = true},
[7] = {new_voc = 11,need_level = true,level = 60,cobrar = true,price = 100000,need_premium = true},
[8] = {new_voc = 12,need_level = true,level = 60,cobrar = true,price = 100000,need_premium = true}
}
local b = a[getPlayerVocation(cid)]
if(msgcontains(msg, 'vip promotion') or msgcontains(msg, 'vip promote')) then
if(not b) then
selfSay('Você não tem a second promote, então não poderá ser promovido!.', cid)
talkState[talkUser] = 0
else
selfSay('Deseja virar ' .. getVocationInfo(b.new_voc).name .. ' por '..b.price..' gold coins? {yes}', cid)
talkState[talkUser] = 1
end
elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 1) then
if b.need_premium == true and not isPremium(cid) then
selfSay('Você precisa ser Premium para ser promovido!.', cid)
talkState[talkUser] = 0
elseif b.need_level == true and getPlayerLevel(cid) < b.level then
selfSay('Você deve ter pelo menos level '.. b.level ..' para ser promovido!.', cid)
talkState[talkUser] = 0
elseif b.cobrar == true and doPlayerRemoveMoney(cid, b.price) == TRUE then
doPlayerSetVocation(cid,b.new_voc)
selfSay('Você foi promovido com sucesso.', cid)
talkState[talkUser] = 0
else
selfSay('Você não tem '..b.price..' gold coins Suficientes.', cid)
doSendMagicEffect(getPlayerPosition(cid), 2)
end
end
return TRUE
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())
tipo eu fiz esse npc promote ae ae ele promoveu o player mais quando o player loga ele volta a ser ex: elder druid : /
Aqui tbm..quando reloga volta a voc de antes
como arrumar isso?! ![]()
info
Grupo: Campones
Registrado: 01/10/06
Posts: 33
Reputação: +4
Char no Tibia: Tubino

Boa a explicação, e o tutorial é muito útil.
O script postado pelo @Vodkart é o que, de fato, eu estava procurando.
PORÉM...
Ambos têm o mesmo bug: Quando o player promovido Loga, ele volta a ser a vocação que era antes. Exemplo: O player sai do jogo Vip Knight, e volta Elite Knight. Ou seja, a promoção funciona! mas até o player fazer logoff.
Alguém aí sabe sanar este problema? se souber, posta, por favor!
Abraços.
Editado Janeiro 26 por GoD_RaFkS
info
Grupo: Visconde
Registrado: 15/02/11
Posts: 259
Reputação: +25
Char no Tibia: Aias Laf Du

alguem pode converter esse sistema para 8.52, acho que eh esse meu, pq eu to vendendo vocação no site, coloco pela database, mas os skills bugam cada hit upa um skill de glove se usar luva e sword se usar spada.
auqee tbm esta assim.
quando vira a promotion vip..
assim que ele logaa. a promotion volta a anteriorr
AJUDAAAA
ajudaaaaaaa.
desculpa p double post
info
Grupo: Campones
Registrado: 16/07/11
Posts: 8
Reputação: 0
Char no Tibia: Zowm Megas

Isso é simples, la na terceira vocação, vocês procuram fromvoc="1" e deletam... OBS: Só deletem da terceira vocação, de todas as quatro. rs
Editado Fevereiro 4 por EduardoDantas
info
Grupo: Campones
Registrado: 16/11/07
Posts: 43
Reputação: 0
Char no Tibia: Ollux Junior

Cara, eu não sou scripter então não sei a tag correta para usar pra concertar, porem eu estou estudando script, e pelo que eu vi o problema é o código "PlayerSetVocation" pois ele ele muda a vocação mas éla funciona como um buff, quando vc loga, acaba.
o correto seria utilizar um código de promotion (o qual eu não sei qual é) pois vc usando ex:"doPromotion" ele cria uma especie de storage do player que de 0 passa a ser 1 tornando o player promoted, ai no caso teria que fazer um código promotion de 1 "setPromotion = 2'
algo assim... posso ta falando besteira, defecando pela boca, mas eu acredito que seja isso =P
quem souber, puder fazer, agradeço, prescio desse npc tbm
Editado Fevereiro 5 por Korocham
info
Grupo: Visconde
Registrado: 23/02/08
Posts: 273
Reputação: +101
Char no Tibia: Foxx Rookslayer

Cara, eu não sou scripter então não sei a tag correta para usar pra concertar, porem eu estou estudando script, e pelo que eu vi o problema é o código "PlayerSetVocation" pois ele ele muda a vocação mas éla funciona como um buff, quando vc loga, acaba.
o correto seria utilizar um código de promotion (o qual eu não sei qual é) pois vc usando ex:"doPromotion" ele cria uma especie de storage do player que de 0 passa a ser 1 tornando o player promoted, ai no caso teria que fazer um código promotion de 1 "setPromotion = 2'
algo assim... posso ta falando besteira, defecando pela boca, mas eu acredito que seja isso =P
quem souber, puder fazer, agradeço, prescio desse npc tbm
Na verdade está certíssimo. É doPlayerSetPromotionLevel(cid, level). Eu postei um Script para segunda promotion (promotion VIP) aqui já. Aqui vai o code e o link do pastebin:
local keywordHandler = KeywordHandler:new() -- By Byerne XTibia
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 startVoc = (getPlayerVocation(cid) - ((getPlayerPromotionLevel(cid))*4))
if msgcontains(msg, 'promotion') then
if getPlayerPromotionLevel(cid) ~= 1 then
selfSay("Não posso te promover.", cid)
else
selfSay("Deseja virar um {VIP "..getVocationInfo(startVoc).name.."} por {40.000 gold coins} ({40k})?", cid)
talkState[talkUser] = 1
end
elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 1) then
if doPlayerRemoveMoney(cid, 40000) then
doPlayerSetPromotionLevel(cid, 2)
selfSay("Parabéns, você agora é um "..getVocationInfo(getPlayerVocation(cid)).name..".", cid)
else
selfSay("Você não tem dinheiro suficiente.", cid)
end
talkState[talkUser] = 0
end
return true
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())
Editado Fevereiro 5 por Byerne
info
Grupo: Campones
Registrado: 08/08/10
Posts: 64
Reputação: +26
Gênero: Masculino
Ae Xtibianos
Vou Ensinar A Vocês Como Criar Um Npc Que Vende A Nova Voc Que Vc Criou No Seu Server!
1°Vá Hem data/npc/
Click Hem Novo->Documento De Texto
Renomei Para Nome Que Quiser
Dentro Coloque Iso
Azul:Nome Do NPc
Click Hem Salvar Como
Coloque Nome Que Quiser + No Final Coloque.xml
E Salve Na Pasta Do Seu Ot
Agora Delete O Arquivo Txt Que Tinha Criado!
2°Vá Hem data/npc/scripts/
Copie E Cole Qualquer Arquivo.lua
Renomeio Para vip promote
Dentro Coloque Iso
Vermelho:Vocação
Verde:Preço Da Voc
Roxo:ID Da Voc
É Isso Vlw
Se Falto Algo Comenten
By:Leo46