Ir para conteúdo
  • Cadastre-se

Derivado Mudança de TFS no script 1.2 para 0.3.6


Posts Recomendados

Fala galera, eu tenho um script aqui porém, ele está em TFS 1.2, alguém converter ele para 0.3.6?

 

O script é esse:

 

globalevents/globalevents.xml
 

<globalevent type="startup" name="hunger" script="hunger.lua"/>

 

globalevents/scripts/hunger.lua
 

 

Spoiler

 

currentgameid = 201

killstreak = 60013

depotbox= {x=700,y=760,z=5} --location of a depot box, recommended to be accessible by players incase of bugs or crashes

game = {{name="Hunger Games Arena 1", cheststartid=60100, minplayers=8, maxplayers=16, chests=299, startpos={

    {x = 814, y = 760, z = 7},

    {x = 809, y = 758, z = 7},

    {x = 807, y = 753, z = 7},

    {x = 809, y = 748, z = 7},

    {x = 814, y = 746, z = 7},

    {x = 819, y = 748, z = 7},

    {x = 821, y = 753, z = 7},

    {x = 819, y = 758, z = 7},

    {x = 811, y = 759, z = 7},

    {x = 808, y = 756, z = 7},

    {x = 808, y = 750, z = 7},

    {x = 811, y = 747, z = 7},

    {x = 817, y = 747, z = 7},

    {x = 820, y = 750, z = 7},

    {x = 820, y = 756, z = 7},

    {x = 817, y = 759, z = 7}

    }

    },

        {

    name="Hunger Games Arena 2", cheststartid=61100, minplayers=2, maxplayers=4, chests=299, startpos={

    {x = 1036, y = 910, z = 6},

    {x = 1032, y = 906, z = 6},

    {x = 1036, y = 902, z = 6},

    {x = 1040, y = 906, z = 6}

    }

    },

        {

    name="Hunger Games Arena 3", cheststartid=62100, minplayers=4, maxplayers=8, chests=299, startpos={

    {x = 1047, y = 1158, z = 7},

    {x = 1048, y = 1158, z = 7},

    {x = 1052, y = 1158, z = 7},

    {x = 1053, y = 1158, z = 7},

    {x = 1047, y = 1167, z = 7},

    {x = 1048, y = 1167, z = 7},

    {x = 1052, y = 1167, z = 7},

    {x = 1053, y = 1167, z = 7}

    }

    }

    }

 

    availablearenas = {1,2,3} -- script starts with all arenas as "available"

    gameplayers = {}

    prize = {{2160,1},{5097,10},{2128,1}}

 

function Player:removeAllItems() -- function to clear the player's inventory

    local depotpos = Tile(Position(depotbox.x, depotbox.y, depotbox.z)):getItemByType(ITEM_TYPE_DEPOT)

    local depotid = getDepotId(depotpos:getUniqueId())

    local depot = self:getDepotChest(depotid,true)

    local box = depot:addItem(1988)

    box:setAttribute(ITEM_ATTRIBUTE_NAME,"player gear box")

    for i=1,10 do

        local item = self:getSlotItem(i)

        if item then

            item:moveTo(box)

        end

    end

end

 

function Player:getBackItems() -- function to clear the player's inventory

  local depotpos = Tile(Position(depotbox.x, depotbox.y, depotbox.z)):getItemByType(ITEM_TYPE_DEPOT)

  local depotid = getDepotId(depotpos:getUniqueId())

  local depot = self:getDepotChest(depotid,true)

  local box = depot:getItem(0)

  for i= box:getSize()-1, 0, -1 do

     local item = box:getItem(i)

     if item then

        item:clone():moveTo(self)

     end

  end

  box:remove()

end

 

