Ir para conteúdo
  • Cadastre-se

Normal [Pedido] Prêmio por Vocação


Posts Recomendados

Olá, gostaria de saber se é possível por para que esse script adicione o prêmio para cada vocação

local query = db.query or db.executeQuery
local premios = { --  -- [chance] -- itemid,amount
[{1, 5}] = {{12674}, {11754}},
[{10, 30}] = {{2390}, {2469}, {2646}, {8306,5}, {2408}, {9693}},
[{80, 100}] = {{2160,1000}}
}
 
local function getGuildNameById(id)
    local name = ""
    local query = db.getResult('SELECT `name` FROM `guilds` WHERE `id` = "'.. id ..'"')
    if query:getID() == -1 then
        return true
    end
    name = query:getDataString("name")
    query:free()
    return name
end 
function pointNumber(number)
    if not tonumber(number) then
        return false
    end
    local str = ""
    number = tostring(number):reverse()
    local count = 0
    for i = 1, number:len() do
        count = count + 1
        if count <= 3 then
            if str == "" then
                str = number:sub(i, i)
            else
                str = str..number:sub(i, i)
            end
        else
            count = 1
            str = str.."."..number:sub(i, i)
        end
    end
    return str:reverse()
end 
function onStatsChange(cid, attacker, type, combat, value)
    if isMonster(cid) and isPlayer(attacker) and type == STATSCHANGE_HEALTHLOSS then 
        if isInArray({"Castle Guardian I", "Castle Guardian II", "Castle Guardian III", "Castle Guardian IV", "Castle Generator", "Ice Crystal"}, getCreatureName(cid)) then            
doPlayerSetStorageValue(attacker, 1827311, getPlayerStorageValue(attacker, 1827311) + value)
            local quant = guild_hit_count[getPlayerGuildId(attacker)] and guild_hit_count[getPlayerGuildId(attacker)] or 0
            guild_hit_count[getPlayerGuildId(attacker)] = quant + value
        end
    end
    return true
end  
function onDeath(cid, corpse, deathList)
    local gid = 0
    local winner = 0
    if isMonster(cid) and getCreatureName(cid) == "Ice Crystal" then
       if not getPlayingGuilds() then
           return true
        end
        local guilds = getPlayingGuilds()
        local max = 0
        for index, var in pairs(guild_hit_count) do
            if var > max then
               max = var
               gid = index
            end
        end
        setGlobalStorageValue(1823999, gid)
        query("UPDATE `castle_dono` SET `guild_id` = '"..gid.."' WHERE `guild_id` > 0")
        doBroadcastMessage("{Castle War} O evento acabou, a guild com maior desempenho foi "..getGuildNameById(gid)..", com "..pointNumber(max).." pontos sobre o castelo.")
        updateCastleData()
        setGlobalStorageValue(18219113, -1)
        if gid > 0 then
            local mx = 0
            for _, pid in pairs(getPlayersOnline()) do
                if getPlayerGuildId(pid) == gid then
                    local st = getPlayerStorageValue(pid, 1827311)
                    if st > mx then
                        mx = st
                        winner = pid
                    end
               end
           end
           if isPlayer(winner) then        
           local r = math.random(1,100)
                for v, k in pairs(premios) do
                    if r >= v[1] and r <= v[2] then
                        local rand = k[math.random(#k)]
                            itemr, amountr = rand[1], (not rand[2] and 1 or rand[1] and rand[2] or 1)
                            end
                        end
                        local recompensa = doPlayerAddItem(winner, itemr, amountr) 
                            doBroadcastMessage("{Castle War} O jogador com maior desempenho foi "..getCreatureName(winner)..", com "..pointNumber(mx).." pontos sobre o castelo. Ele recebeu "..pointNumber(amountr).."x "..getItemNameById(itemr).." como premio.")   
                            doItemSetAttribute(recompensa, 'description', "Premio do jogador "..getCreatureName(winner).." ganho no evento castle war do dia "..os.date("%d/%m/%y")..".")                    
                        local medal = doPlayerAddItem(winner, 10127, 1)
                            doItemSetAttribute(medal, 'description', "Trofeu ganho pelo jogador "..getCreatureName(winner).." no evento castle war do dia "..os.date("%d/%m/%y")..".")
                        end
                    end
                    for _, pid in pairs(getPlayersOnline()) do
                    if isInArea(getThingPos(pid), {x = 494, y = 552, z = 6}, {x = 585, y = 620, z = 6}) or isInArea(getThingPos(pid), {x = 511, y = 588, z = 5}, {x = 556, y = 607, z = 5}) or isInArea(getThingPos(pid), {x = 511, y = 588, z = 4}, {x = 556, y = 607, z = 4}) or isInArea(getThingPos(pid), {x = 511, y = 588, z = 3}, {x = 556, y = 607, z = 3}) or isInArea(getThingPos(pid), {x = 481, y = 580, z = 7}, {x = 683, y = 798, z = 7}) then
                        doTeleportThing(pid, {x = 540, y = 631, z = 6})
                    end
                end
                guild_hit_count = {}
            end
    return true
end

[progress=green]50[/progress]

 

Link para o post
Compartilhar em outros sites
  • 2 weeks later...

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 Jaurez
      .
    • Por Cat
      Em alguns casos, o tibia 8.60 comum não abre de jeito nenhum no map editor, mesmo desmarcando check file signatures e configurando o path corretamente.
       
      Este é o client 8.60 adaptado para o Remere's Map Editor. Resolvi postar já que ele foi removido do site oficial do RME. (ficou apenas a versão para linux lá)
      Se estiver tendo problemas para abrir a versão 8.60, tente utilizar este.
                                                                                                                     
      Baixar o Tibia Client 8.60 que funciona no Remere’s Map Editor
      Essa versão do Tibia 8.60 client resolve o erro unsupported client version ou Could not locate tibia.dat and/or tibia.spr, please navigate to your tibia 8.60 installation folder.
       
      Downloads
      https://tibiaking.com/applications/core/interface/file/attachment.php?id=47333

      Scan: https://www.virustotal.com/gui/file/333e172ac49ba2028db9eb5889994509e7d2de28ebccfa428c04e86defbe15cc
       
    • Por danilo belato
      Fala Galera To Com um problema aki 
       
      quero exporta umas sprites de um server para colocar em outro 
       
      eu clico na sprites ai aparece tds a forma delas do lado de la >>
       
      ai eu clico nela e ponho a opiçao de export mais quando salvo a sprite ela n abri 
       
      aparece isso quando tento vê-la 
       
      visualização não disponível ( no formatos png e bitmap)
       
      Agora no formato idc fala que o paint n pode ler 
       
      me ajudem ae...
    • Por Vitor Bicaleto
      Galera to com o script do addon doll aqui, quando eu digito apenas "!addon" ele aparece assim: Digite novamente, algo está errado!"
      quando digito por exemplo: "!addon citizen" ele não funciona e não da nenhum erro
       
      mesma coisa acontece com o mount doll.. 
    • Por Ayron5
      Substitui uma stone no serve, deu tudo certo fora  esse  erro ajudem  Valendo  Rep+  Grato  

      Erro: data/actions/scripts/boost.lua:557: table index is nil
       [Warning - Event::loadScript] Cannot load script (data/actions/scripts/boost.lua)

      Script:
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo