Aiai como sempre foda em scripter em, malvado só por que quero aprender kkk
Dice Arena
Por Killua, 25 de abr. de 2014 em Mods, funções e outros
info
Grupo: Herói
Registrado: 12/06/12
Posts: 1k
Reputação: +362
Gênero: Masculino
Char no Tibia: Aarow

info
Grupo: Visconde
Registrado: 19/12/12
Posts: 465
Reputação: +111

Bem Bolado o sistema Parabens Rep
info
Grupo: Grão-Duque
Registrado: 28/07/11
Posts: 3.5k
Reputação: +570
Gênero: Masculino
Char no Tibia: Transloko

bem pensado este script, o cara q pensou isto é um gênio ![]()
UAhuHAuHA
info
Grupo: Conde
Registrado: 29/04/09
Posts: 904
Reputação: +389
Char no Tibia: Jabuti Selvagem

bem pensado este script, o cara q pensou isto é um gênio
UAhuHAuHA
kkkkkkkkkkkkk é mesmo né
info
Grupo: Marquês
Registrado: 26/02/12
Posts: 1.1k
Reputação: +369
Gênero: Masculino
Char no Tibia: Tibjohiand Tito

Cara, parabéns velho.... Voce manja mto na moral.
info
Grupo: Conde
Registrado: 29/04/09
Posts: 904
Reputação: +389
Char no Tibia: Jabuti Selvagem

Cara, parabéns velho.... Voce manja mto na moral.
Valeu vitão ![]()
info
Grupo: Conde
Registrado: 29/04/09
Posts: 904
Reputação: +389
Char no Tibia: Jabuti Selvagem

Post removido e membro @OptimusHostOficial suspendido permanentemente.
info
Grupo: Campones
Registrado: 30/08/08
Posts: 57
Reputação: +3
Char no Tibia: Termabre Dore

Nossa, que sistema top!
Uma dúvida, posso colocar mais de um item ali né, porque os que estão ali são bem normais kkkk
Posso Colocar {{tem1}, {item2}} ?
Obrigado!
info
Grupo: Conde
Registrado: 29/04/09
Posts: 904
Reputação: +389
Char no Tibia: Jabuti Selvagem

Do jeito que está aí vc pode escolher um item "noob" e um item "pro" e suas quantidades máximas. Quanto mais forte o monstro, maior a quantidade de item q vai cair.
Todos falaram bem do script, porem não funciona corretamente.
Ao matar o boss e entrar no TP e ir para o templo, qualquer pessoa que tentei puxar alavanca diz que "ja tem alguem dentro da arena, aguarde.."
Caso você morra pro boss, acontece a mesma coisa.
info
Grupo: Campones
Registrado: 24/10/10
Posts: 40
Reputação: 0
Char no Tibia: Nerd Zaum

Em 10/05/2015 em 12:47, Killua disse:Do jeito que está aí vc pode escolher um item "noob" e um item "pro" e suas quantidades máximas. Quanto mais forte o monstro, maior a quantidade de item q vai cair.
estou com essa mesmo problema
alguem pode ajudar?
Todos falaram bem do script, porem não funciona corretamente.
Ao matar o boss e entrar no TP e ir para o templo, qualquer pessoa que tentei puxar alavanca diz que "ja tem alguem dentro da arena, aguarde.."
Caso você morra pro boss, acontece a mesma coisa.






info
Grupo: Conde
Registrado: 29/04/09
Posts: 904
Reputação: +389
Char no Tibia: Jabuti Selvagem
Dice Arena
Esse evento foi postado para o Script de Terça, para ver os outros scripts de terça, clique aqui.
Como o evento funciona?
Um número configurado de jogadores deve permanecer em posições configuradas (Igual na annihilator). Quando todas as posições tiverem ocupadas, o primeiro jogador puxa a alavanca, levando todos para dentro da Arena. Dentro da arena, tem um dado que, quando usado, sorteia um monstro. Quando os jogadores matam o monstro, um loot cai no chão (Quanto menor o número do dado, mais forte será o monstro e melhor será o item que dropa).
- Se já tiver gente dentro da arena, outro time não poderá entrar.
- Uma vez dentro da arena, cada jogador só pode rodar o dado uma vez.
- Cada jogador só pode entrar na arena uma vez por dia (tempo configurável).
- Os monstros e loots são configuráveis.
Vídeo do evento
(obrigado ao por me ajudar a gravar)
Instalação
Lib
Crie diceArena.lua em data/lib e coloque:
-- Dice Arena Event criado por Killua, XTibia.com dice_cfg = { positions_ = {{x = 164, y = 17, z = 7}, {x = 164, y = 18, z = 7}}, arena_pos = {x = 501, y = 141, z = 7}, wait_ = 60*60*24, max_time = 1800, numbers = { [1] = {"Orshabaal", "Morgaroth", "Ferumbras"}, [2] = {"Demodras", "Juggernaut"}, [3] = {"Demon", "Behemoth"}, [4] = {"Dragon Lord", "Hydra"}, [5] = {"Dragon", "Cyclops"}, [6] = {"Rotworm", "Rat"} }, noob_item = {2158, 10}, pro_item = {2160, 5}, arena_frompos = {x = 491, y = 125, z = 7}, arena_topos = {x = 512, y = 144, z = 7} } function removeDiceMonsters() for x = dice_cfg.arena_frompos.x, dice_cfg.arena_topos.x do for y = dice_cfg.arena_frompos.y, dice_cfg.arena_topos.y do local area_ = {x = x, y = y, z = dice_cfg.arena_frompos.z} local creature = getTopCreature(area_) if isMonster(creature.uid) then doRemoveCreature(creature.uid) end end end endActions
Crie diceLever.lua em data/actions/scripts e coloque:
-- Dice Arena Event criado por Killua, XTibia.com function onUse(cid, item, fromPosition, itemEx, toPosition) local check = 0 local players = {} if item.actionid == 8733 then for i = 1, #dice_cfg.positions_ do if isPlayer(getTopCreature(dice_cfg.positions_[i]).uid) then check = check + 1 end end if check == #dice_cfg.positions_ then if getGlobalStorageValue(182221) == -1 then for j = 1, #dice_cfg.positions_ do table.insert(players, getTopCreature(dice_cfg.positions_[j]).uid) end for e = 1, #players do if getPlayerStorageValue(players[e], 181293) > os.time() then check = check- 1 end end if check == #dice_cfg.positions_ then for u = 1, #players do doTeleportThing(players[u], dice_cfg.arena_pos, false) doTransformItem(item.uid, item.itemid == 1945 and 1946 or 1945) doPlayerSendTextMessage(players[u], MESSAGE_STATUS_CONSOLE_BLUE, "Voce entrou na arena do dado! Teste sua sorte...") setGlobalStorageValue(182221, #dice_cfg.positions_ - 1) doPlayerSetStorageValue(players[u], 181293, os.time() + dice_cfg.wait_) addEvent(function() if isInArea(getThingPos(players[u]), dice_cfg.arena_frompos, dice_cfg.arena_topos) then doTeleportThing(players[u], getTownTemplePosition(getPlayerTown(players[u])), false) setGlobalStorageValue(182221, -1) removeDiceMonsters() end end, dice_cfg.max_time * 1000) end else doPlayerSendCancel(cid, "Alguem do seu time ja entrou na arena nos ultimos "..dice_cfg.wait_" segundos.") end else doPlayerSendCancel(cid, "Ja tem alguem dentro da arena, aguarde...") end else doPlayerSendCancel(cid, "Sao necessarios pelo menos "..#dice_cfg.positions_.." jogadores para entrar na arena.") end elseif item.uid == 8734 then if getPlayerStorageValue(cid, 281811) <= os.time() then doPlayerSetStorageValue(cid, 281811, os.time() + dice_cfg.wait_ - dice_cfg.wait_ / 3) local value = math.random(5792, 5797) doSendMagicEffect(fromPosition, CONST_ME_CRAPS) doTransformItem(item.uid, value) doCreatureSay(cid, getCreatureName(cid) .. " rolled a " .. value - 5791 .. ".", TALKTYPE_ORANGE_1) if dice_cfg.numbers[value - 5791] then local rand = math.random(1, #dice_cfg.numbers[value - 5791]) doCreateMonster(dice_cfg.numbers[value - 5791][rand], getClosestFreeTile(cid, fromPosition)) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Voce criou um "..dice_cfg.numbers[value - 5791][rand].."! Um monstro de nivel " .. value - 5791 .. ", derrote-o para conseguir seu premio!") end else doPlayerSendCancel(cid, "Voce so podera usar o dado daqui a "..getPlayerStorageValue(cid, 281811) - os.time().." segundos.") end end return true endEm actions.xml, coloque essas TAGs:
Creaturescripts
Em data/creaturescripts/scripts crie diceKill.lua e coloque:
-- Dice Arena Event criado por Killua, XTibia.com local function getMonsterCategory(name) for index, names in pairs(dice_cfg.numbers) do if isInArray(names, ""..name.."") then return index end end end function onKill(cid, target, lastHit) if isMonster(target) and isPlayer(cid) then if isInArea(getThingPos(target), dice_cfg.arena_frompos, dice_cfg.arena_topos) then if getGlobalStorageValue(8181818) <= os.time() then setGlobalStorageValue(8181818, os.time() + 1) if getMonsterCategory(getCreatureName(target)) then if getMonsterCategory(getCreatureName(target)) > 2 then addEvent(doCreateItem, 200, dice_cfg.noob_item[1], math.random(1, dice_cfg.noob_item[2]), getThingPos(target)) elseif getMonsterCategory(getCreatureName(target)) == 2 then local chance = math.random(1,100) if chance <= 20 then addEvent(doCreateItem, 200, dice_cfg.pro_item[1], math.random(1, dice_cfg.pro_item[2]), getThingPos(target)) else addEvent(doCreateItem, 200, dice_cfg.noob_item[1], math.random(1, dice_cfg.noob_item[2]), getThingPos(target)) end elseif getMonsterCategory(getCreatureName(target)) == 1 then addEvent(doCreateItem, 200, dice_cfg.pro_item[1], math.random(1, dice_cfg.pro_item[2]), getThingPos(target)) end doSendMagicEffect(getThingPos(target), 38) doCreatureSay(target, "You have gained a special loot!", TALKTYPE_ORANGE_1) end end end end return true end function onLogin(cid) if isInArea(getThingPos(cid), dice_cfg.arena_frompos, dice_cfg.arena_topos) then doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid))) end registerCreatureEvent(cid, "diceKill") return true endEm creaturescripts.xml, coloque essas TAGs:
Movements
Em data/movements/scripts crie diceMove.lua e coloque:
-- Dice Arena Event criado por Killua, XTibia.com function onStepIn(cid, item, position, lastPosition, fromPosition, toPosition, actor) doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)), false) if getGlobalStorageValue(182221) == 0 then removeDiceMonsters() elseif getGlobalStorageValue(182221) > 0 then setGlobalStorageValue(182221, getGlobalStorageValue(182221) - 1) end return true endEm movements.xml, coloque essa TAG:
Globalevents
Em data/globalevents/scripts crie diceStart.lua e coloque:
function onStartup() setGlobalStorageValue(182221, -1) return true endEm globalevents.xml, coloque essa TAG:
dice_cfg = { positions_ = {{x = 164, y = 17, z = 7}, {x = 164, y = 18, z = 7}}, arena_pos = {x = 501, y = 141, z = 7}, wait_ = 60*60*24, max_time = 1800, numbers = { [1] = {"Orshabaal", "Morgaroth", "Ferumbras"}, [2] = {"Demodras", "Juggernaut"}, [3] = {"Demon", "Behemoth"}, [4] = {"Dragon Lord", "Hydra"}, [5] = {"Dragon", "Cyclops"}, [6] = {"Rotworm", "Rat"} }, noob_item = {2158, 10}, pro_item = {2160, 5}, arena_frompos = {x = 491, y = 125, z = 7}, arena_topos = {x = 512, y = 144, z = 7} }Em positions_, coloque as posições que os jogadores devem ficar para poder puxar a alavanca (Pode por quantas quiser).
Em arena_pos, coloque a posição da arena (Pra onde os jogadores vão quando puxarem a alavanca).
Em wait_, coloque o tempo que o jogador deve esperar para entrar na arena novamente (em segundos). 60*60*24 = 1 dia, aconselho deixar assim.
Em max_time, coloque o tempo máximo que os jogadores podem permanecer na arena (em segundos (após esse tempo, eles serão teleportados para o templo)).
Em numbers, coloque o nome dos monstros que podem vir dependendo do número sorteado pelo dado (quanto menor o número, mais forte devem ser os monstros).
Em noob_item, coloque o {id, quantidade} do item que dropa dos monstros mais fracos/médios
Em pro_item, coloque o {id, quantidade} do item que pode dropar dos monstros mais fortes/médios
Em arena_frompos, coloque a posição do canto superior esquerdo da arena.
Em arena_topos, coloque a posição do canto inferior direito da arena.
Editado Abril 25 por Killua