local function teleportThing(seconds)

    if seconds <= 0 and #queue >= 1 then

    local looparenas = availablearenas -- preventing possible conflicts with looping

        for a,b in pairs(looparenas) do

            if #queue >= game[looparenas[a]].minplayers then

                local p = 1

                while p < game[looparenas[a]].maxplayers do

                    for i, pname in pairs(queue) do

                        local player = Player(pname)

                        if player then

                            player:setStorageValue(currentgameid, looparenas[a])

                            local pos = Position(game[looparenas[a]].startpos[p].x, game[looparenas[a]].startpos[p].y, game[looparenas[a]].startpos[p].z)

                            player:teleportTo(pos)

                            player:removeAllItems()

                            player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "Welcome to The Hunger Games, Your objective is to loot, kill and be the last man standing, Good luck!")

                            if gameplayers[looparenas[a]] == nil then

                                gameplayers[looparenas[a]] = {}

                            end

                            table.insert(gameplayers[looparenas[a]], player:getName())

                            table.remove(queue,i)

                        end

                    end

                    p = p+1

                end

                for i = game[looparenas[a]].cheststartid, game[looparenas[a]].cheststartid+game[looparenas[a]].chests do

                    Game.setStorageValue(i, -1)

                end

                Game.broadcastMessage(MESSAGE_EVENT_ADVANCE,"Hunger Games started in " ..game[looparenas[a]].name.."!")

                for k,v in pairs(availablearenas) do

                    if v == r then

                        table.remove(availablearenas,i)

                    end

                end

            else

                for _, player in pairs(queue) do

                    Player(player):sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "Sorry, There is not enough players to start "..game[availablearenas[a]].name)

                end

            end

        end

    return teleportThing(3600)

    end

    if seconds == 60 then

        for _, player in pairs(queue) do

            Player(player):sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "The Hunger Games will begin in " .. seconds/60 .. " minute, Get Ready!")

        end

    elseif seconds % 60 == 0 and seconds ~= 60 and seconds ~= 300 and seconds < 300 then

        for _, player in pairs(queue) do

            Player(player):sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "The Hunger Games will begin in " .. seconds/60 .. " minutes!")

        end

    elseif seconds == 300 then

        Game.broadcastMessage(MESSAGE_EVENT_ADVANCE,"The Hunger Games will begin in " .. seconds/60 .. " minutes! To join say /join hunger games")

    end

    if seconds ~= 0 then

        addEvent(teleportThing, 60000, seconds - 60)

    end

    return true

end

 

function onStartup()

    teleportThing(600)

    return true

end

 

creaturescripts/creaturescripts.xml
Spoiler

 

<event type="logout" name="eventlogout" script="eventlogout.lua"/>

<event type="death" name="hunger" script="hunger.lua"/>

 

creaturescripts/scripts/login.lua



add this before "return true"

 

 

player:registerEvent("hunger")

 


creaturescripts/scripts/eventlogout.lua
 

 


 

Spoiler

 

function onLogout(player)

local gameid = player:getStorageValue(currentgameid)

if(gameid > 0 ) then

player:getBackItems()

player:setStorageValue(currentgameid, -1)

if gameplayers[gameid] then

for i=1,#gameplayers[gameid] do

