• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!
  • 2026 staff recruitment is open! Check it out and consider applying!

(HELP) Door Rebirth

Blue Mary

New Member
Joined
Feb 10, 2012
Messages
11
Reaction score
0
I just wanted to go through a door or tile rebirth rebirth for help!

my NPC Rebirth

Code:
local config = {
	price = 0, -- Price of first rebirth
	priceIncrease = 0, -- Works as 'price' + current rebirths * priceIncrease.
	rebirthLevel = 717000, -- Level for first rebirth.
	rebirthIncrease = 0, -- Works as 'rebirthLevel' + current rebirths * rebirthIncrease.
	maxRebirths = 400, -- Number of times a player can rebirth.
	level = 8, -- The level the player is set to apon rebirth.
	healthPercent = 1.0, -- 1.00 = 100%.
	health = 0, -- Only used if 'healthPercent' = 0.
	manaPercent = 1.0, -- 1.00 = 100%.
	mana = 0, -- Only used if 'manaPercent' = 0.
	keepSkills = false, -- Wether players keep skills and level apon rebirth.
	skillLevel = false, -- Only used if 'keepSkills' = false.
	magicLevel = false, -- Only used if 'keepSkills' = false.
	capacity = 300, -- The capacity players are set to apon rebirth.
	storage = 72345 -- Player storage rebirth count is kept on.
}
 
local focuses = {}
local function isFocused(cid)
	for i, v in pairs(focuses) do
		if(v == cid) then
			return true
		end
	end
	return false
end
 
local function addFocus(cid)
	if(not isFocused(cid)) then
		table.insert(focuses, cid)
	end
end
local function removeFocus(cid)
	for i, v in pairs(focuses) do
		if(v == cid) then
			table.remove(focuses, i)
			break
		end
	end
end
local function lookAtFocus()
	for i, v in pairs(focuses) do
		if(isPlayer(v)) then
			doNpcSetCreatureFocus(v)
			return
		end
	end
	doNpcSetCreatureFocus(0)
end
 
function onCreatureDisappear(cid)
	if(isFocused(cid)) then
		selfSay("Goodbye.")
		removeFocus(cid)
	end
end
 
function onCreatureSay(cid, type, msg)
	if((msg == "hi") and not (isFocused(cid))) then
		selfSay("Welcome, ".. getCreatureName(cid) ..".", cid, true)
		selfSay("I can {rebirth} you!", cid)
		addFocus(cid)
		status = 1
	elseif((isFocused(cid)) and (msg == "rebirth") and (status == 1)) then
		if (getCreatureStorage(cid, config.storage) < config.maxRebirths) then
			storage = getCreatureStorage(cid, config.storage)
			rebirthLevel = config.rebirthLevel + (config.rebirthIncrease * storage)
			if (getPlayerLevel(cid) >= rebirthLevel) then
				money = config.price + (config.priceIncrease * storage)
				if (getPlayerMoney(cid) >= money) then
					selfSay("I can rebirth you for " .. money .. " gold.", cid)
					selfSay("Do you want me to rebirth you?", cid)
					status = 2
				else
					selfSay("You need at least " .. money .. " gold before you can rebirth.", cid)
					status = 1
				end
			else
				selfSay("You need to be at least level " .. rebirthLevel .. " before you can rebirth.", cid)
				status = 1
			end
		else
			selfSay("It seems you can not rebirth anymore.", cid)
			status = 1
		end
	elseif((isFocused(cid)) and (msg == "yes") and (status == 2)) then
		selfSay("Ok then i will rebirth you.", cid)
		selfSay("You will now be logged out.", cid)
		doPlayerRemoveMoney(cid, money)
		addEvent(doRebirthPlayer, 100, {cid=cid})
		removeFocus(cid)
	elseif((isFocused(cid)) and (msg == "no") and (status == 2)) then
		selfSay("Maybe one day you will wise up and change your mind!", cid)
		status = 1
	elseif((isFocused(cid)) and (msg == "bye" or msg == "goodbye" or msg == "cya")) then
		selfSay("Goodbye!", cid, true)
		removeFocus(cid)
	end
