Ir para conteúdo
  • Cadastre-se

Posts Recomendados

Evento automático, com tal hora e tal dia;

Tempo de espera de player 5 minutos;

Maximo de 20 player;

Minimo de 2 player;

Sera um evento que todos os player irão se atacar;

O ultimo que sobreviver, Ganha o evento;

Os player que morrerem irão se teleportado para o Templo.

O player que ganhar, irá ganhar um item e sera teleportado para o templo;

 

edit;

Aparecerá um portal em tal posição;

Apos entrar no portal eles irão se teleportado apa posições aleatorias;

Quando todos entrar no evento ou quando o portal fechar, ira aparecer uma mensagem " Esperem 20 segundos para o evento assasin inicial, fiquem em suas posições!!

Editado por Storm Night (veja o histórico de edições)
"O sucesso é uma consequência e não um objetivo. A persistência é o caminho do êxito".
Link para o post
Compartilhar em outros sites

Como o jogador se inscreverá no evento? Talkaction? Step in? Os jogadores serão teleportados logo após a inscrição ou quando o evento for iniciado? E a posição será constante ou aleatória?

não respondo pms solicitando suporte em programação/scripting

Link para o post
Compartilhar em outros sites

Como o jogador se inscreverá no evento? Talkaction? Step in? Os jogadores serão teleportados logo após a inscrição ou quando o evento for iniciado? E a posição será constante ou aleatória?

 

Como o jogador se inscreverá no evento? Talkaction? Step in? Os jogadores serão teleportados logo após a inscrição ou quando o evento for iniciado? E a posição será constante ou aleatória?

Olá amigão, Topic editado.

"O sucesso é uma consequência e não um objetivo. A persistência é o caminho do êxito".
Link para o post
Compartilhar em outros sites

parado;

Tenta espalha eles ai, tipo: quando entrar no portal eles vão para areas aleatorias do local. sahsuahsuhau.

 

Local do evento(so pra voce ter noção da area):

 

post-127785-0-19242600-1424570734_thumb.

 

 

Depois tenta ajuda no meu topico do Battle x1, você é muito foda mano. XD

+1 fã aq... :wow:

"O sucesso é uma consequência e não um objetivo. A persistência é o caminho do êxito".
Link para o post
Compartilhar em outros sites

Obrigado. c:

PS: Não testei.

data/lib:

config = {
    day = {"Saturday"},                       --Dia(s) que ocorrerá o evento.
    time = 5,                                 --Tempo de espera de player, em minutos.
    playerCount = {2, 20},                    --Respectivamente, número mínimo e máximo de jogadores no evento.
    prize = {itemid, count},                  --Respectivamente, ID do prêmio e quantidade.
    fromPosition = {x = x, y = y, z = z},     --Coordenadas da posição superior esquerda da área.
    toPosition = {x = x, y = y, z = z},       --Coordenadas da posição inferior direita da área.
    startTime = 20,                           --Tempo para iniciar o evento, em segundos.
    aid = 5901,
    storages = {
        global = 9501,
        players = 9502,
        storage = 9010,
    },
    teleport = {
        tpId = xxx,                         --ID do teleporte.
        createPos = {x = x, y = y, z = z},  --Onde o teleporte será criado.
    },
}
function addPlayerOnEvent(cid)
    if isPlayer(cid) then
        local sto = getGlobalStorageValue(config.storages.players)
        if type(sto) == "number" then
            setGlobalStorageValue(config.storages.players, getCreatureName(cid))
        else
            local str = ""
            sto = sto:explode(",")
            table.insert(sto, getCreatureName(cid))
            for i = 1, #sto do
                if str == "" then
                    str = sto[i]
                else
                    str = str..","..sto[i]
                end
            end
            setGlobalStorageValue(config.storages.players, str)
        end
        setPlayerStorageValue(cid, config.storages.storage, 1)
        doTeleportThing(cid, getRandomPositions(config.fromPosition, config.toPosition, 1)[1])
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, "You entered on the Survival event.")
        doPlayerSetNoMove(cid, true)
        broadcastMessage(getCreatureName(cid).." entered on the Survival event. "..#getPlayersOnEvent().." on the event now.")
    end
end
function getPlayersOnEvent()
    local pid = {}
    local sto = getGlobalStorageValue(config.storages.players)
    if type(sto) ~= "string" then
        return false
    end
    sto = sto:explode(",")
    for i = 1, #sto do
        local cid = getCreatureByName(sto[i])
        if isPlayer(cid) then
            table.insert(pid, cid)
        end
    end
    return #pid > 0 and pid or false
end
function getRandomPositions(fromPos, toPos, count)
    count = tonumber(count) or 1
    local positions = {}
    for i = 1, count do
        table.insert(positions, {x = math.random(fromPos.x, toPos.x), y = math.random(fromPos.y, toPos.y), z = math.random(fromPos.z, toPos.z)})
    end
    return positions
end
function getPlayersInArea(fromPos, toPos)
    local players = {}
    for x = fromPos.x, toPos.x do
        for y = fromPos.y, toPos.y do
            for z = fromPos.z, toPos.z do
                local pos = {x = x, y = y, z = z}
                if isPlayer(getTopCreature(pos).uid) then
                    table.insert(players, getTopCreature(pos).uid)
                end
            end
        end
    end
    return players
end
function addItem(cid, itemid, count)
    if isItemStackable(itemid) then
        doPlayerAddItem(cid, itemid, count)
    else
        if count > 1 then
            for i = 1, count do
                doPlayerAddItem(cid, itemid, 1)
            end
        else
            doPlayerAddItem(cid, itemid, 1)
        end
    end
end
data/globalevents/scripts:
function onTime()
    if isInArray(config.day, os.date("%A")) then
        broadcastMessage("The survival event is open! You guys have "..config.time.." minutes to enter.")
        local item = doCreateItem(config.teleport.tpId, 1, config.teleport.createPos)
        doItemSetAttribute(item, "aid", config.aid)
        setGlobalStorageValue(config.storages.global, 1)
        addEvent(function()
            if getGlobalStorageValue(config.storages.global) == 1 then
                local tp = getTileItemById(config.teleport.createPos, config.teleport.tpId).uid
                if tp > 0 then
                    doRemoveItem(tp)
                end
                if #getPlayersOnEvent() < config.playerCount[1] then
                    broadcastMessage("Not enough players to start the survival event. :/")
                    setGlobalStorageValue(config.storages.global, -1)
                    for i = 1, #getPlayersOnEvent() do
                        setPlayerStorageValue(getPlayersOnEvent()[i], config.storages.storage, -1)
                    end
                    db.executeQuery("UPDATE player_storage SET value = -1 WHERE key = "..config.storages.storage.." AND value != -1")
                else
                    broadcastMessage("The survival event will start in "..config.startTime.." seconds.")
                    addEvent(function()
                        broadcastMessage("The survival event started!!!")
                        setGlobalStorageValue(config.storages.global, 2)
                        for i = 1, #getPlayersOnEvent() do
                            doPlayerSetNoMove(getPlayersOnEvent()[i], false)
                        end
                    end, config.startTime * 1000)
                end
            end
        end, config.time * 60 * 1000)
    end
    return true
end
Tag:
<!-- Mude 19:30 para o horário que quer que o evento Survival seja aberto. -->
<globalevent name="Survival" time="19:30" event="script" value="nome_do_arquivo.lua"/>
data/movements/scripts:
function onStepIn(cid, item, position, fromPosition)
    if not isPlayer(cid) then
        return true
    elseif getGlobalStorageValue(config.storages.global) < 1 then
        return doPlayerSendCancel(cid, "The event isn't open.") and doTeleportThing(cid, fromPosition)
    elseif getPlayersOnEvent() and #getPlayersOnEvent() >= config.playerCount[2] then
        return doPlayerSendCancel(cid, "There's already the maximum number of players on the Survival event.") and doTeleportThing(cid, fromPosition)
    end
    addPlayerOnEvent(cid)
    if #getPlayersOnEvent() >= config.playerCount[2] then
        local tp = getTileItemById(config.teleport.createPos, config.teleport.tpId).uid
        if tp > 0 then
            doRemoveItem(tp)
        end
        broadcastMessage("The survival event will start in "..config.startTime.." seconds.")
        setGlobalStorageValue(config.storages.global, 3)
        addEvent(function()
            broadcastMessage("The survival event started!!!")
            setGlobalStorageValue(config.storages.global, 2)
            for i = 1, #getPlayersOnEvent() do
                doPlayerSetNoMove(getPlayersOnEvent()[i], false)
            end
        end, config.startTime * 1000)
    end
    return true
end
Tag:
<movevent type="StepIn" actionid="5901" event="script" value="nome_do_arquivo.lua"/>
data/creaturescripts/scripts:
function onPrepareDeath(cid)
    if getGlobalStorageValue(config.storages.global) > -1 and getPlayerStorageValue(cid, config.storages.storage) > -1 then
        doCreatureAddHealth(cid, getCreatureMaxHealth(cid))
        doCreatureAddMana(cid, getCreatureMaxMana(cid))
        doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)))
        doPlayerSendTextMessage(cid, 27, "Oh, you died in the survival event. :/")
        setPlayerStorageValue(cid, config.storages.storage, -1)
        if #getPlayersInArea(config.fromPosition, config.toPosition) == 1 then
            local pid = getPlayersInArea(config.fromPosition, config.toPosition)[1]
            broadcastMessage(getCreatureName(pid).." won the survival event! Congratulations to him!")
            doCreatureAddHealth(pid, getCreatureMaxHealth(pid))
            doCreatureAddMana(pid, getCreatureMaxMana(pid))
            doTeleportThing(pid, getTownTemplePosition(getPlayerTown(pid)))
            doPlayerSendTextMessage(pid, MESSAGE_STATUS_CONSOLE_ORANGE, "You win! Congratulations!\nYour prize: "..config.prize[2].."x "..getItemNameById(config.prize[1])..".")
            addItem(pid, config.prize[1], config.prize[2])
            setPlayerStorageValue(pid, config.storages.storage, -1)
            setGlobalStorageValue(config.storages.global, -1)
        end
    end
    return true