Player(gameplayers[gameid]):sendTextMessage(MESSAGE_STATUS_CONSOLE_RED, player:getName() .. " has left the hunger games with "..player:getStorageValue(killstreak).." kills | Tributes still alive: " .. #gameplayers[gameid])

end

for k,v in pairs(gameplayers[gameid]) do

if v == player:getName() then

table.remove(gameplayers[gameid],k)

end

end

end

player:setStorageValue(killstreak, 0)

player:teleportTo((player:getTown()):getTemplePosition())

if gameplayers[gameid] and #gameplayers[gameid] == 1 then

Player(gameplayers[gameid][1]):getBackItems()

Player(gameplayers[gameid][1]):setStorageValue(gameid, -1)

Game.broadcastMessage(MESSAGE_EVENT_ADVANCE,gameplayers[gameid][1] .." Has won The Hunger Games in ".. game[gameid].name .." with "..Player(gameplayers[gameid][1]):getStorageValue(killstreak).." Kill Streaks! Congratulations!")

Player(gameplayers[gameid][1]):teleportTo((Player(gameplayers[gameid][1]):getTown()):getTemplePosition())

Player(gameplayers[gameid][1]):setStorageValue(killstreak, 0)

for _, item in pairs(prize) do

Player(gameplayers[gameid][1]):addItem(item[1],item[2])

end

for k,v in pairs(gameplayers[gameid]) do

if v == gameplayers[gameid][1] then

table.remove(gameplayers[gameid],i)

end

end

table.insert(availablearenas, gameid)

elseif gameplayers[gameid] and #gameplayers[gameid] < 1 then

Game.broadcastMessage(MESSAGE_EVENT_ADVANCE,game[gameid].name .." Has Ended without winners because all players have left the game!")

table.insert(availablearenas, gameid)

end

end

for k,v in pairs(queue) do

if v == player:getName() then

table.remove(queue,i)

end

end

return true

end


 

 

 

creaturescripts/scripts/hunger.lua

 

Spoiler

 

function onDeath(player, corpse, killer, mostDamageKiller, unjustified, mostDamageUnjustified)

local gameid = player:getStorageValue(currentgameid)

if gameid > 0 then

if killer and killer:isPlayer() then

for _, gamer in pairs(gameplayers[gameid]) do

Player(gamer):sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, player:getName() .. " has been killed by " .. killer:getName() .. " with "..player:getStorageValue(killstreak).." kills | Tributes still alive: " .. #gameplayers[gameid])

end

killer:setStorageValue(killstreak, killer:getStorageValue(killstreak)+1)

else

for  _, gamer in pairs(gameplayers[gameid]) do

Player(gamer):sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, player:getName() .. " has died with "..player:getStorageValue(killstreak).." kills | Tributes still alive: " .. #gameplayers[gameid])

end

end

player:setStorageValue(killstreak, 0)

player:setStorageValue(currentgameid, -1)

player:getBackItems()

for k,v in pairs(gameplayers[gameid]) do

if v == player:getName() then

table.remove(gameplayers[gameid],k)

end

end

if #gameplayers[gameid] == 1 then

Game.broadcastMessage(MESSAGE_EVENT_ADVANCE,Player(gameplayers[gameid][1]):getName() .." Has won The Hunger Games in ".. game[gameid].name .." with ".. Player(gameplayers[gameid][1]):getStorageValue(killstreak) .." Kill Streaks! Congratulations!")

Player(gameplayers[gameid][1]):teleportTo((Player(gameplayers[gameid][1]):getTown()):getTemplePosition())

Player(gameplayers[gameid][1]):setStorageValue(killstreak, 0)

Player(gameplayers[gameid][1]):setStorageValue(currentgameid, -1)

Player(gameplayers[gameid][1]):getBackItems()

for _, item in pairs(prize) do

Player(gameplayers[gameid][1]):addItem(item[1],item[2])

end

for k,v in pairs(gameplayers[gameid]) do

if v == gameplayers[gameid][1] then

table.remove(gameplayers[gameid],i)

end

end

table.insert(availablearenas, gameid)

end

end

return true

end

 

 

 

talkactions/talkactions.xml
 

Code (Text):

<talkaction words="!join" separator=" " script="join.lua"/>
<talkaction words="!ragequit" separator=" " script="leave.lua"/>

 

talkactions/scripts/join.lua
 

Code (Text):

 

Spoiler

 

local gamename = {

    "hunger games"

}

queue = {}

 

function onSay(player, words, param)

    local id = 0

    for i=1, #gamename do

        if param == gamename then

            id = i

        end

    end

    local currentgame = player:getStorageValue(currentgameid)

    if (id ~= 0) then

        if currentgame <= 0 then

            for _, playerid in pairs(queue) do

                if player:getName() == playerid then

                player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "You are already queue for this game.")

                return player:getPosition():sendMagicEffect(CONST_ME_POFF)

                end

            end

            table.insert(queue, player:getName())

            player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "You have queued up for "..gamename[id].." with "..#queue.." total players")

            return player:getPosition():sendMagicEffect(CONST_ME_MAGIC_BLUE)

        else

            player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "You are already in a game.")

            return player:getPosition():sendMagicEffect(CONST_ME_POFF)

        end

    else

        player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "!join hunger games")

        return player:getPosition():sendMagicEffect(CONST_ME_POFF)

    end

