Postado Dezembro 30, 2012 12 anos Tem alguma outra lib relacionada à Arena? Preciso ver a tabela enterArena -"Supra Omnes Lux Lucis" - Acima de todos brilha a Luz -
Postado Dezembro 30, 2012 12 anos Autor Não tem não, mas se muda alguma coisa, ela é feita em MOD '-'
Postado Dezembro 30, 2012 12 anos Poe o mod aqui então. -"Supra Omnes Lux Lucis" - Acima de todos brilha a Luz -
Postado Dezembro 30, 2012 12 anos Autor Mas acho que isso não muda nada no NPC :X Citar <?xml version="1.0" encoding="UTF-8"?> <mod name="Arena Svargrond" version="1.0" author="Tommy" contact="tommycrusher@gmail.com" enabled="yes"> <config name="arenaFunctions"><![CDATA[ KickPosition = {x=32227, y=31096, z=7} --if the player leave the arena or time is over, where he go. RewardsRoom = {x=32222, y=31080, z=6} --rewards room position. arenaRoomMaxTime = 240 --max time for each room 240 = 4 min. OpenDoorsID = 5127 --if you change doors item ids, change me =D TimeStor = 42350 --here will be saved the time. myArenaLevel = 45450 --here will be saved the arena level. talkNPC = 45451 --Storage to check if the player have paid to the npc and can enter to the arena. RewardsStor = {42361, 42371, 42381} --Storage for greenshore, scrapper, warlord. isIN = 42352 --to check if the player is in the arena. myRoom = 46000 --here will be saved the current room. MonStor = 47000 --here will be saved the monster uid. DoorsActID = 42357 --Doors near the npc. LeavePortals = 42321 --The action id of the portal to leave the rooms (south portals). GobletTiles = {42360, 42370, 42380} --Action ids of the tiles for Bronze, Silver and Gold Goblets. Cancel = { --message when use door and have not paid to the npc. [1] = "You have not paid NPC yet.", --message when leave arena. [2] = "You have been kicked!", --message when the player can't get the reward. [3] = "You can\'t get this item.", --message when already got any reward. [4] = "It is empty.", --when try to open a reward door and haven't completed the level. [5] = "You have not finished this arena level.", --NPC answer if the player completed all arena levels. [6] = "You already did all the arena levels.", --message when time is over [7] = "The time is over.", --message when you can go to the next room, LoL >_> this is not a cancel btw. [8] = "You can go to the next room.", --when try to go to the next room and not killed the monster yet. [9] = "Kill the monster first!", --when try to go to the next room but there is a player yet...this text will be PLAYERNAME + this text [10] = "Is in the room yet." } Completed = { [1] = "Congatulations! You have completed the arena in", --HERE WILL BE THE ARENA NAME. [2] = "difficulty! Now you go take your reward."} --then the message will be "Congatulations! you have completed the arena in greenshore/scrapper/warlord difficulty!, now go and take your reward." Arena = { --greenshore [0] = { Cost = 10000, LevelName = 'greenshore', LevelNeeded = 30, Goblet = 5807 }, --scrapper [1] = { Cost = 50000, LevelName = 'scrapper', LevelNeeded = 50, Goblet = 5806 }, --warlord [2] = { Cost = 100000, LevelName = 'warlord', LevelNeeded = 80, Goblet = 5805 } } Rewards = { --greenshore --present with items. [42361] = { Stor = RewardsStor[1], Cont = 1990, items = {7372, 6569, 6574, 2114}, count = {1, 10, 1, 1} }, --blacksteel sword. [42362] = { Stor = RewardsStor[1], Cont = nil, item = 7406 }, --headchopper. [42363] = { Stor = RewardsStor[1], Cont = nil, item = 7380 }, --orcish maul. [42364] = { Stor = RewardsStor[1], Cont = nil, item = 7392 }, --backpack with items. [42365] = { Stor = RewardsStor[1], Cont = 7342, items = {7365, 7364}, count = {100, 100} }, --scrapper --present with items. [42371] = { Stor = RewardsStor[2], Cont = 1990, items = {7372, 6569, 6574, 7183}, count = {1, 10, 1, 1} }, --mystic blade. [42372] = { Stor = RewardsStor[2], Cont = nil, item = 7384 }, --heroic axe. [42373] = { Stor = RewardsStor[2], Cont = nil, item = 7389 }, --cranial basher [42374] = { Stor = RewardsStor[2], Cont = nil, item = 7415 }, --backpack with items. [42375] = { Stor = RewardsStor[2], Cont = 7342, items = {7365, 2547, 2547, 2311, 2304}, count = {100, 100, 100, 50, 50} }, --warlord --present with items. [42381] = { Stor = RewardsStor[3], Cont = 1990, items = {7372, 6569, 6574, 6568}, count = {1, 10, 1, 1} }, --justice seeker [42382] = { Stor = RewardsStor[3], Cont = nil, item = 7390 }, --royal axe. [42383] = { Stor = RewardsStor[3], Cont = nil, item = 7434 }, --blessed sceptre. [42384] = { Stor = RewardsStor[3], Cont = nil, item = 7429 }, --backpack with items. [42385] = { Stor = RewardsStor[3], Cont = 7342, items = {2273, 2268, 7443, 7440, 7529}, count = {50, 50, 1, 1, 100} } } arena_monsters = { --greenshore -scrapper --warlord [45300] = "Frostfur", [45310] = "Avalanche", [45320] = "Webster", [45301] = "Bloodpaw", [45311] = "Kreebosh the Exile", [45321] = "Darakan the Executioner", [45302] = "Bovinus", [45312] = "The Dark Dancer", [45322] = "Norgle Glacierbeard", [45303] = "Achad", [45313] = "The Hag", [45323] = "The Pit Lord", [45304] = "Colerian The Barbarian", [45314] = "Slim", [45324] = "Svoren the Mad", [45305] = "The Hairy One", [45315] = "Grimgor Guteater", [45325] = "The Masked Marauder", [45306] = "Axeitus Headbanger", [45316] = "Drasilla", [45326] = "Gnorre Chyllson", [45307] = "Rocky", [45317] = "Spirit of Earth", [45327] = "Fallen Mooh'tah Master Ghar", [45308] = "Cursed Gladiator", [45318] = "Spirit of Water", [45328] = "Deathbringer", [45309] = "Orcus the Cruel", [45319] = "Spirit of Fire", [45329] = "The Obliverator"} Checking = false RoomsACT = {42301, 42302, 42303, 42304, 42305, 42306, 42307, 42308, 42309} Goblets = { [42360] = {Id=Arena[0].Goblet, txt="It is given to the courageous victor of the barbarian arena "..Arena[0].LevelName.." difficulty."}, [42370] = {Id=Arena[1].Goblet, txt="It is given to the courageous victor of the barbarian arena "..Arena[1].LevelName.." difficulty."}, [42380] = {Id=Arena[2].Goblet, txt="It is given to the courageous victor of the barbarian arena "..Arena[2].LevelName.." difficulty."}} RewardsDoors = {[42366] = 1, [42376] = 2, [42386] = 3} ArenaAdding = {[0] = 3000, [1] = 3010, [2] = 3020} function myArenaLevelIs(cid) Stor = getPlayerStorageValue(cid, myArenaLevel) if Stor == -1 then setPlayerStorageValue(cid, myArenaLevel, 0) Stor = 0 elseif Stor == 3 then Stor = 2 end return { RC = Arena[stor].Cost, LN = Arena[stor].LevelName, RLV = Arena[stor].LevelNeeded, LV = getPlayerStorageValue(cid, myArenaLevel) } end function getDirectionmove(cid, itempos) --function by Nahruto p = getCreaturePosition(cid) i = itempos if p.x > i.x then if p.y > i.y then ret = NORTHWEST elseif p.y < i.y then ret = SOUTHWEST else ret = WEST end elseif p.x < i.x then if p.y > i.y then ret = NORTHEAST elseif p.y < i.y then ret = SOUTHEAST else ret = EAST end else if p.y > i.y then ret = NORTH elseif p.y < i.y then ret = SOUTH else ret = nil end end return ret end function LeaveArena(cid) for i = 45300, 45329 do setPlayerStorageValue(cid, i, 0) end if isCreature(getPlayerStorageValue(cid, MonStor)) == TRUE then doRemoveCreature(getPlayerStorageValue(cid, MonStor)) end setGlobalStorageValue(getPlayerStorageValue(cid, myRoom), 0) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, Cancel[2]) doTeleportThing(cid, KickPosition, FALSE) setPlayerStorageValue(cid, TimeStor, 0) setPlayerStorageValue(cid, isIN, 0) end function CheckRooms() addEvent(CheckRooms, 1000) for i = 42300, 42309 do local Player = getGlobalStorageValue(i) if isPlayer(Player) == TRUE then local PlayerTime = getPlayerStorageValue(Player, TimeStor) if PlayerTime <= os.time() then doTeleportThing(Player, KickPosition, FALSE) setPlayerStorageValue(Player, TimeStor, 0) setGlobalStorageValue(i, 0) doPlayerSendTextMessage(Player,MESSAGE_STATUS_CONSOLE_ORANGE, Cancel[7]) if isCreature(getPlayerStorageValue(Player, MonStor)) == TRUE then doRemoveCreature(getPlayerStorageValue(Player, MonStor)) end elseif PlayerTime - 10 <= os.time() then doPlayerSendTextMessage(Player, MESSAGE_EVENT_DEFAULT, "you have "..PlayerTime - os.time().." seconds left.!") end else setGlobalStorageValue(i, 0) end end end function getArenaMonsterIdByName(name) for i = 45300, 45329 do if tostring(arena_monsters) == string.lower(tostring(name)) then return i end end return false end]]></config> <event type="login" name="arenaRegister" event="script"><![CDATA[ domodlib('arenaFunctions') function onLogin(cid) registerCreatureEvent(cid, "PlayerArena") registerCreatureEvent(cid, "ArenaKill") return true end]]></event> <event type="death" name="PlayerArena" event="script"><![CDATA[ domodlib('arenaFunctions') function onDeath(cid, corpse, deathList) if getPlayerStorageValue(cid, isIN) == 1 then I = 0 for i = 45300, 45329 do if getPlayerStorageValue(cid, i) == 1 then I = i end end GlobalStor = I - ArenaAdding[myArenaLevelIs(cid).LV] setGlobalStorageValue(GlobalStor, 0) setPlayerStorageValue(cid, isIN, 0) if isCreature(getPlayerStorageValue(cid, MonStor)) then doRemoveCreature(getPlayerStorageValue(cid, MonStor)) end end return true end ]]></event> <event type="kill" name="ArenaKill" event="script"><![CDATA[ domodlib('arenaFunctions') function onKill(cid, target, lastHit) if getPlayerStorageValue(cid, isIN) == 1 then local Room = getArenaMonsterIdByName(getCreatureName(target)) if Room ~= 0 then setPlayerStorageValue(cid, Room, 1) doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, Cancel[8]) end end return true end]]></event> <action fromaid="42357" toaid="42386" event="script"><![CDATA[ domodlib('arenaFunctions') function onUse(cid, item, fromPosition, itemEx, toPosition) local myMove = getDirectionmove(cid, fromPosition) if myMove == nil then return FALSE end local Reward = Rewards[item.actionid] if Reward then if getPlayerStorageValue(cid, Reward.Stor) ~= 1 then local reward = nil if Reward.Cont ~= nil then reward = doCreateItemEx(Reward.Cont, 1) for i = 1, #Reward.items do doAddContainerItem(reward, Reward.items, Reward.count) end else reward = doCreateItemEx(Reward.item, 1) end if reward ~= nil then if doPlayerAddItemEx(cid, reward, FALSE) == RETURNVALUE_NOERROR then doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR,'You have found a '..getItemNameById(getThing(reward).itemid)..'.') setPlayerStorageValue(cid, Reward.Stor, 1) else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, Cancel[3]) end end else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, Cancel[4]) end elseif RewardsDoors[item.actionid] then if myArenaLevelIs(cid).LV >= RewardsDoors[item.actionid] then doTransformItem(item.uid, OpenDoorsID) doMoveCreature(cid, myMove) else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, Cancel[5]) end elseif item.actionid == DoorsActID and getPlayerStorageValue(cid, talkNPC) == 1 then doTransformItem(item.uid, OpenDoorsID) doMoveCreature(cid, myMove) else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, Cancel[1]) end return TRUE end]]></action> <movevent type="StepIn" fromaid="42300" toaid="42380" event="script"><![CDATA[ domodlib('arenaFunctions') function onStepIn(cid, item, position, fromPosition) local ArenaRoom = item.actionid if item.actionid == LeavePortals then LeaveArena(cid) elseif isInArray(GobletTiles, item.actionid) == TRUE then local gobletPos = getThingPos(item.uid) if getPlayerStorageValue(cid, item.actionid) ~= 1 then setPlayerStorageValue(cid, item.actionid, 1) local Goblet = doCreateItemEx(Goblets[item.actionid].Id, 1) doItemSetAttribute(Goblet, "description", ""..Goblets[item.actionid].txt.."\nAwarded to "..getCreatureName(cid)..".") gobletPos.y = gobletPos.y - 1 doTileAddItemEx(gobletPos, Goblet) end doTransformItem(item.uid, item.itemid - 1) elseif isInArray(RoomsACT, ArenaRoom) == TRUE or ArenaRoom == 42300 then if Checking == FALSE then Checking = TRUE CheckRooms() end local myLevelArena = myArenaLevelIs(cid).LV if ArenaAdding[myLevelArena] then Mons = ArenaRoom + ArenaAdding[myLevelArena] end if getGlobalStorageValue(ArenaRoom) == 0 then if isCreature(getPlayerStorageValue(cid, MonStor)) == FALSE then if ArenaRoom == 42300 and getPlayerStorageValue(cid, talkNPC) == 1 then setPlayerStorageValue(cid, talkNPC, 0) setPlayerStorageValue(cid, isIN, 1) P = 1 elseif ArenaRoom ~= 42300 and getPlayerStorageValue(cid, isIN) == 1 then P = 1 else P = nil end if P ~= nil then local SpawnPos = getThingPos(ArenaRoom) doTeleportThing(cid, SpawnPos, FALSE) SpawnPos.x = SpawnPos.x - 1 SpawnPos.y = SpawnPos.y - 1 local Monster = doSummonCreature(arena_monsters[Mons], SpawnPos) setGlobalStorageValue(ArenaRoom, cid) setGlobalStorageValue(ArenaRoom - 1, 0) setPlayerStorageValue(cid, TimeStor, os.time()+arenaRoomMaxTime) setPlayerStorageValue(cid, MonStor, Monster) setPlayerStorageValue(cid, myRoom, ArenaRoom) else LeaveArena(cid) end else doTeleportThing(cid, fromPosition, TRUE) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, Cancel[9]) end else doTeleportThing(cid, fromPosition, TRUE) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, ""..getCreatureName(getGlobalStorageValue(cid, ArenaRoom)).." "..Cancel[10].."") end elseif ArenaRoom == 42310 then if isCreature(getPlayerStorageValue(cid, MonStor)) == FALSE then doPlayerSendTextMessage(cid,MESSAGE_STATUS_CONSOLE_BLUE,""..Completed[1].." "..myArenaLevelIs(cid).LN.." "..Completed[2].."") setPlayerStorageValue(cid, myArenaLevel, getPlayerStorageValue(cid, myArenaLevel) + 1) setGlobalStorageValue(ArenaRoom - 1, 0) setPlayerStorageValue(cid, TimeStor, 0) setPlayerStorageValue(cid, isIN, 0) doTeleportThing(cid, RewardsRoom, TRUE) else doTeleportThing(cid, fromPosition, TRUE) doPlayerSendTextMessage(cid,MESSAGE_STATUS_CONSOLE_ORANGE,'Najpierw zabij potwora!') end end return TRUE end]]></movevent> <movevent type="StepOut" fromaid="42357" toaid="42387" event="script"><![CDATA[ domodlib('arenaFunctions') function onStepOut(cid, item, position, fromPosition) if item.actionid == DoorsActID or RewardsDoors[item.actionid] then doTransformItem(item.uid, item.itemid - 2) elseif isInArray(GobletTiles, item.actionid) == TRUE then doTransformItem(item.uid, item.itemid + 1) end return TRUE end]]></movevent> </mod>
Postado Dezembro 30, 2012 12 anos Mod Mostrar conteúdo oculto <?xml version="1.0" encoding="UTF-8"?> <mod name="Arena Svargrond" version="1.0" author="Tommy" contact="tommycrusher@gmail.com" enabled="yes"> <config name="arenaFunctions"><![CDATA[ KickPosition = {x=32227, y=31096, z=7} --if the player leave the arena or time is over, where he go. RewardsRoom = {x=32222, y=31080, z=6} --rewards room position. arenaRoomMaxTime = 240 --max time for each room 240 = 4 min. OpenDoorsID = 5127 --if you change doors item ids, change me =D TimeStor = 42350 --here will be saved the time. myArenaLevel = 45450 --here will be saved the arena level. talkNPC = 45451 --Storage to check if the player have paid to the npc and can enter to the arena. RewardsStor = {42361, 42371, 42381} --Storage for greenshore, scrapper, warlord. isIN = 42352 --to check if the player is in the arena. myRoom = 46000 --here will be saved the current room. MonStor = 47000 --here will be saved the monster uid. DoorsActID = 42357 --Doors near the npc. LeavePortals = 42321 --The action id of the portal to leave the rooms (south portals). GobletTiles = {42360, 42370, 42380} --Action ids of the tiles for Bronze, Silver and Gold Goblets. Cancel = { --message when use door and have not paid to the npc. [1] = "You have not paid NPC yet.", --message when leave arena. [2] = "You have been kicked!", --message when the player can't get the reward. [3] = "You can\'t get this item.", --message when already got any reward. [4] = "It is empty.", --when try to open a reward door and haven't completed the level. [5] = "You have not finished this arena level.", --NPC answer if the player completed all arena levels. [6] = "You already did all the arena levels.", --message when time is over [7] = "The time is over.", --message when you can go to the next room, LoL >_> this is not a cancel btw. [8] = "You can go to the next room.", --when try to go to the next room and not killed the monster yet. [9] = "Kill the monster first!", --when try to go to the next room but there is a player yet...this text will be PLAYERNAME + this text [10] = "Is in the room yet." } Completed = { [1] = "Congatulations! You have completed the arena in", --HERE WILL BE THE ARENA NAME. [2] = "difficulty! Now you go take your reward."} --then the message will be "Congatulations! you have completed the arena in greenshore/scrapper/warlord difficulty!, now go and take your reward." Arena = { --greenshore [0] = { Cost = 10000, LevelName = 'greenshore', LevelNeeded = 30, Goblet = 5807 }, --scrapper [1] = { Cost = 50000, LevelName = 'scrapper', LevelNeeded = 50, Goblet = 5806 }, --warlord [2] = { Cost = 100000, LevelName = 'warlord', LevelNeeded = 80, Goblet = 5805 } } Rewards = { --greenshore --present with items. [42361] = { Stor = RewardsStor[1], Cont = 1990, items = {7372, 6569, 6574, 2114}, count = {1, 10, 1, 1} }, --blacksteel sword. [42362] = { Stor = RewardsStor[1], Cont = nil, item = 7406 }, --headchopper. [42363] = { Stor = RewardsStor[1], Cont = nil, item = 7380 }, --orcish maul. [42364] = { Stor = RewardsStor[1], Cont = nil, item = 7392 }, --backpack with items. [42365] = { Stor = RewardsStor[1], Cont = 7342, items = {7365, 7364}, count = {100, 100} }, --scrapper --present with items. [42371] = { Stor = RewardsStor[2], Cont = 1990, items = {7372, 6569, 6574, 7183}, count = {1, 10, 1, 1} }, --mystic blade. [42372] = { Stor = RewardsStor[2], Cont = nil, item = 7384 }, --heroic axe. [42373] = { Stor = RewardsStor[2], Cont = nil, item = 7389 }, --cranial basher [42374] = { Stor = RewardsStor[2], Cont = nil, item = 7415 }, --backpack with items. [42375] = { Stor = RewardsStor[2], Cont = 7342, items = {7365, 2547, 2547, 2311, 2304}, count = {100, 100, 100, 50, 50} }, --warlord --present with items. [42381] = { Stor = RewardsStor[3], Cont = 1990, items = {7372, 6569, 6574, 6568}, count = {1, 10, 1, 1} }, --justice seeker [42382] = { Stor = RewardsStor[3], Cont = nil, item = 7390 }, --royal axe. [42383] = { Stor = RewardsStor[3], Cont = nil, item = 7434 }, --blessed sceptre. [42384] = { Stor = RewardsStor[3], Cont = nil, item = 7429 }, --backpack with items. [42385] = { Stor = RewardsStor[3], Cont = 7342, items = {2273, 2268, 7443, 7440, 7529}, count = {50, 50, 1, 1, 100} } } arena_monsters = { --greenshore -scrapper --warlord [45300] = "Frostfur", [45310] = "Avalanche", [45320] = "Webster", [45301] = "Bloodpaw", [45311] = "Kreebosh the Exile", [45321] = "Darakan the Executioner", [45302] = "Bovinus", [45312] = "The Dark Dancer", [45322] = "Norgle Glacierbeard", [45303] = "Achad", [45313] = "The Hag", [45323] = "The Pit Lord", [45304] = "Colerian The Barbarian", [45314] = "Slim", [45324] = "Svoren the Mad", [45305] = "The Hairy One", [45315] = "Grimgor Guteater", [45325] = "The Masked Marauder", [45306] = "Axeitus Headbanger", [45316] = "Drasilla", [45326] = "Gnorre Chyllson", [45307] = "Rocky", [45317] = "Spirit of Earth", [45327] = "Fallen Mooh'tah Master Ghar", [45308] = "Cursed Gladiator", [45318] = "Spirit of Water", [45328] = "Deathbringer", [45309] = "Orcus the Cruel", [45319] = "Spirit of Fire", [45329] = "The Obliverator"} Checking = false RoomsACT = {42301, 42302, 42303, 42304, 42305, 42306, 42307, 42308, 42309} Goblets = { [42360] = {Id=Arena[0].Goblet, txt="It is given to the courageous victor of the barbarian arena "..Arena[0].LevelName.." difficulty."}, [42370] = {Id=Arena[1].Goblet, txt="It is given to the courageous victor of the barbarian arena "..Arena[1].LevelName.." difficulty."}, [42380] = {Id=Arena[2].Goblet, txt="It is given to the courageous victor of the barbarian arena "..Arena[2].LevelName.." difficulty."}} RewardsDoors = {[42366] = 1, [42376] = 2, [42386] = 3} ArenaAdding = {[0] = 3000, [1] = 3010, [2] = 3020} function myArenaLevelIs(cid) Stor = getPlayerStorageValue(cid, myArenaLevel) < 0 and 0 or getPlayerStorageValue(cid, myArenaLevel) if Stor == -1 then setPlayerStorageValue(cid, myArenaLevel, 0) Stor = 0 elseif Stor == 3 then Stor = 2 end return { RC = Arena[Stor].Cost, LN = Arena[Stor].LevelName, RLV = Arena[Stor].LevelNeeded, LV = getPlayerStorageValue(cid, myArenaLevel) } end function getDirectionmove(cid, itempos) --function by Nahruto p = getCreaturePosition(cid) i = itempos if p.x > i.x then if p.y > i.y then ret = NORTHWEST elseif p.y < i.y then ret = SOUTHWEST else ret = WEST end elseif p.x < i.x then if p.y > i.y then ret = NORTHEAST elseif p.y < i.y then ret = SOUTHEAST else ret = EAST end else if p.y > i.y then ret = NORTH elseif p.y < i.y then ret = SOUTH else ret = nil end end return ret end function LeaveArena(cid) for i = 45300, 45329 do setPlayerStorageValue(cid, i, 0) end if isCreature(getPlayerStorageValue(cid, MonStor)) == TRUE then doRemoveCreature(getPlayerStorageValue(cid, MonStor)) end setGlobalStorageValue(getPlayerStorageValue(cid, myRoom), 0) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, Cancel[2]) doTeleportThing(cid, KickPosition, FALSE) setPlayerStorageValue(cid, TimeStor, 0) setPlayerStorageValue(cid, isIN, 0) end function CheckRooms() addEvent(CheckRooms, 1000) for i = 42300, 42309 do local Player = getGlobalStorageValue(i) if isPlayer(Player) == TRUE then local PlayerTime = getPlayerStorageValue(Player, TimeStor) if PlayerTime <= os.time() then doTeleportThing(Player, KickPosition, FALSE) setPlayerStorageValue(Player, TimeStor, 0) setGlobalStorageValue(i, 0) doPlayerSendTextMessage(Player,MESSAGE_STATUS_CONSOLE_ORANGE, Cancel[7]) if isCreature(getPlayerStorageValue(Player, MonStor)) == TRUE then doRemoveCreature(getPlayerStorageValue(Player, MonStor)) end elseif PlayerTime - 10 <= os.time() then doPlayerSendTextMessage(Player, MESSAGE_EVENT_DEFAULT, "you have "..PlayerTime - os.time().." seconds left.!") end else setGlobalStorageValue(i, 0) end end end function getArenaMonsterIdByName(name) for i = 45300, 45329 do if tostring(arena_monsters[i]) == string.lower(tostring(name)) then return i end end return false end]]></config> <event type="login" name="arenaRegister" event="script"><![CDATA[ domodlib('arenaFunctions') function onLogin(cid) registerCreatureEvent(cid, "PlayerArena") registerCreatureEvent(cid, "ArenaKill") return true end]]></event> <event type="death" name="PlayerArena" event="script"><![CDATA[ domodlib('arenaFunctions') function onDeath(cid, corpse, deathList) if getPlayerStorageValue(cid, isIN) == 1 then I = 0 for i = 45300, 45329 do if getPlayerStorageValue(cid, i) == 1 then I = i end end GlobalStor = I - ArenaAdding[myArenaLevelIs(cid).LV] setGlobalStorageValue(GlobalStor, 0) setPlayerStorageValue(cid, isIN, 0) if isCreature(getPlayerStorageValue(cid, MonStor)) then doRemoveCreature(getPlayerStorageValue(cid, MonStor)) end end return true end ]]></event> <event type="kill" name="ArenaKill" event="script"><![CDATA[ domodlib('arenaFunctions') function onKill(cid, target, lastHit) if getPlayerStorageValue(cid, isIN) == 1 then local Room = getArenaMonsterIdByName(getCreatureName(target)) if Room ~= 0 then setPlayerStorageValue(cid, Room, 1) doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, Cancel[8]) end end return true end]]></event> <action fromaid="42357" toaid="42386" event="script"><![CDATA[ domodlib('arenaFunctions') function onUse(cid, item, fromPosition, itemEx, toPosition) local myMove = getDirectionmove(cid, fromPosition) if myMove == nil then return FALSE end local Reward = Rewards[item.actionid] if Reward then if getPlayerStorageValue(cid, Reward.Stor) ~= 1 then local reward = nil if Reward.Cont ~= nil then reward = doCreateItemEx(Reward.Cont, 1) for i = 1, #Reward.items do doAddContainerItem(reward, Reward.items[i], Reward.count[i]) end else reward = doCreateItemEx(Reward.item, 1) end if reward ~= nil then if doPlayerAddItemEx(cid, reward, FALSE) == RETURNVALUE_NOERROR then doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR,'You have found a '..getItemNameById(getThing(reward).itemid)..'.') setPlayerStorageValue(cid, Reward.Stor, 1) else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, Cancel[3]) end end else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, Cancel[4]) end elseif RewardsDoors[item.actionid] then if myArenaLevelIs(cid).LV >= RewardsDoors[item.actionid] then doTransformItem(item.uid, OpenDoorsID) doMoveCreature(cid, myMove) else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, Cancel[5]) end elseif item.actionid == DoorsActID and getPlayerStorageValue(cid, talkNPC) == 1 then doTransformItem(item.uid, OpenDoorsID) doMoveCreature(cid, myMove) else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, Cancel[1]) end return TRUE end]]></action> <movevent type="StepIn" fromaid="42300" toaid="42380" event="script"><![CDATA[ domodlib('arenaFunctions') function onStepIn(cid, item, position, fromPosition) local ArenaRoom = item.actionid if item.actionid == LeavePortals then LeaveArena(cid) elseif isInArray(GobletTiles, item.actionid) == TRUE then local gobletPos = getThingPos(item.uid) if getPlayerStorageValue(cid, item.actionid) ~= 1 then setPlayerStorageValue(cid, item.actionid, 1) local Goblet = doCreateItemEx(Goblets[item.actionid].Id, 1) doItemSetAttribute(Goblet, "description", ""..Goblets[item.actionid].txt.."\nAwarded to "..getCreatureName(cid)..".") gobletPos.y = gobletPos.y - 1 doTileAddItemEx(gobletPos, Goblet) end doTransformItem(item.uid, item.itemid - 1) elseif isInArray(RoomsACT, ArenaRoom) == TRUE or ArenaRoom == 42300 then if Checking == FALSE then Checking = TRUE CheckRooms() end local myLevelArena = myArenaLevelIs(cid).LV if ArenaAdding[myLevelArena] then Mons = ArenaRoom + ArenaAdding[myLevelArena] end if getGlobalStorageValue(ArenaRoom) == 0 then if isCreature(getPlayerStorageValue(cid, MonStor)) == FALSE then if ArenaRoom == 42300 and getPlayerStorageValue(cid, talkNPC) == 1 then setPlayerStorageValue(cid, talkNPC, 0) setPlayerStorageValue(cid, isIN, 1) P = 1 elseif ArenaRoom ~= 42300 and getPlayerStorageValue(cid, isIN) == 1 then P = 1 else P = nil end if P ~= nil then local SpawnPos = getThingPos(ArenaRoom) doTeleportThing(cid, SpawnPos, FALSE) SpawnPos.x = SpawnPos.x - 1 SpawnPos.y = SpawnPos.y - 1 local Monster = doSummonCreature(arena_monsters[Mons], SpawnPos) setGlobalStorageValue(ArenaRoom, cid) setGlobalStorageValue(ArenaRoom - 1, 0) setPlayerStorageValue(cid, TimeStor, os.time()+arenaRoomMaxTime) setPlayerStorageValue(cid, MonStor, Monster) setPlayerStorageValue(cid, myRoom, ArenaRoom) else LeaveArena(cid) end else doTeleportThing(cid, fromPosition, TRUE) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, Cancel[9]) end else doTeleportThing(cid, fromPosition, TRUE) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, ""..getCreatureName(getGlobalStorageValue(cid, ArenaRoom)).." "..Cancel[10].."") end elseif ArenaRoom == 42310 then if isCreature(getPlayerStorageValue(cid, MonStor)) == FALSE then doPlayerSendTextMessage(cid,MESSAGE_STATUS_CONSOLE_BLUE,""..Completed[1].." "..myArenaLevelIs(cid).LN.." "..Completed[2].."") setPlayerStorageValue(cid, myArenaLevel, getPlayerStorageValue(cid, myArenaLevel) + 1) setGlobalStorageValue(ArenaRoom - 1, 0) setPlayerStorageValue(cid, TimeStor, 0) setPlayerStorageValue(cid, isIN, 0) doTeleportThing(cid, RewardsRoom, TRUE) else doTeleportThing(cid, fromPosition, TRUE) doPlayerSendTextMessage(cid,MESSAGE_STATUS_CONSOLE_ORANGE,'Najpierw zabij potwora!') end end return TRUE end]]></movevent> <movevent type="StepOut" fromaid="42357" toaid="42387" event="script"><![CDATA[ domodlib('arenaFunctions') function onStepOut(cid, item, position, fromPosition) if item.actionid == DoorsActID or RewardsDoors[item.actionid] then doTransformItem(item.uid, item.itemid - 2) elseif isInArray(GobletTiles, item.actionid) == TRUE then doTransformItem(item.uid, item.itemid + 1) end return TRUE end]]></movevent> </mod> -"Supra Omnes Lux Lucis" - Acima de todos brilha a Luz -
Participe da conversa
Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.