Ir para conteúdo

Bug Na Hora De Comprar Promotion!


felipeek

Posts Recomendados

Aew gente, não sei o que tá acontecendo aqui! Alguns players (não todos), ao comprar promotion, em vez de a vocação deles virarem a promotion correspondente (exemplo: voc=1 para voc=5, voc=2 para voc=6, etc.) eles viram voc=11 o.O

Se eu dou look neles aparece assim: "He is .", enquanto deveria aparecer "He is a master sorcerer" por exemplo.

 

Para resolver isso, eu tenho que editar o char na pasta dos players colocando o número da voc certo...

 

Quando acontece isso, a pessoa que fica voc=11 anda devagar (como se fosse lvl 8), não pode usar nenhuma magia (pois lógicamente elas estão configuradas para as vocações 1,2,3,4,5,6,7,8, e outras coisas!

 

Isso é muito ruim, pois quando eu não estou online as pessoas acabam saindo do server, pois não conseguem mais usar magias nem nada!

 

Alguém sabe a solução?! Vlww!

Link para o comentário
Compartilhar em outros sites

eu já tentei ver isso, mas não encontrei o erro!

 

de qualquer modo vou mandar o meu promote.lua, se alguém ver algum erro me diz aew /:

 

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 ' .. creatureGetName(cid) .. '! I sell premiums and promotions.')
		focus = cid
		talk_start = os.clock()

elseif msgcontains(msg, 'hi') and (focus ~= cid) and getDistanceToCreature(cid) < 4 then
	  selfSay('Sorry, ' .. creatureGetName(cid) .. '! I talk to you in a minute.')

  elseif focus == cid then
	talk_start = os.clock()

	if msgcontains(msg, 'promotion') or msgcontains(msg, 'promote') then
			if getPlayerVocation(cid) > 4 then
				selfSay('Sorry, you are already promoted.')
				talk_state = 0
			elseif getPlayerLevel(cid) < 20 then
			selfSay('Sorry, you need level 20 to buy promotion.')
			talk_state = 0
		elseif not isPremium(cid) then
			selfSay('Sorry, you must be premium to buy promotion.')
			talk_state = 0
		else
			selfSay('Do you want to buy promotion for 20k?')
			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,20000) 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()
doNpcSetCreatureFocus(focus)
  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

Link para o comentário
Compartilhar em outros sites

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 ' .. creatureGetName(cid) .. '! I sell premiums and promotions.')
	focus = cid
	talk_start = os.clock()

elseif msgcontains(msg, 'hi') and (focus ~= cid) and getDistanceToCreature(cid) < 4 then
	  selfSay('Sorry, ' .. creatureGetName(cid) .. '! I talk to you in a minute.')

  elseif focus == cid then
	talk_start = os.clock()

	if msgcontains(msg, 'promotion') or msgcontains(msg, 'promote') then
		if getPlayerVocation(cid) > 5 then
			selfSay('Sorry, you are already promoted.')
			talk_state = 0
		elseif getPlayerLevel(cid) < 20 then
			selfSay('Sorry, you need level 20 to buy promotion.')
			talk_state = 0
		elseif not isPremium(cid) then
			selfSay('Sorry, you must be premium to buy promotion.')
			talk_state = 0
		else
			selfSay('Do you want to buy promotion for 20k?')
			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,20000) 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()
doNpcSetCreatureFocus(focus)
  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

Eu mudei apenas uma linha.

Ele estava algo tipo assim:

Se o player tiver vocação menos de 4 (como 3,2,1), então... Executa a função... em script= if getPlayerVocation(cid) > 4 then)

Eu coloque:

Se o player tiver vocação menos de 5 (como 4,3,2,1), então... Executa a função... if getPlayerVocation(cid) > 5 then

Funcionaria também assim:

if getPlayerVocation(cid) >= 4 then

Caso o método que eu editei lá em cima não funcionar, tente este /\

Abraço !

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

Visitante
Este tópico está impedido de receber novos posts.
  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...