Ir para conteúdo

Yamborghini

Banido
  • Registro em

  • Última visita

Histórico de Curtidas

  1. Negativo
    Yamborghini recebeu reputação de ITALOx em TFS 0.4 ERRO Call stack overflow.   
    Up
  2. Curtir
    Yamborghini recebeu reputação de L3K0T em (Resolvido)[Error] Tela Estendida TFS 0.4   
    não era isso não...
    tem que mudar no const.h
    #define NETWORK_MAX_SIZE 24590
    para
    #define NETWORK_MAX_SIZE 300000
     
    apagar a pasta obj e recompilar a source do server.
    aconselho atualizar o topico com isso
  3. Curtir
    Yamborghini deu reputação a Vodkart em (Resolvido)[ERRO] Effect ao item dropar de um monstro!   
    @Yamborghini 
     
    local stone_effects = { --[itemid] = effect, --Ex.: [11447] = 297, [11442] = 298, } local function sendEffStone(cid, pos, stones) if not isCreature(cid) then return true end for i = 1, 255 do pos.stackpos = i local item = getTileThingByPos(pos) if item.uid ~= 0 then if isContainer(item.uid) then if isContainer(item.uid) and getContainerSize(item.uid) > 0 then for slot=0, (getContainerSize(item.uid)-1) do local stone = getContainerItem(item.uid, slot) if isInArray(stones, stone.itemid) and stone_effects[stone.itemid] then doSendMagicEffect({x= pos.x+1, y= pos.y, z= pos.z}, stone_effects[stone.itemid]) end end end end end end end function onKill(cid, target) local stones = {11453, 11441, 11442, 11443, 11444, 11445, 11446, 11447, 11448, 11449, 11450, 11451, 11452, 11454, 12244, 12232, 12242, 12417, 12419, 12245, 12401, 12402, 12403, 12404, 12405, 12406, 12407, 12408, 12409, 12410, 12411, 12412, 12413, 12414} --id de todas as stones if ehMonstro(target) and isPlayer(cid) then local pos = getThingPos(target) local pid = getCreatureSummons(cid)[1] addEvent(sendEffStone, 150, pid, pos, stones) end return true end  
  4. Gostei
    Yamborghini deu reputação a Snowsz em Creature Information Offset   
    Faz tempo que não posto nada, então deu vontade, tava brincando um pouco ai fiz esse sisteminha básico.
     
    • Gifs
     
    Nesse primeiro Gif, ao trocar a direção da Outfit, o nome e as barras de informações como Health, Mana, mudam de posição, isso é bom para ajustar as Outfits de acordo com o seu tamanho, como o Demon, ficar com as informações logo em cima da cabeça, ou Hydra, todos estão com o local padrão.

     
    Aqui era como as informações ficavam com essa Outfit originalmente, no padrão de sempre dos clients.

     
     
    Comparativo em imagem estática:
     
    Tibia Outfit antes e depois:

     
    Aqui estão algumas outfits que meu primo @Fae1z fez, apliquei o sistema de offset nelas, uma do Graves, uma do Ekko, ambos são personagens do game League of Legends, e uma baseada Uganda Knuckle:
     
    Ekko antes:

     
    Ekko depois:

     
    Graves antes e depois:

     
    Uganda Knuckle antes e depois:

     
    Aqui eu estava brincando de por as informações da Outfit de anão de modo drogado kkk.

     
     
    • Código
     
    Em Creature.h modifique nesta linha:
    void Creature::drawInformation(const Point& point, bool useGray, const Rect& parentRect, int drawFlags) Mude "const Point& point" para "Point& point".
    Ficando:
    void Creature::drawInformation(Point& point, bool useGray, const Rect& parentRect, int drawFlags)  
    Embaixo de:
     
    std::string getName() { return m_name; } Adicione:
     
    Point getInformationOffset() { return m_informationOffset; } void setInformationOffset(int x, int y) { m_informationOffset.x = x; m_informationOffset.y = y; }  
    Embaixo de:
    Position m_oldPosition; Adicione:
     
    Point m_informationOffset;  
     
    Agora, em Creature.cpp procure por:
    void Creature::drawInformation(const Point& point, bool useGray, const Rect& parentRect, int drawFlags) Mude "const Point& point" para "Point& point".
    Ficando:
    void Creature::drawInformation(Point& point, bool useGray, const Rect& parentRect, int drawFlags) Sim, isso está repetido, é assim mesmo, o processo é necessário em Creature.h e Creature.cpp, nessa função a variável point tem seu tipo alterado de Const para normal.
     
    Ainda em Creature.cpp procure por:
    if(!useGray) fillColor = m_informationColor; Pule duas linhas e adicione:
    point.x += m_informationOffset.x; point.y += m_informationOffset.y;  
    Agora, em Luafunctions.cpp procure por:
    g_lua.bindClassMemberFunction<Creature>("jump", &Creature::jump); Embaixo adicione:
    g_lua.bindClassMemberFunction<Creature>("setInformationOffset", &Creature::setInformationOffset); g_lua.bindClassMemberFunction<Creature>("getInformationOffset", &Creature::getInformationOffset);  
    A parte da source é só isso.
     
    Foi criada uma variável do tipo Point na classe Creature, que pode armazenar dois valores do tipo Int, sendo eles X & Y, assim detendo uma posição de offset, para ajustar a posição das informações(Health Bar, Mana Bar e Name) da criatura, essa variável é usada na função Creature::drawInformation, onde ocorre todo o desenho de informações das criaturas, lá o offset criado altera a posição de um Point usado como posição base das informações, alterando esse Point todo o resto segue aquela posição,  você pode setar o offset diretamente na criatura, as funções podem ser usadas tanto na source usando C++ quanto nos scripts usando Lua, em Lua o uso das funções é o seguinte:
     
    Essa função retorna uma tabela com X & Y, algo como "table = {x = 10, y = 20}", são as posições do offset.
    Creature:getInformationOffset() Exemplo de uso:
     
    local Offset = Creature:getInformationOffset() print(Offset.x) print(Offset.y) Isso vai printar no client_terminal do OTClient os valores de X & Y.
     
    Enquanto esta altera as posições usando os valores X & Y.
    Creature:setInformationOffset(x, y) Exemplo:
    Creature:setInformationOffset(10, -5)  
    Essa configuração de offset vai aumentar X em 10 Pixels e diminuir Y em 5 Pixels, no meu primeiro gif, na direção Sul do Char, eu usei X diminuindo 13 Pixels e Y diminuindo 8 Pixels, algo como isso:
    Creature:setInformationOffset(-13, -8)  
     
    Para tudo isso funcionar igual os gifs acima eu fiz um módulo especial, onde dependendo da Outfit e da direção que a criatura está olhando, ele vai alterar o offset de acordo.
     
    Para criar o módulo, siga estes passos:
     
    Na pasta do OTClient em modules/ crie uma pasta chamada game_creatureinformation, dentro crie um arquivo com o mesmo nome e a extensão .otmod, algo como "game_creatureinformation.otmod", o conteúdo do arquivo é este:
    Module name: game_creatureinformation description: Changes the position of the informations point to correctly draw names and creature bars. author: Snowsz website: tibiaking.com autoload: true reloadable: true sandboxed: true version: 1.0 scripts: [ game_creatureinformation ] @onLoad: init() @onUnload: terminate()  
    Crie um arquivo com o mesmo nome e a extensão .lua, algo como "game_creatureinformation.lua", o conteúdo do arquivo é este:
    --[[ Directions: North /\ East > South \/ West < Structure: [OutfitID] = { [Direction] = {x = OFFSETX, y = OFFSETY}, } ]] --Lista de offsets para cada Outfit. local OutfitOffsets = { [143] = { --Outfit do primeiro gif [North] = {x = -13, y = -8}, [East] = {x = -17, y = -8}, [South] = {x = -13, y = -8}, [West] = {x = -15, y = -8}, }, [160] = { --Outfit de anão com o nome full drogado. [North] = {x = 0, y = 0}, [East] = {x = 0, y = 0}, [South] = {x = -13, y = -80}, [West] = {x = 0, y = 0}, } } local function translateDir(dir) if dir == NorthEast or dir == SouthEast then return East elseif dir == NorthWest or dir == SouthWest then return West end return dir end local function getOutfitInformationOffset(outfit, dir) if OutfitOffsets[outfit] then return OutfitOffsets[outfit][translateDir(dir)] end return {x = 0, y = 0} end local function onCreatureAppear(creature) local Offset = getOutfitInformationOffset(creature:getOutfit().type, creature:getDirection()) creature:setInformationOffset(Offset.x, Offset.y) end local function onCreatureDirectionChange(creature, oldDirection, newDirection) local Offset = getOutfitInformationOffset(creature:getOutfit().type, newDirection) creature:setInformationOffset(Offset.x, Offset.y) end local function onCreatureOutfitChange(creature, newOutfit, oldOutfit) local Offset = getOutfitInformationOffset(newOutfit.type, creature:getDirection()) creature:setInformationOffset(Offset.x, Offset.y) end function init() connect(LocalPlayer, {onOutfitChange = onCreatureOutfitChange}) connect(Creature, { onAppear = onCreatureAppear, onDirectionChange = onCreatureDirectionChange, onOutfitChange = onCreatureOutfitChange }) end function terminate() disconnect(LocalPlayer, {onOutfitChange = onCreatureOutfitChange}) disconnect(Creature, { onAppear = onCreatureAppear, onDirectionChange = onCreatureDirectionChange, onOutfitChange = onCreatureOutfitChange }) end  
    A parte do módulo está finalizada, o que resta agora é configurar as Outfits na tabela com seus determinados Offsets, e não se preocupe, se a outfit não estiver configurada, ela vai seguir o padrão normal, o módulo só altera algo quando determinada Outfit está configurada.
     
    Para configurar o módulo é simples, basta seguir o padrão:
    [ID DA OUTFIT AQUI] = { [North] = {x = 0, y = 0}, [East] = {x = 0, y = 0}, [South] = {x = 0, y = 0}, [West] = {x = -0, y = 0}, }, Nos primeiros colchetes coloque o ID da sua Outfit para ter o offset modificado, os colchetes restantes são as direções, não é necessário mexer neles, dentro de cada índice da tabela tem os offsets X & Y, basta modificar o valor de acordo, sendo ele positivo ou negativo. NÃO SE ESQUEÇA DA VÍRGULA NO FINAL "},".
  5. Gostei
    Yamborghini recebeu reputação de 4Unknow em Projeto PokeTibia GBA - Um novo estilo de PokeTibia   
    Bom dia, pessoal!
     
    Estou recrutando uma galera com experiência para fazer um servidor DIFERENCIADO dos demais de hoje... Acho que isso é o que mais falta nos servidores de hoje.
     
    -Qual a ideia?
     
    Bom, a minha ideia, é criar um servidor que lembre nossa época de infância jogando horas um GameBoy....
     
    Minha idéia não é só ter muitos sistemas que existiam no gameboy e fazê-los funcionar no mundo de Tibia, mas também, mudar os gráficos do Tibia, para os gráficos do pokémon no gameboy!
     
    -O que precisa da equipe?
     
    Por ser um pouco trabalhoso, estou precisando de uma galera experiente em suas áreas...
    São elas:
     
    •Lua
    •C++
    •Sprite
     
    Por enquanto é só...
     
    -Qual o progresso ATUAL do servidor?
     
    O servidor já possui todos os seus sistemas básicos, e além deles, possui também:
     
    •Gender System
    •Gym System
    •Duel System
    •Addon System
    •Unique item System
    •Task System
    •HM System
     
    Algumas Imagens:





    Então é isso, pessoal!
     
    Quem estiver interessado, mandar PM ou responder esse tópico!
  6. Haha
    Yamborghini recebeu reputação de Vodkart em Fazer item adicionar uma descrição a outro item   
    nada aconteceu no look e deu esse erro aqui
     
    [25/06/2018 23:08:57] [Error - Action Interface] 
    [25/06/2018 23:08:57] data/actions/scripts/HMs/HMRide.lua:onUse
    [25/06/2018 23:08:57] Description: 
    [25/06/2018 23:08:57] data/actions/scripts/HMs/HMRide.lua:14: attempt to call field 'uid' (a number value)
    [25/06/2018 23:08:57] stack traceback:
    [25/06/2018 23:08:57]     data/actions/scripts/HMs/HMRide.lua:14: in function <data/actions/scripts/HMs/HMRide.lua:1>
  7. Gostei
    Yamborghini deu reputação a xWhiteWolf em (Resolvido)Spell para ficar intocavel   
    podia pelo menos me agradecer dando rep no tópico né, to fazendo tudo de boa vontade..
  8. Gostei
    Yamborghini deu reputação a xWhiteWolf em (Resolvido)Spell para ficar intocavel   
    ahaauhauhauh eu ainda não curto essas idéias de ter que pagar por script.. faço as coisas na boa vontade e espero uma resposta em troca pelo menos do cara falar que gostou ou me contar como ele utilizou no server. Infelizmente muita gente acha que só porque sou suporter é minha obrigação ajudar e pega o script usa no server e nem responde mais nada
  9. Gostei
    Yamborghini deu reputação a Pedro. em (Resolvido)Tabela MYSQL faltando!   
    exclui a tabela antiga, manualmente ou por sql.
    DROP TABLE `death_list`; e adiciona essa aqui
     
    CREATE TABLE `death_list` ( `id` int(11) NOT NULL AUTO_INCREMENT, `player_id` int(11) NOT NULL, `date` bigint(20) unsigned NOT NULL, `level` int(11) NOT NULL, `killer_name` varchar(255) NOT NULL, PRIMARY KEY (`id`), FOREIGN KEY (`player_id`) REFERENCES `players`(`id`) ON DELETE CASCADE ) ENGINE=InnoDB;  
  10. Gostei
    Yamborghini deu reputação a Pedro. em Top Guilds não funciona GESIOR   
    em outras palavras bgl mo hard, to tentando aqui, vou pedir ajuda pra vê se consigo implementar outro sistema de top guilds.
    Tendo sucesso vou arrumar esse layout e postar aqui e te marco.
  11. Gostei
    Yamborghini recebeu reputação de Myalitth em Daily Teleport   
    Primeiramente abra data/globalevents/scripts e crie o seguinte:
     
    teleporteautomatico.lua
     
    local config = {         day = "Monday","Wednesday","Friday","Sunday",         pos = {x=151, y=77, z=6},         topos = {x=550, y=34, z=7},         time = 5, -- tempo que o teleport ira sumir em minutos         msg_open = "O Portal vai se abrir em 5 minutos.",         msg_close = "O Portal se fechou." } local function DelTp()         local t = getTileItemById(config.pos, 1387)         if t then                 doRemoveItem(t.uid, 1)                 doSendMagicEffect(config.pos, CONST_ME_POFF)         end end function onTimer()                 if (os.date("%A") == config.day) then                 doCreateTeleport(1387, config.topos, config.pos)                 doBroadcastMessage(config.msg_open)                 addEvent(DelTp, config.time*60*1000)                 addEvent(doBroadcastMessage, config.time*60*1000, config.msg_close)         end         return true end adicione em globalevents.xml a seguinte tag:
    <globalevent name="Teleport Automatico" time="15:30" event="script" value="teleportautomatico.lua"/> está configurado para 15:30, caso queira trocar.. se pode trocar de 00:00 até 23:59
     
    para configurá-lo é fácil:
     
            day = "Monday","Wednesday","Friday","Sunday",  -- Dias em que o teleport irá aparecer
            pos = {x=151, y=77, z=6}, -- Posição aonde será criado o teleport
            topos = {x=550, y=34, z=7}, -- Posição pra onde o teleport ira levar o player
            time = 5, -- tempo que o teleport ira sumir em minutos,
     
            msg_open = "SUA MENSAGEM AO ABRIR O TELEPORT"
            msg_close = "MENSAGEM AO FECHAR O TELEPORT"
     
    creditos: @luanluciano93
  12. Curtir
    Yamborghini recebeu reputação de mikaelkelvin em (Resolvido)Abrir Site Ubuntu 12.   
    nada, escolhe como melhor resposta pra fechar o tópico!
  13. Haha
    Yamborghini deu reputação a Fir3element em Testar Proteção de Cliente[Free]   
  14. Gostei
    Yamborghini deu reputação a lordzetros em (Resolvido)[PEDIDO] Raid de aparecer uma Porta!   
    Opa, vou dá uma olhada, daqui a pouco edito aqui.
    Edit1: @Yamborghini Testado e funcionando:
    Em data/globalevents/scripts/criaPorta.lua
     
    function onTime() local day = {"Tuesday", "Thursday","Saturday", "Wednesday"} -- em ingles / ADICIONEI Wednesday para teste, porque hoje é quarta-feira, caso n queira, só remover local itemid = 3456 -- item que sera criado local pos = {x=94, y=126, z=7, stackpos= 1} -- pos onde será criado local min = 1 -- minutos de duração do evento local newitem = 2768 -- Id do novo item if isInArray(day, os.date("%A")) then if (getTileItemById(pos, newitem).uid > 0) then doRemoveItem(getTileThingByPos(pos).uid, newitem) end addEvent(doCreateItem, 100, itemid, 1, pos) doBroadcastMessage("O evento abriu", 25) addEvent(function() doRemoveItem(getTileThingByPos(pos).uid, itemid) doBroadcastMessage("O evento encerrou", 25) doCreateItem(newitem,1,pos) end, min * 60 * 1000) end return true end Em data/globalevents/globalevents.xml
     
    <globalevent name="CriaPorta" time="13:29" event="script" value="criaPorta.lua"/> Repare que tem time="13:29", isso é o horário que irá funcionar o evento.

    OBS.: Se quiser que ele rode em DETERMINADOS INTERVALOS, como por exemplo, de 30 em 30 min, precisa ser feito algumas outras modificações.

    Vai no globalevents.xml, deixe:
     
    <globalevent name="criaPorta" interval="1800000" event="script" value="criaPorta.lua"/> E em criaPorta.lua, deixe:
     
    function onThink(interval, lastExecution) local day = {"Tuesday", "Thursday","Saturday", "Wednesday"} -- em ingles local itemid = 3456 -- item que sera criado local pos = {x=94, y=126, z=7, stackpos= 1} -- pos onde será criado local min = 1 -- minutos de duração do evento local newitem = 2768 -- Id do novo item if isInArray(day, os.date("%A")) then if (getTileItemById(pos, newitem).uid > 0) then doRemoveItem(getTileThingByPos(pos).uid, newitem) end addEvent(doCreateItem, 1000, itemid, 1, pos) doBroadcastMessage("O evento abriu", 25) addEvent(function() doRemoveItem(getTileThingByPos(pos).uid, itemid) doBroadcastMessage("O evento encerrou", 25) doCreateItem(newitem,1,pos) end, min * 60 * 1000) end return true end
    Aí funcionará de 30 em 30 min.

    Valeu! 
  15. Gostei
    Yamborghini deu reputação a lordzetros em (Resolvido)[SUPORTE] NPC RESET não volta level!   
    Certo, então vamos para outra parte, pode me enviar como está na distro agora?
  16. Gostei
    Yamborghini deu reputação a lordzetros em (Resolvido)[SUPORTE] NPC RESET não volta level!   
    Teste com esse:
     
    local tab = { [13] = {effect = 58}, -- [vocationID] = {effect = Number} [14] = {effect = 58}, [15] = {effect = 58}, [16] = {effect = 58} } local delay = 3 -- tempo do efeito da aura em segundos function ariseAura(cid) doSendMagicEffect(getThingPos(cid), tab[getPlayerVocation(cid)].effect) addEvent(function() if isPlayer(cid) then ariseAura(cid) end end, delay * 1000) return true end function onLogin(cid) if tab[getPlayerVocation(cid)] then ariseAura(cid) end return true end  
  17. Gostei
    Yamborghini deu reputação a lordzetros em (Resolvido)[SUPORTE] NPC RESET não volta level!   
    Show de bola, fico feliz que tenha dado certo com os problemas, abraço!
  18. Gostei
    Yamborghini recebeu reputação de Gnius em Modern AAC WebSite Poketibia 1.0   
    Bom galera pra queles que estão procurando site para poketibia esta aqui o design foi eu que modifiquei eu achei bom não sei vocês espero que gostem,
    esse site eh totalmente modificado para servidores de poketibia como andei procurando e não achei resolvi modificar o Modern ACC pois achei mais
    facil o uso.

    estarei mostrano algumas imagens do site para todos vocês





    Download : Web Poketibia 1.0

    Scan Virus Total :




    Tutorial

    1º passo

    aconselho versão mais nova do Xampp 1.7.7 pelo menos e a versão que estou usando mais segura e não tive neum problema
    com ele ate o momento.

    depois que instalou o Xampp entre no phpmyadmin do xampp Criar novo Banco de Dados com o nome que preferir de sua escolha
    carregue o arquivo mysql que geralmente vem com seu servidor de poketibia depois que carregar
    pegue o arquivo do web site poketibia 1.0 extrair dentro da pasta htdocs dentro do Xampp
    pronto o resto agora e facil.

    2º passo

    va no navegador e coloque http://localhost automaticmente ele vai pra pagina de instalação do site

    1º imagem



    2º imagem




    pronto instação completa vamus configurar o restante
    abre o config.lua de dentro da pasta do web site poketibia 1.0

    altere essa linha pois e a coordenada onde o char vai nascer




    obs: o Web site Poketibia 1.0 so suporta ser a configuração do config.lua do seu servidor de poketibia
    tiver em versão criptografada Sha1 então altere para Sha1 a instalação não contem senha de administrador
    do site precisa mudar o acesso de pagina direto do banco de dados qualquer duvida podem pergunta

    espero que gostem do site qualquer bug pode posta que tentaremos corrigir o mais rapido possivel
    gostaria muito da opinião de todos vocês

    Creditos a equipe do Modern Acc por disponibilizar o script do site pra podemos modificar para Poketibia

    AJUDEI ?? REP++


    CREDITOS : nibelis - tibiaking
  19. Gostei
    Yamborghini deu reputação a marcot em (Resolvido)[PEDIDO] "x" Bolt só funcionar com "x" Crossbow   
    Infelizmente não estou sabendo corrigir o bug que ficou, quando o jogador fica com o bow na mão que não seja o correto ele ganha skill como se estivesse batendo normalmente. Eu tentei usar o comando de addSkillTry mas parece que ele buga quando tento um valor negativo.
     
    local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_BLOCKARMOR, 1) setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, 41) setCombatParam(combat, COMBAT_PARAM_HITCOLOR, 170) setCombatFormula(combat, COMBAT_FORMULA_SKILL, 1, 2, 1.2, 2) local combat2 = createCombatObject() setCombatParam(combat2, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat2, COMBAT_PARAM_EFFECT, 31) setCombatParam(combat2, COMBAT_PARAM_DISTANCEEFFECT, 41) setCombatParam(combat2, COMBAT_PARAM_HITCOLOR, 170) setCombatFormula(combat2, COMBAT_FORMULA_SKILL, 0, -10000, 0, -13000) local combat3 = createCombatObject() setCombatParam(combat3, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat3, COMBAT_PARAM_EFFECT, 31) setCombatParam(combat3, COMBAT_PARAM_DISTANCEEFFECT, 41) setCombatParam(combat3, COMBAT_PARAM_HITCOLOR, 170) setCombatFormula(combat3, COMBAT_FORMULA_SKILL, 0, -13000, 0, -15000) local condition = createConditionObject(CONDITION_PARALYZE) setConditionParam(condition, CONDITION_PARAM_TICKS, 5000) setConditionParam(condition, CONDITION_PARAM_SPEED, -400) setConditionFormula(condition, 0, 0, 0, 0) setCombatCondition(combat2, condition) local condition = createConditionObject(CONDITION_PARALYZE) setConditionParam(condition, CONDITION_PARAM_TICKS, 5000) setConditionParam(condition, CONDITION_PARAM_SPEED, -600) setConditionFormula(condition, 0, 0, 0, 0) setCombatCondition(combat3, condition) function onUseWeapon(cid, var) local rand = math.random(1,100) bowID = 13038 itemLeft = getPlayerSlotItem(cid, 6) itemRight = getPlayerSlotItem(cid, 5) if itemLeft.itemid ~= bowID and itemRight.itemid ~= bowID then flechas = getPlayerSlotItem(cid, 10) -- doPlayerAddSkillTry(cid, SKILL_DISTANCE, -1, true) -- BUGA A SKILL DO PERSONAGEM, NAO DESCOMENTAR doPlayerAddItem (cid, flechas.itemid, 1) return false end if rand <= 4 then doSendAnimatedText(getPlayerPosition(cid), "Critical!", TEXTCOLOR_BLACK) doCombat(cid, combat2, var) elseif rand <= 7 then doSendAnimatedText(getPlayerPosition(cid), "Critical!", TEXTCOLOR_BLACK) doCombat(cid, combat3, var) else doCombat(cid, combat, var) end end  
  20. Gostei
    Yamborghini deu reputação a Storm em [TFS 0.x] New look system   
    Fala pessoal , vi muita galera com problema no look (principalmente em narutibias). Então resolvi refazer o sistema de look



     
     
    Crie um novo arquivo em Creaturescripts e cole isso ( Tem que registrar na XML e no login.lua, ambas tags estão na script)
    -- <event type="look" name="showVoc" event="script" value="showvoc.lua"/> -- registerCreatureEvent(cid, showVoc) local t = { [-1] = "Estudante", [0] = "Estudante", [1] = "Genin", [2] = "Chunnin", [3] = "Jounin", [4] = "Anbu", [5] = "Sennin" } function onLook(cid, thing, position, lookDistance) local storage = 35461 local get_description = t[getPlayerStorageValue(thing.uid, storage)] local get_sex = (getPlayerSex(thing.uid) == 0 and "She" or "He") local get_town = getTownName(getPlayerTown(thing.uid)) if isPlayer(thing.uid) and thing.uid ~= cid then doPlayerSetSpecialDescription(thing.uid, "\n ".. get_sex .." are ".. get_description ..". \n ".. get_sex .." is the resident of ".. get_town ..".") end return true end  
    Como o sistema funciona ? como eu configuro ? 

    Primeiramente , a script pega o valor que o player tem de uma storage e a identifica na tabela , onde o que está entre "[]" é o valor da storage
    Exemplo : O player tem a storage 35461 e 3 como o value dela , então no look retornará Jounin 
    Para configurar , mecha aqui
     
    local t = { [-1] = "Estudante", [0] = "Estudante", [1] = "Genin", [2] = "Chunnin", [3] = "Jounin", [4] = "Anbu", [5] = "Sennin" } Lembrando que a ultima parte não deverá conter virgula , ficando assim
    local t = { [-1] = "Estudante", [0] = "Estudante", [1] = "Genin" } A script não funciona se você der look em si mesmo.
    Chars com group maior que 2 retornarão erro ao dar look.
  21. Gostei
    Yamborghini deu reputação a Storm em (Resolvido)[SUPORTE] NPC nao funciona!   
    Não sei quem fez essa script , mas que merda é essa ??? parecia a mim quando comecei. 
     
    Script corrigida
     
  22. Gostei
    Yamborghini deu reputação a vyctor17 em Lockpick e Fishing OTC   
    Tópico rápido não sei se esta na área errada eu postaria na área de showoff mas não achei, estou trabalhando em um modulo pro Otclient de "lockpick" parecido com de skyrim.
    Embora essa primeira versão esta bem mais simples, basicamente ao usar o "lockpick" em uma Bau ou porta aparece a janela onde você tem que encontrar a posição para o "lockpick" abrir o bau ou porta em questão tentar abrir o bau com a posição errada quebra seu "lockpick". se alguém tiver alguma sugestão principalmente na forma de definir a dificuldade dos baus ou de como a skill de "lockpick" vai alterar a dificuldade pode deixar ai que estou precisando kkk.
     
    Edit: não vou criar outro tópico só pra mostrar isso segue o vídeo aqui a ideia é manter a quadrado verde no peixe para pescar ele a velocidade do peixe e o tamanho do quadrado varia de acordo com a dificuldade do peixe. no caso ali esta bem cru, no caso a barra verde quando chegar no máximo você pegaria o peixe se se deixar ela chegar a 0 você perde o peixe.
     
     
  23. Gostei
    Yamborghini deu reputação a Storm em Modificação no script Hiraishin Kunai   
    function onUse(cid, item, fromPosition, itemEx, toPosition) local itemid = 13245 -- Id do item que sera criado na pos local pos = fromPosition local aqui = getPlayerPosition(cid) local vocs = {6, 10} local agua = {4610, 4612, 4611, 4664, 4613, 4666, 4646, 4654, 4609, 4665, 4608, 4625, 4665, 4666, 4645} local parede = {1030, 1029, 1025, 1026, 1027, 1259, 1028, 1032, 1034, 1033, 1536, 1533, 873, 919, 874, 1037, 2700, 2708, 4472, 4475, 4471, 3388, 3373, 3363, 3398, 3408, 3417, 3420, 3407, 3368, 2701, 5130, 6170, 6166, 1596, 3361, 3362, 3363, 3364, 3365, 3366, 3367, 3368, 3369, 3370, 3371, 3372, 3373, 3374, 3375, 3376, 3377, 3378, 3379, 3380, 3381, 3382, 3383, 3384, 3385, 3386, 3387, 3388, 3389, 3390, 3391, 3392, 3393, 3394, 3395, 3396, 3397, 3398, 3399, 3400, 3401, 3402, 3403, 3404, 3405, 3406, 3407, 3408, 3409, 3410, 3411, 3412, 3413, 3414, 3415, 3416, 3417, 3418, 3419, 3420, 3421, 3422} local pedra = {874, 919, 873, 2707, 2784, 2778, 3330, 4471, 4475, 4473, 4472, 4474, 4468, 4478, 4469, 4470, 4479, 2703, 2704, 1534, 2739, 3867, 5324, 5316, 5315, 5317, 1600, 1597, 1601} if getDistanceBetween(aqui, toPosition) >= 8 then return doPlayerSendTextMessage(cid, 27, "muito longe.") elseif(not(isSightClear(aqui, toPosition, 1))) then return doPlayerSendTextMessage(cid, 27, "Isso é impossivel.") elseif(getTilePzInfo(aqui)) then return doPlayerSendCancel(cid, "nao pode usar a tecnica em casas ou areas protegidas.") elseif(getTilePzInfo(toPosition)) then return doPlayerSendCancel(cid, "nao pode usar a tecnica Deus Dragão em casas ou areas protegidas.") elseif(isInArray(agua, itemEx.itemid)) then return doPlayerSendTextMessage(cid, 27, "voce nao pode usar em agua") elseif(isInArray(parede, itemEx.itemid)) then return doPlayerSendTextMessage(cid, 27, "voce nao pode usar em paredes") elseif(isInArray(pedra, itemEx.itemid)) then return doPlayerSendTextMessage(cid, 27, "voce nao pode usar em pedras") elseif(not(isInArray(vocs, getPlayerVocation(cid)))) then return doPlayerSendTextMessage(cid, 27, "Desculpe, Apenas Minato e Tobirama podem usar a tecnica.") end if(doTeleportThing(cid, toPosition, false)) then doSendMagicEffect(pos, 186) doSendMagicEffect(toPosition, 186) doCreateItem(itemid, 1, toPosition) doCreatureSay(cid, "Shunshin", 19) return doSendDistanceShoot(pos, toPosition, 16) end return doPlayerSendCancel(cid, "Desculpe nao foi possivel.") end  
  24. Gostei
    Yamborghini deu reputação a Storm em Modificação no script Hiraishin Kunai   
    Código editado.
  25. Gostei
    Yamborghini deu reputação a Storm em [PEDIDO] NPC Vocation 2   
    local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local talkState = {} function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end function onThink() npcHandler:onThink() end function creatureSayCallback(cid, type, msg) if(not npcHandler:isFocused(cid)) then return false end local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid local x = 2 -- Id da vocação necessaria pra promote local y = 3 -- Id da voc de promote local sto = 4642 -- storage praq ele n faça a promotion novamente local lvl = 8 -- lvl ao resetar local health = 185 -- hp ao resetar local mana = 35 -- mana ao resetar if (msgcontains(msg, 'promotion')) then if getPlayerStorageValue(cid, sto) == -1 then if getPlayerVocation(cid) == x then local playerid = getPlayerGUID(cid) selfSay('Congratulations! You were promoted', cid) setPlayerStorageValue(cid, sto, 1) setCreatureMaxHealth(cid, health) setCreatureMaxMana(cid, mana) db.executeQuery("UPDATE `players` SET `level`="..lvl..",`experience`= 0 WHERE `players`.`id`= ".. playerid .."") else selfSay('You do not have the vocation', cid) end else selfSay('You have already been promoted', cid) end return true end end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new())  

Informação Importante

Confirmação de Termo