end
function onStatsChange(cid, attacker, type, combat, value)
    if getGlobalStorageValue(config.storages.global) > -1 and getGlobalStorageValue(config.storages.global) ~= 2 and getPlayerStorageValue(cid, config.storages.storage) > -1 then
        return false
    end
    return true
end
function onLogin(cid)
    if getPlayerStorageValue(cid, config.storages.storage) > -1 and getGlobalStorageValue(config.storages.global) < 1 then
        setPlayerStorageValue(cid, config.storages.storage, -1)
    end
    registerCreatureEvent(cid, "damageSurvival")
    registerCreatureEvent(cid, "deathSurvival")
    return true
end
function onLogout(cid)
    if getGlobalStorageValue(config.storages.global) > -1 and getPlayerStorageValue(cid, config.storages.storage) > -1 then
        return doPlayerSendCancel(cid, "You can't logout on the survival event.") and false
    end
    return true
end
Tags:
<event type="preparedeath" name="deathSurvival" event="script" value="nome_do_arquivo.lua"/>
<event type="login" name="survivalLogin" event="script" value="nome_do_arquivo.lua"/>
<event type="logout" name="survivalLogout" event="script" value="nome_do_arquivo.lua"/>
<event type="statschange" name="damageSurvival" event="script" value="nome_do_arquivo.lua"/>
Editado por zipter98 (veja o histórico de edições)

