Jump to content
×
×
  • Create New...
  • 0

[Ajuda] NPC Reborn


Question

Versão do Servidor: TFS - 1.0
Tipo de Script: npc
Código:
 
local config = {
    
    item = 2150, -- ID do item necessario para rebornar
    count = 0, -- Count do item a cima
    
    life = 185, -- Life ao rebornar
    mana = 40, -- Mana ao rebornar
    level = 8, -- Level ao rebornar
    voc = 15, -- Voc ao rebornar
    storage = 30023
}

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, 'Inquisitor')) or (msgcontains(msg, "yes")) then
	selfSay('Are you sure you want to be {reborn} as a Inquisitor?!', cid)
	return TRUE
	end
    
    if (msgcontains(msg, 'reborn')) then
		setCreatureMaxHealth(cid, config.life)    
    if getCreatureHealth(cid) > config.life then
        doCreatureAddHealth(cid, -(getCreatureHealth(cid) - config.life))
      else
        doCreatureAddHealth(cid, config.life)
      end
		setCreatureMaxMana(cid, config.mana)    
    if getCreatureMana(cid) > config.mana then
        doCreatureAddMana(cid, -(getCreatureMana(cid) - config.mana))
      else
        doCreatureAddMana(cid, config.mana)
      end	  
        doPlayerSetVocation(cid, config.voc)
        doCreatureSetStorage(cid, config.storage, -1)
		setPlayerStorageValue(cid, 10037,1)
		doSendMagicEffect(getPlayerPosition(cid), CONST_ME_MAGIC_BLUE)
		doPlayerSendTextMessage(cid,25,"Inquisitor outfit unlocked.")
		doPlayerAddLevel(cid, (-getPlayerLevel(cid)), 1)
		doPlayerAddLevel(cid, 1, 1)
        selfSay('Congratulations, you are now a Inquisitor!', cid)
		broadcastMessage("The player "..getCreatureName(cid).." became a Inquisitor")
            return TRUE
        else
            selfSay("Oh! Então traga para mim {".. config.count .." ".. getItemInfo(config.item).name .."}", cid) 
            return TRUE
        end
    end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

Pessoal meu código deu problema novamente. O que esta acontecendo é o seguinte. Quando o NPC reborna, o player fica com a vida total igual a (LVL*HP por Level) + Uma vida fake. Essa vida fake é a que aparece na configuração do código (nesse caso 185). Então um personagem que ganha 15 de hp por lvl e fizer o reborn para level 8, ele vai ficar com 105(15x7)+185 = 290 de hp, porém o 185 é fake. Se o player se curar, ou tomar dano ele perde esses 185 pra sempre, e fica com 105 de hp definitivo.

 

Minha dúvida no script é como fazer o HP rebornado ser fixo. Eu quero que quando rebornado ele seja lvl 8 com exatos 185/40 hp/mana e que de para healar, tomar dano, e morrer sem que de bug na vida.

obs: lembrando que tudo inclui a mana também

Link to post
Share on other sites

0 answers to this question

Recommended Posts

There have been no answers to this question yet

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now