Jump to content

Search the Community

Showing results for tags 'Programação'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Tibia King
    • Rules
    • Portal
    • FeedBack
  • Open Tibia
    • Otserv
    • Tools
    • Codes
    • Clients
    • Maps
    • Websites
  • Management of Ot Servers
    • Otserv Discussions & Research
    • Support and Requests
    • Otserv Tutorials
  • Tibia and Bots
    • Tibia
    • Bots
  • Others
    • Announcements
    • Other Programming Languages
    • Graphics and Design
    • Playground (Off-topic)

Calendars

  • Official Calendar
  • OTServs Calendar
  • Several Calendars

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Localization


My character


Favorite OTServ


Bot preferred


Interests

Found 1200 results

  1. [TESTADO EM OTX 2.1+] 8.60 [TESTADO EM TFS 0.3.6] 8.54 ~ 8.60 Créditos: ~Mathias Kenfi
  2. boa noite e feliz ano novo para todos e família, muita saúde e paz, não estou conseguindo compilar está dando isso ?? configure: error: "Lua header not found." chat.cpp: In member function ‘ChatChannel* Chat::getChannel(Player*, uint16_t)’: chat.cpp:1144:10: error: converting ‘false’ to pointer type ‘ChatChannel*’ [-Werror=conversion-null] return false; ^ cc1plus: all warnings being treated as errors Makefile:540: recipe for target 'chat.o' failed make[1]: *** [chat.o] Error 1 make[1]: ** Esperando que outros processos terminem. mv -f .deps/container.Tpo .deps/container.Po
  3. Uso OTX em linux ubuntu E estou com um problema, tipo: o /reload talkaction não da reload nos talkactions mas se eu der /reload spells ele da reload no talkactions mas o proprio /reload spells e nenhum outro não da reload nos spells o mesmo para monster ja por exemplo o /reload actions da reload normal no actions Eu sei que talvez a solução seja trocar a distro porem essa já tem muita feature que eu uso especificadamente pro meu servidor, então mudar eu vou trocar um problema por outro.
  4. 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
  5. Fala galera, hoje estarei ensinando como vocês podem colocar mais cores na função GameBlueNpcNameColor ali nome dos NPCS, hoje criei e separei 11 funções uma pra cada cor pra vocês usarem como quiser, *as vezes o servidor não combina só com os nomes AZUIS, que tal um ROSA? hehe. TUTORIAL SOURCE OTCLIENT Abra o arquivo const.h ache GameEnhancedAnimations = 59, em baixo cole GameRedNpcNameColor = 60, GamePinkNpcNameColor = 61, GameBabyPinkNpcNameColor = 62, GameOrangeNpcNameColor = 63, GameYellowNpcNameColor = 64, GameLightGreenNpcNameColor = 65, GameGreenNpcNameColor = 66, GameLightBlueNpcNameColor = 67, GamePurpleNpcNameColor = 68, GameBrownNpcNameColor = 69, GameBlackNpcNameColor = 70, abra o arquivo creature.cpp ache if(g_game.getFeature(Otc::GameBlueNpcNameColor) && isNpc() && m_healthPercent == 100 && !useGray) fillColor = Color(0x66, 0xcc, 0xff); mude para if(g_game.getFeature(Otc::GameRedNpcNameColor) && isNpc() && m_healthPercent == 100 && !useGray) fillColor = Color(0xff, 0x00, 0x00); if(g_game.getFeature(Otc::GamePinkNpcNameColor) && isNpc() && m_healthPercent == 100 && !useGray) fillColor = Color(0xff, 0x6e, 0xb4); if(g_game.getFeature(Otc::GameBabyPinkNpcNameColor) && isNpc() && m_healthPercent == 100 && !useGray) fillColor = Color(0xff, 0xc1, 0xc1); if(g_game.getFeature(Otc::GameOrangeNpcNameColor) && isNpc() && m_healthPercent == 100 && !useGray) fillColor = Color(0xff, 0x7f, 0x00); if(g_game.getFeature(Otc::GameYellowNpcNameColor) && isNpc() && m_healthPercent == 100 && !useGray) fillColor = Color(0xff, 0xd7, 0x00); if(g_game.getFeature(Otc::GameLightGreenNpcNameColor) && isNpc() && m_healthPercent == 100 && !useGray) fillColor = Color(0x7c, 0xcd, 0x7c); if(g_game.getFeature(Otc::GameGreenNpcNameColor) && isNpc() && m_healthPercent == 100 && !useGray) fillColor = Color(0x00, 0xcd, 0x66); if(g_game.getFeature(Otc::GameLightBlueNpcNameColor) && isNpc() && m_healthPercent == 100 && !useGray) fillColor = Color(0x87, 0xce, 0xff); if(g_game.getFeature(Otc::GameBlueNpcNameColor) && isNpc() && m_healthPercent == 100 && !useGray) fillColor = Color(0x00, 0x9a, 0xcd); if(g_game.getFeature(Otc::GamePurpleNpcNameColor) && isNpc() && m_healthPercent == 100 && !useGray) fillColor = Color(0xab, 0x82, 0xff); if(g_game.getFeature(Otc::GameBrownNpcNameColor) && isNpc() && m_healthPercent == 100 && !useGray) fillColor = Color(0xcd, 0xaa, 0x7d); if(g_game.getFeature(Otc::GameBlackNpcNameColor) && isNpc() && m_healthPercent == 100 && !useGray) fillColor = Color(0x82, 0x82, 0x82); Agora compile seu Otclient. USANDO AS CORES NO OTCLIENT no otclient vai em em \modules\gamelib abra o arquivo const.LUA ache GameEnhancedAnimations = 59 em baixo cole GameRedNpcNameColor = 60 GamePinkNpcNameColor = 61 GameBabyPinkNpcNameColor = 62 GameOrangeNpcNameColor = 63 GameYellowNpcNameColor = 64 GameLightGreenNpcNameColor = 65 GameGreenNpcNameColor = 66 GameLightBlueNpcNameColor = 67 GamePurpleNpcNameColor = 68 GameBrownNpcNameColor = 69 GameBlackNpcNameColor = 70 agora vá em \modules\game_things abra o arquivo things.lua ache local version = g_game.getClientVersion() em baixo coloca a cor que deseja que os npc tenha há falei rosa lá em cima né, vamos por rosa. g_game.enableFeature(GamePinkNpcNameColor) *se quiser muda o ROSA pra outra cor é só muda GamePinkNpcNameColor para uma dessa ai em baixo dentro dos () cores: GameRedNpcNameColor // Vermelho GamePinkNpcNameColor //Rosa GameBabyPinkNpcNameColor //Rosa bebe GameOrangeNpcNameColor //Laranja GameYellowNpcNameColor //Amarelo GameLightGreenNpcNameColor //Verde Claro GameGreenNpcNameColor //Verde Escuro GameLightBlueNpcNameColor //Azul Claro GamePurpleNpcNameColor //Roxo GameBrownNpcNameColor //Marrom GameBlackNpcNameColor //Preto feito isso, é só SALVAR. NPCs coloridos hehe PREVIEW ATÉ MAIS CRÉDITOS: EU
  6. Estou com o seguinte erro ao compilar a source do meu server: Compilador: Default compiler Building Makefile: "C:\server\dev-cpp\Makefile.win" Executando make... mingw32-make -f "C:\server\dev-cpp\Makefile.win" all g++.exe -c ../protocolgame.cpp -o obj//protocolgame.o -I"C:/Stian's Repack Dev-Cpp 0.2, 64bit/include" -D__USE_MYSQL__ -D__USE_SQLITE__ -D__ENABLE_SERVER_DIAGNOSTIC__ -D__EXCEPTION_TRACER__ -D__EMERGENCY_SAVE__ -D__CONSOLE__ -fexpensive-optimizations -O1 In file included from c:\stian's repack dev-cpp 0.2, 64bit\bin\../lib/gcc/mingw32/4.4.0/../../../../include/boost/asio/detail/win_iocp_io_service_fwd.hpp:24, from c:\stian's repack dev-cpp 0.2, 64bit\bin\../lib/gcc/mingw32/4.4.0/../../../../include/boost/asio/io_service.hpp:37, from c:\stian's repack dev-cpp 0.2, 64bit\bin\../lib/gcc/mingw32/4.4.0/../../../../include/boost/asio/basic_io_object.hpp:20, from c:\stian's repack dev-cpp 0.2, 64bit\bin\../lib/gcc/mingw32/4.4.0/../../../../include/boost/asio/basic_socket.hpp:24, from c:\stian's repack dev-cpp 0.2, 64bit\bin\../lib/gcc/mingw32/4.4.0/../../../../include/boost/asio/basic_datagram_socket.hpp:25, from c:\stian's repack dev-cpp 0.2, 64bit\bin\../lib/gcc/mingw32/4.4.0/../../../../include/boost/asio.hpp:20, from ../otsystem.h:33, from ../exception.h:21, from ../definitions.h:81, from ../resources.h:20, from ../protocolgame.cpp:18: c:\stian's repack dev-cpp 0.2, 64bit\bin\../lib/gcc/mingw32/4.4.0/../../../../include/boost/asio/detail/socket_types.hpp:37:5: warning: #warning Please define _WIN32_WINNT or _WIN32_WINDOWS appropriately. c:\stian's repack dev-cpp 0.2, 64bit\bin\../lib/gcc/mingw32/4.4.0/../../../../include/boost/asio/detail/socket_types.hpp:38:5: warning: #warning For example, add -D_WIN32_WINNT=0x0501 to the compiler command line. c:\stian's repack dev-cpp 0.2, 64bit\bin\../lib/gcc/mingw32/4.4.0/../../../../include/boost/asio/detail/socket_types.hpp:39:5: warning: #warning Assuming _WIN32_WINNT=0x0501 (i.e. Windows XP target). In file included from ../protocolgame.cpp:44: ../quests.h: In member function 'const std::string& Quest::getName(Player*) const': ../quests.h:75: warning: returning reference to temporary ../protocolgame.cpp: At global scope: ../protocolgame.cpp:2962: error: expected unqualified-id before 'else' mingw32-make: *** [obj//protocolgame.o] Error 1 Execução terminada Se alguém poder me ajudar agradeceria.
  7. com esse comando doSendAnimatedText eu posso so falar uma palavra com 9 letras, como eu almento para 12 na soucer ?
  8. Eu estou adicionando pokémons no meu servidor de pokétibia, eu consigo summonar usando /m, capturar ou até criar pelo /cb mas qnd coloco ele no slot ele não sai da pokebola alguém pode ajudar!! Dou Rep+
  9. Olá, estou implementando sistemas no meu atual server 7.60, e queria saber qual é o nome daquele sistema do tibia que muda a cor na hora de falar com o npc, exemplo quando você fala Hi pro NPC, a opção TRADE fica com a cor do amarelo queimado? Já tentei colocar {trade}, mas ele ignora os {}, e não muda a cor.
  10. dps que eu addicionei critico na soucer ela fico assim não aparece nenhum erro na distro alguem poderia ajuda
  11. The Forgotten Server 0.4, Versão: 8.6, Ubuntu 16.04 Nao estou conseguindo compilar as sources REV 3996 postado pelo Yan Liima: Surgem os seguintes erros: Segue imagem: Alguem pode me ajudar ? Agradeço desde ja.
  12. Estou tendo o seguinte erro ao compilar meu otcliente:
  13. .Qual servidor ou website você utiliza como base? Visual studio 2017 v141 windows 7 Qual o motivo deste tópico? Não consigo compilar no windows da sempre esse erro \/ Está surgindo algum erro? Se sim coloque-o aqui. Você tem o código disponível? Se tiver publique-o aqui: Você tem alguma imagem que possa auxiliar no problema? Se sim, coloque-a aqui.
  14. Estou tentando configurar o Off Trainer mas me vem esse erro: [Error - Test Interface] data/creaturescripts/scripts/login.lua Description: (luaGetCreatureName) Creature not found [Error - Test Interface] data/creaturescripts/scripts/login.lua Description: data/creaturescripts/scripts/login.lua:66: attempt to concatenate global 'name' (a nil value) [Error - Event::checkScript] Cannot load script (data/creaturescripts/scripts/login.lua) Codigo: -- CONFIG local secondsPerHit = 2 -- THE ATTACKSPEED (1 hit per 2 seconds; default) local manaGenPerSec = 10 -- MANA USED PER SEC local offlineModifier = 0.5 -- FROM 0-1 (or higher if you wish). How fast you are skillin on offline training compared to normal (0.5 = 50%) local maxSecondsTraining = 60 * 60 * 12 -- (Default 12 hours) --END of config local accid = getAccountNumberByPlayerName(getCreatureName(cid)) local name = getCreatureName(cid) local checkTraining = db.storeQuery("SELECT * FROM offline_training WHERE `account_id`=".. accid .." AND `name`='".. name .."';") local skills = {[8]=MAGIC, [4]=SKILL_DISTANCE,[1]=SKILL_CLUB, [3]=SKILL_AXE,[2]=SKILL_SWORD} local skillNames = {[8]="Magic Level", [4]="Distance Fighting",[1]="Club Fighting", [3]="AxeFighting",[2]="Sword Fighting"} if checkTraining then local skill = result.getDataInt(checkTraining, "type") local timeTrained = result.getDataInt(checkTraining, "start_training") local secondsTrained = os.time()-timeTrained local skillTries = math.floor((secondsTrained/secondsPerHit)*offlineModifier) local skillBefore local skillAfter if timeTrained > maxSecondsTraining then timeTrained = maxSecondsTraining end if skill ~= 8 then skillBefore = getPlayerSkillLevel(cid, skills[skill]) doPlayerAddSkillTry(cid, skills[skill], skillTries) skillAfter = getPlayerSkillLevel(cid, skills[skill]) else skillBefore = getPlayerMagLevel(cid) doPlayerAddSpentMana(cid, manaGenPerSec*secondsTrained) skillAfter = getPlayerMagLevel(cid) end local skillBeforeShield = getPlayerSkillLevel(cid, 5) doPlayerAddSkillTry(cid, 5, skillTries) local skillAfterShield = getPlayerSkillLevel(cid, 5) doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "Your ".. skillNames[skill] .." skill changed from level ".. skillBefore.." to level ".. skillAfter ..".") doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "Your Shielding skill changed from level ".. skillBeforeShield.." to level ".. skillAfterShield ..". ") db.query("DELETE FROM offline_training WHERE `account_id`=".. accid .." AND `name`='".. name .."';") end Alguem poderia me ajudar?
  15. .Qual servidor ou website você utiliza como base? BASE Mega e lendários Qual o motivo deste tópico? Preciso urgente de uma ajuda o quanto antes melhor como posso arrumar esse problema Está surgindo algum erro? Se sim coloque-o aqui. Você tem alguma imagem que possa auxiliar no problema? Se sim, coloque-a aqui.
  16. IMG_7684.MOV IMG_7684.MOV IMG_7684.MOV IMG_7688.MOV Estou tendo 2 problemas em um sistema de unique item... o sistema que estou usando eh do tony araujo, alguem pode me ajudar ? https://www.xtibia.com/forum/topic/249391-c-unique-item-system-atualizado-no-bugs/ no 1* video eu consigo puxar um poke do chao pro slot que ta o poke unique, sendo assim possivel o pokemon unique ir pro chão, coisa que não era pra ir. no 2* video, se colocar varias bags uma dentro da outra no chao, e depois na mochila do jogar pegar 1 bag e colocar o poke unique la dentro e tacar dentro da ultima bag que ta no chão, a bag que ta o unique tbm vai, coisa que n era pra ir.
  17. alguem poderia me ajudar com esse erro -> [Error - mysql_real_query] Query: INSERT INTO `tourney` SET `player_id` = 10738; Message: Duplicate entry '0' for key 'name'
  18. .Qual servidor ou website você utiliza como base? RealOTS 7.72 Qual o motivo deste tópico? Quando um player ataca um monstro no mesmo tile de uma escada, conforme os splashs caem no chão, faz com que a escada suma. Se o player relogar a escada volta a aparecer. Acredito que seja algo relacionado ao stacks dos splashs. Você tem o código disponível? Se tiver publique-o aqui: tile.cp if(item->isSplash()) { //remove old splash if exists if(items) { for(ItemVector::iterator it = items->getBeginTopItem(); it != items->getEndTopItem(); ++it) { if(!(*it)->isSplash()) continue; int32_t oldSplashIndex = __getIndexOfThing(*it); Item* oldSplash = *it; __removeThing(oldSplash, 1); oldSplash->setParent(NULL); g_game.freeThing(oldSplash); postRemoveNotification(actor, oldSplash, NULL, oldSplashIndex, true); break; } } } Você tem alguma imagem que possa auxiliar no problema? Se sim, coloque-a aqui.
  19. Fala pessoal, hoje vim aqui liberar um código para que futuros criadores de pokemon não usem GLOBALEVENTS ou MOVEMENTS para teleportar seus pokemons a distancia... hoje irei ensinar a você não usar mais esses scripts que aonde da maioria da vezes crash o servidores em WINDOWS. Sobre o Sistema: Esse sistema tem a função de teleportar seu pokemon a certos sqm, tipo assim, você tem um pokemon e a distancia dele é 7 sqm, ao passar os 7 sqm ele teleporta para você, seja em qualquer lugar até de baixo da terra ou lugares super longe (Não se preocupe o problema do pokemon Morrer com source novas será removido e assim ele não vai morrer) Tutorial: Vá em sua source procure por creature.cpp e abra com algum editor de texto e ache: Mude para: agora salve ctrl+s e feche. Agora procure por Monster.cpp e ache: abaixo de: coloque: salve ctrl+s e compila... não esqueça de abilitar as opções em config.lua -- Summons maxPlayerSummons = 1 teleportAllSummons = true teleportPlayerSummons = true lembre se de remover qualquer scripts que teleporta seu pokemon a distancia. isso ae vlwsss, créditos a mim bjssss
  20. Preciso de algum progamador free lance, que tenha referências!. O quanto antes!!! Obg
  21. .Qual servidor ou website você utiliza como base? otservbr 12.31 Qual o motivo deste tópico? Meu servidor tem o sistema de auto loot funcionando 100%, q nem o tibia global, só que, eu queria q ele nao precisasse de abrir os corpos, tipo, se tem gold coin na loot list, ele pega gold coin sem abrir nda Aí eu já fucei aqui os foruns, fucei as sources, os scripts, e nao consigo achar nda que me ajude a fazer isso, alguem sabe como seguir?
  22. Fala galera bom eu achei um código na otland que ao iniciar o tempo de respawn de um monstro no mapa mostra um efeito antes umas 3 vezes avisando e nasce o monstro igual ao tibia normal bom eu consegui colocar na minha source otx 0.3.6 e estou aqui para compartilhar com todos vocês vamos aos códigos na sua source. Procure as bibliotecas Spawn.cpp Procure por e substitua o código todo por obs: onde esta negrito é a área para editar o efeito que vai aparecer quando o monstro for nascer Procure por Neste código mude: Para: Procure por: Logo acima desse código vai ter Mude para: Spawn.h Procure por Substitua por Pronto seja feliz Vídeo demonstrativo Créditos: Treta20 (Otland)
  23. Estou usando tfs 0.3.6, tibia 8.54 (poketibia mas não interfere) Meu servidor é high exp e portanto os players acumulam altos valores de gold, para equilibrar tenho NPC's que vendem items a preços igualmente elevados. A questão é, na source as funções getPlayerMoney, doPlayerRemoveMoney e doPlayerAddMoney estão em 32 bits. Sendo assim se o player tiver mais de 2 bilhoes em dinheiro (worth, valor das notas no items.xml) na bag e fala com algum npc ou qualquer coisa que 'retire' 'dinheiro' da bag, buga e acaba removendo muito mais que deveria. Já tentei passar por conta as funções para 64bits mas não obtive sucesso. Alguém já mexeu com isso antes para me dar uma luz?
  24. quando vai gera o arquivo executável da erro alguém sabe me ajudar ai desde já agradeço

Open Tibia Server

Quer aprender a criar seu próprio servidor de Tibia? Então está no lugar certo, aqui você encontrará milhares de tutorias, scripts, códigos, mapas e utilitários para que você possa fazer o seu próprio servidor de Tibia começando do zero.

Redes Sociais

Anuncie no Tibia King

Precisa de mais visibilidade em seus projetos? Quer fazer um plano publicitário para o seu servidor? Anuncie no Tibia King e faça sua divulgação, possuímos centenas de acessos simultâneos e milhares diários, com certeza será a sua solução!

Tibia King Recomenda

DokeHost - Soluções em Hospedagem

VPS Windows
VPS Linux
Servidor VPS
×
×
  • Create New...