Postado Junho 10, 2017 7 anos Erro Arquivo Monster Mostrar conteúdo oculto //////////////////////////////////////////////////////////////////////// // OpenTibia - an opensource roleplaying game //////////////////////////////////////////////////////////////////////// // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see <http://www.gnu.org/licenses/>. //////////////////////////////////////////////////////////////////////// #ifndef __MONSTER__ #define __MONSTER__ #include "monsters.h" #include "raids.h" #include "tile.h" class Creature; class Game; class Spawn; enum TargetSearchType_t { TARGETSEARCH_DEFAULT, TARGETSEARCH_RANDOM, TARGETSEARCH_ATTACKRANGE, TARGETSEARCH_NEAREST }; typedef std::list<Creature*> CreatureList; class Monster : public Creature { private: Monster(MonsterType* _mType); public: std::string name, name, nameDescription; MonsterType* mType; // void onThinkEffectFeed(); // void onThinkEffectFeed_Raiva(); // void dropHungry(); #ifdef __ENABLE_SERVER_DIAGNOSTIC__ static uint32_t monsterCount; #endif virtual ~Monster(); std::string name, nameDescription; int32_t level; double bonusAttack, bonusDefense; void setIdle(bool _idle); static Monster* createMonster(MonsterType* mType); static Monster* createMonster(const std::string& name); static Monster* createMonsterNick(const std::string& name, const std::string& nick); virtual Monster* getMonster() {return this;} virtual const Monster* getMonster() const {return this;} virtual uint32_t rangeId() {return 0x40000000;} static AutoList<Monster> autoList; void addList() {autoList[id] = this;} void removeList() {autoList.erase(id);} virtual const std::string& getnick() const {return name;} virtual const std::string& getnickDescription() const {return nameDescription;} virtual std::string getDescription(int32_t) const {return nameDescription + ".";} virtual RaceType_t getRace() const {return mType->race;} virtual int32_t getArmor() const {return mType->armor;} virtual int32_t getDefense() const {return mType->defense;} virtual MonsterType* getMonsterType() const {return mType;} virtual bool isPushable() const {return mType->pushable && (baseSpeed > 0);} virtual bool isAttackable() const {return mType->isAttackable;} virtual bool isImmune(CombatType_t type) const; bool canPushItems() const {return mType->canPushItems;} bool canPushCreatures() const {return mType->canPushCreatures;} bool isHostile() const { std::string value; if(getStorage(504, value) && value == "-1") value = "0"; return value == "0" ? false : true; } virtual bool isWalkable() const {return mType->isWalkable;} virtual bool canSeeInvisibility() const {return Creature::isImmune(CONDITION_INVISIBLE);} uint32_t getManaCost() const {return mType->manaCost;} void setSpawn(Spawn* _spawn) {spawn = _spawn;} void setRaid(Raid* _raid) {raid = _raid;} virtual void onAttackedCreature(Creature* target); virtual void onAttackedCreatureDisappear(bool isLogout); virtual void onAttackedCreatureDrain(Creature* target, int32_t points); virtual void onCreatureAppear(const Creature* creature); virtual void onCreatureDisappear(const Creature* creature, bool isLogout); virtual void onCreatureMove(const Creature* creature, const Tile* newTile, const Position& newPos, const Tile* oldTile, const Position& oldPos, bool teleport); virtual void drainHealth(Creature* attacker, CombatType_t combatType, int32_t damage); virtual void changeHealth(int32_t healthChange); virtual bool getNextStep(Direction& dir, uint32_t& flags); virtual void onFollowCreatureComplete(const Creature* creature); virtual void onThink(uint32_t interval); virtual bool challengeCreature(Creature* creature); virtual bool convinceCreature(Creature* creature); virtual void setNormalCreatureLight(); virtual bool getCombatValues(int32_t& min, int32_t& max); virtual void doAttacking(uint32_t interval); virtual bool hasExtraSwing() {return extraMeleeAttack;} bool searchTarget(TargetSearchType_t searchType = TARGETSEARCH_DEFAULT); bool selectTarget(Creature* creature); const CreatureList& getTargetList() {return targetList;} const CreatureList& getFriendList() {return friendList;} bool isTarget(Creature* creature); bool isFleeing() const {return getHealth() <= mType->runAwayHealth;} virtual BlockType_t blockHit(Creature* attacker, CombatType_t combatType, int32_t& damage, bool checkDefense = false, bool checkArmor = false); virtual void setAttackSpeed(uint32_t interval); private: CreatureList targetList; CreatureList friendList; int32_t minCombatValue; int32_t maxCombatValue; uint32_t attackTicks; uint32_t targetTicks; uint32_t targetChangeTicks; uint32_t defenseTicks; uint32_t yellTicks; int32_t targetChangeCooldown; bool resetTicks; bool isIdle; bool extraMeleeAttack; Spawn* spawn; Raid* raid; bool isMasterInRange; bool teleportToMaster; virtual void onCreatureEnter(Creature* creature); virtual void onCreatureLeave(Creature* creature); void onCreatureFound(Creature* creature, bool pushFront = false); bool doTeleportToMaster(); void updateLookDirection(); void updateTargetList(); void clearTargetList(); void clearFriendList(); virtual bool onDeath(); virtual Item* createCorpse(DeathList deathList); bool despawn(); bool inDespawnRange(const Position& pos); void updateIdleStatus(); bool getIdleStatus() const {return isIdle;} virtual void onAddCondition(ConditionType_t type, bool hadCondition); virtual void onEndCondition(ConditionType_t type); virtual void onCreatureConvinced(const Creature* convincer, const Creature* creature); bool canUseAttack(const Position& pos, const Creature* target) const; bool canUseSpell(const Position& pos, const Position& targetPos, const spellBlock_t& sb, uint32_t interval, bool& inRange); bool getRandomStep(const Position& creaturePos, Direction& dir); bool getDanceStep(const Position& creaturePos, Direction& dir, bool keepAttack = true, bool keepDistance = true); bool isInSpawnRange(const Position& toPos); bool canWalkTo(Position pos, Direction dir); bool pushItem(Item* item, int32_t radius); void pushItems(Tile* tile); bool pushCreature(Creature* creature); void pushCreatures(Tile* tile); void onThinkTarget(uint32_t interval); void onThinkYell(uint32_t interval); void onThinkDefense(uint32_t interval); bool isFriend(const Creature* creature); bool isOpponent(const Creature* creature); virtual uint64_t getLostExperience() const {return ((skillLoss ? mType->experience : 0));} virtual void dropLoot(Container* corpse); virtual uint32_t getDamageImmunities() const {return mType->damageImmunities;} virtual uint32_t getConditionImmunities() const {return mType->conditionImmunities;} virtual uint16_t getLookCorpse() {return mType->lookCorpse;} virtual uint16_t getLookCorpse() const {return mType->lookCorpse;} virtual void getPathSearchParams(const Creature* creature, FindPathParams& fpp) const; virtual bool useCacheMap() const {return true;} }; #endif O rei de seu proprio destino é aquele que luta pela gloria do amanhã! Discord : ZoR#9373
Postado Junho 17, 2017 7 anos Procure por std::string name, name, nameDescription; Substitua por std::string name, nameDescription; https://github.com/Cjaker/ , _ , ( o o ) /'` ' `'\ ESTOU TE OBSERVANDO O_O |'''''''| |\\'''//| """
Participe da conversa
Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.