Ir para conteúdo
  • 0

Npc De Segunda Promotion Bugado


drakath

Pergunta

O Meu BUG é o seguinte: o cara compra segunda promotion, e vai certim, o npc promove o player, mais o cara desloga, ele volta pra promotion anterior.

se o cara der uma magia quando ele for promovido o servidor inteiro CAI.

no executador quando promove o player aparece o seguinte erro:

ERROR - NPC INTERFACE

data/npc/scripts/segunda.lua:onthink

DESCRIPTION:

data/npc/scripts/segunda.lua:112: attemp to compare number with nil stack traceback:

data/npc/scripts/segunda.lua:112: in function ( data/npc/scripts/segunda.lua:104)

 

O SCRIPT DO NPC

 

 

local focus = 0

local talk_start = 0

local target = 0

local days = 0

 

function onThingMove(creature, thing, oldpos, oldstackpos)

 

end

 

 

function onCreatureAppear(creature)

 

end

 

 

function onCreatureDisappear(cid, pos)

if focus == cid then

selfSay('Good bye then.')

focus = 0

talk_start = 0

end

end

 

 

function onCreatureTurn(creature)

 

end

 

 

function msgcontains(txt, str)

return (string.find(txt, str) and not string.find(txt, '(%w+)' .. str) and not string.find(txt, str .. '(%w+)'))

end

 

 

function onCreatureSay(cid, type, msg)

msg = string.lower(msg)

 

if (msgcontains(msg, 'hi') and (focus == 0)) and getDistanceToCreature(cid) < 4 then

selfSay('Hello ! I sell second promotion.')

focus = cid

talk_start = os.clock()

 

elseif msgcontains(msg, 'hi') and (focus ~= cid) and getDistanceToCreature(cid) < 4 then

selfSay('Sorry,! I talk to you in a minute.')

 

elseif focus == cid then

talk_start = os.clock()

 

if msgcontains(msg, 'promotion') or msgcontains(msg, 'second promotion') then

if getPlayerVocation(cid) > 8 then

selfSay('Sorry, you are already promoted.')

talk_state = 0

elseif getPlayerLevel(cid) < 600 then

selfSay('Sorry, you need level 600 to buy second promotion.')

talk_state = 0

elseif not isPremium(cid) then

selfSay('Sorry, you must be premium to buy second promotion.')

talk_state = 0

else

selfSay('Do you want to buy promotion for 5kk?')

talk_state = 1

end

 

elseif msgcontains(msg, 'premium') or msgcontains(msg, 'premmy') then

selfSay('Do you want to buy 7 days of premium for 7k?')

talk_state = 2

 

elseif talk_state == 1 then

if msgcontains(msg, 'yes') then

if pay(cid,5000000) then

doPlayerSetVocation(cid, getPlayerVocation(cid)+4)

selfSay('You are now promoted!')

else

selfSay('Sorry, you do not have enough money.')

end

end

talk_state = 0

 

elseif talk_state == 2 then

if msgcontains(msg, 'yes') then

if pay(cid,7000) then

selfSay('/premium '.. creatureGetName(cid) ..', 7')

selfSay('You have 7 days of premium more!')

else

selfSay('Sorry, you do not have enough money.')

end

end

talk_state = 0

 

elseif msgcontains(msg, 'bye') and getDistanceToCreature(cid) < 4 then

selfSay('Good bye, ' .. creatureGetName(cid) .. '!')

focus = 0

talk_start = 0

end

end

end

 

 

function onCreatureChangeOutfit(creature)

 

end

 

 

function onThink()

if (os.clock() - talk_start) > 30 then

if focus > 0 then

selfSay('Next Please...')

end

focus = 0

end

if focus ~= 0 then

if getDistanceToCreature(focus) > 5 then

selfSay('Good bye then.')

focus = 0

end

end

end

 

 

ID Das vocações:

lll [5] Master Sorcerer lll [6] Elder Druid lll [7] Royal Paladin lll [8] Elite Knight lll

 

Segunda Promotion

 

lll [9] Super Sorcerer lll [10] Super Druid lll [11] Super Paladin lll [12] Super Knight lll

 

-----------------------------------------------------------------------------

 

Tem como postar o script arrumado, ou algum outro script de segunda promotion?

O ID, preço, etc, ja ta arrumado, e pq meu ot é todo editado.

 

Removam o tópico, eu ja consegui resolver o erro.

 

Vocations.xml estava bugado...

Editado por drakath
Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...