end
 
function onPlayerCloseChannel(cid)
	if(isFocused(cid)) then
		selfSay("Goodbye.")
		removeFocus(cid)
	end
end
 
function onThink()
	for i, focus in pairs(focuses) do
		if(not isCreature(focus)) then
			removeFocus(focus)
		else
			local distance = getDistanceTo(focus) or -1
			if((distance > 4) or (distance == -1)) then
				selfSay("Goodbye.")
				removeFocus(focus)
			end
		end
	end
	lookAtFocus()
end
 
function doRebirthPlayer(cid)
	cid = cid.cid
	if (cid == nil) then
		return true
	end
 
	local guid = getPlayerGUID(cid)
 
	if (config.healthPercent > 0) then
		health = getCreatureMaxHealth(cid) * config.healthPercent
	else
		health = config.health
	end
	if (config.manaPercent > 0) then
		mana = getCreatureMaxMana(cid) * config.manaPercent
	else
		mana = config.mana
	end
 
	doCreatureSetStorage(cid, config.storage, getCreatureStorage(cid, config.storage) + 1)
	doRemoveCreature(cid, true)
	db.query("UPDATE `players` SET level = " .. config.level .. " WHERE id = " .. guid .. ";")
	db.query("UPDATE `players` SET cap = " .. config.capacity .. " WHERE id = " .. guid .. ";")
	db.query("UPDATE `players` SET health = " .. health .. " WHERE id = " .. guid .. ";")
	db.query("UPDATE `players` SET healthmax = " .. health .. " WHERE id = " .. guid .. ";")
	db.query("UPDATE `players` SET mana = " .. mana .. " WHERE id = " .. guid .. ";")
	db.query("UPDATE `players` SET manamax = " .. mana .. " WHERE id = " .. guid .. ";")
	db.query("UPDATE `players` SET posx = " .. pos.x .. " WHERE id = " .. guid .. ";")
	db.query("UPDATE `players` SET posy = " .. pos.y .. " WHERE id = " .. guid .. ";")
	db.query("UPDATE `players` SET posz = " .. pos.z .. " WHERE id = " .. guid .. ";")
 
	if (not config.keepSkills) then
		db.query("UPDATE `players` SET maglevel = " .. config.magicLevel .. " WHERE id = " .. guid .. ";")
		db.query("UPDATE `player_skills` SET value = " .. config.skillLevel .. " WHERE id = " .. guid .. ";")
	end
	return true
end
 
Movements - Scripts - > 1streborn
Code:
function onEquip(cid, item, slot)
    local REQUIRED_REBIRTHS = 1  --Change this for the number of rebirths
    if getCreatureStorage(cid, 72345) < REQUIRED_REBIRTHS then
        doPlayerSendCancel(cid, "You can only use this spell if you have " .. REQUIRED_REBIRTHS .. " prestiges.")
	doPlayerSendTextMessage(cid,27,'Only players of ' .. REQUIRED_REBIRTHS .. ' prestiges or more are able to handle this weapon .')
        doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF)
        return false
    end
    return true
end


Movements -> Scripts -> 1streborntile
Code:
function onStepIn(cid, item, position, lastPosition, fromPosition, toPosition, actor)
local v,p = getThingPos(cid),{x=1000,y=1000,z=7}	
	if isPlayer(cid) then
		if getCreatureStorage(cid, 72345) >= 1 then
			if getPlayerLevel(cid) >= 100000 then 
				doTeleportThing(cid,p)
				doSendMagicEffect(p,10)
			else
				doTeleportThing(cid,fromPosition)
				doSendMagicEffect(p,10)
				doPlayerSendTextMessage(cid,27,'Only players of 1st rebirth and higher are allowed to pass.')
			end
		else
			doTeleportThing(cid,fromPosition)
			doSendMagicEffect(p,10)
			doPlayerSendTextMessage(cid,27,'Only players of 1st rebirth higher are allowed to pass.')
		end
	end
	return true
end
 
Back
Top