end

 

 

talkactions/scripts/leave.lua
 

Code (Text):


 

Spoiler

 

function onSay(player, words, param)

local currentgame = player:getStorageValue(currentgameid)

if currentgame > 0 then

return player:addHealth(-player:getMaxHealth())

else

player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "You can only do that in an event game.")

return player:getPosition():sendMagicEffect(CONST_ME_POFF)

end

end


 


actions/actions.xml
 

Code (Text):

<!-- Hunger Games Chests -->
    <action fromaid="60101" toaid="60499" script="games/hunger.lua"/>
    <action fromaid="61101" toaid="61499" script="games/hunger.lua"/>
    <action fromaid="62101" toaid="62499" script="games/hunger.lua"/>

 


actions/scripts/hunger.lua
 

Code (Text):

Spoiler

 

local tier = {

{                    --tier1

{id =2120 , chance = 10, count = 1}, --rope

{id =2554 , chance = 5, count = 1}, --shovel

{id =1991 , chance = 10, count = 1}, --bag

{id =1998 , chance = 5, count = 1}, --backpack

{id =2376 , chance = 10, count = 1}, --sword1

{id =2409 , chance = 5, count = 1}, --sword2

{id =2461 , chance = 10, count = 1}, --helmet1

{id =2458 , chance = 5, count = 1}, --helmet2

{id =2467 , chance = 10, count = 1}, --armor1

{id =2464 , chance = 5, count = 1}, --armor2

{id =2649 , chance = 10, count = 1}, --legs1

{id =2648 , chance = 5, count = 1}, --legs2

{id =2643 , chance = 10, count = 1}, --feet1

{id =2642 , chance = 5, count = 1}, --feet2

{id =2684 , chance = 20, count = 10}, --food1

{id =2689 , chance = 20, count = 10}, --food2

{id =2691 , chance = 20, count = 10}, --food3

{id =2677 , chance = 20, count = 20}, --food4

{id =2674 , chance = 20, count = 10}, --food5

{id =2386 , chance = 10, count = 1}, --axe1

{id =2441 , chance = 5, count = 1}, --axe2

{id =2437 , chance = 10, count = 1}, --club1

{id =2398 , chance = 5, count = 1}, --club2

{id =2190 , chance = 5, count = 1}, --wand1

{id =2191 , chance = 5, count = 1}, --wand2

{id =2456 , chance = 5, count = 1}, --bow1

{id =7438 , chance = 5, count = 1}, --bow2

{id =2512 , chance = 10, count = 1}, --shield1

{id =2529 , chance = 5, count = 1}, --shield2

{id =2331 , chance = 10, count = 10}, --rune1

{id =2313 , chance = 5, count = 10}, --rune2

{id =2544 , chance = 10, count = 10}, --ammo1

{id =2545 , chance = 5, count = 10}, --ammo2

{id =8704 , chance = 10, count = 1}, --potion1

{id =7618 , chance = 5, count = 1} --potion2

},

{                    --tier2

{id =2392 , chance = 10, count = 1}, --sword1

{id =7385 , chance = 5, count = 1}, --sword2

{id =2460 , chance = 10, count = 1}, --helmet1

{id =2480 , chance = 5, count = 1}, --helmet2

{id =2465 , chance = 10, count = 1}, --armor1

{id =2463 , chance = 5, count = 1}, --armor2

{id =2478 , chance = 10, count = 1}, --legs1

{id =2647 , chance = 5, count = 1}, --legs2

{id =11303 , chance = 10, count = 1}, --feet1

{id =7453 , chance = 5, count = 1}, --feet2

{id =2428 , chance = 10, count = 1}, --axe1

{id =2429 , chance = 5, count = 1}, --axe2

{id =2439 , chance = 10, count = 1}, --club1

{id =2423 , chance = 5, count = 1}, --club2

{id =2188 , chance = 5, count = 1}, --wand1

{id =8921 , chance = 5, count = 1}, --wand2

{id =8857 , chance = 5, count = 1}, --bow1

{id =8855 , chance = 5, count = 1}, --bow2

{id =2524 , chance = 10, count = 1}, --shield1

{id =2525 , chance = 5, count = 1}, --shield2

{id =2288 , chance = 10, count = 10}, --rune1

{id =2274 , chance = 5, count = 10}, --rune2

{id =7364 , chance = 10, count = 10}, --ammo1

{id =15648 , chance = 5, count = 10} --ammo2

 

}

}

