cara vc fez uma bagunça.
e o seguinte e so vc mudar os nomes no vocations.xml
simples e facil
onde esta escrito a master sorcerer coloque Vip Sorcerer e assim por diante.
ai voce nem vai precizar modificar esse scrip
info
Grupo: Campones
Registrado: 24/06/10
Posts: 87
Reputação: +2
Char no Tibia: Loading...

cara vc fez uma bagunça.
e o seguinte e so vc mudar os nomes no vocations.xml
simples e facil
onde esta escrito a master sorcerer coloque Vip Sorcerer e assim por diante.
ai voce nem vai precizar modificar esse scrip
info
Grupo: Campones
Registrado: 27/12/10
Posts: 17
Reputação: +1
Char no Tibia: ~> ADM Galaxy <~

Mas Lukas é o seguinte, o que eu queria realmente é que esse npc vendesse realmente a Vip Promotion, ou seja, se for sorcerer,master sorcerer, subwat srocerer virar vip sorcerer, se for druid, master druid, subwat druid virar vip druid, e assim com paladin e kinight, entende ? Pois não queria alterar nenhuma das vocações ja existentes criando esta nova. Poruqe criadas ja estão só falta vender-las neste npc.
___________________________________________________________________________________________________________
Abraços,
teteusinhu.
Editado Abril 21 por teteusinhu
info
Grupo: Infante
Registrado: 13/10/08
Posts: 1.6k
Reputação: +420
Char no Tibia: Demonbholder

Use este script para o npc:
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 vip = 5808
if(msgcontains(msg, 'promote') or msgcontains(msg, 'promotion')) then
selfSay('Voce gostaria de ser promovido a essa vocaçao por 1 Brain KoD da Promotion?', cid)
talkState[talkUser] = 1
elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 1) then
if(getPlayerLevel(cid) >= 20 and getPlayerVocation(cid) < 31) then
if(doPlayerRemoveItem(cid, vip, 1) == TRUE) then
setPlayerStorageValue(cid, 35870, getPlayerVocation(cid))
selfSay('Voce foi promovido.', cid)
doRemoveCreature(cid)
else
selfSay('Voce nao tem o Brain KoD da Promotion.', cid)
end
else
selfSay('Desculpe, voce ja foi promovido ou nao tem o nivel necessario.', cid)
end
talkState[talkUser] = 0
elseif(msgcontains(msg, 'no') and isInArray({1}, talkState[talkUser]) == TRUE) then
talkState[talkUser] = 0
selfSay('Ate mais.', cid)
end
return true
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())
Crie um arquivo .lua em creaturescripts e cole isto nele:
function onLogin(cid)
local sorc = {1,5,9}
local druid = {2,6,10}
local paly = {3,7,11}
local kina = {4,8,12}
if isInArray(sorc, getPlayerStorageValue(cid, 35870)) then
vocation = 31
elseif isInArray(druid, getPlayerStorageValue(cid, 35870)) then
vocation = 32
elseif isInArray(paly, getPlayerStorageValue(cid, 35870)) then
vocation = 33
elseif isInArray(kina, getPlayerStorageValue(cid, 35870)) then
vocation = 34
end
if getPlayerStorageValue(cid, 35870) ~= -1 then
if getPlayerPremiumDays(cid) > 0 then
doPlayerSetVocation(cid, vocation)
else
doPlayerSetVocation(cid, getPlayerStorageValue(cid, 35870))
end
end
return TRUE
end
Creio que deve funcionar.
Editado Abril 21 por Demonbholder
info
Grupo: Campones
Registrado: 27/12/10
Posts: 17
Reputação: +1
Char no Tibia: ~> ADM Galaxy <~

Muito Obrigado Demonbholder, sou muito grato. REP++. DÚVIDA SANADA. Podem fechar o tópico.
Abraços.
Editado Abril 21 por teteusinhu
info
Grupo: Infante
Registrado: 13/10/08
Posts: 1.6k
Reputação: +420
Char no Tibia: Demonbholder

Ok, vou reportar para que movam.
info
Grupo: Campones
Registrado: 27/12/10
Posts: 17
Reputação: +1
Char no Tibia: ~> ADM Galaxy <~
Bom galera havia criado um tópico anterior e procurei um relacionado com o que eu queria e achei um do demonbholder :
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 vip = 5808 if(msgcontains(msg, 'promote') or msgcontains(msg, 'promotion')) then selfSay('Voce gostaria de ser promovido a essa vocaçao por 1 Brain KoD da Promotion?', cid) talkState[talkUser] = 1 elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 1) then if(getPlayerLevel(cid) >= 20 and getPlayerVocation(cid) < 30) then if(doPlayerRemoveItem(cid, vip, 1) == TRUE) then setPlayerPromotionLevel(cid, 1) selfSay('Voce foi promovido.', cid) else selfSay('Voce nao tem o Brain KoD da Promotion.', cid) end else selfSay('Desculpe, voce ja foi promovido ou nao tem o nivel necessario.', cid) end talkState[talkUser] = 0 elseif(msgcontains(msg, 'no') and isInArray({1}, talkState[talkUser]) == TRUE) then talkState[talkUser] = 0 selfSay('Ate mais.', cid) end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new())Mas tem um porém no do cara era umas vocações lá, no meu caso são as vocações CASP SEJA SORCERER(ID 1)-- Vip Sorcerer, ID 31 CASO SEJA DRUID(ID 2) -- Vip Druid, ID 32 CASO SEJA PALADIN(ID 3) -- Vip Paladin, ID 33 e CASO SEJA KNIGHT(ID 4 -- Vip Knight, ID 34. então gostaria que fossem essas a que seria promovido no npc. Só me ajudem no script acima pois o npc em si ja foi feito ;D Abraços...
________________
O script do buy vip é o seguinte:
local config = { vip = "yes", storage = 13710 } function onSay(cid, words, param, channel) local days = 5 local storageplayer = getPlayerStorageValue(cid, 13710) if doPlayerRemoveItem(cid, 2160,1000) then doPlayerAddPremiumDays(cid, days) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você adicionou "..days.." dia(s) de vip.") else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você precisa de 10kk!!!") end return TRUE endEditado Abril 21 por teteusinhu