não respondo pms solicitando suporte em programação/scripting

Link para o post
Compartilhar em outros sites

Depois tenta ajuda no meu topico do Battle x1...

Eu já estou fazendo pra ti ;D

Mas peço pro zipter fazer tbm... dessa forma comparo o meu com o dele e vejo onde posso melhorar...  :rolleyes: 

 

...você é muito foda mano. XD

 

Um fato.

Editado por david0703 (veja o histórico de edições)

Atenciosamente, David Araujo

Meu Conteúdo

 

Fui útil? Gostou? 
Faça uma doação.

 
 
 

"É errando que se erra."

"Gambiarras resolvem instantemente, porém podem complicar em problemas futuros."

"Cada dia vivido é um aprendizado."

Link para o post
Compartilhar em outros sites

Nessa parte do arquivo creaturescripts

addItem(cid, config.prize[1], config.prize[2])

não seria pid?

e, no arquivo movements

broadcastMessage("The survival event will start in "..config.startTime.." seconds.")

e no arquivo globalevents

broadcastMessage("The survival event will start in "..config.startTime.." seconds.")

não seriam minutos?

Editado por david0703 (veja o histórico de edições)

Atenciosamente, David Araujo

Meu Conteúdo

 

Fui útil? Gostou? 
Faça uma doação.

 
 
 

"É errando que se erra."

"Gambiarras resolvem instantemente, porém podem complicar em problemas futuros."

"Cada dia vivido é um aprendizado."

Link para o post
Compartilhar em outros sites

Nessa parte do arquivo creaturescripts

não seria pid?

e, no arquivo movements

e no arquivo globalevents

não seriam minutos?

Falta de atenção no creaturescript, obrigado por alertar.

E, na verdade, são segundos sim. Após entrar a quantidade máxima de jogadores no evento ou se passarem os 5 minutos de espera, os jogadores tem config.startTime segundos para se preparar.

Editado por zipter98 (veja o histórico de edições)

não respondo pms solicitando suporte em programação/scripting

Link para o post
Compartilhar em outros sites

ah sim...

estou adaptando seu script pra esse TÓPICO.

editei uma boa parte, mas não estou com tempo AGORA pra terminar, poderia dar uma olhada?

Obrigado.

Atenciosamente, David Araujo

Meu Conteúdo

 

Fui útil? Gostou? 
Faça uma doação.

 
 
 

"É errando que se erra."

"Gambiarras resolvem instantemente, porém podem complicar em problemas futuros."

"Cada dia vivido é um aprendizado."

Link para o post
Compartilhar em outros sites

Hahahahaha muito foda vcs dois, mais n testei esse script, to sem pc. Mas espero meu battle x1. Darei o rep e melhor resposta assim q entrar no pc. Celular aq.

"O sucesso é uma consequência e não um objetivo. A persistência é o caminho do êxito".
Link para o post
Compartilhar em outros sites

eu vou testar ela

NTO PANZER SERVIDOR 24H 

1554689_1.png

http://narutopanzer.blogspot.com.br/

RATE  EXP 999

 

DBO SERVIDOR 24H 

1549171_1.png

http://dbowtf.ddns.net/

RATE EXP 400

 

 

Link para o post
Compartilhar em outros sites

function getPlayersInArea(fromPos, toPos)

local players = {}

for x = fromPos.x, toPos.x do

for y = fromPos.y, toPos.y do

for z = fromPos.z, toPos.z do

local pos = {x = x, y = y, z = z}

if isPlayer(getTopCreature(pos).uid) then

table.insert(players, getTopCreature(pos).uid)

end

O que seria isto:::: >> local pos ={x = x, y = y, z = z} <<< na dat/lib do evento ? Position do templo ?

 

Esse evento é para qual tfs? funciona em tfs 3.6.0?