function onUse(player, item, fromPosition, itemEx, toPosition, isHotkey)

    chesttier = math.floor(((item.actionid % 1000) + 100 ) / 200)

    if Game.getStorageValue(item:getActionId()) ~= 1 then

    for a=item:getSize()-1 , 0, -1 do

        item:getItem(i):remove() -- cleaning any old remaining items from previous games.

    end

    for i=1,20 do

        percentage = math.random(1,100)

        randomitem = math.random(1,#tier[chesttier])

            if percentage <= tier[chesttier][randomitem].chance then

            item:addItem(tier[chesttier][randomitem].id, math.random(1,tier[chesttier][randomitem].count))    --adding random item

            end

    end

    Game.setStorageValue(item:getActionId(), 1)

    end

end


 

 


Se poderem me ajudar... Irei agradecer!

tumblr_o70wteR8521r9n6kzo1_400.gif

Link para o post
Compartilhar em outros sites

era mais facil você postar o link do tópico do DkAngel83 aqui do que copiar todos os scripts para um tópico novo :grin: e pedir pra passar p 8.60

Scriptszinhos:

 

Não abandone seu tópico, quando você tiver a dúvida resolvida sozinho tente ensinar aos outros como resolve-la (você pode não ser o único com o problema) e quando ela for resolvida por outra pessoa não se esqueça de marcar como melhor resposta e deixar o gostei.

Link para o post
Compartilhar em outros sites
13 horas atrás, pablobion disse:

era mais facil você postar o link do tópico do DkAngel83 aqui do que copiar todos os scripts para um tópico novo :grin: e pedir pra passar p 8.60

é por que aquele script está com erros e no post original os erros já foram sanados. Portanto, peguei do fórum original

tumblr_o70wteR8521r9n6kzo1_400.gif

Link para o post
Compartilhar em outros sites

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.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

  • Conteúdo Similar

    • Por LeoTK
      Salve galera neste tópico irei postar algumas prints do mapa do servidor para quem queira acompanhar e quem sabe até utilizar de inspiração para mapear o seu NTO.
       
      #Att 11/08/2022

       
       
       
       
      Konoha (Em Desenvolvimento)
       
       
       
       
    • Por DiigooMix
      Como o título já diz, será que alguém possui sprite do hitto e se possível as transformações dele?
    • Por OmegaZero
      Olá gostaria que alguém me ajudasse com uma "scripting" não sei se é pela mesma, seria o seguinte uma determinada arma teria a chance de dar double hit e não sei oque fazer alguem poderia ajudar?

      OBS:não sei se é o local correto se não for mova, desculpe
    • Por Madarasenju
      Olá galera do Tibia King, queria por uns npc's no meu server que não tem função de trade nem nada do tipo, queria que eles só andassem como enfeite, Rep+ Pra quem me ajudar... grato desde já.
    • Por SilenceRoot
      A magia é assim o você usa a a magia e ela ficará ativado por 10 segundos, até que o inimigo lance a primeira magia ou todos de uma vez, quando ele lançar a primeira magia, ele não lhe acertará ou seja esquivando dela, e logo em seguida será teletransportado aleatoriamente ao redor do inimigo que usou.
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo