Ir para conteúdo

luispiai1

Membro
  • Registro em

  • Última visita

Histórico de Curtidas

  1. Gostei
    luispiai1 deu reputação a vankk em [10.90] - Eternia Evolution 2016   
    @PLoOc então a idéia de addon seria, duas estátuas para um addon? E nisso teria que ter os itens?
     
    O VIP é nada mais que um premium account, mas apenas com nome diferente para ser mais chamativo. 
    Esse negócio de terceira classe pode ser analisado! Mas não prometo para quando o servidor abrir.
    Eu com o shopping eu vou ter que deixar alguns itens que dá vantagens, mas nada OP dms. Ring, amulet, wand/rod, etc. É inevitável preciso infelizmente lucrar encima disso devido a quantidade de tempo que inpus no servidor e também o esforço e para proteção de DDOS.
    Esse scroll eu devo fazer algo nesse tipo.
     
    Estou aceitando idéia de quests, de sistemas para agora. Começo a trabalhar em quests a partir se segunda feira.
  2. Gostei
    luispiai1 recebeu reputação de vankk em [10.90] - Eternia Evolution 2016   
    Nome de Cidades
     
    1- Cidade 1: Armia
    2- Cidade 2: Pillai
    3- Cidade 3: Vale das Pedras ou Pedreira
    4- Cidade 4: Kalima
    6- Cidade 6: Cidade Perdida ou Ilha Perdida
     
     
    Vantagens Players VIP
     
    1- Áreas específicas (Exp, Loot, Treiners)
    2- Addons e Montarias
    3- Magias
    4- Sistema de promoção igual Tibia Original (Elite Knight, Royal Paladin, etc.)
    5- DP com maior quantidade para armazenar itens.
    6- tag [VIP] no nome
    7- Comando /templo e outros
    8- Comprar Residência
    9- Criar Guild
     
     
    O nome das cidades eu tirei até de alguns jogos, mais gostaria de saber qual monstros terão em determinada área para ficar mais criativo, e as vantagens vip algumas são retiradas do próprio Tibia.
  3. Gostei
    luispiai1 deu reputação a vankk em [10.90] - Eternia Evolution 2016   
    Sobre
    Eternia é um servidor que utiliza scripts antigos meus(vankk) de meados de 2009~2011 para a versão mais atual do Tibia sempre.   Eternia será um servidor Evolution Map totalmente modificado, aparentemente até mesmo, um mapa próprio, tais modificações será adaptadas para o RPG e também estamos focando o para WARS.
    Esse servidor está sendo criado como base cidades como base de cidades do globais, para lembrar as wars lá, é também com diferente.
    O servidor não possui nenhum items over powered (items muitos fortes) no shopping com desvantagens para jogadores que não possam pagar.
    O servidor possuirá teleports para hunts/quests para facilitar o gameplay para ir para as wars.
    Queremos que o PvP de Eternia seja TOTALMENTE MODIFICADO E DINÂMICO. Tais exemplos: Stone skin amulet, might ring foram reformulados completamente, runas/spells em área foi reformulada. Quando o seu time está em war system, você não pode usar runas/spells em área(queremos que as wars seja baseada em Sudden Death Rune, e não avalanche/runas em área).
     

    Quaisquer projetos meu utilizará:  


    Stages Começa com 350x e acaba com 3x.
    O objetivo dessa stages é que queremos manter o PvP intacto, ou seja não queremos war de level 320 para cima.


    Distro
    Será lançado na versão 10.90 utilizando o TFS 1.2 como base por ser o mais atualizado.
     
    Vantagens de ser VIP   Mais experiência que outros jogadores; Ao logar em qualquer character da sua conta mudará o efeito de entrar no servidor; 3 novas cidades: Green City, Hexana, Ereth; Hunts exclusivas com bichos exclusivos da área vip que dão mais experiência e mais loot; Casas exclusivas na área vip; Raids exclusivas na área vip; Possuem depot com até 3 trainers ao mesmo tempo e possuindo depot; Mensagens de anúncio de vip não seram visíveis aos jogadores vips; 12 outfits exclusivas de quem é vip; Depot com mais espaço; Vip list maior; Pode comprar backpacks de runas/potions em Ereth por um preço mais barato que nos NPCs.  

  4. Gostei
    luispiai1 deu reputação a vankk em [10.90] - Eternia Evolution 2016   
    Trabalho de um dia mapeando, horas dormidas em 24 horas: 4 horas.
     

     
    Numeração:
     
    1- Cidade 1 (nada foi modificado ainda // precisando de um nome, sugestões?)
    2- Cidade 2 (precisando de um nome, sugestões?)
    3- Cidade 3 (precisando de um nome, sugestões?)
    4- Cidade 4 (precisando de um nome, sugestões?)
    5- Demon Oak (a ser feita)
    6- Não tenho ideia (precisando de um nome para um mini North de Zao)
     
    #ideias
    Estou a procure de quais vantagens players VIPs podem possuir. Deem ideias!!
  5. Gostei
    luispiai1 deu reputação a Absolute em [UP-LEVEL] Recompensa ao subir de level   
    Fala TKZIANOS de plantão WTF? AUEHAUHEA Mas ok...
     
    Venho hoje trazer a vocês um sistema de ganhar uma recompensa ao conquistar determinado nível (Configurável)
     
     
    Como funciona?

    Quando o jogador conquistar determinado level ele recebe como recompensa X item ou GOLD!
    Mais Absolute, o cara vai ficar se matando e upando de novo para ficar pegando a recompensa... NÃO! Quando o player conquista o level ele recebe uma STORAGE, essa storage faz com que salve isto, ou seja faz com que marque que o jogador já recebeu, se ele tentar burlar o sistema ele não vai receber pelo fato da tal STORAGE já estar gravada nele =p
     
     
     
    Em data/creaturescripts/scripts crie um arquivo chamado uplevelabsolute.lua e coloque o seguinte dentro:
     
    function onAdvance(cid, skill, oldLevel, newLevel) local config = { [50] = {item = 2160, count = 5}, [100] = {item = 2160, count = 15}, [150] = {item = 2160, count = 20}, [200] = {item = 2160, count = 25}, [250] = {item = 2160, count = 30}, [300] = {item = 2160, count = 50}, [350] = {item = 4891, count = 1}, [400] = {item = 4892, count = 1}, } if skill == 8 then for level, info in pairs(config) do if newLevel >= level and (getPlayerStorageValue(cid, 30700) == -1 or not (string.find(getPlayerStorageValue(cid, 30700), "'" .. level .. "'"))) then doPlayerAddItem(cid, info.item, info.count) doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING, "Parabéns, você atingiu o level "..newLevel.." e ganhou "..info.count.." "..getItemNameById(info.item)..".") local sat = getPlayerStorageValue(cid, 30700) == -1 and "Values: '" .. level .. "'" or getPlayerStorageValue(cid, 30700) .. ",'" .. level .. "'" setPlayerStorageValue(cid, 30700, sat) end end end return TRUE end Em data/creaturescripts/creaturescripts.xml adicione a seguinte linha:
    <event type="advance" name="UpAbsolute" event="script" value="uplevelabsolute.lua"/> Em data/creaturescripts/scripts/login.lua abaixo de registerCreatureEvent(cid, "Mail") adicione a seguinte linha:
    registerCreatureEvent(cid, "UpAbsolute") Pronto, você implantou o sistema em seu servidor.

     

    Como configurar:
    [50] = {item = 2160, count = 5}, [50] = level que o player vai receber a tal recompensa
    2160 = item que o player vai receber, no caso 2160 é o Crystal Coin
    count = 5 = quantidade do item, no caso 5 Crystal Coins
     
     
     
    Observação: Ao atingir o level o player receberá uma mensagem e o prêmio estará diretamente em sua backpack.

     
     
     
    Qualquer dúvida peço que poste =D
     
     
     
    Até o próximo sisteminha bb's.
  6. Gostei
    Eu achei aqui no fórum um script pra colocar limite no level.
     
    Ai vai o script
     
    creaturescripts/scripts/maxlvl.lua
     
    VERMELHO - LEVEL MAXIMO CONFIGURÁVEL
     
    creaturescripts.xml
     
     
    login.lua
     
     
    Créditos:
    JujuLady
    VictorTasquin
     
     
     
     
     
    SISTEMA DE RESET:
    AQUI
  7. Gostei
    luispiai1 deu reputação a xWhiteWolf em Sistema de Reset 100%   
    Fala galera do TK, hoje vim pra trazer pra vocês um npc criado por mim e pelo Nogard numa madrugada aí para solucionar a dúvida de um cara no suporte. Eu dei uma melhorada no script original, tirei umas coisas repetidas e adicionei novas funções; 
    Você agora pode configurar se quer que o preço aumente a cada reset, se quer que o level pra resetar aumente e se vc quer que a vida resete junto (e quanto % da vida atual será a vida após resetar).
    Testado em TFS 0.3.6, Versão 8.45

    Sem mais delongas, vamos ao script.
    Antes de tudo crie um arquivo chamado reseter.lua na pasta data\npc\scripts\ e coloque isso daqui dentro dele:


    Você pode editar tudo mexendo aqui:
    local config = {
    minlevel = 150, --- level inical para resetar
    price = 10000, --- preço inicial para resetar
    newlevel = 20, --- level após reset
    priceByReset = 0, --- preço acrescentado por reset
    percent = 100, ---- porcentagem da vida/mana que você terá ao resetar (em relação à sua antiga vida total)
    levelbyreset = 0 --- quanto de level vai precisar a mais no próximo reset
    }
    Feito isso, crie agora o npc que irá utilizar esse script.. em data\npc crie um arquivo.xml chamado Reseter.xml e coloque isso dentro dele:
    Agora é só colocar o seu npc no mapa pelo mapa editor e curtir

    OBS 1: Se seu server for 8.6 ou maior troque no script.lua as funções db.executeQuery por db.query
    OBS 2: Esse script dava pra ser diminuido ainda mais mas por hora deixa ele assim, se vc tiver alguma proposta melhor por favor poste nos comentários que eu testo a sua versão e edito o tópico se for o caso.
    OBS 3: Não remova os créditos, isso é a coisa mais baixa e suja que alguém pode fazer.. eu scripto pra ajudar a comunidade do Tibia a evoluir e libero 99% doque eu faço, se vocês não removerem os créditos e não postarem em outros fórums sem minha permissão isso pode continuar assim.


    --- EDIT: Coloquei algumas imagens pra vcs verem como fica no server  
     
       
     
       

     



    EDIT: Arrumei o problema de o npc não dar bye automáticamente qnd o player se afasta, bugando em algumas versões e impedindo de conversar com outros npcs. Apenas substituam o arquivo em scripts pela versão atualizada, grato.

    EDIT2: Novos erros arrumados, agora o NPC dá bye automaticamente e não buga qnd te reseta.

    EDIT3: Resolvido bug de dar hi, reset, yes várias vezes e derrubar o servidor (troque tanto o xml qnt o script do npc)
    O script também foi identado.
  8. Gostei
    luispiai1 deu reputação a Absolute em [Battlefield Event New!] Exclusivo e mais legal ;p   
    Fala galerinha linda do TK, vejo muita gente reclamando do battlefield do nosso amigo Vodkart, mas aqui funciona 100%, creio que seja rejeição nos TFS, mas então resolvi trazer a vocês um battlefield que venho customizando a algum tempo, o mesmo possui em alguns servidores poloneses, globalwar e cia.
     
    O Evento é um pouco modificado do que o tradicional battlefield, porém acho que ficou mais legal, é de pegar a bandeira do time inimigo, para dar um pouco mais de emoção que tal? rs.
     
    Preste atenção nos arquivos e como configurar, estarei explicando tudo passo a passo.
     
    Atenção, o comando para abrir o evento é: /battlefield 20 (o 20 é o número de participantes, no caso 10 no time vermelho e 10 no preto, coloque sempre números pares para balancear corretamente o evento)
     
    Vamos ao que interessa:
     

    Primeiramente, em data/libs crie um arquivo com o nome de battlefield.lua e adicione o seguinte dentro:
    battlefield = { storage = 201206300801, storage2 = 201206300802, tpPos = {x=32342, y=32213, z=7}, -- aonde aparecerá o teleport pos_team_1 = {x=31621,y=31860,z=7}, -- posição do team 1 (do lado direito) pos_team_2 = {x=31582,y=31860,z=7}, -- posição do team 2 (do lado esquerdo) spectors = {{x=31593,y=31853,z=6},{x=31609,y=31853,z=6},{x=31593,y=31866,z=6},{x=31609,y=31866,z=6}}, -- aonde aparecerá os espectadores (em volta do battlefield) team1Name = "Black Assassins", team2Name = "Red Barbarians", } function doBroadCastBattle(type,msg) for _, cid in pairs(getPlayersOnline()) do if getPlayerStorageValue(cid, battlefield.storage2) ~= -1 then doPlayerSendTextMessage(cid,type,msg) end end return true end function removeTp() local t = getTileItemById(battlefield.tpPos, 1387) if t then doRemoveItem(t.uid, 1) doSendMagicEffect(battlefield.tpPos, CONST_ME_POFF) end end function OpenWallBattle() local x = true local B = { [1] = {1056,{x=31601, y=31858, z=6, stackpos = 1}}, -- posição da barreira [2] = {1056,{x=31601, y=31859, z=6, stackpos = 1}}, -- posição da barreira [3] = {1056,{x=31601, y=31860, z=6, stackpos = 1}}, -- posição da barreira [4] = {1056,{x=31601, y=31861, z=6, stackpos = 1}} -- posição da barreira } for i = 1, #B do if getTileItemById(B[i][2], B[i][1]).uid == 0 then x = false end if x == true then doRemoveItem(getThingfromPos(B[i][2]).uid,1) else doCreateItem(B[i][1], 1, B[i][2]) end end end function getWinnersBattle(storage) local team = storage == 1 and battlefield.team1Name or battlefield.team2Name doBroadcastMessage("Players from team ".. team .." won the event battlefield,they received a Master Surprise Bag!") setGlobalStorageValue(battlefield.storage, -1) removeTp() OpenWallBattle() for _, cid in pairs(getPlayersOnline()) do if getPlayerStorageValue(cid, battlefield.storage2) ~= -1 then doRemoveCondition(cid, CONDITION_OUTFIT) doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid))) if getPlayerStorageValue(cid, battlefield.storage2) == storage then doPlayerAddItem(cid,6571,1) end setPlayerStorageValue(cid, battlefield.storage2, -1) end end end Como configurar este passo;
     
     
     
    Pós o primeiro passo, crie um arquivo em actions/scripts com o nome de battlefieldAbsolute.lua e adicione o seguinte dentro:
    function onUse(cid, item, fromPosition, itemEx, toPosition) local team = getPlayerStorageValue(cid, battlefield.storage2) if (item.actionid == 45001 and team == 1) or (item.actionid == 45002 and team == 2) then getWinnersBattle(team) end return true end
    Em actions.xml, adicione as seguintes linhas:
    <action actionid="49901" event="script" value="battlefieldAbsolute.lua"/> <action actionid="45002" event="script" value="battlefieldAbsolute.lua"/> Pós o segundo passo, vá até sua pasta creaturescripts/scripts e crie um arquivo com o nome de combat.lua e adicione o seguinte:
    function onLogin(cid) if getGlobalStorageValue(_Lib_Battle_Info.TeamOne.storage) == -1 then setGlobalStorageValue(_Lib_Battle_Info.TeamOne.storage, 0) setGlobalStorageValue(_Lib_Battle_Info.TeamTwo.storage, 0) setGlobalStorageValue(_Lib_Battle_Info.storage_count, 0) end registerCreatureEvent(cid, "BattleTeam") registerCreatureEvent(cid, "BattleDeath") return true end function onCombat(cid, target) if isPlayer(cid) and isPlayer(target) then if getPlayerStorageValue(cid, _Lib_Battle_Info.TeamOne.storage) == 1 and getPlayerStorageValue(target, _Lib_Battle_Info.TeamOne.storage) == 1 then doPlayerSendCancel(cid, "You may not attack your team mates.") return false end if getPlayerStorageValue(cid, _Lib_Battle_Info.TeamTwo.storage) == 1 and getPlayerStorageValue(target, _Lib_Battle_Info.TeamTwo.storage) == 1 then doPlayerSendCancel(cid, "You may not attack your team mates.") return false end return true end return true end function onPrepareDeath(cid, deathList, lastHitKiller, mostDamageKiller) if getPlayerStorageValue(cid, _Lib_Battle_Info.TeamOne.storage) >= 1 then setPlayerStorageValue(cid, _Lib_Battle_Info.TeamOne.storage, -1) setGlobalStorageValue(_Lib_Battle_Info.TeamOne.storage, getGlobalStorageValue(_Lib_Battle_Info.TeamOne.storage)-1) doRemoveCondition(cid, CONDITION_OUTFIT) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "[Battle Field] You Are Dead!") if getGlobalStorageValue(_Lib_Battle_Info.TeamOne.storage) == 0 then getWinnersBattle(_Lib_Battle_Info.TeamTwo.storage) else doBroadCastBattle(23,"[BattleField Information] ".._Lib_Battle_Info.TeamOne.name.." "..getGlobalStorageValue(_Lib_Battle_Info.TeamOne.storage).." VS "..getGlobalStorageValue(_Lib_Battle_Info.TeamTwo.storage).." " .._Lib_Battle_Info.TeamTwo.name) end elseif getPlayerStorageValue(cid, _Lib_Battle_Info.TeamTwo.storage) >= 1 then setPlayerStorageValue(cid, _Lib_Battle_Info.TeamTwo.storage, -1) setGlobalStorageValue(_Lib_Battle_Info.TeamTwo.storage, getGlobalStorageValue(_Lib_Battle_Info.TeamTwo.storage)-1) doRemoveCondition(cid, CONDITION_OUTFIT) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "[Battle Field] You Are Dead!") if getGlobalStorageValue(_Lib_Battle_Info.TeamTwo.storage) == 0 then getWinnersBattle(_Lib_Battle_Info.TeamOne.storage) else doBroadCastBattle(23,"[BattleField Information] ".._Lib_Battle_Info.TeamOne.name.." "..getGlobalStorageValue(_Lib_Battle_Info.TeamOne.storage).." VS "..getGlobalStorageValue(_Lib_Battle_Info.TeamTwo.storage).." " .._Lib_Battle_Info.TeamTwo.name) end end return true end Ainda na mesma pasta crie outro arquivo com o nome de pdeath.lua com o seguinte conteúdo: (ATENÇÃO QUE NA MESMA PASTA SÃO 2 ARQUIVOS)
    function onPrepareDeath(cid, corpse, lastHitKiller, mostDamageKiller) if getPlayerStorageValue(cid, config_tvt.green_kills) > 0 then doTeleportThing(cid, config_tvt.green_pos) setGlobalStorageValue(red_kills, getGlobalStorageValue(red_kills) + 1) end if getPlayerStorageValue(cid, config_tvt.red_kills) > 0 then doTeleportThing(cid, config_tvt.red_pos) setGlobalStorageValue(red_kills, getGlobalStorageValue(green_kills) + 1) end doPlayerSendTextMessage(cid, 27, "You dead! by Absolute") return true end Em creaturescripts/creaturescripts.xml adicione as seguintes linhas:
    <event type="preparedeath" name="BattlefieldP" event="script" value="pdeath.lua"/> <event type="combat" name="BattlefieldC" event="script" value="combat.lua"/> Pós o terceiro passo, em movements/scripts crie um arquivo com o nome de battlefieldAbsolute.lua e adicione o seguinte:
    local conditionBlack = createConditionObject(CONDITION_OUTFIT) setConditionParam(conditionBlack, CONDITION_PARAM_TICKS, -1) addOutfitCondition(conditionBlack, {lookType = 134, lookHead = 114, lookBody = 114, lookLegs = 114, lookFeet = 114}) local conditionRed = createConditionObject(CONDITION_OUTFIT) setConditionParam(conditionRed, CONDITION_PARAM_TICKS, -1) addOutfitCondition(conditionRed, {lookType = 143, lookHead = 94, lookBody = 94, lookLegs = 94, lookFeet = 94}) function onStepIn(cid, item, position, fromPosition) if getPlayerAccess(cid) > 3 then doTeleportThing(cid, battlefield.pos_team_1) return true elseif getGlobalStorageValue(battlefield.storage) == 0 then doTeleportThing(cid, battlefield.spectors[math.random(#battlefield.spectors)]) return true end if getGlobalStorageValue(battlefield.storage) > 0 then if getGlobalStorageValue(battlefield.storage) % 2 == 0 then setPlayerStorageValue(cid, battlefield.storage2, 1) doAddCondition(cid, conditionBlack) doTeleportThing(cid, battlefield.pos_team_1) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You will join the team " .. battlefield.team1Name .. "!") else setPlayerStorageValue(cid, battlefield.storage2, 2) doAddCondition(cid, conditionRed) doTeleportThing(cid, battlefield.pos_team_2) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You will join the team " .. battlefield.team2Name .. "!") end setGlobalStorageValue(battlefield.storage, getGlobalStorageValue(battlefield.storage)-1) if getGlobalStorageValue(battlefield.storage) == 0 then doBroadcastMessage("Battlefield will start in 1 minute, please create your strategy!") addEvent(doBroadcastMessage, 60*1000, "BattleField will begin now!") addEvent(OpenWallBattle, 60*1000) else doBroadcastMessage("We are waiting "..getGlobalStorageValue(battlefield.storage).." players to Battlefield starts.") end end return true end Em movements.xml adicione a seguinte linha:
    <movevent type="StepIn" actionid="45000" event="script" value="battlefieldAbsolute.lua"/> Á pedidos fiz o comando para abrir manualmente, então em talkactions/scripts crie um arquivo com o nome de battlefieldopenAbsolute.lua e coloque:
    function onSay(cid, words, param) if getGlobalStorageValue(battlefield.storage) ~= -1 then doPlayerSendCancel(cid, "The event is already open.") return true elseif not tonumber(param) or param % 2 ~= 0 then doPlayerSendCancel(cid, "You must choose an even number.") return true end doBroadcastMessage("The event BattleField was opened and We are waiting "..param.." Players! Team divided into "..((param)/2).." VS "..((param)/2)) setGlobalStorageValue(battlefield.storage, tonumber(param)) local tp = doCreateItem(1387, 1, battlefield.tpPos) doItemSetAttribute(tp, "aid", 45000) return true end Em talkactions.xml adicione a linha:
    <talkaction words="/battlefield" access="3" event="script" value="battlefieldopenAbsolute.lua"/> Screenshots do mapa do evento; Clique em spoiler para ver.
     
     
    Download & Scan do mapa;

Informação Importante

Confirmação de Termo