• 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!

Firstitems & login

ayla

New Member
Joined
Jul 8, 2009
Messages
71
Reaction score
0
these are the scripts from my Otserver.


Login.lua

LUA:
local config = {
	loginMessage = getConfigValue('loginMessage')
}

function onLogin(cid)
	local loss = getConfigValue('deathLostPercent')
	if(loss ~= nil) then
		doPlayerSetLossPercent(cid, PLAYERLOSS_EXPERIENCE, loss * 10)
	end

	local accountManager = getPlayerAccountManager(cid)
	if(accountManager == MANAGER_NONE) then
		local lastLogin, str = getPlayerLastLoginSaved(cid), config.loginMessage
		if(lastLogin > 0) then
			doPlayerSendTextMessage(cid, MESSAGE_STATUS_DEFAULT, str)
			str = "Your last visit was on " .. os.date("%a %b %d %X %Y", lastLogin) .. "."
		else
			str = str .. " Please choose your outfit."
			doPlayerSendOutfitWindow(cid)
		end

		doPlayerSendTextMessage(cid, MESSAGE_STATUS_DEFAULT, str)
	elseif(accountManager == MANAGER_NAMELOCK) then
		doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Hello, it appears that your character has been namelocked, what would you like as your new name?")
	elseif(accountManager == MANAGER_ACCOUNT) then
		doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Hello, type 'account' to manage your account and if you want to start over then type 'cancel'.")
	else
		doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Hello, type 'account' to create an account or type 'recover' to recover an account.")
	end

	if(not isPlayerGhost(cid)) then
		doSendMagicEffect(getCreaturePosition(cid), CONST_ME_TELEPORT)
	end

	registerCreatureEvent(cid, "Mail")
	registerCreatureEvent(cid, "GuildMotd")
	registerCreatureEvent(cid, "Idle")
	registerCreatureEvent(cid, "SkullCheck")
	registerCreatureEvent(cid, "ReportBug")
	registerCreatureEvent(cid, "AdvanceSave")
	registerCreatureEvent(cid, "attackguild")	
	registerCreatureEvent(cid, "advance")
	registerCreatureEvent(cid, "FimVip")
	registerCreatureEvent(cid, "SkullCheck")
	registerCreatureEvent(cid, "demonOakLogout")
	registerCreatureEvent(cid, "demonOakDeath")
	registerCreatureEvent(cid, "ReportBug")
	registerCreatureEvent(cid, "firstitems")
	registerCreatureEvent(cid, "VipReceive")
	registerCreatureEvent(cid, "PlayerKill")
	registerCreatureEvent(cid, "KillingInTheNameOf")
	registerCreatureEvent(cid, "PythiusDead")

    if (InitArenaScript ~= 0) then
    InitArenaScript = 1

        for i = 42300, 42309 do
            setGlobalStorageValue(i, 0)
            setGlobalStorageValue(i+100, 0)
        end
    end

    if getPlayerStorageValue(cid, 42309) < 1 then
        for i = 42300, 42309 do
            setPlayerStorageValue(cid, i, 0)
        end
    end

    if getPlayerStorageValue(cid, 42319) < 1 then
        for i = 42310, 42319 do
            setPlayerStorageValue(cid, i, 0)
        end
    end

    if getPlayerStorageValue(cid, 42329) < 1 then
        for i = 42320, 42329 do
            setPlayerStorageValue(cid, i, 0)
        end
    end
    if getPlayerStorageValue(cid, 42355) == -1 then
        setPlayerStorageValue(cid, 42355, 0)
    end
    setPlayerStorageValue(cid, 42350, 0)
    setPlayerStorageValue(cid, 42352, 0)
return TRUE
end

and this one Firstitems.lua

LUA:
local commonItems = {
  -- ITEMS ALL VOCS RECEIVE
  {itemid=2480, count=1}, -- legion helmet
  {itemid=2464, count=1}, -- chain armor
  {itemid=2468, count=1}, -- studded legs
  {itemid=2643, count=1}, -- leather boots
  {itemid=2120, count=1}, -- rope
  {itemid=5710, count=1} -- shovel
}

local firstItems = {
  { -- SORC ITEMS
    {itemid=2190, count=1}, -- wand of vortex
    {itemid=2175, count=1} -- spellbook
  },
  { -- DRUID ITEMS
    {itemid=2182, count=1}, -- snakebite rod
    {itemid=2175, count=1} -- spellbook
  },
  { -- PALADIN ITEMS
    {itemid=2456, count=1}, -- bow
    {itemid=2544, count=100} -- 100 arrows
  },
  { -- KNIGHT ITEMS
    {itemid=2412, count=1}, -- katana
    {itemid=2530, count=1} -- copper shield
  }
}

for _, items in ipairs(firstItems) do
  for _, item in ipairs(commonItems) do
    table.insert(items, item)
  end
end

local storage = 35353
function onLogin(cid)
        if getPlayerGroupId(cid) < 3 then
        local receivedItems = getPlayerStorageValue(cid, storage)
                if receivedItems == -1 then
                --[[local backpack = ]]doPlayerAddItem(cid, 1988, 1)
                local giveItems = firstItems[getPlayerVocation(cid)]
                        if giveItems ~= nil then
                        for _, v in ipairs(giveItems) do
                                --doAddContainerItem(backpack, v.itemid, v.count or 1)
                                doPlayerAddItem(cid, v.itemid, v.count or 1)
                        end
                        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "You have recieved your first items!")
                end
                setPlayerStorageValue(cid, storage, 1)
        end
        return true
end
 
Creaturescripts.


LUA:
<?xml version="1.0" encoding="UTF-8"?>
<creaturescripts>
	<!-- XTibia.com -->
	<event type="login" name="PlayerLogin" event="script" value="login.lua"/>
	<event type="joinchannel" name="GuildMotd" event="script" value="guildmotd.lua"/>
	<event type="receivemail" name="Mail" event="script" value="mail.lua"/>
	<event type="reportbug" name="SaveReportBug" script="reportbug.lua"/>
	<event type="advance" name="AdvanceSave" event="script" value="advancesave.lua"/>
	<event type="think" name="Idle" event="script" value="idle.lua"/>
	<event type="think" name="SkullCheck" event="script" value="skullcheck.lua"/>
	<event type="death" name="PythiusDead" script="pythius_the_rotten.lua" />
	<event type="death" name="monster2" event="script" value="monster2.lua"/>
	<event type="death" name="inquisitionPortals" script="teleports_inquisition.lua"/>

	<!-- Custom systems -->
	<event type="kill" name="PlayerKill" event="script" value="arenakill.lua"/>
	<event type="death" name="inquisitionPortals" event="script" value="inquisitionPortals.lua"/>
	<event type="death" name="bluelegs" event="script" value="bluelegs.lua"/>
	<event type="death" name="PlayerDeath" event="script" value="playerdeath.lua"/>
	<event type="attack" name="AttackGuild" script="attackguild.lua"/>
	<event type="logout" name="demonOakLogout" event="script" value="demonOakLogout.lua"/>
	<event type="death" name="demonOakDeath" event="script" value="demonOakDeath.lua"/> 
	<event type="death" name="Azerus" event="script" value="azerus.lua"/>  
	<event type="kill" name="KillingInTheNameOf" event="script" value="killinginthenameof.lua"/>
</creaturescripts>
 
LUA:
<?xml version="1.0" encoding="UTF-8"?>
<creaturescripts>
	<event type="login" name="PlayerLogin" event="script" value="login.lua"/>
	<event type="login" name="FirstItems" event="script" value="firstitems.lua"/>
	<event type="joinchannel" name="GuildMotd" event="script" value="guildmotd.lua"/>
	<event type="receivemail" name="Mail" event="script" value="mail.lua"/>
	<event type="reportbug" name="SaveReportBug" script="reportbug.lua"/>
	<event type="advance" name="AdvanceSave" event="script" value="advancesave.lua"/>
	<event type="think" name="Idle" event="script" value="idle.lua"/>
	<event type="think" name="SkullCheck" event="script" value="skullcheck.lua"/>
	<event type="death" name="PythiusDead" script="pythius_the_rotten.lua" />
	<event type="death" name="monster2" event="script" value="monster2.lua"/>
	<event type="death" name="inquisitionPortals" script="teleports_inquisition.lua"/>
	<event type="kill" name="PlayerKill" event="script" value="arenakill.lua"/>
	<event type="death" name="inquisitionPortals" event="script" value="inquisitionPortals.lua"/>
	<event type="death" name="bluelegs" event="script" value="bluelegs.lua"/>
	<event type="death" name="PlayerDeath" event="script" value="playerdeath.lua"/>
	<event type="attack" name="AttackGuild" script="attackguild.lua"/>
	<event type="logout" name="demonOakLogout" event="script" value="demonOakLogout.lua"/>
	<event type="death" name="demonOakDeath" event="script" value="demonOakDeath.lua"/> 
	<event type="death" name="Azerus" event="script" value="azerus.lua"/>  
	<event type="kill" name="KillingInTheNameOf" event="script" value="killinginthenameof.lua"/>
</creaturescripts>
 
maybe this
LUA:
local commonItems = {
  -- ITEMS ALL VOCS RECEIVE
  {itemid=2480, count=1}, -- legion helmet
  {itemid=2464, count=1}, -- chain armor
  {itemid=2468, count=1}, -- studded legs
  {itemid=2643, count=1}, -- leather boots
  {itemid=2120, count=1}, -- rope
  {itemid=5710, count=1} -- shovel
}
 
local firstItems = {
  { -- SORC ITEMS
    {itemid=2190, count=1}, -- wand of vortex
    {itemid=2175, count=1} -- spellbook
  },
  { -- DRUID ITEMS
    {itemid=2182, count=1}, -- snakebite rod
    {itemid=2175, count=1} -- spellbook
  },
  { -- PALADIN ITEMS
    {itemid=2456, count=1}, -- bow
    {itemid=2544, count=100} -- 100 arrows
  },
  { -- KNIGHT ITEMS
    {itemid=2412, count=1}, -- katana
    {itemid=2530, count=1} -- copper shield
  }
}
 
for _, items in ipairs(firstItems) do
  for _, item in ipairs(commonItems) do
    table.insert(items, item)
  end
end
 
local storage = 35353
function onLogin(cid)
        if getPlayerGroupId(cid) < 3 then
        local receivedItems = getPlayerStorageValue(cid, storage)
                if receivedItems == -1 then
                --[[local backpack = ]]doPlayerAddItem(cid, 1988, 1)
                local giveItems = firstItems[getPlayerVocation(cid)]
                        if giveItems ~= nil then
                        for _, v in ipairs(giveItems) do
                                --doAddContainerItem(backpack, v.itemid, v.count or 1)
                                doPlayerAddItem(cid, v.itemid, v.count or 1)
                        end
                        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "You have recieved your first items!")
                end
                setPlayerStorageValue(cid, storage, 1)
        end
        return true
end
end
 
it works but i get a problem whit GODS they log in, and after log off can't log in, by game, in the console it says...

Alex has log in.
Alex has log out.
 
Back
Top