Editado por brendoonh (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

isso ai eh o calculo que pega todos os quadradinhos dentro dos pontos recebidos pela função... verifica se eh player e adiciona na tabela o creatureid, se for...

Editado por david0703 (veja o histórico de edições)

Atenciosamente, David Araujo

Meu Conteúdo

 

Fui útil? Gostou? 
Faça uma doação.

 
 
 

"É errando que se erra."

"Gambiarras resolvem instantemente, porém podem complicar em problemas futuros."

"Cada dia vivido é um aprendizado."

Link para o post
Compartilhar em outros sites

Eu tentei por este evento aqui tfs 3.6, não sei se funfa ou não, pode ser que eu n soube colocar corretamente,não tenho mt experiencia, mesmo tando tudo explicadinho, isso é pelo meu pouco conhecimento. Sei que é chato ficar explicando coisinhas bobas,pois ja ta tudo explicado acima, mais peço a colaboração, para ter uma atenção maior pois deu uns erros aqui... Irei postar foto da distro:

erroooo.png?lgfp=3000

Link para o post
Compartilhar em outros sites

Isso seria o quê no caso ? 

 

[05/03/2015 14:54:27] [Warning - Event::loadScript] Event onTimer not found (data/globalevents/scripts/assassin_event.lua)

 

 

 

#Edit 

Erro ao logar... 

distrooo_errro.png?lgfp=3000

Editado por brendoonh (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

OMG, deixei config como uma variável local. O outro erro, depois dou uma olhada.

Quando você arrumar , tem como me da um toque? Gostei mt da ideia desse evento e queria por o mais rapido possivel no meu server *--* ,

Obg pela atenção :3

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 LasseXeterno
      Então, estou tentando adicionar uma nova "race" no meu Ot de base Cyan, tentei seguir 3 tutoriais aqui do tibiaking, um sobre race, porém nos códigos do meu servidor não tem o constant.h e nem o monster.cpp. E o outro tutorial, eu fiz tudo que ele pediu e quando entrei no game para testar, funcionava os golpes e as imunidades, porém não aparecia o número do dano e nem a cor.  Usei esse tutorial como base: 
      Pois ele é derivado. E o outro tutorial que usei foi: 
      Porém nesse, não consegui achar a const.h, e quando fui nos arquivos do creaturescript e adicionei uma cor nova a "COLOR_FAIRY", quando abro o jogo, os pokemons que seriam teoricamente "fada", o que eu usei de teste foi a Clefable. A Clefable tomava IK e dava IK no seu atk do tipo fada. 
      Além de que, o meu erro principal é esse: Warning - Monsters::loadMonster] Unknown race type fairy. (data/monster/pokes/geracao 1/Clefable.xml)
       Pois como eu já disse, não consigo achar onde adicionar uma nova race.

    • Por yuriowns
      Salve rapazes, tranquilo? Preciso de ajuda pra colocar para os npc's que vendem pots verificarem quantos itens possuem no tile em que o player está e se tiver com +80 itens no sqm, o npc avisa e não vende nada até o player ir em um sqm com menos de 80 itens no chão.
       
    • Por A.Mokk
      .Qual servidor ou website você utiliza como base? 
      TFS 0.4
      Qual o motivo deste tópico? 
      Bom pessoal, a algumas semanas atras eu joguei um servidor que havia sistema de imbuimento sendo 8.60, no servidor se utilizava a spellwand para encantar as armas, os comandos eram dado no canal Imbuiment... Gostaria de saber se alguém teria como disponibilizar algum sistema de imbuimento, já procurei pra caramba aqui no fórum mas tudo que encontro é pra versões acima da que eu uso.
       
    • Por Mateus Robeerto
      Não sei se aqui é a área ou algum local para solicitar a alteração do email antigo... Não lembro mais a senha dele, nem a resposta secreta para acessar. Peço a algum administrador ou moderador para, por favor, alterar o email para o novo.
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo