Ir para conteúdo
Banner com Efeitos

Fernandooww

Membro
  • Registro em

  • Última visita

Histórico de Curtidas

  1. Curtir
    Fernandooww deu reputação a Dyego em Monster Wall ?   
    Eu já fiz isso, não precisa editar a sprite do monstro, looktypeex transforma o monstro em qualquer item do jogo, criar um monstro novo com uma outfit de parede também dá, porém é mais trabalhoso, ao invés de usar esse noxspr usa o object builder
  2. Obrigado
    Fernandooww deu reputação a Vodkart em [8.6] Task System 4.0! (Task system + Daily Task System)   
    Removido:
     
    *Boss Room
    *Rank Task
    *Prêmios para os 10 primeiros a terminar todas as tasks
     
    Adicionado:
     
    *Daily Task System (Sistema exclusivo de Task diario, podendo pegar 1x a cada 24 hrs, irei explicar mais depois.)
    *Task agora é por progresso, você não pode sair e voltar, terá que terminar a task 1 para avançar para a task  2, assim sucessivamente.
    *Task Points
    *Level para realizar a task
    *Nova talkaction que mostra uma janela de informações sobre o level da task, premios que irá receber, progresso, etc...
    *Items para entrega(Se o jogador deverá levar algum item junto com a quantidade de monstro morta) para finalizar a task
    *Sistema de look Task (Varia de acordo com a sua quantidade de Task Points, podendo ficar por exemplo como "Huntsman", "Ranger", etc...(alterável)
    *Mods e npc mais "clean", várias linhas removidas e o sistema está mais rápido
    *Vou Adicionar "scripts extras" Como:
    --> Tile que só passa quem tiver permissão depois de finalizar determinada quest
     --> Npc de Boss Room para entrar e enfrentar o monstro quem fez determinada quest
     
     
    [+] Resumo do Task system + Daily Task System [+]
     
    Task System: É o sistema de task "original", onde consiste em matar determinada quantidade de monstros(E entregar certo itens <- é configurável), para receber recompensas como Exp, Money e Items.
     
    Algumas mudanças do simple task 3.0 para o 4.0 foram:
     
    [+] O sistema agora é por progresso, isso quer dizer que você terá que ir terminando a quest para avançar para a seguinte.
    [+] O sistema Também recebeu uma alteração, fazendo com que as Tasks precisem que o jogador tenha um level determinado
    [+] A tabela para edição está mais fácil, fazendo com que você adicione ou remova monstros com mais tranquilidade, inclusive alterações das Rewards da Task.
     
    Daily Task System: É um sistema que desenvolvi para que os jogadores sempre estejam se comunicando com o npc de Task, no caso da Task Diaria, vária de acordo com o level do jogador, por exemplo:
     
    Jogadores entre level 6 ao 49 poderá cair em uma dessas 3 Task Diarias: Orcs, Tarantulas ou Wyverns
    Jogadores entre level 50 ao 79 poderá cair em uma dessas 3 Task Diarias: Dragons, Wailing Widows ou Ancient Scarabs
     
    E por ai vai, claro que você poderá aumentar as Task Diarias dependendo do level, eu fiz 3 para cada level que é pra postar, mas tudo isso você pode aumentar! Dependendo do seu servidor.
     
    E sim, você pode fazer a TASK "ORIGINAL" e a TASK "DIARIA" ao mesmo tempo! Ambas são distintas e possuem Rewards diferenciadas!
     
    No caso da Task diaria, levando em conta que você começou a fazer ela no dia 08/01 ás 20:00 Hrs, você tem até o dia 09/01 ás 20:00Hrs para termina-la e receber a recompensa, caso termine antes, a Task diaria só irá ficar disponível para repetição a partir desta mesma data 09/01 20:00 Hrs;
     
    [+] Caso você não termine a tempo, não tem problema, basta esperar este horário e começar uma nova Task.
    [+] Caso você começou a Daily Task e terminou antes desta data. mas por algum motivo esqueceu de entregar e a mesma passou do prazo, não tem importância, caso você tenha matado todos os monstros até 09/01 20:00 Hrs, você poderá entregar está Task em qualquer horário para receber suas Rewards e começar uma task a partir do momento em que você entregou! (INJUSTIÇA AQUI NÃO CARALHO).
     
    [+] Comandos Adicionais [+]
     
    /task -- Mostra as informações da sua Task Atual, como Nome da Task, Level, Rewards, Monstros que você poderá matar, Se tem que entregar algum Item junto, etc...
    /task daily -- É basicamente mostra a mesma informação da Task Principal, porém mostra também qual o prazo limite para entrega da task.
    /task counter -- É um comando que ATIVA ou DESATIVA o contador de monstros mortos na task no seu Channel.
     
    [+] Imagens [+]
     
    Cline neste link para ver algumas imagens da Task : http://imgur.com/a/eLIY3
     
     
     
    ------------------------------------------------ // --------------------------------------------------------------
     
    [+] Instalação do Sistema [+]
     
    Requisitos: Nível Médio de conhecimento em scripting LUA
     
    Pasta Mods
     
    Simple Task.xml
     
    https://pastebin.com/raw/P5hqMC3j
     
    NPC:
     
     
    Ludger.xml
     
    https://pastebin.com/raw/R56yLWHw
     
    simple_task.lua
     
    https://pastebin.com/raw/1mRzJ6aJ
     
    ---------------------------------------------- // ----------------------------------
     
    [+] configuração [+ ]
     
    Task System Principal
     
    task_sys = { [1] = {name = "Trolls", start = 176201, monsters_list = {"Troll","Troll champion"}, level = 8, count = 40, points = 0, items = {}, reward = {}, exp = 2000, money = 2000} }  
    [1]  --> O número entre os colchetes [] significa a ordem da Task, como a Task é por progresso sempre começará no 1 e irá pro [2], assim sucessivamente.
    name --> É o nome da task que o jogador irá fazer.
    start --> é a storage que indicará se o jogador começou a Task
    monster_list ={} --> É o nome dos monstros em que o jogador deverá caçar para completar a Task
    level --> É o level necessário para dar inicio á Task
    count --> É o número de monstros que o jogador tem que matar para completar a Task
    points --> Aqui determinada quantos Task points o jogador irá receber ao completar a Task
    items = {} --> Aqui determinada se além de matar os monstros, o jogador terá que entregar item também! Caso tenha só colocar o {ITEM_ID, QUANTIDADE} EX:
    items = {{2173,1},{2160,10},{2493,2}} rewad --> Aqui determinada se o jogador irá receber itens ao terminar a Task, mesma formula do items /\
    reward = {{2520,1},{2173,1}} exp --> Se o jogador irá receber Exp ao terminar a task. 0 ou quantidade de exp
    Money --> Se o jogador irá receber dinheiro ao terminar a task. 0 ou quantidade de dinheiro
     
     
    Daily Task System
     
    daily_task = { [1] = {name = "Orcs" ,monsters_list = {"Orc Berserker","Orc Rider","Orc Leader","Orc Warlord"}, count = 100, points = 0, reward = {}, exp = 5000, money = 10000} }  
    Segue o padrão da Task original, exceto que não precisa entregar items para o npc!
     
    Como funciona A randomização de level de acordo com a Daily task?
     
    Procure por está tabela em MODS
     
    local t = { [{6,49}] = {1,3}, [{50,79}] = {4,6}, [{80,129}] = {7,9}, [{130,math.huge}] = {10,12} }  
    entre as chaves e colchetes é o level do jogador para as Daily Task, Você pode adicionar quantas você quiser!
     
    Digamos que:
     
    [{6,49}] = {1,3}  --> Quer dizer que entre o level 6 ao 49 o jogador poderá cair na Daily Task número 1(Orcs), 2(Tarantulas) ou 3(Wyvern)!
    [{50,79}] = {4,6} --> Quer dizer que entre o level 50 ao 79 o jogador poderá cair na Daily Task número 4(Dragons), 5(Wailing Widows) ou 6(Ancient Scarabs)!
    ...
    [{130,math.huge}] = {10,12} --> Quer dizer que o jogador level 130 ou MAIS poderá cair na Daily Task número 10(Undead Dragons), 11(HydraS) ou 12(Ghastly Dragons)!
     
     
    Look Rank System
    Procure por está tabela em MODS
     
    local ranks = { [{1, 20}] = "Huntsman", [{21, 50}] = "Ranger", [{51, 100}] = "Big Game Hunter", [{101, 200}] = "Trophy Hunter", [{201, math.huge}] = "Elite Hunter" }  
    Entre 1-20 Task points o Rank será Huntsman
    Entre 21-50 Task posints o Rank será Ranger
    Entre 51-100 Task Points o rank será Big Game Hunter
    etc...
    Altere como quiser!
     
     
  3. Curtir
    Fernandooww deu reputação a Dwarfer em Npcs de Quest   
    Fiz de uma forma simplificada para vocês. Em npcs/scripts crie um arquivo.lua:
     
     
    Como arquivo.xml base você pode utilizar esse, faça as mudanças que desejar.
     
    <?xml version="1.0" encoding="UTF-8"?> <npc name="Dwarfer" script="NOMEDOSEUARQUIVO.lua" walkinterval="2000" floorchange="0"> <health now="100" max="100"/> <look type="66"/> </npc>  
    Para os outros npcs é só copiar a mesma coisa, mudar a ordem do npc em npcOrder para (2, 3, 4...), além das palavras-chave e dos textos enviados ao player. 
     
  4. Curtir
    Fernandooww deu reputação a Dwarfer em Slot System Edit   
    A função que calcula a % aleatória que será adicionada é essa:
    function getper() local n = 1 for i=1,10 do n = n+math.random(0,10) if n < 8*i then break end end return n end Caso queira adicionar uma % fixa e se você não sabe modificar o script, de uma forma mais simples para você, altere para:
    function getper() return 1 end Onde 1 é a % adicionada. 
     
     
  5. Gostei
    Fernandooww deu reputação a Killua em Sistema de Upgrade Bronson Server (refinar)   
    Este é um sistema de refinar itens feito com base no do Bronson Server. Para refinar, o jogador precisa ter uma certa quantidade de Iron Ores (dependendo do level do item) e de um Iron Hammer. 
     

     
    Somente equipamentos e armas podem ser refinados.
     
    crie Killua Upgrading System.lua em data/actions/scripts e coloque:
    --- Sistema de Upgrade de itens feito por Killua. --- Sistema feito com base no do Bronson Server. local vocations = {1, 2, 4, 5, 6, 7, 8} -- Vocações que podem refinar itens local ids_bloqueados = {2160, 5706, 2463} -- Itens que não podem ser refinados local controle = { {level = 0, quantOre = 1, chance = 100}, -- Level do item, quantidade de Iron Ore necessaria, chance de sucesso {level = 1, quantOre = 2, chance = 90}, {level = 2, quantOre = 3, chance = 80}, {level = 3, quantOre = 4, chance = 70}, {level = 4, quantOre = 5, chance = 60}, {level = 5, quantOre = 6, chance = 50}, {level = 6, quantOre = 7, chance = 40}, {level = 7, quantOre = 8, chance = 30}, {level = 8, quantOre = 9, chance = 20}, {level = 9, quantOre = 10, chance = 10} } function getItemLevel(uid) if uid > 0 then return getItemAttribute(uid, "lvl") or 0 end return false end function doItemAddLevel(uid, count) if uid > 0 and tonumber(count) > 0 then return doItemSetAttribute(uid, "lvl", getItemLevel(uid) + count) end return false end function onUse(cid, item, fromPosition, itemEx, toPosition) if not isInArray(vocations, getPlayerVocation(cid)) then return doPlayerSendCancel(cid, "Sua vocacao nao pode refinar.") elseif isInArray(ids_bloqueados, itemEx.uid) then return doPlayerSendCancel(cid, "Este item nao pode ser refinado.") end if getItemInfo(itemEx.itemid).attack > 0 or getItemInfo(itemEx.itemid).defense > 0 or getItemInfo(itemEx.itemid).armor > 0 then for _, upgrade in pairs(controle) do local atk = getItemAttribute(itemEx.uid, "attack") or getItemInfo(itemEx.itemid).attack local def = getItemAttribute(itemEx.uid, "defense") or getItemInfo(itemEx.itemid).defense local arm = getItemAttribute(itemEx.uid, "armor") or getItemInfo(itemEx.itemid).armor local chance = math.random(1, 100) if getItemLevel(itemEx.uid) == upgrade.level then if doPlayerRemoveItem(cid, 5880, upgrade.quantOre) then doSendMagicEffect(getThingPos(itemEx.uid), CONST_ME_CRAPS) if chance <= upgrade.chance then if getItemLevel(itemEx.uid) == 0 then doItemSetAttribute(itemEx.uid, "description", "Esse item foi refinado por" ..getCreatureName(cid)) end doItemAddLevel(itemEx.uid, 1) doItemSetAttribute(itemEx.uid, "name", getItemNameById(itemEx.itemid).. " + " ..getItemLevel(itemEx.uid)) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Voce refinou com sucesso! Agora seu "..getItemNameById(itemEx.itemid).." eh level " ..getItemLevel(itemEx.uid)) if getItemInfo(itemEx.itemid).attack > 0 then doItemSetAttribute(itemEx.uid, "attack", atk + 1) return true elseif getItemInfo(itemEx.itemid).armor > 0 then doItemSetAttribute(itemEx.uid, "armor", arm + 1) return true elseif getItemInfo(itemEx.itemid).defense > 0 and getItemInfo(itemEx.itemid).attack <= 0 then doItemSetAttribute(itemEx.uid, "defense", def + 1) return true end else doTransformItem(itemEx.uid, 2256) doItemSetAttribute(itemEx.uid, 'name', "metal trash") doItemSetAttribute(itemEx.uid, 'attack', 0) doItemSetAttribute(itemEx.uid, 'armor', 0) doItemSetAttribute(itemEx.uid, 'defense', 0) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Voce falhou.") return true end else doPlayerSendCancel(cid, "Voce nao tem iron ores o suficiente. Voce precisa de "..upgrade.quantOre.." iron ores.") end end end else doPlayerSendCancel(cid, "Esse item nao pode ser refinado.") end return true end Em data/actions/actions.xml coloque essa TAG:
    <action itemid="2422" event="script" value="Killua Upgradin System.lua"/> Para configurar, leia meus comentários dentro do código.
  6. Gostei
    Fernandooww deu reputação a VictorFT em Galera como crio items vip?   
    Fiz o Script da Crystal Arrow e aqui está



    <item id="2352" article="a" name="NOME DA ARROW"> <attribute key="weight" value="200" /> <attribute key="attack" value="VALOR DO ATAQUE" /> <attribute key="HitChance" value="100"/> <attribute key="weaponType" value="distance" /> <attribute key="shootType" value="shiverarrow" /> <attribute key="range" value="10" /> <attribute key="breakChance" value="0" /> <attribute key="ammoAction" value="moveback" /> </item> Configurações: Agora a Wand Estilo Holy <item id="Id da wand desejada" article="a" name="Nome Da Wand"> <attribute key="weight" value="3800" /> <attribute key="shootType" value="holy" /> <attribute key="range" value="4" /> <attribute key="weaponType" value="wand" /> <attribute key="magiclevelpoints" value="DEPENDE SE VOCÊ QUISER" /> </item> Configurações: <item id="7424" article="a" name="Nome Da Wand"> <attribute key="weight" value="3800" /> <attribute key="shootType" value="holy" /> <attribute key="range" value="4" /> <attribute key="weaponType" value="wand" /> </item> Agora vá em Weapons e abra Weapons.xml <wand id="ID" level="7" mana="2" min="8" max="18" type="holy" event="function" value="default"> <!-- Nome da Wand --> <vocation id="1"/> <vocation id="2"/> </wand>

    Configurações:





    Obrigado Se Gostou da REP+
  7. Gostei
    Fernandooww deu reputação a VictorFT em Galera como crio items vip?   
    Fiz o Script da Crystal Arrow e aqui está



    <item id="2352" article="a" name="NOME DA ARROW"> <attribute key="weight" value="200" /> <attribute key="attack" value="VALOR DO ATAQUE" /> <attribute key="HitChance" value="100"/> <attribute key="weaponType" value="distance" /> <attribute key="shootType" value="shiverarrow" /> <attribute key="range" value="10" /> <attribute key="breakChance" value="0" /> <attribute key="ammoAction" value="moveback" /> </item> Configurações: Agora a Wand Estilo Holy <item id="Id da wand desejada" article="a" name="Nome Da Wand"> <attribute key="weight" value="3800" /> <attribute key="shootType" value="holy" /> <attribute key="range" value="4" /> <attribute key="weaponType" value="wand" /> <attribute key="magiclevelpoints" value="DEPENDE SE VOCÊ QUISER" /> </item> Configurações: <item id="7424" article="a" name="Nome Da Wand"> <attribute key="weight" value="3800" /> <attribute key="shootType" value="holy" /> <attribute key="range" value="4" /> <attribute key="weaponType" value="wand" /> </item> Agora vá em Weapons e abra Weapons.xml <wand id="ID" level="7" mana="2" min="8" max="18" type="holy" event="function" value="default"> <!-- Nome da Wand --> <vocation id="1"/> <vocation id="2"/> </wand>

    Configurações:





    Obrigado Se Gostou da REP+
  8. Gostei
    Fernandooww deu reputação a Anuudek em [AJUDA] Erro de IP no install.txt do Gesior   
    Fácil, 1° vai no gesior, e abra o instal.txt (Não o .php o .txt). Se estiver com o ip : 127.0.0.2, mude para 127.0.0.1 e salve.
    Depois entre pelo site http://127.0.0.1/. Problema resolvido? Da rep ae kk!
  9. Gostei
    Fernandooww deu reputação a luanluciano93 em (Resolvido)[AJUDA] Gesior 2012 Como Instalando ?   
    Retira essa parte aqui ... 
    $installIP = trim(file_get_contents('install.txt')); if($installIP != $_SERVER['REMOTE_ADDR']) { echo('In file <b>install.txt</b> must be your IP!<br />In file is:<br /><b>' . $installIP . '</b><br />Your IP is:<br /><b>' . $_SERVER['REMOTE_ADDR'] . '</b>'); exit; }
  10. Gostei
    Fernandooww deu reputação a PriisioneR em Como por Anti-Nuker   
    Olha creio que seja por causo dos Account Manager que logam em até 200 no seu servidor ?
    se for
     
    Instalação

    Na pasta data\creaturescripts, coloque isso dentro do arquivo creaturescripts.xml:
     
    <event type="login" name="AntiMbCrash" event="script" value="antimbcrash.lua"/> Na pasta \data\creaturescripts\scripts crie um arquivo chamado checkmcmanager.lua
    Então coloque isto dentro dele:
     
    function onLogin(cid) local limit,days = 2,360 function CheckMcManager(cid) local count,on = 0,getPlayersOnline() if #on > 0 then for i = 1, #on do if getCreatureName(on[i]) == "Account Manager" and getPlayerIp(on[i]) == getPlayerIp(cid) then count = count + 1 end end if count > limit then doAddIpBanishment(getPlayerIp(cid), days * 24 * 60 * 60) doRemoveCreature(cid) end end return true end addEvent(CheckMcManager, 1000, cid) return true end Configuração

    Para configurar é fácil, na segunda linha do script está assim:
    local limit,days = 2,360
    2 = número máximo de Account Manager.
    360 = número de dias que o IP ficará banido. 
  11. Gostei
    Fernandooww deu reputação a Kurwanuss em (Resolvido)script de item que teleporta   
    --ACTIONS.xml--  <action itemid="ID do item" script="nome do arquivo.lua"/>     ---SCRIPT--- function onUse(cid, item, frompos, item2, topos)     local config = { pz = "yes", -- players precisam estar em protection zone para usar? ("yes" or "no"). battle = "yes", -- players deve estar sem battle ("yes" or "no") pos = {x=276, y=71, z=7}  ---- Cordenadas }     if(config.pz == "yes") and (getTilePzInfo(getCreaturePosition(cid)) == FALSE) then doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT,"você precisa estar em protection zone pra poder teleportar.") return TRUE end   if(config.battle == "yes") and (getCreatureCondition(cid, CONDITION_INFIGHT) == TRUE) then doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "Você precisa estar sem battler pra poder teleportar.") return TRUE end   if item.itemid == 5091 then ---- id do item doPlayerSendTextMessage(cid,22,"Nossa Este Artefato é Muito Poderoso!!!") -- mensagem quando ele for usado doTeleportThing(cid,config.pos) doSendMagicEffect(getCreaturePosition(cid), 10) doSendMagicEffect(frompos,6) end return 1 end
  12. Gostei
    Fernandooww deu reputação a EddyHavoc em Perfect VIP System 2.2   
    Perfect Vip system 2.2
    Versão Testada:TFS 0.3.6 - 8.54 - 8.60
    Creditos pelas modificações: Kydrai,Nicekid e Marcryzius e EddyHavoc
    Creditos pelas publicações: EddyHavoc e Vodkart
    Oque Contém no Sistema vip 2.2?
    Quote
    - Compra Vip pela talkaction ( Comando !buyvip ) -- ou sem o comando.
    - Tile para somente Players Vip passarem ( conta também com funçâo os.time )
    - verifica quantos dias de Vip o character ainda possui.
    - Administradores(GOD) podem adicionar e remover dias de Vip para characters.
    -- Administradores(GOD) podem checkar dias de Vip dos Players.
    -- É adicionado [VIP] ao nome e retirado quando a vip Acabar.
    GOD Adicionando e Removendo dias de Vip
     
    Comprando VIP e Checkando dia da sua VIP
    Quote
    Comando:
     
    comprar vip:
    !buyvip
    checkar dias de vip:
    !vipdays
    God checkar dias de vip do character:
    /checkvip Nick
    exemplo: /checkvip Nicekid
     
     
    God adionar dias ao character:
    /addvip Nick,dias
    exemplo: /addvip Nicekid,5
    aqui adicionei 5 dias de vip.
    God Retirar dias de Vip do character:
    /delvip Nick,dias
    exemplo: /delvip Nicekid,5
    aqui retirei 5 dias de vip.
    Primeiro passo
     
    vá até talkactions/scripts Crie um arquivo.lua e renomeie para systemvip.lua
    dentro coloque:
      -- Script System Vip 2.2 -- function onSay(cid, words, param) if(words == "!buyvip") then local price = 5000000 if doPlayerRemoveMoney(cid, price) == TRUE then local days = 30 local daysvalue = days * 24 * 60 * 60 local storageplayer = getPlayerStorageValue(cid, 13540) local timenow = os.time() if getPlayerStorageValue(cid, 13540) - os.time() <= 0 then time = timenow + daysvalue else time = storageplayer + daysvalue end if string.find(tostring(getCreatureName(cid)),"[[Vip]]") then doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Foram adicionados ".. days .." dias de VIP no seu character.") setPlayerStorageValue(cid, 13540, time) local quantity = math.floor((getPlayerStorageValue(cid, 13540) - timenow)/(24 * 60 * 60)) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você tem ".. quantity .." dias de VIP restantes.") else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Foram adicionados ".. days .." dias de VIP no seu character.") setPlayerStorageValue(cid, 13540, time) local name = getCreatureName(cid) db.executeQuery("UPDATE `players` SET `name` = '[Vip] "..name.."' WHERE `id` = "..getPlayerGUID(cid)..";") doRemoveCreature(cid) end else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você precisa de "..price.." gp's para colocar vip.") end elseif(words == "!vipdays") then local timenow = os.time() local quantity = math.floor((getPlayerStorageValue(cid, 13540) - timenow)/(24 * 60 * 60)) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você tem ".. (quantity < 0 and 0 or quantity) .." dias de VIP no seu character.") elseif(words == "/checkvip") then if getPlayerAccess(cid) == 5 then if not param then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Invalid param specified.") end local player = getPlayerByName(param) if not isPlayer(player) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Player "..player.." not found.") end local timenow = os.time() local quantity = math.floor((getPlayerStorageValue(player, 13540) - timenow)/(24 * 60 * 60)) doPlayerPopupFYI(cid, "O jogador tem ".. (quantity < 0 and 0 or quantity) .." dias de VIP no character.") return TRUE end elseif(words == "/addvip") then if getPlayerAccess(cid) == 5 then local t = string.explode(param, ",") if not t[2] then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Invalid param specified.") end local player = getPlayerByName(t[1]) local name = getCreatureName(player) local days = t[2] local pid = getPlayerByNameWildcard(t[1]) if(not pid or (isPlayerGhost(pid) and getPlayerGhostAccess(pid) > getPlayerGhostAccess(cid))) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Player with this name doesn\'t exist or is offline.") return TRUE end local daysvalue = days*3600*24 local storageplayer = getPlayerStorageValue(player, 13540) local timenow = os.time() local time = storageplayer <= 0 and (timenow + daysvalue) or (storageplayer + daysvalue) if string.find(tostring(getCreatureName(pid)),"[[Vip]]") then doPlayerSendTextMessage(player, MESSAGE_INFO_DESCR, "Foram adicionados "..days.." dias de VIP no seu character.") setPlayerStorageValue(player, 13540, time) local quantity = math.floor((getPlayerStorageValue(player,13540) - timenow)/(3600*24)) doPlayerSendTextMessage(player, MESSAGE_INFO_DESCR, "Você tem "..quantity.." dias de VIP restantes.") else setPlayerStorageValue(player, 13540, time) db.executeQuery("UPDATE `players` SET `name` = '[Vip] "..name.."' WHERE `id` = "..getPlayerGUID(player)..";") doRemoveCreature(player) end end elseif(words == "/delvip") then if getPlayerAccess(cid) == 5 then local dec = MESSAGE_INFO_DESCR if(param == "") then return TRUE,doPlayerSendTextMessage(cid,18,"Command param required.")end local C,t = {},string.explode(param, ",") C.pos = getPlayerPosition(cid) C.uid = getCreatureByName(t[1]) C.time = ((tonumber(t[2]) == nil) and 1 or tonumber(t[2]))*3600*24 --Tempo da vip por dia. C.days = (tonumber(t[2]) == nil) and 1 or tonumber(t[2]) --Dias de vip. if(getPlayerStorageValue(C.uid,13540) < C.time)then doPlayerSendTextMessage(cid,dec,'O jogador '..t[1]..' não possui '..C.days..' dias de vip.') else doPlayerSendTextMessage(cid,dec,'Você removeu '..C.days..' dias de vip do player '..t[1]..'.') setPlayerStorageValue(C.uid,13540,getPlayerStorageValue(C.uid,13540)-C.time) end doSendMagicEffect(C.pos, math.random(28,30)) end end return TRUE end price = é o quanto a vip vai custar em gps days = quantos dias de vip serão adicionados ao player em talkactions.xml adicione a tag:
      <talkaction words="!vipdays;!buyvip;/checkvip;/addvip;/delvip" script="systemvip.lua"/> Pronto primeiro passo terminado. Sistema vip sem o !buyvip abra a spoiler Spoiler ---------------------------------------------------------------------------------------------------------------------------- Tile VIP Segundo passo. vá até movements/scripts crie um arquivo.lua e renomeie para vipe.lua dentro coloque:
      -- Script Vip Sytem 1.0 -- function onStepIn(cid, item, position, fromPosition) local config = { msgDenied = "Você não e vip ,fale com Administrador do Server.", msgWelcome = "Seja Bem Vindo a Area vip." } if getPlayerStorageValue(cid, 13540) - os.time() <= 0 then doTeleportThing(cid, fromPosition, true) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, config.msgDenied) doSendMagicEffect(getThingPos(cid), CONST_ME_MAGIC_BLUE) return TRUE end doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, config.msgWelcome) return TRUE end Em movements.xml adicione a tag: <movevent type="StepIn" uniqueid="13700" event="script" value="vipe.lua"/> FIM DA VIP creaturescript/script crie um arquivo.lua e renomeie para endvip.lua e cole isso dentro dele:
      --[[ by EddyHavoc Tibiaking.com ]]-- function onLogin(cid) if getPlayerStorageValue(cid, 13540) - os.time() > 0 then setPlayerStorageValue(cid, 9898, 1) end local pos = {x = 157, y = 50, z = 7} -- posiçao do templo. function EddyHavoc(cid) if isPlayer(cid) then db.executeQuery("UPDATE `players` SET `name` = '"..string.sub(getCreatureName(cid), 7).."' WHERE `id` = "..getPlayerGUID(cid)..";") doRemoveCreature(cid) end end if getPlayerStorageValue(cid, 9898) == 1 and getPlayerStorageValue(cid, 13540) - os.time() < 1 or getPlayerStorageValue(cid, 13540) - os.time() == 0 then doTeleportThing(cid, pos) doPlayerPopupFYI(cid, "Sua vip Account acabou.") setPlayerStorageValue(cid, 9898, -1) if string.find(tostring(getCreatureName(cid)),"[[Vip]]") then addEvent(EddyHavoc, 3*1000, cid) end end return TRUE end em creaturescript.xml adicione a tag:
      <event type="login" name="CheckVip" script="endvip.lua"/>[i] Pronto Seu sistema Vip está terminado.
  13. Gostei
    Fernandooww deu reputação a Stigal em [Resolvido] Vip systen por scroll   
    Primeiramente, vamos na pasta data/actions/scripts, crie um arquivo chamado PremiumScroll.lua e adicione isso dentro:
    function onUse (cid,item) if getPlayerPremiumDays (cid) > 14 then doPlayerSendTextMessage (cid, MESSAGE_INFO_DESCR, "Você precisa ter 15 ou menos dias restantes de Premium Account, para utilizar esse serviço novamente!") doSendMagicEffect (getCreaturePosition (cid), 2) end if doRemoveItem(item.uid, 0) then doPlayerAddPremiumDays(cid, 30) doSendMagicEffect(getCreaturePosition(cid), 14) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você acaba de ganhar 30 dias de Premium Account, terá áreas exclusivas e 35% a mais de EXP como benefício!") end return true end Agora vá na pasta data/creaturescripts/scripts/login.lua .No meio do script terão alguns Events como esses exemplo:
    registerCreatureEvent(cid, "kill") registerCreatureEvent(cid, "onPrepareDeath") registerCreatureEvent(cid, "PlayerLogout") registerCreatureEvent(cid, "onPrepareDeath") registerCreatureEvent(cid, "deathBroadcast") registerCreatureEvent(cid, "DeathBroadcast") registerCreatureEvent(cid, "Idle") Agora ao meio desses, adicione esse Event:
    registerCreatureEvent(cid, "PremiumRate") Vá na pasta data novemente, abra a pasta items e em seguida o arquivo items.xml. Aperte CTRL + F e digite 9004. Assim você irá encontrar um item dourado, oque usaremos como "Premium Scroll". Apague-o e adicione essa tag:
    <item id="9004" article="a" name="Premium Scroll"> <attribute key="description" value="Esse Scroll lhe dá 30 dias de Premium!" /> <attribute key="weight" value="23.00" /> </item> Caso não exista e seu servidor for versão 8.60 adicione do mesmo jeito.
    Ok, ainda na pasta data/creaturescripts, na pasta scripts adicione um arquivo chamado PremiumRate.lua e adicione isso dentro:
    function onLogin(cid) local rate = 1.35 local days = getPlayerPremiumDays(cid) local config = { yes_premium = "Você tem "..((rate - 1)*100).."% de EXP em vantagem, Ainda lhe restam "..days.." dias de Premium!", not_premium = "Tornesse Premium e tenha "..((rate - 1)*100).."% a mais de EXP!", premium = isPremium(cid) } if (config.premium == TRUE) then doPlayerSetExperienceRate(cid, rate) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, config.yes_premium) else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, config.not_premium) end return TRUE end Muito bem agora vamos adicionar as Tags!
    No arquivo actions.xml na pasta data/actions adicione essa tag:
    <action itemid="9004" event="script" value="PremiumScroll.lua"/> E no arquivo creaturescripts.xml:
    <event type="login" name="PremiumRate" script="premiumrate.lua"/> • Explicação do Sistema:



     
     
    Creditos: Roksas
  14. Gostei
    tp.lua local tpId = 1387 local tps = { ["Orshabaal"] = {pos = {x=761, y=57, z=7}, toPos = {x=767, y=52, z=7}, time = 30}, } function removeTp(tp) local t = getTileItemById(tp.pos, tpId) if t then doRemoveItem(t.uid, 1) doSendMagicEffect(tp.pos, CONST_ME_POFF) end end function onDeath(cid) local tp = tps[getCreatureName(cid)] if tp then doCreateTeleport(tpId, tp.toPos, tp.pos) doCreatureSay(cid, "O teleport irá sumir em "..tp.time.." segundos.", TALKTYPE_ORANGE_1) addEvent(removeTp, tp.time*1000, tp) end return TRUE end explicação: ["Orshabaal"] --------- Nome do monstro pos = {x=761, y=57, z=7} ----------- onde o Teleport irá abrir toPos = {x=767, y=52, z=7} ------- onde o teleport vai leva eles time = 30 ------------ tempo em segundos que o teleport ficará aberto em creaturescript adicione: <event type="death" name="tp" event="script" value="tp.lua"/> no arquivo.xml do seu monstro adicione: <script> <event name="tp"/> </script> acho que é mais facil :3
  15. Gostei
    Fernandooww deu reputação a Kimoszin em (RESOLVIDO) [Pedido] Mata monstro e aparecer teleport   
    \data\creaturescripts\scripts\tel.lua

    local pos, toPos = {x = 1024, y = 1025, z = 7}, {x = 1017, y = 1025, z = 7} local name = "Rotworm" function onDeath(cid, corpse, killer) if (isMonster(cid) and getCreatureName(cid) == name) then return doCreateTeleport(1387, toPos, pos) end return true end \data\creaturescripts\creaturescripts.xml <event type="death" name="tel" event="script" value="tel.lua"/> Ai você vai no .xml do monstro e bota: <script> <event name="tel"/> </script>
  16. Gostei
    Fernandooww deu reputação a grafit em Problemas com FRAG!   
    Antes de tudo eu queria pedir desculpas por estar revivendo o tópico mas eu estive com o mesmo problema e não achei em lugar algum a solução..
     
    Depois de muito procurar pelo fix desse bug eu achei a solução.
     
    No seu config.lua a deathlist está desativada
     

    -- Deathlist deathListEnabled = "no" deathListRequiredTime = 1 * 60 * 1000 deathAssistCount = 20 maxDeathRecords = 5  
    Ative essa função e o problema será resolvido!
     

    -- Deathlist deathListEnabled = "yes" deathListRequiredTime = 1 * 60 * 1000 deathAssistCount = 20 maxDeathRecords = 5
  17. Gostei
    Fernandooww deu reputação a Bodak Reborn em Pedido   
    movements/scripts
    nome_arquivo.lua
    local walls = { [1] = {pos = {x = 1050, y = 1050, z = 7}, item = 5322}, [2] = {pos = {x = 1051, y = 1051, z = 7}, item = 5322}, [3] = {pos = {x = 1052, y = 1052, z = 7}, item = 5322}, [4] = {pos = {x = 1053, y = 1053, z = 7}, item = 5322}, [5] = {pos = {x = 1054, y = 1054, z = 7}, item = 5322}, [6] = {pos = {x = 1055, y = 1055, z = 7}, item = 5322}, } function onStepIn(cid, item, position, fromPosition) for i = 1, #walls do doCreateItem (walls[i].item, 1, walls[i].pos) end return true end  
    XML:
    <movevent type="StepIn" actionid="ACTION_ID_DO_PISO" event="script" value="nome_arquivo.lua"/>  
    globalevents/scripts
    nome_arquivo.lua
    local walls = { [1] = {pos = {x = 1050, y = 1050, z = 7}, item = 5322}, [2] = {pos = {x = 1051, y = 1051, z = 7}, item = 5322}, [3] = {pos = {x = 1052, y = 1052, z = 7}, item = 5322}, [4] = {pos = {x = 1053, y = 1053, z = 7}, item = 5322}, [5] = {pos = {x = 1054, y = 1054, z = 7}, item = 5322}, [6] = {pos = {x = 1055, y = 1055, z = 7}, item = 5322}, } function onThink(interval, lastExecution, thinkInterval) for i = 1, #walls do local tileItem = getTileItemById(walls[i].pos, walls[i].item).uid if tileItem ~= 0 then doRemoveItem(tileItem, 1) end end return true end  
    XML:
    <globalevent name="removeWals" interval="604800" event="script" value="nome_arquivo.lua"/>  
  18. Gostei
    Fernandooww deu reputação a Bodak Reborn em Pedido Desesperado   
    COH_PUSHTIME = 10800 -- Tempo (em segundos) de exhausted para usar o comando !gocastle - Padrão (3 horas) COH_AREA = { [1] = {x = 32512, y = 30862, z = 7}, {x = 32616, y = 30959, z = 7}, [2] = {x = 32512, y = 30862, z = 7}, {x = 32616, y = 30959, z = 7}, [3] = {x = 32512, y = 30862, z = 7}, {x = 32616, y = 30959, z = 7}, } -- Canto superior esquerdo / inferior direito do Castle -- // Não mexa daqui para baixo COH_STATUS = 201320111714 COH_PREPARE1 = 201320111715 COH_PUSHSTOR = 201320111716 COH_PREPARE2 = 201320111717 function doCastleRemoveEnemies() for index, creature in ipairs(getPlayersOnline()) do for i = 1, #COH_AREA do if isInArea(getThingPos(creature), COH_AREA[i][1], COH_AREA[i][2]) then if getPlayerGuildName(creature) ~= getGlobalStorageValue(COH_STATUS) then doTeleportThing(creature, getTownTemplePosition(getPlayerTown(creature))) end end end end return true end  
  19. Gostei
    Fernandooww deu reputação a Bodak Reborn em Pedido Desesperado   
    function onStepIn(cid, item, position, fromPosition) doCastleRemoveEnemies() return true end  
  20. Gostei
    Fernandooww deu reputação a Bodak Reborn em Pedido Desesperado   
    movements/scripts
    nome_arquivo.lua
    local config = { from = {x = 1312, y = 3151, z = 7}, -- canto superior esquerdo da área do castelo. to = {x = 1410, y = 3070, z = 7}, -- canto inferior direito da área do castelo. toPos = {x = 1503, t = 1053, z = 7} -- para onde os jogadores irão. } function onStepIn(cid, item, position, fromPosition) if isPlayer (cid) then for _, pid in ipairs (getPlayersOnline()) do if isInRange (getThingPos(pid), config.from, config.to) then doTeleportThing (pid, config.toPos) end end end return true end  
    XML:
    <movevent type="StepIn" actionid="ACTION_ID_DO_TRONO" event="script" value="nome_arquivo.lua"/>  
  21. Gostei
    Fernandooww deu reputação a Bodak Reborn em Pedido Desesperado   
    1º:
    globalevents/scripts
    nome_arquivo1.lua
    function onThink(interval, lastExecution) local config = { tpPos = {x = 1048, y = 1053, z = 7}, -- posição onde o teleport será criado. toPos = {x = 1048, y = 1054, z = 7}, -- posição para onde o jogador será levado. teleportID = 1387 -- ID do teleport. } doCreateTeleport (config.teleportID, config.toPos, config.tpPos) return true end  
    nome_arquivo2.lua
    function onThink(interval, lastExecution) local tpPos = {x = 1048, y = 1053, z = 7} -- posição onde o teleport será criado. local teleportID = 1387 -- ID do teleport. local tpTile = getTileItemById (tpPos, teleportID).uid if tpTile > 0 then doRemoveItem (tpTile, 1) end return true end  
    XML:
    <globalevent name="tpCreate" interval="604800" event="script" value="nome_arquivo1.lua"/> <globalevent name="tpRemove" interval="622800" event="script" value="nome_arquivo2.lua"/>  
    2º: não entendi.

Informação Importante

Confirmação de Termo