Jump to content

Senju uchira

Member
  • Content Count

    156
  • Joined

  • Last visited

Reputation Activity

  1. Upvote
    Senju uchira reacted to Drakoon in BBot Cracked   
    Olá galera do tk, bom venho trazer hoje o BBot crackeado vers 84.3, bem o BBot já tem crackeado em outro forum vulgo Pandoriumx, a unica diferença é que voce não precisa abrir pelo loader.
     
    https://www.sendspace.com/file/4iew72  -- LINK DE DOWNLOAD
     
    https://www.virustotal.com/gui/file/d9380aa0d60055dfafc4543075f92cbe0697f2845deceb771d26756432c9a3fb/detection -- VIRUSTOTAL
     
    Vim trazer isso aqui para o forum, pois tem um certo rapaz VENDENDO essa mesma solução a 40 REAIS, pra mim uma verdadeira MERDA para a comunidade tibiana..
     
    Todos os creditos vão para o Pandoriumx.
     
    OBS: Lembrando NÃO fui eu que realizei o crack, estou apenas disponibilizando a solução sem o loader do bot CRACK
     
    Agradecimentos ao mano @Cjaker por auxiliar nessa solução. 🤙😎, o mais BRABO 😎
  2. Downvote
    Senju uchira got a reaction from ITALOx in [Novos Atributos] Critical/Dodge/Life e Mana Leech/Life e Mana Absorb   
    inline int32_t Item::getCriticalHitChance() const { bool ok; int32_t v = getIntegerAttribute("criticalhitchance", ok); if(ok) return v; return items[id].criticalHitChance; } inline int32_t Item::getDodgeChance() const { bool ok; int32_t v = getIntegerAttribute("dodgechance", ok); if(ok) return v; return items[id].dodgeChance; } inline int32_t Item::getLifeAbsorb() const { bool ok; int32_t v = getIntegerAttribute("lifeabsorb", ok); if(ok) return v; return items[id].lifeAbsorb; } inline int32_t Item::getManaAbsorb() const { bool ok; int32_t v = getIntegerAttribute("manaabsorb", ok); if(ok) return v; return items[id].manaAbsorb; } inline int32_t Item::getLifeLeech() const { bool ok; int32_t v = getIntegerAttribute("lifeleech", ok); if(ok) return v; return items[id].lifeLeech; } inline int32_t Item::getManaLeech() const { bool ok; int32_t v = getIntegerAttribute("manaleech", ok); if(ok) return v; return items[id].manaLeech; } NAO TEM NA TFS 0.4.0.0
    @up
  3. Haha
    Senju uchira reacted to Cat in Pack Sprites 9GB [Vários Temas]   
    Mesmo sem saber a quem creditar, afinal, essas sprites são doações? @LeoTK
  4. Like
    Senju uchira reacted to joaovitorbk9 in AJUDA AQUI +REP problemas encontrados nas spels e monsters   
    o primeiro erro do OBITO, ta faltando uma lib. que seria a formatação da spell
    olha na pasta que ele ta indicando ai no log
    data/spells/scripts/kabuto/ETC***
    data/spells/scripts/nagato/ETC***
    data/spells/scripts/chouji/ETC***
    ele está dizendo que nao tem esses arquivos....
    e também a voc 674 nao foi encontrada, o que vc pode fazer eh ou remover tudo isso e criar depois (para se livrar desses bugs, ou já criar essas spells faltado e essa voc tbm
     
     
  5. Upvote
    Senju uchira reacted to cloudwinvps in (Resolvido)Script Boss tfs 0.4   
    Possível é sim! Parece um script simples mas é um tanto complexo. Tente simplificar a ideia. Talvez um summon imortal só pra dificultar, etc.
    Vou analisar aqui, se eu conseguir o script eu te aviso. Abraços!
  6. Upvote
    Senju uchira got a reaction from Cat in Ots 8.60 exclusivos, novidades sobre bots, anti-MapTracker e muitos sistemas de eventos para seu Otserv!   
    como compilano devc++ esse Woox Baiak PvP 8.60
  7. Thanks
    Senju uchira reacted to joaovitorbk9 in (Resolvido)BugShop Gesior AAC TFS 0.4 - db.query nilvalue   
    0,4

    @EDIT
    Salve galera, consegui resolver soozinho.
    Para quem tiver o mesmo problema faça o seguinte....

    1) mude para 'db.query' no lugar de db.executeQuery
    2) exclua seu z_ots_comutication e execute isso no Sql

     
    E Na Sua DATABABE exclua sua tabela z_ots_comunication e adicione esta -- phpMyAdmin SQL Dump -- version 4.2.11 -- http://www.phpmyadmin.net -- -- Host: 127.0.0.1 -- Generation Time: 08-Jan-2015 às 02:48 -- Versão do servidor: 5.6.21 -- PHP Version: 5.5.19 SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; SET time_zone = "+00:00"; /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; /*!40101 SET NAMES utf8 */; -- -- Database: `global` -- -- -------------------------------------------------------- -- -- Estrutura da tabela `z_ots_comunication` -- CREATE TABLE IF NOT EXISTS `z_ots_comunication` ( `id` int(11) NOT NULL, `name` varchar(255) NOT NULL, `type` varchar(255) NOT NULL, `action` varchar(255) NOT NULL, `param1` varchar(255) NOT NULL, `param2` varchar(255) NOT NULL, `param3` varchar(255) NOT NULL, `param4` varchar(255) NOT NULL, `param5` varchar(255) NOT NULL, `param6` varchar(255) NOT NULL, `param7` varchar(255) NOT NULL, `delete_it` int(2) NOT NULL DEFAULT '1' ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1; -- -- Indexes for dumped tables -- -- -- Indexes for table `z_ots_comunication` -- ALTER TABLE `z_ots_comunication` ADD PRIMARY KEY (`id`); -- -- AUTO_INCREMENT for dumped tables -- -- -- AUTO_INCREMENT for table `z_ots_comunication` -- ALTER TABLE `z_ots_comunication` MODIFY `id` int(11) NOT NULL AUTO_INCREMENT,AUTO_INCREMENT=2; /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;

     
  8. Thanks
    Senju uchira reacted to Cjaker in Extrair arquivo .cab   
    Heyo, desenvolvi essa ferramenta com o intuito de poder extrair o .dat/.spr de um arquivo .cab protegido.
    Vale lembrar que essa ferramenta foi desenvolvida com a intenção de recuperar suas sprites em um .cab protegido e não ser usado com intuições maliciosas!
    OBS: Não dou suporte em cima de outras proteções, essa é 100% funcional em cima da proteção padrão DISPONIBILIZADA no fórum.
     
    Tutorial: baixe os dois arquivos desse tópico, jogue na mesma pasta do cliente que queira abrir, arraste o executável do cliente em cima do 'CabExtractor.exe', selecione se o cliente é Extended ou não. (o .dat e .spr vão aparecer dentro de uma pasta chamada 'extracted'. Se caso não aparecer o .dat, tente mais algumas vezes)
     
    Enjoy
     
    [Downloads]
    CabExtractor.exe
    datextractor.dll

    [Scans]
    Caso esteja com dúvidas sobre os vírus 'falso-positivo' use uma máquina virtual.
    Software: https://www.virustotal.com/gui/file/9eee27a8260abe604f34bc070368913115acf93a64f0e82dfed3a59de1484ff9/detection
    DLL: https://www.virustotal.com/gui/file/b1b7e44a367b81c9d2c5dfd22d574b6baec6c01ea8a9e55ea6074a42746c0f1b/detection
  9. Thanks
    Senju uchira reacted to LeoTK in Pack Sprites 9GB [Vários Temas]   
    Salve galera a um tempo eu vinha colecionando clientes de diversos temas como Tibia/Naruto/Poketibia etc.... bom eu havia compartilhado no privado para ajudar pessoas que não tinham sprites para começar projetos etc... e o membro @diarmaint tentou postar esse pack porém o mesmo não conseguiu fazer o scan do arquivo então resolvi compartilhar com todos espero que possa ajudar a todos que precisarem.
     
    Obs: Todos os clientes estão divididos em pastas com dat/spr
     
    Download:
    MEGA
    MEDIAFIRE
     
    Scan:
    Pelo arquivo ser muito grande, mesmo compactado não foi possível efetuar o scan do mesmo, porém são apenas arquivos de dat/spr e possíveis clientes em OTC completos também não tem nenhum tipo de vírus ou qualquer arquivo malicioso.
     
    São muitos clientes para citar os créditos de todos mas só me enviar uma mensagem no privado que vou adicionando os créditos
     
     
     
  10. Thanks
    Senju uchira reacted to Mathias Kenfi in [Novos Atributos] Critical/Dodge/Life e Mana Leech/Life e Mana Absorb   
    Esse sistema foi feito utilizando a source disponibilizada neste link
    Pode funcionar em TFS 0.4, OTX 2.X e, talvez, em TFS 0.4 só que a probabilidade erros é maior por ter diferentes nomes de funções e variáveis.
     
    Fiz um vídeo seguindo o passo a passo abaixo para facilitar o processo de instalação do sistema.
     
    Hoje estarei ensinando a instalar os seguintes novos atributos/sistemas em sua source
    CriticalHitChance e DodgeChance -- (Funciona da mesma maneira que o critical básico de script, porém sem bugs de callstack) Life e Mana Absorb -- (Regenera, de acordo com a % atribuida, a partir de dano recebido) Life e Mana Leech -- (Regenera, de acordo com a % atribuida, a partir do dano causado) Exemplo de como vai ficar
    Primeiro e antes de tudo, você terá de desativar o critical padrão do Tibia (Você pode pular essa parte se quiser)
     
    Vamos lá! Vá em items.cpp e procure por:
    attackSpeed = 0; Abaixo coloque:
    criticalHitChance = dodgeChance = lifeAbsorb = manaAbsorb = lifeLeech = manaLeech = 0; Depois, ainda em items.cpp, procure por:
    else if(tmpStrValue == "extradefense" || tmpStrValue == "extradef") { if(readXMLInteger(itemAttributesNode, "chance", intValue)) it.extraDefenseChance = intValue; if(readXMLInteger(itemAttributesNode, "value", intValue)) it.extraDefense = intValue; if(readXMLInteger(itemAttributesNode, "random_min", intValue)) it.extraDefenseRndMin = intValue; if(readXMLInteger(itemAttributesNode, "random_max", intValue)) it.extraDefenseRndMax = intValue; } Abaixo coloque:
    else if(tmpStrValue == "criticalhitchance") { if(readXMLInteger(itemAttributesNode, "value", intValue)) it.criticalHitChance = intValue; } else if(tmpStrValue == "dodgechance") { if(readXMLInteger(itemAttributesNode, "value", intValue)) it.dodgeChance = intValue; } else if(tmpStrValue == "lifeabsorb") { if(readXMLInteger(itemAttributesNode, "value", intValue)) it.lifeAbsorb = intValue; } else if(tmpStrValue == "manaabsorb") { if(readXMLInteger(itemAttributesNode, "value", intValue)) it.manaAbsorb = intValue; } else if(tmpStrValue == "lifeleech") { if(readXMLInteger(itemAttributesNode, "value", intValue)) it.lifeLeech = intValue; } else if(tmpStrValue == "manaleech") { if(readXMLInteger(itemAttributesNode, "value", intValue)) it.manaLeech = intValue; } Agora vá em items.h e procure por:
    int32_t attack, extraAttack, defense, extraDefense, armor, breakChance, hitChance, maxHitChance, runeLevel, runeMagLevel, lightLevel, lightColor, decayTo, rotateTo, alwaysOnTopOrder; Abaixo coloque:
    int32_t criticalHitChance, dodgeChance, lifeAbsorb, manaAbsorb, lifeLeech, manaLeech;  
     
    Agora vá em item.cpp e procure por:
    case ATTR_ATTACK: { int32_t attack; if(!propStream.getLong((uint32_t&)attack)) return ATTR_READ_ERROR; setAttribute("attack", attack); break; } Acima coloque:
    case ATTR_CRITICALHITCHANCE: { int32_t criticalHitChance; if(!propStream.getLong((uint32_t&)criticalHitChance)) return ATTR_READ_ERROR; setAttribute("criticalhitchance", criticalHitChance); break; } case ATTR_DODGECHANCE: { int32_t dodgeChance; if(!propStream.getLong((uint32_t&)dodgeChance)) return ATTR_READ_ERROR; setAttribute("dodgechance", dodgeChance); break; } case ATTR_LIFEABSORB: { int32_t lifeAbsorb; if(!propStream.getLong((uint32_t&)lifeAbsorb)) return ATTR_READ_ERROR; setAttribute("lifeabsorb", lifeAbsorb); break; } case ATTR_MANAABSORB: { int32_t manaAbsorb; if(!propStream.getLong((uint32_t&)manaAbsorb)) return ATTR_READ_ERROR; setAttribute("manaabsorb", manaAbsorb); break; } case ATTR_LIFELEECH: { int32_t lifeLeech; if(!propStream.getLong((uint32_t&)lifeLeech)) return ATTR_READ_ERROR; setAttribute("lifeleech", lifeLeech); break; } case ATTR_MANALEECH: { int32_t manaLeech; if(!propStream.getLong((uint32_t&)manaLeech)) return ATTR_READ_ERROR; setAttribute("manaleech", manaLeech); break; } Procure por:
    if(it.weaponType == WEAPON_DIST && it.ammoType != AMMO_NONE) { begin = false; s << " (Range:" << int32_t(item ? item->getShootRange() : it.shootRange); if(it.attack || it.extraAttack || (item && (item->getAttack() || item->getExtraAttack()))) { s << ", Atk " << std::showpos << int32_t(item ? item->getAttack() : it.attack); if(it.extraAttack || (item && item->getExtraAttack())) s << " " << std::showpos << int32_t(item ? item->getExtraAttack() : it.extraAttack) << std::noshowpos; } if(it.hitChance != -1 || (item && item->getHitChance() != -1)) s << ", Hit% " << std::showpos << (item ? item->getHitChance() : it.hitChance) << std::noshowpos; } else if(it.weaponType != WEAPON_AMMO && it.weaponType != WEAPON_WAND) { if(it.attack || it.extraAttack || (item && (item->getAttack() || item->getExtraAttack()))) { begin = false; s << " (Atk:"; if(it.abilities.elementType != COMBAT_NONE && it.decayTo < 1) { s << std::max((int32_t)0, int32_t((item ? item->getAttack() : it.attack) - it.abilities.elementDamage)); if(it.extraAttack || (item && item->getExtraAttack())) s << " " << std::showpos << int32_t(item ? item->getExtraAttack() : it.extraAttack) << std::noshowpos; s << " physical + " << it.abilities.elementDamage << " " << getCombatName(it.abilities.elementType); } else { s << int32_t(item ? item->getAttack() : it.attack); if(it.extraAttack || (item && item->getExtraAttack())) s << " " << std::showpos << int32_t(item ? item->getExtraAttack() : it.extraAttack) << std::noshowpos; } } if(it.defense || it.extraDefense || (item && (item->getDefense() || item->getExtraDefense()))) { if(begin) { begin = false; s << " ("; } else s << ", "; s << "Def:" << int32_t(item ? item->getDefense() : it.defense); if(it.extraDefense || (item && item->getExtraDefense())) s << " " << std::showpos << int32_t(item ? item->getExtraDefense() : it.extraDefense) << std::noshowpos; } } Abaixo coloque:
    if(it.criticalHitChance || (item && item->getCriticalHitChance())) { if(begin) { begin = false; s << " ("; } else s << ", "; s << "Crit Chance:" << std::showpos << int32_t(item ? item->getCriticalHitChance() : it.criticalHitChance) << "%"<< std::noshowpos; } if(it.dodgeChance || (item && item->getDodgeChance())) { if(begin) { begin = false; s << " ("; } else s << ", "; s << "Dodge Chance:" << std::showpos << int32_t(item ? item->getDodgeChance() : it.dodgeChance) << "%"<< std::noshowpos; } if(it.lifeAbsorb || (item && item->getLifeAbsorb())) { if(begin) { begin = false; s << " ("; } else s << ", "; s << "Life Absorb:" << std::showpos << int32_t(item ? item->getLifeAbsorb() : it.lifeAbsorb) << "%"<< std::noshowpos; } if(it.manaAbsorb || (item && item->getManaAbsorb())) { if(begin) { begin = false; s << " ("; } else s << ", "; s << "Mana Absorb:" << std::showpos << int32_t(item ? item->getManaAbsorb() : it.manaAbsorb) << "%"<< std::noshowpos; } if(it.lifeLeech || (item && item->getLifeLeech())) { if(begin) { begin = false; s << " ("; } else s << ", "; s << "Life Leech:" << std::showpos << int32_t(item ? item->getLifeLeech() : it.lifeLeech) << "%"<< std::noshowpos; } if(it.manaLeech || (item && item->getManaLeech())) { if(begin) { begin = false; s << " ("; } else s << ", "; s << "Mana Leech:" << std::showpos << int32_t(item ? item->getManaLeech() : it.manaLeech) << "%"<< std::noshowpos; } Procure por:
    int32_t tmp = it.armor; if(item) tmp = item->getArmor(); bool begin = true; if(tmp) { s << " (Arm:" << tmp; begin = false; } Abaixo coloque:
    if(it.criticalHitChance || (item && item->getCriticalHitChance())) { if(begin) { begin = false; s << " ("; } else s << ", "; s << "Crit Chance:" << std::showpos << int32_t(item ? item->getCriticalHitChance() : it.criticalHitChance) << "%"<< std::noshowpos; } if(it.dodgeChance || (item && item->getDodgeChance())) { if(begin) { begin = false; s << " ("; } else s << ", "; s << "Dodge Chance:" << std::showpos << int32_t(item ? item->getDodgeChance() : it.dodgeChance) << "%"<< std::noshowpos; } if(it.lifeAbsorb || (item && item->getLifeAbsorb())) { if(begin) { begin = false; s << " ("; } else s << ", "; s << "Life Absorb:" << std::showpos << int32_t(item ? item->getLifeAbsorb() : it.lifeAbsorb) << "%"<< std::noshowpos; } if(it.manaAbsorb || (item && item->getManaAbsorb())) { if(begin) { begin = false; s << " ("; } else s << ", "; s << "Mana Absorb:" << std::showpos << int32_t(item ? item->getManaAbsorb() : it.manaAbsorb) << "%"<< std::noshowpos; } if(it.lifeLeech || (item && item->getLifeLeech())) { if(begin) { begin = false; s << " ("; } else s << ", "; s << "Life Leech:" << std::showpos << int32_t(item ? item->getLifeLeech() : it.lifeLeech) << "%"<< std::noshowpos; } if(it.manaLeech || (item && item->getManaLeech())) { if(begin) { begin = false; s << " ("; } else s << ", "; s << "Mana Leech:" << std::showpos << int32_t(item ? item->getManaLeech() : it.manaLeech) << "%"<< std::noshowpos; } Agora vá em item.h e procure por:
    ATTR_DUALWIELD = 43, Abaixo coloque:
    ATTR_CRITICALHITCHANCE = 44, ATTR_DODGECHANCE = 45, ATTR_LIFEABSORB = 46, ATTR_MANAABSORB = 47, ATTR_LIFELEECH = 48, ATTR_MANALEECH = 49, Procure por:
    int32_t getExtraDefense() const; Abaixo coloque:
    int32_t getCriticalHitChance() const; int32_t getDodgeChance() const; int32_t getLifeAbsorb() const; int32_t getManaAbsorb() const; int32_t getLifeLeech() const; int32_t getManaLeech() const; Procure por:
    inline int32_t Item::getExtraDefense() const { bool ok; int32_t v = getIntegerAttribute("extradefense", ok); if(ok) return v; return items[id].extraDefense; } Abaixo coloque:
    inline int32_t Item::getCriticalHitChance() const { bool ok; int32_t v = getIntegerAttribute("criticalhitchance", ok); if(ok) return v; return items[id].criticalHitChance; } inline int32_t Item::getDodgeChance() const { bool ok; int32_t v = getIntegerAttribute("dodgechance", ok); if(ok) return v; return items[id].dodgeChance; } inline int32_t Item::getLifeAbsorb() const { bool ok; int32_t v = getIntegerAttribute("lifeabsorb", ok); if(ok) return v; return items[id].lifeAbsorb; } inline int32_t Item::getManaAbsorb() const { bool ok; int32_t v = getIntegerAttribute("manaabsorb", ok); if(ok) return v; return items[id].manaAbsorb; } inline int32_t Item::getLifeLeech() const { bool ok; int32_t v = getIntegerAttribute("lifeleech", ok); if(ok) return v; return items[id].lifeLeech; } inline int32_t Item::getManaLeech() const { bool ok; int32_t v = getIntegerAttribute("manaleech", ok); if(ok) return v; return items[id].manaLeech; }  
     
    Agora vá em player.cpp e procure por:
    int32_t Player::getArmor() const { int32_t i = SLOT_FIRST, armor = 0; for(; i < SLOT_LAST; ++i) { if(Item* item = getInventoryItem((slots_t)i)) armor += item->getArmor(); } if(vocation->getMultiplier(MULTIPLIER_ARMOR) != 1.0) return int32_t(armor * vocation->getMultiplier(MULTIPLIER_ARMOR)); return armor; } Abaixo coloque:
    int32_t Player::getCriticalHitChance() const { int32_t i = SLOT_FIRST, crit = 0; for(; i < SLOT_LAST; ++i) { if(Item* item = getInventoryItem((slots_t)i)) crit += item->getCriticalHitChance(); } return crit; } int32_t Player::getDodgeChance() const { int32_t i = SLOT_FIRST, dodge = 0; for(; i < SLOT_LAST; ++i) { if(Item* item = getInventoryItem((slots_t)i)) dodge += item->getDodgeChance(); } return dodge; } int32_t Player::getLifeAbsorb() const { int32_t i = SLOT_FIRST, life = 0; for(; i < SLOT_LAST; ++i) { if(Item* item = getInventoryItem((slots_t)i)) life += item->getLifeAbsorb(); } return life; } int32_t Player::getManaAbsorb() const { int32_t i = SLOT_FIRST, mana = 0; for(; i < SLOT_LAST; ++i) { if(Item* item = getInventoryItem((slots_t)i)) mana += item->getManaAbsorb(); } return mana; } int32_t Player::getLifeLeech() const { int32_t i = SLOT_FIRST, life = 0; for(; i < SLOT_LAST; ++i) { if(Item* item = getInventoryItem((slots_t)i)) life += item->getLifeLeech(); } return life; } int32_t Player::getManaLeech() const { int32_t i = SLOT_FIRST, mana = 0; for(; i < SLOT_LAST; ++i) { if(Item* item = getInventoryItem((slots_t)i)) mana += item->getManaLeech(); } return mana; } Agora vá em player.h e procure por:
    virtual int32_t getDefense() const; Abaixo coloque:
    virtual int32_t getCriticalHitChance() const; virtual int32_t getDodgeChance() const; virtual int32_t getLifeAbsorb() const; virtual int32_t getManaAbsorb() const; virtual int32_t getLifeLeech() const; virtual int32_t getManaLeech() const;  
     
    Agora vá em luascript.cpp e procure por:
    //getCreatureHealth(cid) lua_register(m_luaState, "getCreatureHealth", LuaInterface::luaGetCreatureHealth); Abaixo coloque:
    //getPlayerCriticalHitChance(cid) lua_register(m_luaState, "getPlayerCriticalHitChance", LuaInterface::luaGetPlayerCriticalHitChance); //getPlayerDodgeChance(cid) lua_register(m_luaState, "getPlayerDodgeChance", LuaInterface::luaGetPlayerDodgeChance); //getPlayerLifeAbsorb(cid) lua_register(m_luaState, "getPlayerLifeAbsorb", LuaInterface::luaGetPlayerLifeAbsorb); //getPlayerManaAbsorb(cid) lua_register(m_luaState, "getPlayerManaAbsorb", LuaInterface::luaGetPlayerManaAbsorb); //getPlayerLifeLeech(cid) lua_register(m_luaState, "getPlayerLifeLeech", LuaInterface::luaGetPlayerLifeLeech); //getPlayerManaLeech(cid) lua_register(m_luaState, "getPlayerManaLeech", LuaInterface::luaGetPlayerManaLeech); Procure por:
    int32_t LuaInterface::luaGetCreatureMaxHealth(lua_State* L) { //getCreatureMaxHealth(cid[, ignoreModifiers = false]) bool ignoreModifiers = false; if(lua_gettop(L) > 1) ignoreModifiers = popBoolean(L); ScriptEnviroment* env = getEnv(); if(Creature* creature = env->getCreatureByUID(popNumber(L))) lua_pushnumber(L, creature->getPlayer() && ignoreModifiers ? creature->healthMax : creature->getMaxHealth()); else { errorEx(getError(LUA_ERROR_CREATURE_NOT_FOUND)); lua_pushboolean(L, false); } return 1; } Abaixo coloque:
    int32_t LuaInterface::luaGetPlayerCriticalHitChance(lua_State* L) { //getPlayerCriticalHitChance(cid) ScriptEnviroment* env = getEnv(); if(Player* player = env->getPlayerByUID(popNumber(L))) lua_pushnumber(L, player->getCriticalHitChance()); else { errorEx(getError(LUA_ERROR_PLAYER_NOT_FOUND)); lua_pushboolean(L, false); } return 1; } int32_t LuaInterface::luaGetPlayerDodgeChance(lua_State* L) { //getPlayerDodgeChance(cid) ScriptEnviroment* env = getEnv(); if(Player* player = env->getPlayerByUID(popNumber(L))) lua_pushnumber(L, player->getDodgeChance()); else { errorEx(getError(LUA_ERROR_CREATURE_NOT_FOUND)); lua_pushboolean(L, false); } return 1; } int32_t LuaInterface::luaGetPlayerLifeAbsorb(lua_State* L) { //getPlayerLifeAbsorb(cid) ScriptEnviroment* env = getEnv(); if(Player* player = env->getPlayerByUID(popNumber(L))) lua_pushnumber(L, player->getLifeAbsorb()); else { errorEx(getError(LUA_ERROR_CREATURE_NOT_FOUND)); lua_pushboolean(L, false); } return 1; } int32_t LuaInterface::luaGetPlayerManaAbsorb(lua_State* L) { //getPlayerManaAbsorb(cid) ScriptEnviroment* env = getEnv(); if(Player* player = env->getPlayerByUID(popNumber(L))) lua_pushnumber(L, player->getManaAbsorb()); else { errorEx(getError(LUA_ERROR_CREATURE_NOT_FOUND)); lua_pushboolean(L, false); } return 1; } int32_t LuaInterface::luaGetPlayerLifeLeech(lua_State* L) { //getPlayerLifeLeech(cid) ScriptEnviroment* env = getEnv(); if(Player* player = env->getPlayerByUID(popNumber(L))) lua_pushnumber(L, player->getLifeLeech()); else { errorEx(getError(LUA_ERROR_CREATURE_NOT_FOUND)); lua_pushboolean(L, false); } return 1; } int32_t LuaInterface::luaGetPlayerManaLeech(lua_State* L) { //getPlayerManaLeech(cid) ScriptEnviroment* env = getEnv(); if(Player* player = env->getPlayerByUID(popNumber(L))) lua_pushnumber(L, player->getManaLeech()); else { errorEx(getError(LUA_ERROR_CREATURE_NOT_FOUND)); lua_pushboolean(L, false); } return 1; } Agora vá em luascript.h e procure por:
    static int32_t luaGetPlayerSpentMana(lua_State* L); Abaixo coloque:
    static int32_t luaGetPlayerCriticalHitChance(lua_State* L); static int32_t luaGetPlayerDodgeChance(lua_State* L); static int32_t luaGetPlayerLifeAbsorb(lua_State* L); static int32_t luaGetPlayerManaAbsorb(lua_State* L); static int32_t luaGetPlayerLifeLeech(lua_State* L); static int32_t luaGetPlayerManaLeech(lua_State* L);  
    As funções Lua adicionadas foram
    getPlayerCriticalHitChance(cid) getPlayerDodgeChance(cid) getPlayerLifeAbsorb(cid) getPlayerManaAbsorb(cid) getPlayerLifeLeech(cid) getPlayerManaLeech(cid)  
    Agora a parte do game.cpp. (Esta é uma parte opcional, você pode optar por não adicioná-la)
    Créditos: ~Mathias Kenfi
  11. Like
    Senju uchira reacted to Mathias Kenfi in [Novos Atributos] Critical/Dodge/Life e Mana Leech/Life e Mana Absorb   
    Essa parte não tem na TFS 0.4 porque essa é a parte que você precisa implementar. Sugiro que preste atenção nas modificações que você precisa fazer, está tudo certo o passo a passo que foi testado na TFS 0.4 e na OTX 2.X que é, inclusive, baseado na TFS 0.4
     
    As linhas que não existem em algumas TFS 0.4, como attackSpeed, foram alteradas. Recomendo que para aqueles que não conseguiram, refaçam as alterações que fizeram e comecem novamente.
  12. Like
    Senju uchira reacted to Zuith Duth in (Resolvido)erro ao compilar   
    bool lol=CombatHealthFunc; altere para
    bool lol = CombatHealthFunc;
  13. Like
    Senju uchira got a reaction from H3ITORR in (Resolvido)erro ao compilar   
    .Qual servidor ou website você utiliza como base? 
    serve 8.6/ TFS0.4
     
    Qual o motivo deste tópico? 
    preciso compilar uns codigo
     
     
    Você tem alguma imagem que possa auxiliar no problema? Se sim, coloque-a aqui. 
     
     
     

    up
  14. Upvote
    Senju uchira reacted to Thony D. Serv in dota evento, para nto?   
    eu não testei porem eu creio que seja como o do video
     
     
    se ajudei rep++ e marca melhor resposta
  15. Upvote
    Senju uchira got a reaction from joaovitorbk9 in arma que da uma paralyzada   
    resolvi ja o poblema grato a todos!
  16. Upvote
    Senju uchira reacted to diegokenshin in arma com lifre drain   
    tente entrar em contato com o @Mathias Kenfi ai ele pode te explicar 
  17. Upvote
    Senju uchira reacted to WooX in doSendAnimatedText alemte texo de 9 para 12   
    Só quem manja de engenharia reversa conseguiria alterar isso no client da cip visto que ninguém tem acesso a source, se você estivesse usando otclient a história seria diferente.
  18. Upvote
    Senju uchira got a reaction from joaovitorbk9 in doSendAnimatedText alemte texo de 9 para 12   
    com esse comando doSendAnimatedText eu posso so falar uma palavra com 9 letras, como eu almento para 12 na soucer ?
     
  19. Upvote
    Senju uchira reacted to Rogex Joyz in arma que da uma paralyzada   
    Para ser em sword basta trocar o ID que eu falei pelo id que você quer, não importa se for em wand, bow ou sword. Eu particularmente acho bem legal esse script para o player ''esperar carregar'' a paralise da arma para usar, basta você ajustar o tempo conforme seu gosto, mas da forma como você quer eu não poderei ajudar infelizmente. 
  20. Thanks
    Senju uchira reacted to Ackerzin in transformar tfs 0.4.0.0 em otx   
    éoq, que versao louca é essa? DHSAUIFHSFUHSIH
    porque tu só nao baixa uma otx?
     
    https://github.com/mattyx14/otxserver/tree/otxserv2
  21. Thanks
    Senju uchira reacted to Tottin in script para arma double hit   
    Provavelmente ta dando erro pela versão de seu servidor. Se ainda tiver precisando disso, testa desta forma:
    Troca esta linha:
    target:say("!DOUBLEHIT", TALKTYPE_MONSTER_SAY)              ,<<<<<<<<<<<<<<<<<<<<<
    por esta:
    doCreatureSay(target, "DOUBLE HIT", 19)
  22. Thanks
    Senju uchira reacted to Tottin in script para arma double hit   
    Vou te mandar a script que uso em meu servidor, com o texto adicionado já, possivelmente deve resolver seu problema, segue a script:
     
    local combat = createCombatObject()
    setCombatParam(combat, COMBAT_PARAM_BLOCKARMOR, 1)
    setCombatParam(combat, COMBAT_PARAM_BLOCKSHIELD, 1)
    setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
    setCombatFormula(combat, COMBAT_FORMULA_SKILL, 1.0, 0, 1.0, 0)
     
    function onUseWeapon(cid, var)
    local chance = 20 
    if chance <= math.random(1,100) then
      doCombat(cid, combat, var)
    else
     doCreatureSay(cid, "DOUBLE HIT", 19)
     doCombat(cid, combat, var)
     addEvent(doCombat, 500, cid, combat, var)
    end
    return true
    end
  23. Like
    Senju uchira reacted to Tottin in preciso de ajuda com um script que tenho   
    Exatamente, a primeira parte é pra "registrar as posições do efeito" (isso dentro da tabela), na segunda parte é onde a script vai trabalhar em cima dessas posições pra executar o efeito na posição desejada. Basta trocar esta linha do seu script:
     
    addEvent(doAreaCombatHealth, 100, cid, wx.dmg, getThingPos(target), 0, -min, -max, wx.ef) por estas duas:
     
    local pos = {x = getThingPos(target).x + (wx.posx), y = getThingPos(target).y + (wx.posy), z = getThingPos(target).z} -- Aqui vai trabalhar em cima das posições definidas la na tabela. addEvent(doAreaCombatHealth, 100, cid, wx.dmg, pos, 0, -min, -max, wx.ef) -- E aqui vai aplicar o efeito na posição final.
  24. Thanks
    Senju uchira reacted to joaovitorbk9 in (Resolvido)(RESOLVIDO)(BUG SHOP SYS) MODERN ACC // ERRO FORGOTTEN   
    GOOD D+ meu patrão!!
    Muito Obrigadoo!
     
     
  25. Upvote
    Senju uchira got a reaction from joaovitorbk9 in (Resolvido)(RESOLVIDO)(BUG SHOP SYS) MODERN ACC // ERRO FORGOTTEN   
    tou tendo o mesmo poblema nao sei oque ouve
×
×
  • Create New...

Important Information

Confirmação de Termo