Como Arrumo Isso?

magera
Por magera
em Lixeira Pública

magera

Ajuda o teu semelhante a levantar a carga, mas não a levá-la
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 08/01/12Posts: 9

É o seguinte,tou com um script para promotion vip porém está com um probleminha! (GRANDE)

 

O cara fala (Hi) ai o npc fala , (Você quer ser elder druid vip ,master sorcerer vip , elite knight vip, royal paladin vip.

Até ai tudo bem.

Mais se um druid falar elite knight vip ele vira elite knight vip.

 

Lembrando que eu quero consertar não que postem outro script!

 

Segue o script

 

 

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

if(msgcontains(msg, 'vip sorcerer') or msgcontains(msg, 'vip sorc')) then
selfSay('Deseja virar {vip sorcerer} por 40k?', cid)
talkState[talkUser] = 1
elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 1) then
if(getPlayerItemCount(cid, 2160) >= 4) then
doPlayerRemoveItem(cid, 2160, 4)
doPlayerSetVocation(cid,9)
selfSay('Vocação trocada com sucesso , Agora você é um Vip Sorcerer.', cid)
else
selfSay('Você não tem {crystal coins} Suficientes.', cid)
end
talkState[talkUser] = 0

elseif(msgcontains(msg, 'vip druid') or msgcontains(msg, 'vip druida')) then
selfSay('Deseja virar {vip druid} por 40k?', cid)
talkState[talkUser] = 2
elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 2) then
if(getPlayerItemCount(cid, 2160) >= 4) then
doPlayerRemoveItem(cid, 2160, 4)
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

elseif(msgcontains(msg, 'vip knight') or msgcontains(msg, 'vip kina')) then
selfSay('Deseja virar {vip knight} por 40k?', cid)
talkState[talkUser] = 3
elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 3) then
if(getPlayerItemCount(cid, 2160) >= 4) then
doPlayerRemoveItem(cid, 2160, 4)
doPlayerSetVocation(cid,12)
selfSay('Vocação trocada com sucesso , Agora você é um Vip Knight.', cid)
else
selfSay('Você não tem {crystal coins} Suficientes.', cid)
end
talkState[talkUser] = 0

elseif(msgcontains(msg, 'vip paladin') or msgcontains(msg, 'vip pala')) then
selfSay('Deseja virar {vip paladin} por 40k?', cid)
talkState[talkUser] = 4
elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 4) then
if(getPlayerItemCount(cid, 2160) >= 4) then
doPlayerRemoveItem(cid, 2160, 4)
doPlayerSetVocation(cid,11)
selfSay('Vocação trocada com sucesso , Agora você é um vip Paladin.', cid)
else
selfSay('Você não tem {crystal coins} Suficientes.', cid)
end
talkState[talkUser] = 0
end
return true
end

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

bepokemon

Lo sono il accolito.
avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 23/02/08Posts: 273Char no Tibia: Foxx Rookslayer

Desculpe mas tive que refazer seu script ._. Não aguentei.

Aqui está ele:

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 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())

 

E o link identado no pastebin.

logo.png

Scripter

@MagicWorld

Ex: Colaborador de Scripting

Contato: bepokemon@hotmail.com

magera

Ajuda o teu semelhante a levantar a carga, mas não a levá-la
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 08/01/12Posts: 9

[23:3:13.725] [Error - LuaInterface::loadFile] data/npc/scripts/second promotion
.lua:17: malformed number near '4getPlayerPromotionLevel'
[23:3:13.725] [Warning - NpcEvents::NpcEvents] Cannot load script: data/npc/scri
pts/second promotion.lua

 

Se funfar legal REP+ por uma semana

bepokemon

Lo sono il accolito.
avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 23/02/08Posts: 273Char no Tibia: Foxx Rookslayer

aheuheuehu éé

 

mas para arrumar o original acho que assim fica bacana:

 

local tabela = {
[5] = 6, -- [Vocação atual] = Vocação que vai ser promovido
[7] = 8
}

doPlayerSetVocation(cid, tabela[getPlayerVocationId(cid)])

 

Ia continuar grandão também ._. Fiquei sem paciência e mudei tudo logo. HAHAHA

 

[23:3:13.725] [Error - LuaInterface::loadFile] data/npc/scripts/second promotion
.lua:17: malformed number near '4getPlayerPromotionLevel'
[23:3:13.725] [Warning - NpcEvents::NpcEvents] Cannot load script: data/npc/scri
pts/second promotion.lua

 

Se funfar legal REP+ por uma semana

 

Já concertei, tente denovo.

logo.png

Scripter

@MagicWorld

Ex: Colaborador de Scripting

Contato: bepokemon@hotmail.com

magera

Ajuda o teu semelhante a levantar a carga, mas não a levá-la
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 08/01/12Posts: 9

Byerne Você é o cara! Funfou legal e respeita a storage da minha vip EX: quando acaba vip volta pra elite knight.

 

Eu vou te dar REP++ 1 semana

Qem visualizar e gostar REP+

Quem Utilizar REP+

bepokemon

Lo sono il accolito.
avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 23/02/08Posts: 273Char no Tibia: Foxx Rookslayer

Eu vou te dar REP++ 1 semana

 

Nao precisa ficar dando REP+ por uma semana nao ... :) Soh fiz meu trabalho.

logo.png

Scripter

@MagicWorld

Ex: Colaborador de Scripting

Contato: bepokemon@hotmail.com