Ir para conteúdo
Banner com Efeitos

fezeRa

Membro
  • Registro em

  • Última visita

Histórico de Curtidas

  1. Obrigado
    fezeRa recebeu reputação de Nysman em Arrumando Acentos   
    Para concertar isso, abra o arquivo com o programa NOTEPAD++ vai em Formatar, e escolhe: Converter para UTF-8 (sem bom), todos os acentos serão corrigidos.
  2. Gostei
    fezeRa deu reputação a Lyu em Channel Help Mute (TFS 0.4)   
    Introdução :
    Muta um jogador no canal HELP por meio de um comando.  
     
    game.cpp
    Procure por Game::playerSay, abaixo de player->setIdleTime(0) adicione :
    if (channelId == CHANNEL_HELP) { std::string helpmute = "0"; player->getStorage("455010", helpmute); time_t now = time(NULL); time_t seconds = atoi(helpmute.c_str()) - now; if (seconds > 0) { std::stringstream sec; sec << "You are muted for " << seconds << " seconds on this channel."; player->sendTextMessage(MSG_STATUS_SMALL, sec.str()); return false; } }  
    data/talkactions/scripts/helpmute.lua :
    function onSay(cid, words, param) if param == '' then return doPlayerSendCancel(cid, 'Informe o nome do jogador e o tempo em segundos.') end local default = 600 local tmp = string.explode(param, ',') if not isCreature(getCreatureByName(tmp[1])) then return doPlayerSendCancel(cid, 'Jogador inexistente ou off-line.') end setPlayerStorageValue(getCreatureByName(tmp[1]), 455010, os.time() + (tonumber(tmp[2]) or default)) doPlayerSendCancel(cid, 'O jogador ' .. tmp[1] .. ' foi mutado.') return true end  
    data/talkactions/talkactions.xml :
    <talkaction log="yes" group="4" access="3" words="/helpmute" event="script" value="helpmute.lua"/>  
     
    Como utilizar?
    Para impedir um jogador de falar no Channel Help, utilize o comando /helpmute Playername, segundos. Para resetar os segundos, utilize o mesmo comando só que em segundos, coloque 0. Comando disponível apenas para a acessos superiores, configuração disponível no XML talkactions.xml.  
     
    Versão do TFS: 0.4
    Créditos: Lyu
  3. Gostei
    fezeRa deu reputação a Vodkart em (Resolvido)Contagem de tempo por Storage   
    #Resolvido via Discord TK!
     
    Foi modificado action/lib e criado talkactions + função que retorna em tempo real o tempo, exemplo da alavanca + rank em tempo real em uso (para teste)
     

     
     
    e depois final do evento (teste)
     

     
  4. Curtir
    fezeRa deu reputação a WooX em (Resolvido)Usar potion e abrir corpos mortos/puxar ring   
    Procure pela função bool Actions::useItemEx e onde estiver assim:
    player->setNextActionTask(NULL); player->stopWalk(); player->setNextAction(OTSYS_TIME() + g_config.getNumber(ConfigManager::EX_ACTIONS_DELAY_INTERVAL) - SCHEDULER_MINTICKS); Altere para:
    int32_t potions[] = {7620, 7589, 7590}; // IDs potions int16_t potionID = item->getID(); if(std::find(std::begin(potions), std::end(potions), potionID) == std::end(potions)) { player->setNextAction(OTSYS_TIME() + g_config.getNumber(ConfigManager::EX_ACTIONS_DELAY_INTERVAL)); } player->stopWalk();  
    Lembrando que isso vai retirar o exausted exActions de todas os items adicionados ali, terá que ser adicionado exausted no script lua das poções.
  5. Curtir
    fezeRa deu reputação a Guizek69 em (Resolvido)Usar potion e abrir corpos mortos/puxar ring   
    @WooX agradeço muito a ajuda!

    Meus problemas foram solucionados.
    Segue enredo para quem tem o mesmo problema para compilar:

    Vá ate a pasta de sua source e abra o arquivo Makefile
    Procure por:
     
    Substitua por:
    Isso resolve o problema da compilação.

    Após isso, você terá que adicionar exaustao a cada potion que foi adicionada a função na source.
    Vá até a pasta Actions de seu OT.
    Abra o script de cada potion adicionada e procure por:
     
    Logo abaixo, adicione:
     
    Sendo:
    23006 = storage para exaustar (fica a seu criterio, mas tem que ser o mesmo para todas as potions adicionadas)
    0.95 = tempo de exaustao (sempre em segundos! No meu caso, 0.95 milesimos de segundo)

    Boa sorte a todos,
  6. Curtir
    fezeRa deu reputação a floW em [Pedido] Historico de Resets do Personagem.   
    Boa noite,
    Gostaria de saber se existe no fórum ou alguém estaria disposto a fazer aqui ao meu pedido e ficar pra galera do TK.
    Na página characters, haver um historico de resets.
    Como abaixo:
     
    (no meu caso o reset é por storage 378378, e também uso uma coluna na tabela players para somar os resets para poder utilizar no highscores)
     

  7. Curtir
    fezeRa deu reputação a floW em [Pedido] Historico de Resets do Personagem.   
    @Coltera Obrigado irmão pela dicassa que você mandou.
    Mas eu manjo quase nada de php haushdahu
  8. Gostei
    fezeRa deu reputação a Coltera em [Pedido] Historico de Resets do Personagem.   
    @floW 
    * Cria uma tabela no banco de dados com as colunas(Você pode colocar quantas colunas quiser, basta ter a ideia); Exemplo: id(auto increment) player_id(id do jogador) reset_level(level resetado) reset_date(data que foi resetado) * Em PHP você irá puxar a tabela que foi criada; Recomendo usar foreach. Exemplo: foreach($SQL->query("Monte sua query") as $info) { /* Código */ } * E dentro do script de reset coloque uma query inserindo as colunas pra quando o jogador resetar inserir as informações nas colunas; Estou sem tempo para criar este histórico; :\  
  9. Curtir
    fezeRa deu reputação a Reds em NPC Concede Bônus aos Players   
    Estou trazendo 1 script por semana (geralmente na terça-feira) e caso você tenha alguma sugestão, poste aqui ou mande em mensagem privada a ideia, podendo ser o da próxima semana.
     
    Olá pessoal, estou trazendo outro script para o TibiaKing, este NPC faz parte de uma série de NPC's que eu posicionei em meu servidor em locais estratégicos, concedendo bônus diferentes para os jogadores.
     
    Em seus NPC's, crie um arquivo XML e coloque o seguinte:
    <?xml version="1.0" encoding="UTF-8"?> <npc name="Luke" script="data/npc/scripts/speedbuff.lua" walkinterval="2000" floorchange="0"> <health now="100" max="100"/> <look type="152" head="95" body="95" legs="29" feet="56" addons="2" corpse="6080"/> <parameters> <parameter key="message_greet" value="Ola, voce gostaria de um bonus?" /> </parameters> </npc>  
    E dentro da pasta de scripts dos seus NPC's crie um arquivo LUA e coloque:
    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 local config ={ effectTime = 10, -- tempo em minutos maxLevel = 125, -- level maximo para receber influencer = 2, -- multiplicador da velocidade aumentada timeStorage = 319203 -- storage para o tempo } local function downSpeed(cid, speed) doChangeSpeed(cid, -speed) 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 if msgcontains(msg, "bonus") then local level = getPlayerLevel(cid) if level < config.maxLevel then if os.time() > getPlayerStorageValue(cid, config.timeStorage) then setPlayerStorageValue(cid, config.timeStorage, config.effectTime * 60 + os.time()) local speed = config.maxLevel - level doChangeSpeed(cid, speed * config.influencer) addEvent(downSpeed, 60 * config.effectTime, cid, speed * config.influencer) selfSay('Voce recebeu um bonus de velocidade.', cid) else local minutesText local secondsText local seconds = math.floor((getPlayerStorageValue(cid, config.timeStorage) - os.time()) % 60) + 1 local minutes = math.floor((getPlayerStorageValue(cid, config.timeStorage) - os.time()) / 60) minutesText = minutes .." minutos e " secondsText = seconds .." segundos." if seconds == 60 then minutes = minutes + 1 end if minutes == 0 then minutesText = "" end if seconds == 0 or seconds == 60 then if minutes > 0 then minutesText = minutes .." minutos." end secondsText = "" end selfSay('Voce ja possui o bonus, ele expira em ' ..minutesText ..secondsText, cid) end else selfSay('O bonus de velocidade so e aplicado para jogadores de level menor de que '..config.maxLevel..".", cid) end end end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) Explicando o código: com essas configurações o NPC irá:
    - Conceder ao jogador 10 minutos de bônus de velocidade para jogadores level 125 ou menos.
    - O jogador que receber o bônus terá velocidade igual a um jogador de level 125.
    - Impedir o jogador de pegar o bônus diversas vezes.
    - Todas as configurações podem ser alteradas na variável "config" no topo do código.
     
    Qualquer dúvida deixe nos comentários e lembre de enviar a sua sugestão  
  10. Curtir
    fezeRa deu reputação a WooX em (Resolvido)Alteração Distro   
    Adicionaram no repositório, faz as alterações.
     
    https://github.com/mattyx14/otxserver/commit/3b9f089b1cdf260e4fe64f6f43380ef77169b400
  11. Curtir
    fezeRa deu reputação a Lyu em Anti Divulgação em LUA   
    Olá @You Know Nothing, vejo que você está afim de utilizar este meu script por mais antigo que seja. Bom, aqui está a correção para o seu problema :
    local domains = {'org', 'no-ip', 'net', 'com', 'pl', 'biz', 'servegame', 'br', 'sytes', 'info'} local symbols = {'.', ',', ';', '-'} function onSay(cid, words) for _, w in ipairs(domains) do for _, s in ipairs(symbols) do if(words:lower():gsub(' ', ''):find(s .. w, 1, true)) then return doPlayerSendCancel(cid, 'Você não tem permissão para divulgar outros servidores.') end end end end  
  12. Curtir
    fezeRa deu reputação a WooX em Push com exhaust com outras actions   
    Precisa ser realizada uma alteração na source, você possui a sources do servidor?
  13. Curtir
    fezeRa deu reputação a Vodkart em (Resolvido)[Pedido] Checkagem de Monstro   
    function getMonsterInArena(area) local t = {} for x = area[1].x - 1, area[2].x + 1 do for y = area[1].y - 1, area[2].y + 1 do local pos = {x=x, y=y, z=area[1].z} local m = getTopCreature(pos).uid if m ~= 0 and isMonster(m) then t[#t+1] = m end end end return t end local position = {{x = 541, y = 34, z = 7}, {x = 560, y = 55, z = 7}} -- começo e final da arena function onThink(interval) if #getMonsterInArena(position) > 0 then doSendAnimatedText(position[1], "Vivo", 50) -- pos onde o efeito vai aparecer end return true end  
  14. Curtir
    fezeRa deu reputação a Cat em [NPC] Elfo Ferreiro V1.0   
    Testado em: TFS 1.0 (10.31)
    Funciona em: TFS 1.0 e TFS 0.4
    Descrição: Você leva uma determinada espada até o npc, fala com ele, ele vai pegar essa espada e ficar com ela por um certo tempo (3min), claro, você irá pagar uma quantia. Ao retornar, sua espada estará melhorada (no caso dos ids utilizados o npc irá trocar o item). Se houver algum bug, reporte que arrumaremos.
    Créditos: Jamison, Daniel.
     
    ---------- • ----------
     
    Diálogo:
     
    22:21 Daniel [250]: hi 
    22:21 Blacksmith Elf: Hello Daniel! I'm a Blacksmith Elf, I can transform your item! 
    22:21 Daniel [250]: transform 
    22:21 Blacksmith Elf: From time to time fate smiles upon those who take great risks and have strong dreams! If you have money, we can try to transform your umbral swords, axes, clubs, bows, crossbows or spellbooks. 
    22:21 Daniel [250]: club 
    22:21 Blacksmith Elf: One handed or two handed? 
    22:21 Daniel [250]: one handed 
    22:21 Blacksmith Elf: Do you want to spend your money to transform your crude umbral mace, yes or no? 
    22:21 Daniel [250]: yes 
    22:21 Blacksmith Elf: Great! Alright, I need a while to finish this club for you. Come ask me later. 22:22 Daniel [250]: hi 
    22:22 Blacksmith Elf: Hello Daniel! I'm a Blacksmith Elf, I can transform your item! 
    22:22 Daniel [250]: transform 
    22:22 Blacksmith Elf: Have you left anything here to transform ? 
    22:22 Daniel [250]: yes 
    22:22 Blacksmith Elf: You must wait until : 22:24:49. 22:25 Daniel [250]: hi 
    22:25 Blacksmith Elf: Hello Daniel! I'm a Blacksmith Elf, I can transform your item! 
    22:25 Daniel [250]: transform 
    22:25 Blacksmith Elf: Have you left anything here to transform ? 
    22:25 Daniel [250]: yes 
    22:25 Blacksmith Elf: Here you have it.  
    ---------- • ----------
     
    Fotos
     

     

     

     
    ---------- • ----------
     
    Script:
     
    data/npc/Blacksmith Elf.lua
     



     
    data/npc/scripts/blacksmith_elf.lua
     



  15. Negativo
    fezeRa recebeu reputação de Storm em DNS go.   
    up
  16. Haha
    fezeRa recebeu reputação de Vodkart em (Resolvido)Modificar Script de Encher Vida   
    Não rolou
  17. Negativo
    fezeRa recebeu reputação de KotZletY em (Resolvido)Modificar Script de Encher Vida   
    up
  18. Gostei
    fezeRa deu reputação a Vodkart em Mudar elemento da Wand   
    e se não usar addEvent? já tentou?
    @Toulouse
     
    tenta assim:
     
    w = { [12031] = {ef = 36, sh = 3, dmg = COMBAT_FIREDAMAGE}, [12032] = {ef = 42, sh = 28, dmg = COMBAT_ICEDAMAGE}, [12033] = {ef = 45, sh = 38, dmg = COMBAT_POISONDAMAGE}, [12034] = {ef = 17, sh = 31, dmg = COMBAT_DEATHDAMAGE}, [12035] = {ef = 11, sh = 35, dmg = COMBAT_ENERGYDAMAGE}, [12036] = {ef = 49, sh = 37, dmg = COMBAT_HOLYDAMAGE} } function onUseWeapon(cid, var) local min, max = 300, 300 -- dano minimo e maximo local target = getCreatureTarget(cid) for stor, info in pairs(w) do if getPlayerStorageValue(cid, stor) == 1 then if target ~= 0 then doSendDistanceShoot(getThingPos(cid), getThingPos(target), info.sh) doAreaCombatHealth(cid, info.dmg, getThingPos(target), 0, -min, -max, info.ef) return true end end end return true end  
  19. Curtir
    fezeRa recebeu reputação de Vodkart em Mudar elemento da Wand   
    A 3 opção resolveu
  20. Gostei
    fezeRa deu reputação a Vodkart em (Resolvido)Double Potion que marca o Tempo   
    n testei
     
    function onSay(cid, words, param) local str,c ="# INFO EXP Potions #\n\n",2 for i = 61002, 61005 do str = str.."[X"..c.."] -> "..(getPlayerStorageValue(cid, i) - os.time() <= 0 and "Não ativo" or "voce tem "..convertTime(getPlayerStorageValue(cid, i) - os.time()).." de exp potion").."\n" c = c + 1 end return doShowTextDialog(cid, 6579, str) end  
  21. Gostei
    fezeRa deu reputação a Vodkart em (Resolvido)Double Potion que marca o Tempo   
    joga essa função na sua lib:
     
    function convertTime(a) if(type(tonumber(a)) == "number" and a > 0) then if (a <= 3599) then local minute = math.floor(a/60) local second = a - (60 * minute) if(second == 0) then return ((minute)..((minute > 1) and " minutos" or " minuto")) else return ((minute ~= 0) and ((minute>1) and minute.." minutos e " or minute.." minuto e ").. ((second>1) and second.." segundos" or second.." segundo") or ((second>1) and second.." segundos" or second.. " segundo")) end else local hour = math.floor(a/3600) local minute = math.floor((a - (hour * 3600))/60) local second = (a - (3600 * hour) - (minute * 60)) if (minute == 0 and second > 0) then return (hour..((hour > 1) and " horas e " or " hora e "))..(second..((second > 1) and " segundos" or " segundo")) elseif (second == 0 and minute > 0) then return (hour..((hour > 1) and " horas e " or " hora e "))..(minute..((minute > 1) and " minutos" or " minuto")) elseif (second == 0 and minute == 0) then return (hour..((hour > 1) and " horas" or " hora")) end return (hour..((hour > 1) and " horas, " or " hora, "))..(minute..((minute > 1) and " minutos e " or " minuto e "))..(second..((second > 1) and " segundos" or " segundo")) end end end  
     
     
    e a talk vc usa assim:
     
    function onSay(cid, words, param, channel) local potion_storage = 61002 return doPlayerSendTextMessage(cid, 25, getPlayerStorageValue(cid, potion_storage) - os.time() <= 0 and "voce nao tem exp potion no momento." or "voce tem "..convertTime(getPlayerStorageValue(cid, potion_storage) - os.time()).." de exp potion") end  
  22. Gostei
    fezeRa deu reputação a WooX em Como diminuir exhaust da SD   
    Pode ser em outra parte sim, mas não é creature.h, essa parada que tu mandou não tem nada a ver. Me envia seu game.cpp.
  23. Gostei
    fezeRa deu reputação a WooX em Como diminuir exhaust da SD   
    Parece estar tudo nos conformes, envia spells.cpp.
  24. Gostei
    fezeRa deu reputação a WooX em Como diminuir exhaust da SD   
    Finalmente! Acredito que o problema esteja aqui, compila e testa ai.
     
  25. Gostei
    fezeRa deu reputação a WooX em Como diminuir exhaust da SD   
    Modifiquei a checagem de exhausted, eu sinceramente recomendo você usar a last release do OTX 2 direto do github do mattyx, não vai mais ter que se preocupar com esse problema e outros que ainda podem surgir.
    https://github.com/mattyx14/otxserver/tree/otxserv2/path_8_6x
     
    Mas se insistir nessa deixa seu spells.h ai também, agora to de saída, mas amanha vejo pra você.

Informação Importante

Confirmação de Termo