Ir para conteúdo

CoyoteStark

Membro
  • Registro em

  • Última visita

Histórico de Curtidas

  1. Obrigado
    CoyoteStark deu reputação a LeoTK em [Novo Critical System] Critical System 2021   
    Servidor testado 0.3.6 8.60 ✅ - Podendo funcionar em 0.4 ⚠️
     
    Primeiro vou explicar um pouco sobre ele é base do script do @xWhiteWolf e modificado para escalar com skill pelo @BangxD e agora modificado novamente para não só funcionar com players mas também com todos os monstros.
     
    Instalação
    Se ja tem instalado siga as instruções abaixo para instalar o script basta remover o registro do login.lua, alterar a tag XML pela nova fornecida Caso não tenha instalado basta instalar normalmente criando o arquivo critical.lua e adicionando as tag no XML  
    Tag XML
     
    Script
     
     
  2. Curtir
    CoyoteStark deu reputação a Kimoszin em Criando suas Raids   
    Olá galerinha, hoje vou ensinar como vocês podem criar suas proprias Raids.

    - Mais oque são Raids?
    São invasões, eventos, que em determinado tempo podem acontecer.

    - Para que servem?
    Deixar seu servidor mais legal, as raids acontecem automaticamente, ou seja, você nao precisa estar com o GOD, CM, GM online para que as invasões começem.

    - Opa, gostei... como eu começo?
    Simples, vou ensinar a vocês agora mesmo.

    1. Vá para \data\raids e crie um arquivo .xml com o nome de um monstre (Exemplo: Monk)

    2. Logo em seguida, adicione os seguintes codigos:

    <raid> <announce delay="0" type="event" message="Message1"> Quando executar a raid, com o tempo do delay ira mandar a Message1 /> <announce delay="2000" type="event" message="Message2"> Quando executar a raid, com o tempo do delay ira mandar a Message2 /> <announce delay="4000" type="event" message="Message3"> Quando executar a raid, com o tempo do delay ira mandar a Message3 /> <singlespawn delay="6000" name="Monk" x="XXXX" y="YYYY" z="ZZ"> Quando executar a raid, com o tempo do delay ira summonar o Monk, nas posições X, Y, Z. /> </raid> 3. Seja coerente, sempre bote umas diferença de tempo (delay) para funcionar tudo perfeitamente. 4. Agora para a Raid funcionar, você deve adicionar ela em \data\raids\raids.xml a seguinte linha <raid name="MonkRaid" file="Monk.xml" chance="10" interval2="60" margin="0"> A cada 60 minutos tem a chance de 10% da raid iniciar /> 5. Para você adicionar mais de um bixo na raid, basta adicionar as seguintes linhas. <singlespawn delay="1500" name="Rat" x="592" y="603" z="6"> <singlespawn delay="1500" name="Cave Rat" x="602" y="573" z="7"> <singlespawn delay="1500" name="Bat" x="607" y="573" z="7"> Variaveis: delay=" " -- Tempo para executar message=" " -- Mensagem quando executar. name=" " -- Nome do monstro que ira summonar x=" " y=" " z=" " -- Posição que ira summonar o monstro raid name=" " -- Nome da raid file=" " -- Nome do arquivo xml da raid chance=" " -- Quanto de chance tem para executar a raid, porcentagem interval2=" " -- Tempo em minutos

    Bom é isso, tentei explicar ao maximo para vocês conseguirem criar suas proprias raids.
    Qualquer duvida estarei aqui.
    Abraços.
  3. Curtir
    CoyoteStark deu reputação a Kaiotp em [Talkaction] Invasao Específica!   
    Iaae galera como vão? Hoje venho trazer para vocês um sistema de Invasão; 
     
    Ele funciona da seguinte maneira: 
    /invasao Monster, Amount, Position 
     
    Exemplo: 
    /invasao Dragon, 3, 1000, 1000, 7 
     
    O nome do monstro e depois da vírgula a quantidade, legal né?
    Vamos instalar?

    Entre na pasta data/talkactions/scripts, crie um arquivo chamado newraid.lua e adicione dentro:  


     
     
    Nesta parte:
    Muito bem, agora siga para o arquivo talkactions.xml e adicione a tag: 



     
    Creditos; 
    kaiotp 
    Roksas
  4. Curtir
    Não tive tempo de testar.
     
    --<event type="death" name="deathAureola" event="script" value="aureola.lua"/>-- --<event type="login" name="loginAureola" event="script" value="aureola.lua"/>-- local time = 3 * 60 -- Tempo que ficará com a aureola local repeatAfter = 2 -- Tempo para repetir o efeito local effect = 69 -- ID do efeito local storage = 36678 function onDeath(cid, corpse, deathList) setPlayerStorageValue(cid, storage, os.time() + time) return true end function onLogin(cid) registerCreatureEvent(cid, "deathAureola") if getPlayerStorageValue(cid, storage) > os.time() then doSendRecursiveEffect(cid, getPlayerStorageValue(cid, storage) - os.time()) end return true end function doSendRecursiveEffect(cid, time) if isCreature(cid) then if time > 0 then doSendMagicEffect(getThingPos(cid), effect) addEvent(doSendRecursiveEffect, repeatAfter*1000, cid, time-repeatAfter) else setPlayerStorageValue(cid, storage, 0) return end end end  
  5. Curtir
    CoyoteStark deu reputação a Kazuya9629 em Tony Tony Chopper NDBO PANZER   
    Download
    http://www.mediafire.com/file/zisxj15e4th9f3q/Tony+Tony+Chopper.rar Virustotal
    https://www.virustotal.com/pt/file/2bffc47c97b67b8f947282cdf4830930f76a92588253251263a07796b3feaead/analysis/1543440849/ creditos : @Kazuya9629
  6. Curtir
    CoyoteStark deu reputação a Kaiotp em [Talkaction] Lista de Staff   
    Uma talkaction que vai incrementar um pouco mais seu servidor. 
     
    !staff se estiver on parecera o seu nome e se não tiver aparecera um pequeno trecho 
     
    Em data/talkactions/talkactions.xml: 
    <talkaction words="!staff" event="script" value="staff.lua"/>
     
    Agora em data/talkactions/scripts: crie um arquivo chamado staff.lua e cole dentro: 
    function onSay(cid, words, param, channel)
            local Info = db.getResult("SELECT * FROM `players` WHERE `online` = '1' AND `group_id` > 1")
            local PlayerString = "Online Staff Members:\n"
            if Info:getID() ~= -1 then
                    local count, i = Info:getRows(false), 0
                       repeat
                       PlayerString = PlayerString .. Info:getDataString("name") .. " - "
                       if Info:getDataInt("group_id") == 2 then
                       PlayerString = PlayerString .. "Tutor"
                       elseif Info:getDataInt("group_id") == 3 then
                       PlayerString = PlayerString .. "Senior Tutor"        
                       elseif Info:getDataInt("group_id") == 4 then
                       PlayerString = PlayerString .. "Game Master"                
                       elseif Info:getDataInt("group_id") == 5 then
                       PlayerString = PlayerString .. "Community Manager"  
                       elseif Info:getDataInt("group_id") == 6 then
                       PlayerString = PlayerString .. "God"
                            end
                     PlayerString = PlayerString .. "\n"
                       until not(Info:next())
                                                      Info:free()
                       else
                       PlayerString = PlayerString .. "No staff online, try again later"
                       end
                       doPlayerPopupFYI(cid, PlayerString);
            return true
    end
      Bom Uso! 
     
    Creditos. 
    Kaiotp 
    Hiromath 
    AlexClusive
     
  7. Curtir
    CoyoteStark deu reputação a LeoTK em [Raid Automatica] MOD Raid Automatica Edit: Brunds   
    Salve galera bom achei esse mod de raid do @Vodkart e Xotservx e resolvi dar uma embelezada, adicionar um mini-tutorial dentro do mod, algumas coisas a mais para facilitar a configuração, alguns efeitos quando os monstros da invasão é sumonado, porém não consegui colocar para aparecer efeito quando os monstros forem removidos, se alguém quiser contribuir e adicionar essa função pra mostrar um efeito nos monstros quando forem removidos sinta-se livre e se for o caso eu atualizo o tópico com essa modificação.
    Mod Abaixo
     
    Vídeo de demonstração
     
     
     
     
     
     
    Nota: 25/02/2019
    (Problemas corrigidos pelo @Vodkart, Efeito quando os monstros forem removidos, e mobs deixando de tentar nascer dentro de casas e área pz e nascendo ao lado)
     
     
    Espero que gostem do script  
     
    Créditos total ao
    @Vodkart
    xotservx
     
  8. Obrigado
    CoyoteStark deu reputação a thetheu123 em Mapa Evento War Castle ViitinG Versão by Brunds   
    muito bom, mas manin como eu troco o destino dele ? pq tipo x 1000 y 1000 7 aqui no meu mapa e em frente a konoha, tem como ajudar por favor obg
  9. Obrigado
    CoyoteStark deu reputação a Vodkart em Character Market ajuda   
    essa query pega pelo nome q lixo, fiz uma nova, ta aí
     
     

    <?xml version="1.0" encoding="ISO-8859-1"?> <mod name="Characters Market System" version="1.0" author="LuckOake" contact="none" enabled="yes"> ------------------------------------------------------------------------------------ <config name="market"><![CDATA[ price = 27112 owner = 27113 level = 30 -- Level mínimo que o character deve ter para ser vendido min_price = 1 -- Preço mínimo de um character max_price = 1000 -- Preço máximo de um character     function pegarPoints(acc) local info = db.getResult("SELECT `p_points` FROM `accounts` WHERE `id` = "..acc) return info:getDataInt("p_points") < 0 and 0 or info:getDataInt("p_points") end   function doTransferCharacter(cid, accId) return db.executeQuery("UPDATE `players` SET `account_id` = "..accId.." WHERE `id` = "..getPlayerGUIDByName(cid).."") end   function doOfflinePlayerAddMoney(guid, money) return db.executeQuery("UPDATE `players` SET `balance` = `balance` + '"..money.."' WHERE `id` = '"..getPlayerGUIDByName(guid).."';") end   function setOfflinePlayerStorageValue(name, key, value) local result = db.getResult("SELECT * FROM `player_storage` WHERE `player_id` = ".. getPlayerGUIDByName(name) .." AND `key` = ".. key ..";") if result:getID() == -1 then return db.executeQuery("INSERT INTO `player_storage` (`player_id`, `key`, `value`) VALUES (".. getPlayerGUIDByName(name) ..", ".. key ..", ".. value ..");") else result:free() return db.executeQuery("UPDATE `player_storage` SET `value` = ".. value .." WHERE `player_id` = ".. getPlayerGUIDByName(name) .." AND `key` = ".. key ..";") end end   function getOfflinePlayerStorageValue(name, key) local result, ret = db.getResult("SELECT `value` FROM `player_storage` WHERE `player_id` = '".. getPlayerGUIDByName(name) .."' AND `key` = ".. key ..";") if result:getID() == -1 then return nil end ret = result:getDataInt("value") result:free() return ret end   function getOfflinePlayerValue(name, value) local result, ret = db.getResult("SELECT `"..value.."` FROM `players` WHERE `id` = "..getPlayerGUIDByName(name)..";") ret = result:getDataInt(value) result:free() return ret end   function isCharacterForSale(name) if not getOfflinePlayerStorageValue(name, price) or getOfflinePlayerStorageValue(name, price) < 1 then return false else return true end end ]]></config> ------------------------------------------------------------------------------------ <talkaction words="!character" event="buffer"><![CDATA[ domodlib('market') local t = string.explode(param, ",")   if t[1] == "sell" then if not t[3] or not tonumber(t[3]) or t[4] or tonumber(t[2]) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Incorrect Params. Specify the character name and the price.") return true elseif getPlayerAccountId(cid) ~= getAccountIdByName(t[2]) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "This is not your character.") return true elseif isCharacterForSale(t[2]) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "This character is already for sale.") return true elseif getPlayerGUIDByName(t[2]) == getPlayerGUID(cid) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "You cannot sell yourself.") return true elseif getPlayerByName(t[2]) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "The character must be offline to be sold.") return true elseif getOfflinePlayerValue(t[2], "level") < level then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Your character can't be sold until it has level "..level..".") return true elseif tonumber(t[3]) < min_price then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Sorry, but the minimum price for selling a character is "..min_price..".") return true elseif tonumber(t[3]) > max_price then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Sorry, but the maximum price for selling a character is "..max_price..".") return true end   setOfflinePlayerStorageValue(t[2], price, t[3]) setOfflinePlayerStorageValue(t[2], owner, getPlayerGUID(cid)) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, 'Your character "'..t[2]..'" is now for sale for the price of "'..t[3]..'" points.') elseif t[1] == "buy" then if not t[2] then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Incorrect Params. Specify the character name.") return true elseif not playerExists(t[2]) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "This character doesn't exist.") return true elseif getPlayerAccountId(cid) == getAccountIdByName(t[2]) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "You can't buy your own character.") return true elseif not isCharacterForSale(t[2]) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "This character is not for sale.") return true elseif getPoints(cid) < getOfflinePlayerStorageValue(t[2], price) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Not enough points. This character's price is "..getOfflinePlayerStorageValue(t[2], price).." points") return true end local pp = getOfflinePlayerStorageValue(t[2], price) local dono = getAccountIdByName(t[2]) db.executeQuery("UPDATE `accounts` SET `p_points` = " .. pegarPoints(dono) + pp .. " WHERE `id` = "..dono) if not getPlayerByGUID(getOfflinePlayerStorageValue(t[2], owner)) then setOfflinePlayerStorageValue(getPlayerNameByGUID(getOfflinePlayerStorageValue(t[2], owner)), 41792, getPlayerGUIDByName(t[2])) else doPlayerSendTextMessage(getPlayerByGUID(getOfflinePlayerStorageValue(t[2], owner)), MESSAGE_STATUS_CONSOLE_BLUE, 'Your character "'..t[2]..'" has been sold for the price of '..getOfflinePlayerStorageValue(t[2], price)..' points.') end doPlayerRemovePoints(cid, getOfflinePlayerStorageValue(t[2], price)) doTransferCharacter(t[2], getPlayerAccountId(cid)) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, 'You bought the character "'..t[2]..'" for the price of '..getOfflinePlayerStorageValue(t[2], price)..' points.') setOfflinePlayerStorageValue(t[2], owner, -1) setOfflinePlayerStorageValue(t[2], price, -1) return true elseif t[1] == "remove" then if not t[2] then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Incorrect Params. Specify the character name.") return true elseif getPlayerAccountId(cid) ~= getAccountIdByName(t[2]) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "This is not your character.") return true elseif not isCharacterForSale(t[2]) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "This character is not for sale.") return true end setOfflinePlayerStorageValue(t[2], price, -1) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, 'You removed the character "'..t[2]..'" from the Characters Market.') return true elseif t[1] == "list" then local result = db.getResult("SELECT `name` FROM `players`") if result:getID() == -1 then doPlayerPopupFYI(cid, "nenhum a venda") return true end local msg = "Characters for Sale:\n\n" while true do local name = result:getDataString("name") if isCharacterForSale(name) then local sex = getOfflinePlayerValue(name, "sex") == 1 and "Male" or "Female" msg = ""..msg.." - ".. name .." (Level: "..getOfflinePlayerValue(name, "level").." / Vocation: "..getVocationInfo(getOfflinePlayerValue(name, "vocation")).name.." / Sex: "..sex.." / Owner: "..getPlayerNameByGUID(getOfflinePlayerStorageValue(name, owner))..") [Price: "..getOfflinePlayerStorageValue(name, price).."] \n" end if not result:next() then break end end doPlayerPopupFYI(cid, msg) return true elseif not t[1] or t[1] ~= "buy" or t[1] ~= "sell" or t[1] ~= "remove" or t[1] ~= "list" then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Incorrect params. You can only 'buy' or 'sell' a character, 'remove' it from the Characters Market or see the 'list' of characters for sale.") return true end return true ]]></talkaction> ------------------------------------------------------------------------------------ <event type="login" name="MarketLogin" event="script"><![CDATA[ function onLogin(cid) domodlib('market') if getPlayerStorageValue(cid, price) > 0 then return false elseif getPlayerStorageValue(cid, 41792) ~= -1 then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "You sold the character "..getPlayerNameByGUID(getPlayerStorageValue(cid, 41792))..". The points is in your account.") setPlayerStorageValue(cid, 41792, -1) end return true end ]]></event> </mod>
  10. Curtir
    CoyoteStark recebeu reputação de TheuKu em (Resolvido)[PEDIDO] Remover parede temporariamente por alavanca   
    function onUse(cid, item, fromPosition, itemEx, toPosition) piece1pos = {x=623, y=377, z=8, stackpos=1} local tempo = 2*60*1000 -- tempo para parede voltar getpiece1 = getThingfromPos(piece1pos) if item.uid == 8107 and item.itemid == 9827 and getpiece1.itemid == 8518 then doRemoveItem(getpiece1.uid,1) doTransformItem(item.uid,item.itemid+1) doPlayerSendTextMessage(cid,22,"acho que ouvi um barulho, uma passagem deve ter se aberto.") addEvent(doCreateItem, tempo, 8518, piece1pos) addEvent(doTransformItem, tempo, item.uid,9827) elseif item.uid == 8107 and item.itemid == 9828 then doTransformItem(item.uid,item.itemid-1) addEvent(doCreateItem, 2*60*1000, item.itemid, piece1pos) else doPlayerSendTextMessage(cid,22,"Não é possivel realizar esta ação.") end return 1 end if item.uid == 8107 >> Unique Id da Alavanca
    item.itemid == 9827 >> ID da alavanca
    getpiece1.itemid == 8518 then >> ID da parede que vai ser removida
    addEvent(doCreateItem, tempo, 8518, piece1pos) >> neste local voce deve colocar novamente o ID da parede q vai ser criada novamente depois de X tempo
    piece1pos = {x=623, y=377, z=8, stackpos=1} >>> Posição da parede
    local tempo = 2*60*1000 -- tempo para parede voltar, neste caso, 2 minutos
    addEvent(doTransformItem, tempo, item.uid,9827) << aqui vc coloca novamente o id da alavanca q voltara para a posição original depois do tempo configurado.
  11. Gostei
    CoyoteStark recebeu reputação de robi123 em (Resolvido)[PEDIDO] Remover parede temporariamente por alavanca   
    function onUse(cid, item, fromPosition, itemEx, toPosition) piece1pos = {x=623, y=377, z=8, stackpos=1} local tempo = 2*60*1000 -- tempo para parede voltar getpiece1 = getThingfromPos(piece1pos) if item.uid == 8107 and item.itemid == 9827 and getpiece1.itemid == 8518 then doRemoveItem(getpiece1.uid,1) doTransformItem(item.uid,item.itemid+1) doPlayerSendTextMessage(cid,22,"acho que ouvi um barulho, uma passagem deve ter se aberto.") addEvent(doCreateItem, tempo, 8518, piece1pos) addEvent(doTransformItem, tempo, item.uid,9827) elseif item.uid == 8107 and item.itemid == 9828 then doTransformItem(item.uid,item.itemid-1) addEvent(doCreateItem, 2*60*1000, item.itemid, piece1pos) else doPlayerSendTextMessage(cid,22,"Não é possivel realizar esta ação.") end return 1 end if item.uid == 8107 >> Unique Id da Alavanca
    item.itemid == 9827 >> ID da alavanca
    getpiece1.itemid == 8518 then >> ID da parede que vai ser removida
    addEvent(doCreateItem, tempo, 8518, piece1pos) >> neste local voce deve colocar novamente o ID da parede q vai ser criada novamente depois de X tempo
    piece1pos = {x=623, y=377, z=8, stackpos=1} >>> Posição da parede
    local tempo = 2*60*1000 -- tempo para parede voltar, neste caso, 2 minutos
    addEvent(doTransformItem, tempo, item.uid,9827) << aqui vc coloca novamente o id da alavanca q voltara para a posição original depois do tempo configurado.
  12. Gostei
    CoyoteStark recebeu reputação de UsToOliNN em Alguem me ensina oque é Storage em .lua   
    sem ninguem ter me explicado, eu entendi, Storage, numero de identificação, que pode tanto limitar de fazer algo uma unica vez, ou dar acesso a uma porta, alavanca, dentre outras coisas.
    eu havia feito uma quest onde o jogador, precisava de um cartao para ter acesso a cave, porem pensei, so ter o cartao nao, ele tambem vai precisar do storage, pq a pessoa poderia pegar este cartao e dar a outro jogador que nao tenha feito a quest, entao, alem de o jogador ter o item, ele tambem precisa ter o storage daquela quest.
    Tambem usei para talkaction de teletransport, usei para uma quest onde havia 9 estatuas que deveriam ser clicadas em ordem. usei storage em uma quest onde o jogador precisava falar com 8 Npcs para ter acesso a uma hunt. 
  13. Gostei
    CoyoteStark deu reputação a UsToOliNN em Alguem me ensina oque é Storage em .lua   
    Bacana estou estudando script, qual quer ajuda é SUPER BEM VINDO
  14. Gostei
    CoyoteStark deu reputação a Danyel Varejao em [System] Auto Loot Perfect   
    ~~~~~ * Auto Loot System 100% * ~~~~~ TFS 0.4 / TFS 0.3.7
    Fala galerinha do Tibiaking, então, várias pessoas estão tendo problema com o sistema de autoloot, aqui vai um sistema que eu editei para melhorar o uso do mesmo. Sem muita enrolação vamos ao que interessa.
     
    1° - Acesse a pasta data/lib e crie um arquivo chamado Auto_Loot.lua, coloque isso dentro do arquivo:
     
     
    2° - Abra a pasta data/actions/scripts e crie um arquivo chamado Auto_Loot_Boost.lua, dentro dele adicione:
     
     
    3° - Abra a pasta data/creaturescripts/scripts e crie um arquivo chamado Auto_Loot.lua, dentro dele adicione:
     
     
    4° - Abra a pasta data/talkactions/scripts e crie um arquivo chamado Auto_Loot.lua, dentro dele adicione:
     
     
    5° - Em data/actions/actions.xml adicione a seguinte tag:
     
    <!-- Auto Loot --> <action itemid="7443" event="script" value="Auto_Loot_Boost.lua"/> Altere o numero 7443 caso queira mudar o id do item do seu auto loot boost.
     
    6° - Em data/creaturescripts/creaturescripts.xml adicione a seguinte tag:
     
    <!-- Auto Loot --> <event type="login" name="Auto_Loot_Login" event="script" value="Auto_Loot.lua"/> <event type="kill" name="Auto_Loot_Kill" event="script" value="Auto_Loot.lua"/> 7° - Em data/talkactions/talkactions.xml adicione a seguinte tag:
     
    <!-- Auto Loot --> <talkaction access="0-4" words="/autoloot;!autoloot" event="script" value="Auto_Loot.lua"/>  
    Créditos
    50% Killua(Vitor Bertolucci)
    50% Danyel Varejão
     
  15. Gostei
    CoyoteStark deu reputação a Thiago Rulexz em DarkSandOTS Layout   
    Bom galera como a maioria ja percebeu eu n manjo porra nenhuma quase nada de script....
    intao procuro ajudar trazendo conteúdo ao tk
    Estava procurando alguns layout para postar aqui no tk 
    Bom vamos la xD
    Achei esse layout mto foda *--------* e vim compartilhar com meus amiguinhos     
    Imagens:



     
    Download
    Scan
     
    Creditos:
    Vecay (pelo layout)
    Eu (so por trazer --')
  16. Gostei
    CoyoteStark deu reputação a WooX em (Resolvido)Script Regeneration com Randon Min Max   
    local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_EFFECT, 95) setCombatParam(combat, COMBAT_PARAM_TARGETCASTERORTOPMOST, 1) setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, 1) function onCastSpell(cid, var) local min, max = 30000, 40000 doCreatureAddHealth(cid, math.random(min, max)) return doCombat(cid, combat, var) end  
  17. Gostei
    eu fiz isso mas continua criando um um codigo de salt ai quando eu vou logar nao aceita
    quando eu fiz isso no site ele aceitava a conta mas mesmo fazendo conta no client nao aceitava

    preciso q eu possa fazer contas no client e o site aceite e vice versa
    eu ja fiz as duas operações pedidas ali e nao resolve o problema
     
    quando eu crio a conta pelo acc manage fica assim em salt
    com um codigo encripitado
     
    D6K2h98iA4F8IfRHV2z-V48NYH9g5pLJgmT4Dd2
     
    se eu crio pelo site nao aparece esse codigo e loga normal no server
     
     
    ______________________________________________________________--
    consegui resolver o problema 
     
    Va até
    std::string salt = generateRecoveryKey(2, 19, true);
    password = salt + password;

    e troque por
    std::string salt = "";
    password = password;
     
    Font: Otland - user Kimet
  18. Gostei
    CoyoteStark deu reputação a WhiteBubble em Dbo Rox V2 8.60 [Open Source][99% SEM BUGS]   
    Dragon Ball
    Rox
    Servidor 100% estável com mais de 200 horas online.
    38 Vocações sendo 9 delas vip que são:
    Shenron,Vegetto,Zaiko,Kagome,Tapion,Kame
    Chilled,C8 e King Vegetta.
    Spells de fast attack (Usa uma vez sai 10 hits).
    Eventos automaticos como: Castle,Battlefield,Run event.
    Reborn level maximo 600.
    Vamos aos bugs que eu encontrei:
    * Zombie event quando o zombie pega algum player todos do evento e mandando pra fora e evento encerra.
    * Erro quando usa spell e a pessoa morre antes da spell acabar no caso das de combo.
    * Erro nos eventos Battlefield e Run event quando vai adicionar a recompensa da erro por faltar uma tabela na database que não me recordo o nome agora.
     
    Update v2
     Adicionado 7 novas vocações vips sendo elas:
    Bills,Whiss,Golden Freeza,Vegetto Blue,Zamasu,Gogeta Blue e Goku Black Evo.
    Adicionado 3 vocações free sendo elas: Zeno, Vados e Vegetto Black.
    Vocações que antes era vip no update v1 agora são free.
    Fazer reborn não precisa mais fazer quest das esferas do dragão.
     Adicionado cassino que se ganha small diamonds que se troca por:
    Divine Stone(Usado para upgrade), Black Stone (Item para virar Vegetto Black) e Leviathan Amulet.
    Adicionado npc que vende Anti Loss Ring Protege 10% contra todos danos e funciona como a band of loss porem infinita. Ele fica no Yama.
    Adicionado sistema de pontuação por hora online, cada 1 hora online = 1 ponto que se pode trocar por itens no npc Points Trader no Yama.
    Adicionado sistema Anti-MC, podendo logar somente 2 contas por ip.
    Adicionado 3 bosses espalhados pelo mapa (Earth).
    Adicionado sistema de forja podendo criar o melhor set, armas free e o item para virar Zeno.
     Adicionado sistema de upgrade fazendo seu item ficar mais forte.
     Adicionado transformação ultra god para todas as vocações, sendo pega no templo de reset ao lado do esquerdo do templo. Necessário ter level 800 e possuir 100 God Essences que dropam do Ultra God Bills em God Island.Para entrar no templo de reset é necessário possuir 1 reset, para dar reset necessita ter level 800 e digitar o comando "!reset", você voltara para o level 100 com o hp/mp de um player level 100 mas ganhara acesso a área de reset que tem o npc de ultra god e a área de forja.
    Nova moeda acima de Gold sendo ela Blue God equivalente a 100 Gold Bars.
     Area de evento pvp e dice/bag adicionada no Yama.
     Area vip adicionada.
     Adicionado 2 sets novos free, 2 armas free, 2 shields free, senzu free (God Senzu), Senzu vip (Mystic Senzu), Vados staff free, Whiss staff vip.
     Vocações que antes era vip na v1 se pega na capsule ao lado direito do templo.
     Algumas modificações no mapa, hunts, quest.
    Por enquanto é só isso que estou lembrando,conforme eu lembro edito o tópico.
     
    Gostou ? Clique em Gostei logo abaixo.
     
    Para consertar o erro da loteria só executar essa query na sua database:
    CREATE TABLE `lottery` ( `id` int(11) NOT NULL auto_increment, `name` varchar(255) NOT NULL, `item` varchar(255) NOT NULL, `world_id` tinyint(2) unsigned NOT NULL default '0', `item_name` varchar(255) NOT NULL, `date` varchar(256) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1;  
     
     
     Downloads
     
    Server (Distro para windows e linux já compilada)      Scan
    Cliente    Scan
    Sources     Scan
    Site (Modern Acc)    Scan
    Database     Scan
     
     
     
     
    Creditos server: Kramer, WhiteBubble
    Creditos site: @Hastafaru e a WhiteBubble por adaptar ao server
    Creditos source: Fir3element e WhiteBubble por aumentar limite de efeitos e por skill fist skill para aumentar attack speed.
     
  19. Gostei
    CoyoteStark deu reputação a MaTTch em Potion infinita só nos traineres   
    local c = { from = {x = 1047, y = 1049, z = 7}, -- canto superior esquerdo da sala dos trainers. to = {x = 1054, y = 1056, z = 7} -- canto inferior direito da sala dos trainers. } local canRemove = true if(isInRange(getThingPos(cid), c.from, c.to)) then canRemove = false end if(canRemove) then doRemoveItem(item.uid, 1) end  
  20. Gostei
    CoyoteStark deu reputação a PedroSTT em [NTO] Kamui me do obito   
    Olá galera , venho trazer pra voces o kamui me do obito , pra quem não sabe , é um jutsu que  teleporta vc e o target para uma dimensão diferente e lah , vai ter monstros com o nome Gedou Kay que irão attackar somente o target.
     
    Vá em spells/spells.xml e colé a seguinte tag ( coloque o id das voc que poderão usar ) 
     
    agora em spells/scripts crie um arquivo .lua com o nome kamuime e cole a seguinte script 
     
    Agorá vá em monster/monsters.xml e cole a tag 
     
    Vá em monster e crie um arquivo .xml com o nome gedou kay e cole isso dentro
     
     
    Agora vá em creaturescripts/creaturescripts.xml e cole a seguinte tag
     
    Agora vá em creaturescripts/scripts crie um arquivo .lua com o nome mtarget e cole isso dentro
     
     
    Créditos
     
  21. Gostei
    CoyoteStark recebeu reputação de Shinaun em (Resolvido)como determinar posição do templo pelo RME tibia   
    vc aperta CTRL T se nao me engano para configurar as cidades.
    Dai vc vai ADD uma nova cidade e definir a posição principal "onde a pessoa vai nascer" e no config.lua vc vai definir qual ID do templo basta vc olhar no RME o ID da town e inserir no config.
  22. Gostei
    CoyoteStark deu reputação a lenardo88 em (Resolvido)como determinar posição do templo pelo RME tibia   
    vlw é ctrl T msm rsrs vlw por me lembrar agora graças a você vou ajudar o cara quie tem uma outra duvida em base disso vou dar os créditos pra vc
  23. Gostei
    CoyoteStark recebeu reputação de lenardo88 em (Resolvido)como determinar posição do templo pelo RME tibia   
    vc aperta CTRL T se nao me engano para configurar as cidades.
    Dai vc vai ADD uma nova cidade e definir a posição principal "onde a pessoa vai nascer" e no config.lua vc vai definir qual ID do templo basta vc olhar no RME o ID da town e inserir no config.
  24. Gostei
    CoyoteStark deu reputação a Wakon em (Resolvido)Talk Criar apenas itens configurados no script   
    Troque pelo seu createitem:
    local items = {2160, 2161, 2162, 2163} -- Aqui você coloca os items permitidos. function onSay(cid, words, param, channel) if getPlayerStorageValue(cid, 9909) < 1 then return doPlayerSendCancel(cid, "Você não tem permissão para usar este comando.") and true end if(param == '') then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Command param required.") return true end local t = string.explode(param, ",") local ret = RETURNVALUE_NOERROR local pos = getCreaturePosition(cid) if t[1] == "list" then local str, n = "Items permitidos:\n\n", "" for v, k in pairs(items) do n = getItemNameById(k) str = str.."".. k .." - ".. n .."\n" end return doShowTextDialog(cid, 1950, str) end local id = tonumber(t[1]) if(not id) then id = getItemIdByName(t[1], false) if(not id) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Item wich such name does not exists.") return true end end if not isInArray(items, id) then return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não pode criar este item, para ver a lista de items permitidos digite: /i list") end local amount = 100 if(t[2]) then amount = t[2] end local item = doCreateItemEx(id, amount) if(t[3] and getBooleanFromString(t[3])) then if(t[4] and getBooleanFromString(t[4])) then pos = getCreatureLookPosition(cid) end ret = doTileAddItemEx(pos, item) else ret = doPlayerAddItemEx(cid, item, true) end if(ret ~= RETURNVALUE_NOERROR) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Couldn't add item: " .. t[1]) return true end doDecayItem(item) if(not isPlayerGhost(cid)) then doSendMagicEffect(pos, CONST_ME_MAGIC_RED) end return true end Adicionei também uma lista dos items permitidos, basta digitar /i list.
    Se der algum problema, me avise.
  25. Gostei
    CoyoteStark deu reputação a Wakon em (Resolvido)Comando /i por storage   
    Troque seu script por esse:
    function onSay(cid, words, param, channel) if getPlayerAccess(cid) < 4 and getPlayerStorageValue(cid, 9909) < 1 then return doPlayerSendCancel(cid, "Você não tem permissão para usar este comando.") and true end if(param == '') then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Command param required.") return true end local t = string.explode(param, ",") local ret = RETURNVALUE_NOERROR local pos = getCreaturePosition(cid) local id = tonumber(t[1]) if(not id) then id = getItemIdByName(t[1], false) if(not id) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Item wich such name does not exists.") return true end end local amount = 100 if(t[2]) then amount = t[2] end local item = doCreateItemEx(id, amount) if(t[3] and getBooleanFromString(t[3])) then if(t[4] and getBooleanFromString(t[4])) then pos = getCreatureLookPosition(cid) end ret = doTileAddItemEx(pos, item) else ret = doPlayerAddItemEx(cid, item, true) end if(ret ~= RETURNVALUE_NOERROR) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Couldn't add item: " .. t[1]) return true end doDecayItem(item) if(not isPlayerGhost(cid)) then doSendMagicEffect(pos, CONST_ME_MAGIC_RED) end return true end E no arquivo talkactions.xml, altere o access do /i para 3.

Informação Importante

Confirmação de Termo