Ir para conteúdo

Yota

Membro
  • Total de itens

    75
  • Registro em

  • Última visita

Histórico de Curtidas

  1. Gostei
    Yota recebeu reputação de Wakon em [C ]Level System in monster [0.3.6]   
    Boa noite, venho compartilhar o código feito por @Oneshot/ @Garou, com adaptação para tfs 0.3.6 (854) por mim. Bem, ele postou para atfs 0.4 (860), dai eu só mexi em umas linhas parar funcionar no tfs 0.3.6(854), dai vou compartilhar com vocês.
    Com o monster level system, o monstro passa a ter level e ganha mais HP, dá mais dano, tem mais defesa, dependendo dele. monsters.h
    procure por:
    bool isSummonable, isIllusionable, isConvinceable, isAttackable, isHostile, isLureable, isWalkable, canPushItems, canPushCreatures, pushable, hideName, hideHealth; Substitua por:
    bool isSummonable, isIllusionable, isConvinceable, isAttackable, isHostile, isLureable, isWalkable, canPushItems, canPushCreatures, pushable, hideName, hideHealth, hideLevel; Procure por:
    int32_t defense, armor, health, healthMax, baseSpeed, lookCorpse, corpseUnique, corpseAction, maxSummons, targetDistance, runAwayHealth, conditionImmunities, damageImmunities, lightLevel, lightColor, changeTargetSpeed, changeTargetChance; Substitua por:
    int32_t defense, armor, health, healthMax, baseSpeed, lookCorpse, corpseUnique, corpseAction, maxSummons, targetDistance, runAwayHealth, conditionImmunities, damageImmunities, lightLevel, lightColor, changeTargetSpeed, changeTargetChance, levelMin, levelMax; monsters.cpp
     
    Procure por:
    canPushItems = canPushCreatures = isSummonable = isIllusionable = isConvinceable = isLureable = isWalkable = hideName = hideHealth = false; Substitua por:
    canPushItems = canPushCreatures = isSummonable = isIllusionable = isConvinceable = isLureable = isWalkable = hideName = hideHealth = hideLevel = false; Procure por:
    baseSpeed = 200; Logo abaixo, adicione:
    levelMin = levelMax = 1; Localize:
    if(readXMLInteger(p, "max", intValue)) mType->healthMax = intValue; else { SHOW_XML_ERROR("Missing health.max"); monsterLoad = false; } } abaixo adicione:
    else if(!xmlStrcmp(p->name, (const xmlChar*)"level")) { if(!readXMLInteger(p, "max", intValue)) mType->levelMax = 1; else mType->levelMax = intValue; if(!readXMLInteger(p, "min", intValue)) mType->levelMin = mType->levelMax; else mType->levelMin = intValue; } procure por:
    if(readXMLString(tmpNode, "shield", strValue)) mType->partyShield = getPartyShield(strValue); logo baixo adicione:
    if(readXMLString(tmpNode, "hidelevel", strValue)) mType->hideLevel = booleanString(strValue); Monster.h
    Procure:
    virtual ~Monster(); std::string name, nameDescription; abaixo adicione:
    std::string name, nameDescription; int32_t level; double bonusAttack, bonusDefense; Procure:
    virtual const std::string& getName() const {return mType->name;} virtual const std::string& getNameDescription() const {return mType->nameDescription;} virtual std::string getDescription(int32_t) const {return mType->nameDescription + ".";} Substitua por:
    virtual const std::string& getName() const {return name;} virtual const std::string& getNameDescription() const {return nameDescription;} virtual std::string getDescription(int32_t) const {return nameDescription + ".";} Monster.cpp
     
    Logo abaixo de:
    isIdle = true; Adicione:
    name = _mType->name; nameDescription = _mType->nameDescription; level = (int32_t)random_range(_mType->levelMin, _mType->levelMax, DISTRO_NORMAL); bonusAttack = 1.0; bonusDefense = 1.0; Procure por está função:
    Monster::onCreatureAppear Apague e coloque está função:
    void Monster::onCreatureAppear(const Creature* creature) { Creature::onCreatureAppear(creature); if(creature == this) { //We just spawned lets look around to see who is there. if(isSummon()) { std::string value; // this->master->getStorage((uint32_t)"1996", value); this->master->getStorage((uint32_t)"1996", value); uint8_t intValue = atoi(value.c_str()); if(intValue || value == "0") level = intValue; else level = 1; isMasterInRange = canSee(master->getPosition()); } if(g_config.getBool(ConfigManager::MONSTER_HAS_LEVEL)) { this->healthMax = std::floor(this->getMaxHealth() * (1. + (0.1 * (level - 1)))); this->health = this->healthMax; this->bonusAttack += (0.01 * (level - 1)); this->bonusDefense += (0.005 * (level - 1)); } updateTargetList(); updateIdleStatus(); } else onCreatureEnter(const_cast<Creature*>(creature)); } Substitua todos:
    g_config.getDouble(ConfigManager::RATE_MONSTER_DEFENSE) Por:
    g_config.getDouble(ConfigManager::RATE_MONSTER_DEFENSE) * bonusDefense Substitua todos:
    g_config.getDouble(ConfigManager::RATE_MONSTER_ATTACK) Por:
    g_config.getDouble(ConfigManager::RATE_MONSTER_ATTACK) * bonusAttack Map.cpp
     
    Procure por:
    #include "game.h" Adicione em baixo:
    #include "configmanager.h"  Procure por:
    extern Game g_game; Adicione em baixo:
    extern ConfigManager g_config; Procure por está função:
    bool Map::placeCreature(const Position& centerPos, Creature* creature, bool extendedPos /*= false*/, bool forced /*= false*/) { Abaixo do " { " adicione:
    Monster* monster = creature->getMonster(); if(monster && g_config.getBool(ConfigManager::MONSTER_HAS_LEVEL)) { uint8_t level; if(!monster->getMonsterType()->hideLevel) { if(monster->isSummon()) { std::string value; // monster->getMaster()->getStorage((uint32_t)"1996", value); monster->getMaster()->getStorage((uint32_t)"1996", value); uint8_t intValue = atoi(value.c_str()); if(intValue || value == "0") level = intValue; else level = 1; } else level = monster->level; char buffer [10]; monster->name = monster->getName() + " [" + itoa(level, buffer, 10) + "]"; } } configmanager.h
     
    Procure por:
    ADDONS_PREMIUM, e abaixo adicione logo em baixo:
    MONSTER_HAS_LEVEL, configmanager.cpp
    procure por:
    m_confBool[ADDONS_PREMIUM] = getGlobalBool("addonsOnlyPremium", true); e logo em baixo adicione:
    m_confBool[MONSTER_HAS_LEVEL] = getGlobalBool("monsterHasLevel", true); no Config.lua adicione:
    monsterHasLevel = true -- true para monstros nascerem com level, false para não nascerem com level São muitas modificações para fazer, mas o resultado é garantido e é uma funcionalidade a mais para seu servidor.
    Como está programado, a cada level, monstros ganham 10% de HP, 1% de dano e 0.5% de defesa.
     
    Para configurar level mínimo e máximo, é só adicionar no XML do monstro:
    <level min="1" max="10"/> -- level minimo, level maximo E alterar a seu gosto.
    Se você fizer certo irá ficar assim:

     
    Créditos:
    @Oneshot
  2. Curtir
    Yota recebeu reputação de bamb00 em [C ]Level System in monster [0.3.6]   
    Boa noite, venho compartilhar o código feito por @Oneshot/ @Garou, com adaptação para tfs 0.3.6 (854) por mim. Bem, ele postou para atfs 0.4 (860), dai eu só mexi em umas linhas parar funcionar no tfs 0.3.6(854), dai vou compartilhar com vocês.
    Com o monster level system, o monstro passa a ter level e ganha mais HP, dá mais dano, tem mais defesa, dependendo dele. monsters.h
    procure por:
    bool isSummonable, isIllusionable, isConvinceable, isAttackable, isHostile, isLureable, isWalkable, canPushItems, canPushCreatures, pushable, hideName, hideHealth; Substitua por:
    bool isSummonable, isIllusionable, isConvinceable, isAttackable, isHostile, isLureable, isWalkable, canPushItems, canPushCreatures, pushable, hideName, hideHealth, hideLevel; Procure por:
    int32_t defense, armor, health, healthMax, baseSpeed, lookCorpse, corpseUnique, corpseAction, maxSummons, targetDistance, runAwayHealth, conditionImmunities, damageImmunities, lightLevel, lightColor, changeTargetSpeed, changeTargetChance; Substitua por:
    int32_t defense, armor, health, healthMax, baseSpeed, lookCorpse, corpseUnique, corpseAction, maxSummons, targetDistance, runAwayHealth, conditionImmunities, damageImmunities, lightLevel, lightColor, changeTargetSpeed, changeTargetChance, levelMin, levelMax; monsters.cpp
     
    Procure por:
    canPushItems = canPushCreatures = isSummonable = isIllusionable = isConvinceable = isLureable = isWalkable = hideName = hideHealth = false; Substitua por:
    canPushItems = canPushCreatures = isSummonable = isIllusionable = isConvinceable = isLureable = isWalkable = hideName = hideHealth = hideLevel = false; Procure por:
    baseSpeed = 200; Logo abaixo, adicione:
    levelMin = levelMax = 1; Localize:
    if(readXMLInteger(p, "max", intValue)) mType->healthMax = intValue; else { SHOW_XML_ERROR("Missing health.max"); monsterLoad = false; } } abaixo adicione:
    else if(!xmlStrcmp(p->name, (const xmlChar*)"level")) { if(!readXMLInteger(p, "max", intValue)) mType->levelMax = 1; else mType->levelMax = intValue; if(!readXMLInteger(p, "min", intValue)) mType->levelMin = mType->levelMax; else mType->levelMin = intValue; } procure por:
    if(readXMLString(tmpNode, "shield", strValue)) mType->partyShield = getPartyShield(strValue); logo baixo adicione:
    if(readXMLString(tmpNode, "hidelevel", strValue)) mType->hideLevel = booleanString(strValue); Monster.h
    Procure:
    virtual ~Monster(); std::string name, nameDescription; abaixo adicione:
    std::string name, nameDescription; int32_t level; double bonusAttack, bonusDefense; Procure:
    virtual const std::string& getName() const {return mType->name;} virtual const std::string& getNameDescription() const {return mType->nameDescription;} virtual std::string getDescription(int32_t) const {return mType->nameDescription + ".";} Substitua por:
    virtual const std::string& getName() const {return name;} virtual const std::string& getNameDescription() const {return nameDescription;} virtual std::string getDescription(int32_t) const {return nameDescription + ".";} Monster.cpp
     
    Logo abaixo de:
    isIdle = true; Adicione:
    name = _mType->name; nameDescription = _mType->nameDescription; level = (int32_t)random_range(_mType->levelMin, _mType->levelMax, DISTRO_NORMAL); bonusAttack = 1.0; bonusDefense = 1.0; Procure por está função:
    Monster::onCreatureAppear Apague e coloque está função:
    void Monster::onCreatureAppear(const Creature* creature) { Creature::onCreatureAppear(creature); if(creature == this) { //We just spawned lets look around to see who is there. if(isSummon()) { std::string value; // this->master->getStorage((uint32_t)"1996", value); this->master->getStorage((uint32_t)"1996", value); uint8_t intValue = atoi(value.c_str()); if(intValue || value == "0") level = intValue; else level = 1; isMasterInRange = canSee(master->getPosition()); } if(g_config.getBool(ConfigManager::MONSTER_HAS_LEVEL)) { this->healthMax = std::floor(this->getMaxHealth() * (1. + (0.1 * (level - 1)))); this->health = this->healthMax; this->bonusAttack += (0.01 * (level - 1)); this->bonusDefense += (0.005 * (level - 1)); } updateTargetList(); updateIdleStatus(); } else onCreatureEnter(const_cast<Creature*>(creature)); } Substitua todos:
    g_config.getDouble(ConfigManager::RATE_MONSTER_DEFENSE) Por:
    g_config.getDouble(ConfigManager::RATE_MONSTER_DEFENSE) * bonusDefense Substitua todos:
    g_config.getDouble(ConfigManager::RATE_MONSTER_ATTACK) Por:
    g_config.getDouble(ConfigManager::RATE_MONSTER_ATTACK) * bonusAttack Map.cpp
     
    Procure por:
    #include "game.h" Adicione em baixo:
    #include "configmanager.h"  Procure por:
    extern Game g_game; Adicione em baixo:
    extern ConfigManager g_config; Procure por está função:
    bool Map::placeCreature(const Position& centerPos, Creature* creature, bool extendedPos /*= false*/, bool forced /*= false*/) { Abaixo do " { " adicione:
    Monster* monster = creature->getMonster(); if(monster && g_config.getBool(ConfigManager::MONSTER_HAS_LEVEL)) { uint8_t level; if(!monster->getMonsterType()->hideLevel) { if(monster->isSummon()) { std::string value; // monster->getMaster()->getStorage((uint32_t)"1996", value); monster->getMaster()->getStorage((uint32_t)"1996", value); uint8_t intValue = atoi(value.c_str()); if(intValue || value == "0") level = intValue; else level = 1; } else level = monster->level; char buffer [10]; monster->name = monster->getName() + " [" + itoa(level, buffer, 10) + "]"; } } configmanager.h
     
    Procure por:
    ADDONS_PREMIUM, e abaixo adicione logo em baixo:
    MONSTER_HAS_LEVEL, configmanager.cpp
    procure por:
    m_confBool[ADDONS_PREMIUM] = getGlobalBool("addonsOnlyPremium", true); e logo em baixo adicione:
    m_confBool[MONSTER_HAS_LEVEL] = getGlobalBool("monsterHasLevel", true); no Config.lua adicione:
    monsterHasLevel = true -- true para monstros nascerem com level, false para não nascerem com level São muitas modificações para fazer, mas o resultado é garantido e é uma funcionalidade a mais para seu servidor.
    Como está programado, a cada level, monstros ganham 10% de HP, 1% de dano e 0.5% de defesa.
     
    Para configurar level mínimo e máximo, é só adicionar no XML do monstro:
    <level min="1" max="10"/> -- level minimo, level maximo E alterar a seu gosto.
    Se você fizer certo irá ficar assim:

     
    Créditos:
    @Oneshot
  3. Gostei
    Yota recebeu reputação de Sparkyz em Nurse Joy   
    Uma pergunta, você quer diminuir o tempo de exaust para poder healar, ou tira o exaust?
    se quiser tirar use este codigo:
     
    Diminuir:
     
     
  4. Obrigado
    Yota recebeu reputação de Mark Ackerman em (Resolvido)Adaptar script de baú para ganhar 3 items   
    nessa linha: 
    é só adicionar outra lina do mesmo jeito
    doPlayerAddItem(cid, id, quantidade) -- recompensa --
     
  5. Curtir
    Yota recebeu reputação de Lodus em Sprite Ashe - LeagueOfLegends   
    carai, curti rs, meu main 
  6. Gostei
    Yota recebeu reputação de Samuel Cstr em [RESOLVIDO] Não parece password apenas monte de códigos   
    vai no config,lua e procura por sha1, e troca por plain
  7. Gostei
    Yota recebeu reputação de DarkRed em SCRIPT de colocar No nomes dos pokes Shinys "Shiny"   
    aqui, usa este:
     
  8. Gostei
    Yota recebeu reputação de DarkRed em SCRIPT de colocar No nomes dos pokes Shinys "Shiny"   
    Hei de está errado jovem!
    Amigo, posta pra mim o seu spawn.xml, fica em creaturescript/script.

    PS: è pra ficar shiny só no nome dos monstros? Ou é pra ficar em players também?
  9. Gostei
    Yota recebeu reputação de Perseguini em (Resolvido)Somente o Player loga   
    ou desliga o firewall
  10. Gostei
    Yota recebeu reputação de Gustavo Ntos em [Pedido] Source   
    Você baixou a source? Ela tem tudo, e está só no jeito de compilar. 
     
     
     
  11. Gostei
    Yota recebeu reputação de extefania em [C ]Level System in monster [0.3.6]   
    Boa noite, venho compartilhar o código feito por @Oneshot/ @Garou, com adaptação para tfs 0.3.6 (854) por mim. Bem, ele postou para atfs 0.4 (860), dai eu só mexi em umas linhas parar funcionar no tfs 0.3.6(854), dai vou compartilhar com vocês.
    Com o monster level system, o monstro passa a ter level e ganha mais HP, dá mais dano, tem mais defesa, dependendo dele. monsters.h
    procure por:
    bool isSummonable, isIllusionable, isConvinceable, isAttackable, isHostile, isLureable, isWalkable, canPushItems, canPushCreatures, pushable, hideName, hideHealth; Substitua por:
    bool isSummonable, isIllusionable, isConvinceable, isAttackable, isHostile, isLureable, isWalkable, canPushItems, canPushCreatures, pushable, hideName, hideHealth, hideLevel; Procure por:
    int32_t defense, armor, health, healthMax, baseSpeed, lookCorpse, corpseUnique, corpseAction, maxSummons, targetDistance, runAwayHealth, conditionImmunities, damageImmunities, lightLevel, lightColor, changeTargetSpeed, changeTargetChance; Substitua por:
    int32_t defense, armor, health, healthMax, baseSpeed, lookCorpse, corpseUnique, corpseAction, maxSummons, targetDistance, runAwayHealth, conditionImmunities, damageImmunities, lightLevel, lightColor, changeTargetSpeed, changeTargetChance, levelMin, levelMax; monsters.cpp
     
    Procure por:
    canPushItems = canPushCreatures = isSummonable = isIllusionable = isConvinceable = isLureable = isWalkable = hideName = hideHealth = false; Substitua por:
    canPushItems = canPushCreatures = isSummonable = isIllusionable = isConvinceable = isLureable = isWalkable = hideName = hideHealth = hideLevel = false; Procure por:
    baseSpeed = 200; Logo abaixo, adicione:
    levelMin = levelMax = 1; Localize:
    if(readXMLInteger(p, "max", intValue)) mType->healthMax = intValue; else { SHOW_XML_ERROR("Missing health.max"); monsterLoad = false; } } abaixo adicione:
    else if(!xmlStrcmp(p->name, (const xmlChar*)"level")) { if(!readXMLInteger(p, "max", intValue)) mType->levelMax = 1; else mType->levelMax = intValue; if(!readXMLInteger(p, "min", intValue)) mType->levelMin = mType->levelMax; else mType->levelMin = intValue; } procure por:
    if(readXMLString(tmpNode, "shield", strValue)) mType->partyShield = getPartyShield(strValue); logo baixo adicione:
    if(readXMLString(tmpNode, "hidelevel", strValue)) mType->hideLevel = booleanString(strValue); Monster.h
    Procure:
    virtual ~Monster(); std::string name, nameDescription; abaixo adicione:
    std::string name, nameDescription; int32_t level; double bonusAttack, bonusDefense; Procure:
    virtual const std::string& getName() const {return mType->name;} virtual const std::string& getNameDescription() const {return mType->nameDescription;} virtual std::string getDescription(int32_t) const {return mType->nameDescription + ".";} Substitua por:
    virtual const std::string& getName() const {return name;} virtual const std::string& getNameDescription() const {return nameDescription;} virtual std::string getDescription(int32_t) const {return nameDescription + ".";} Monster.cpp
     
    Logo abaixo de:
    isIdle = true; Adicione:
    name = _mType->name; nameDescription = _mType->nameDescription; level = (int32_t)random_range(_mType->levelMin, _mType->levelMax, DISTRO_NORMAL); bonusAttack = 1.0; bonusDefense = 1.0; Procure por está função:
    Monster::onCreatureAppear Apague e coloque está função:
    void Monster::onCreatureAppear(const Creature* creature) { Creature::onCreatureAppear(creature); if(creature == this) { //We just spawned lets look around to see who is there. if(isSummon()) { std::string value; // this->master->getStorage((uint32_t)"1996", value); this->master->getStorage((uint32_t)"1996", value); uint8_t intValue = atoi(value.c_str()); if(intValue || value == "0") level = intValue; else level = 1; isMasterInRange = canSee(master->getPosition()); } if(g_config.getBool(ConfigManager::MONSTER_HAS_LEVEL)) { this->healthMax = std::floor(this->getMaxHealth() * (1. + (0.1 * (level - 1)))); this->health = this->healthMax; this->bonusAttack += (0.01 * (level - 1)); this->bonusDefense += (0.005 * (level - 1)); } updateTargetList(); updateIdleStatus(); } else onCreatureEnter(const_cast<Creature*>(creature)); } Substitua todos:
    g_config.getDouble(ConfigManager::RATE_MONSTER_DEFENSE) Por:
    g_config.getDouble(ConfigManager::RATE_MONSTER_DEFENSE) * bonusDefense Substitua todos:
    g_config.getDouble(ConfigManager::RATE_MONSTER_ATTACK) Por:
    g_config.getDouble(ConfigManager::RATE_MONSTER_ATTACK) * bonusAttack Map.cpp
     
    Procure por:
    #include "game.h" Adicione em baixo:
    #include "configmanager.h"  Procure por:
    extern Game g_game; Adicione em baixo:
    extern ConfigManager g_config; Procure por está função:
    bool Map::placeCreature(const Position& centerPos, Creature* creature, bool extendedPos /*= false*/, bool forced /*= false*/) { Abaixo do " { " adicione:
    Monster* monster = creature->getMonster(); if(monster && g_config.getBool(ConfigManager::MONSTER_HAS_LEVEL)) { uint8_t level; if(!monster->getMonsterType()->hideLevel) { if(monster->isSummon()) { std::string value; // monster->getMaster()->getStorage((uint32_t)"1996", value); monster->getMaster()->getStorage((uint32_t)"1996", value); uint8_t intValue = atoi(value.c_str()); if(intValue || value == "0") level = intValue; else level = 1; } else level = monster->level; char buffer [10]; monster->name = monster->getName() + " [" + itoa(level, buffer, 10) + "]"; } } configmanager.h
     
    Procure por:
    ADDONS_PREMIUM, e abaixo adicione logo em baixo:
    MONSTER_HAS_LEVEL, configmanager.cpp
    procure por:
    m_confBool[ADDONS_PREMIUM] = getGlobalBool("addonsOnlyPremium", true); e logo em baixo adicione:
    m_confBool[MONSTER_HAS_LEVEL] = getGlobalBool("monsterHasLevel", true); no Config.lua adicione:
    monsterHasLevel = true -- true para monstros nascerem com level, false para não nascerem com level São muitas modificações para fazer, mas o resultado é garantido e é uma funcionalidade a mais para seu servidor.
    Como está programado, a cada level, monstros ganham 10% de HP, 1% de dano e 0.5% de defesa.
     
    Para configurar level mínimo e máximo, é só adicionar no XML do monstro:
    <level min="1" max="10"/> -- level minimo, level maximo E alterar a seu gosto.
    Se você fizer certo irá ficar assim:

     
    Créditos:
    @Oneshot
  12. Gostei
    Yota recebeu reputação de Weslley Kiyo em [C ]Level System in monster [0.3.6]   
    Boa noite, venho compartilhar o código feito por @Oneshot/ @Garou, com adaptação para tfs 0.3.6 (854) por mim. Bem, ele postou para atfs 0.4 (860), dai eu só mexi em umas linhas parar funcionar no tfs 0.3.6(854), dai vou compartilhar com vocês.
    Com o monster level system, o monstro passa a ter level e ganha mais HP, dá mais dano, tem mais defesa, dependendo dele. monsters.h
    procure por:
    bool isSummonable, isIllusionable, isConvinceable, isAttackable, isHostile, isLureable, isWalkable, canPushItems, canPushCreatures, pushable, hideName, hideHealth; Substitua por:
    bool isSummonable, isIllusionable, isConvinceable, isAttackable, isHostile, isLureable, isWalkable, canPushItems, canPushCreatures, pushable, hideName, hideHealth, hideLevel; Procure por:
    int32_t defense, armor, health, healthMax, baseSpeed, lookCorpse, corpseUnique, corpseAction, maxSummons, targetDistance, runAwayHealth, conditionImmunities, damageImmunities, lightLevel, lightColor, changeTargetSpeed, changeTargetChance; Substitua por:
    int32_t defense, armor, health, healthMax, baseSpeed, lookCorpse, corpseUnique, corpseAction, maxSummons, targetDistance, runAwayHealth, conditionImmunities, damageImmunities, lightLevel, lightColor, changeTargetSpeed, changeTargetChance, levelMin, levelMax; monsters.cpp
     
    Procure por:
    canPushItems = canPushCreatures = isSummonable = isIllusionable = isConvinceable = isLureable = isWalkable = hideName = hideHealth = false; Substitua por:
    canPushItems = canPushCreatures = isSummonable = isIllusionable = isConvinceable = isLureable = isWalkable = hideName = hideHealth = hideLevel = false; Procure por:
    baseSpeed = 200; Logo abaixo, adicione:
    levelMin = levelMax = 1; Localize:
    if(readXMLInteger(p, "max", intValue)) mType->healthMax = intValue; else { SHOW_XML_ERROR("Missing health.max"); monsterLoad = false; } } abaixo adicione:
    else if(!xmlStrcmp(p->name, (const xmlChar*)"level")) { if(!readXMLInteger(p, "max", intValue)) mType->levelMax = 1; else mType->levelMax = intValue; if(!readXMLInteger(p, "min", intValue)) mType->levelMin = mType->levelMax; else mType->levelMin = intValue; } procure por:
    if(readXMLString(tmpNode, "shield", strValue)) mType->partyShield = getPartyShield(strValue); logo baixo adicione:
    if(readXMLString(tmpNode, "hidelevel", strValue)) mType->hideLevel = booleanString(strValue); Monster.h
    Procure:
    virtual ~Monster(); std::string name, nameDescription; abaixo adicione:
    std::string name, nameDescription; int32_t level; double bonusAttack, bonusDefense; Procure:
    virtual const std::string& getName() const {return mType->name;} virtual const std::string& getNameDescription() const {return mType->nameDescription;} virtual std::string getDescription(int32_t) const {return mType->nameDescription + ".";} Substitua por:
    virtual const std::string& getName() const {return name;} virtual const std::string& getNameDescription() const {return nameDescription;} virtual std::string getDescription(int32_t) const {return nameDescription + ".";} Monster.cpp
     
    Logo abaixo de:
    isIdle = true; Adicione:
    name = _mType->name; nameDescription = _mType->nameDescription; level = (int32_t)random_range(_mType->levelMin, _mType->levelMax, DISTRO_NORMAL); bonusAttack = 1.0; bonusDefense = 1.0; Procure por está função:
    Monster::onCreatureAppear Apague e coloque está função:
    void Monster::onCreatureAppear(const Creature* creature) { Creature::onCreatureAppear(creature); if(creature == this) { //We just spawned lets look around to see who is there. if(isSummon()) { std::string value; // this->master->getStorage((uint32_t)"1996", value); this->master->getStorage((uint32_t)"1996", value); uint8_t intValue = atoi(value.c_str()); if(intValue || value == "0") level = intValue; else level = 1; isMasterInRange = canSee(master->getPosition()); } if(g_config.getBool(ConfigManager::MONSTER_HAS_LEVEL)) { this->healthMax = std::floor(this->getMaxHealth() * (1. + (0.1 * (level - 1)))); this->health = this->healthMax; this->bonusAttack += (0.01 * (level - 1)); this->bonusDefense += (0.005 * (level - 1)); } updateTargetList(); updateIdleStatus(); } else onCreatureEnter(const_cast<Creature*>(creature)); } Substitua todos:
    g_config.getDouble(ConfigManager::RATE_MONSTER_DEFENSE) Por:
    g_config.getDouble(ConfigManager::RATE_MONSTER_DEFENSE) * bonusDefense Substitua todos:
    g_config.getDouble(ConfigManager::RATE_MONSTER_ATTACK) Por:
    g_config.getDouble(ConfigManager::RATE_MONSTER_ATTACK) * bonusAttack Map.cpp
     
    Procure por:
    #include "game.h" Adicione em baixo:
    #include "configmanager.h"  Procure por:
    extern Game g_game; Adicione em baixo:
    extern ConfigManager g_config; Procure por está função:
    bool Map::placeCreature(const Position& centerPos, Creature* creature, bool extendedPos /*= false*/, bool forced /*= false*/) { Abaixo do " { " adicione:
    Monster* monster = creature->getMonster(); if(monster && g_config.getBool(ConfigManager::MONSTER_HAS_LEVEL)) { uint8_t level; if(!monster->getMonsterType()->hideLevel) { if(monster->isSummon()) { std::string value; // monster->getMaster()->getStorage((uint32_t)"1996", value); monster->getMaster()->getStorage((uint32_t)"1996", value); uint8_t intValue = atoi(value.c_str()); if(intValue || value == "0") level = intValue; else level = 1; } else level = monster->level; char buffer [10]; monster->name = monster->getName() + " [" + itoa(level, buffer, 10) + "]"; } } configmanager.h
     
    Procure por:
    ADDONS_PREMIUM, e abaixo adicione logo em baixo:
    MONSTER_HAS_LEVEL, configmanager.cpp
    procure por:
    m_confBool[ADDONS_PREMIUM] = getGlobalBool("addonsOnlyPremium", true); e logo em baixo adicione:
    m_confBool[MONSTER_HAS_LEVEL] = getGlobalBool("monsterHasLevel", true); no Config.lua adicione:
    monsterHasLevel = true -- true para monstros nascerem com level, false para não nascerem com level São muitas modificações para fazer, mas o resultado é garantido e é uma funcionalidade a mais para seu servidor.
    Como está programado, a cada level, monstros ganham 10% de HP, 1% de dano e 0.5% de defesa.
     
    Para configurar level mínimo e máximo, é só adicionar no XML do monstro:
    <level min="1" max="10"/> -- level minimo, level maximo E alterar a seu gosto.
    Se você fizer certo irá ficar assim:

     
    Créditos:
    @Oneshot
  13. Gostei
    Yota recebeu reputação de Vodkart em [C ]Level System in monster [0.3.6]   
    Boa noite, venho compartilhar o código feito por @Oneshot/ @Garou, com adaptação para tfs 0.3.6 (854) por mim. Bem, ele postou para atfs 0.4 (860), dai eu só mexi em umas linhas parar funcionar no tfs 0.3.6(854), dai vou compartilhar com vocês.
    Com o monster level system, o monstro passa a ter level e ganha mais HP, dá mais dano, tem mais defesa, dependendo dele. monsters.h
    procure por:
    bool isSummonable, isIllusionable, isConvinceable, isAttackable, isHostile, isLureable, isWalkable, canPushItems, canPushCreatures, pushable, hideName, hideHealth; Substitua por:
    bool isSummonable, isIllusionable, isConvinceable, isAttackable, isHostile, isLureable, isWalkable, canPushItems, canPushCreatures, pushable, hideName, hideHealth, hideLevel; Procure por:
    int32_t defense, armor, health, healthMax, baseSpeed, lookCorpse, corpseUnique, corpseAction, maxSummons, targetDistance, runAwayHealth, conditionImmunities, damageImmunities, lightLevel, lightColor, changeTargetSpeed, changeTargetChance; Substitua por:
    int32_t defense, armor, health, healthMax, baseSpeed, lookCorpse, corpseUnique, corpseAction, maxSummons, targetDistance, runAwayHealth, conditionImmunities, damageImmunities, lightLevel, lightColor, changeTargetSpeed, changeTargetChance, levelMin, levelMax; monsters.cpp
     
    Procure por:
    canPushItems = canPushCreatures = isSummonable = isIllusionable = isConvinceable = isLureable = isWalkable = hideName = hideHealth = false; Substitua por:
    canPushItems = canPushCreatures = isSummonable = isIllusionable = isConvinceable = isLureable = isWalkable = hideName = hideHealth = hideLevel = false; Procure por:
    baseSpeed = 200; Logo abaixo, adicione:
    levelMin = levelMax = 1; Localize:
    if(readXMLInteger(p, "max", intValue)) mType->healthMax = intValue; else { SHOW_XML_ERROR("Missing health.max"); monsterLoad = false; } } abaixo adicione:
    else if(!xmlStrcmp(p->name, (const xmlChar*)"level")) { if(!readXMLInteger(p, "max", intValue)) mType->levelMax = 1; else mType->levelMax = intValue; if(!readXMLInteger(p, "min", intValue)) mType->levelMin = mType->levelMax; else mType->levelMin = intValue; } procure por:
    if(readXMLString(tmpNode, "shield", strValue)) mType->partyShield = getPartyShield(strValue); logo baixo adicione:
    if(readXMLString(tmpNode, "hidelevel", strValue)) mType->hideLevel = booleanString(strValue); Monster.h
    Procure:
    virtual ~Monster(); std::string name, nameDescription; abaixo adicione:
    std::string name, nameDescription; int32_t level; double bonusAttack, bonusDefense; Procure:
    virtual const std::string& getName() const {return mType->name;} virtual const std::string& getNameDescription() const {return mType->nameDescription;} virtual std::string getDescription(int32_t) const {return mType->nameDescription + ".";} Substitua por:
    virtual const std::string& getName() const {return name;} virtual const std::string& getNameDescription() const {return nameDescription;} virtual std::string getDescription(int32_t) const {return nameDescription + ".";} Monster.cpp
     
    Logo abaixo de:
    isIdle = true; Adicione:
    name = _mType->name; nameDescription = _mType->nameDescription; level = (int32_t)random_range(_mType->levelMin, _mType->levelMax, DISTRO_NORMAL); bonusAttack = 1.0; bonusDefense = 1.0; Procure por está função:
    Monster::onCreatureAppear Apague e coloque está função:
    void Monster::onCreatureAppear(const Creature* creature) { Creature::onCreatureAppear(creature); if(creature == this) { //We just spawned lets look around to see who is there. if(isSummon()) { std::string value; // this->master->getStorage((uint32_t)"1996", value); this->master->getStorage((uint32_t)"1996", value); uint8_t intValue = atoi(value.c_str()); if(intValue || value == "0") level = intValue; else level = 1; isMasterInRange = canSee(master->getPosition()); } if(g_config.getBool(ConfigManager::MONSTER_HAS_LEVEL)) { this->healthMax = std::floor(this->getMaxHealth() * (1. + (0.1 * (level - 1)))); this->health = this->healthMax; this->bonusAttack += (0.01 * (level - 1)); this->bonusDefense += (0.005 * (level - 1)); } updateTargetList(); updateIdleStatus(); } else onCreatureEnter(const_cast<Creature*>(creature)); } Substitua todos:
    g_config.getDouble(ConfigManager::RATE_MONSTER_DEFENSE) Por:
    g_config.getDouble(ConfigManager::RATE_MONSTER_DEFENSE) * bonusDefense Substitua todos:
    g_config.getDouble(ConfigManager::RATE_MONSTER_ATTACK) Por:
    g_config.getDouble(ConfigManager::RATE_MONSTER_ATTACK) * bonusAttack Map.cpp
     
    Procure por:
    #include "game.h" Adicione em baixo:
    #include "configmanager.h"  Procure por:
    extern Game g_game; Adicione em baixo:
    extern ConfigManager g_config; Procure por está função:
    bool Map::placeCreature(const Position& centerPos, Creature* creature, bool extendedPos /*= false*/, bool forced /*= false*/) { Abaixo do " { " adicione:
    Monster* monster = creature->getMonster(); if(monster && g_config.getBool(ConfigManager::MONSTER_HAS_LEVEL)) { uint8_t level; if(!monster->getMonsterType()->hideLevel) { if(monster->isSummon()) { std::string value; // monster->getMaster()->getStorage((uint32_t)"1996", value); monster->getMaster()->getStorage((uint32_t)"1996", value); uint8_t intValue = atoi(value.c_str()); if(intValue || value == "0") level = intValue; else level = 1; } else level = monster->level; char buffer [10]; monster->name = monster->getName() + " [" + itoa(level, buffer, 10) + "]"; } } configmanager.h
     
    Procure por:
    ADDONS_PREMIUM, e abaixo adicione logo em baixo:
    MONSTER_HAS_LEVEL, configmanager.cpp
    procure por:
    m_confBool[ADDONS_PREMIUM] = getGlobalBool("addonsOnlyPremium", true); e logo em baixo adicione:
    m_confBool[MONSTER_HAS_LEVEL] = getGlobalBool("monsterHasLevel", true); no Config.lua adicione:
    monsterHasLevel = true -- true para monstros nascerem com level, false para não nascerem com level São muitas modificações para fazer, mas o resultado é garantido e é uma funcionalidade a mais para seu servidor.
    Como está programado, a cada level, monstros ganham 10% de HP, 1% de dano e 0.5% de defesa.
     
    Para configurar level mínimo e máximo, é só adicionar no XML do monstro:
    <level min="1" max="10"/> -- level minimo, level maximo E alterar a seu gosto.
    Se você fizer certo irá ficar assim:

     
    Créditos:
    @Oneshot
  14. Gostei
    Yota deu reputação a Vodkart em [C ]Level System in monster [0.3.6]   
    Parabéns, seu tópico de conteúdo foi aprovado!
    Muito obrigado pela sua contribuição, nós do Tibia King agradecemos.
    Seu conteúdo com certeza ajudará à muitos outros, você recebeu +1 REP.
     
  15. Gostei
    Yota recebeu reputação de extefania em [C++] Level Monster   
    Eu fiz uma versão 8.54. se quiser, posso postar.
  16. Gostei
    Yota recebeu reputação de Weekend em Shinobi Online - 忍 オン ラ イ ン   
    Boa tarde galera.
    Ideia inicial:
    Bem, eu sou muito fã de Anime/Mangá de Naruto. Então, já que tinha por ai, um spr e dat com um gráfico, eu resolvi fazer um servidor basado no mundo de Naruto. Mas com ideias e plataforma diferente(não é tão diferente, porque existem 2 servidores atualmente com uma grande equipe, que podem fazer um ótimo game.) que os servidores de hoje em dia oferecem.
    Sobre o nome do projeto ser Shinobi Online, irei explicar o motivo.
    Bem, minha ideia inicial para o servidor é: O jogador, será um Shinobi/Ninja normal, e não um dos protagonistas do anime. Mas calma lá. O jogador poderá escolher seus pais e aldeia.(lembrado que cada pais tem sua aldeia, e toda aldeia possui seu clã.) entrando no clã escolhido por o jogador, ele poderá aprender os jutsus que quiser, de acordo com o elemento/kekkei genkai que ele vai herdar ao entrar no clã escolhido,
    E bem, sobre o nome Shinobi Online, eu não pensei em outro. O jogador será um Shinobi, e o jogo será um MMORPG. Então, eu deixei o mais obvio, Shinobi Online, e sim, eu posso usar, a menos que alguém registre essa marca. Não é uma copia, e também não tem nada a ver com o antigo Shinobi Online, a não ser a logo, que eu gostei, e mandei um amigo refazer para mim.
    Sobre o Game:
    Graduações:
    Missões:
    Jutsus:
    Imagens:
    Bem galera, eu tenho varias coisas listadas para que o Shinobi Online possa cumprir seu papel como um Game diferenciado!
    Podem comentar suas duvidas, criticas, e até sugestões.
    Fã page: https://www.facebook.com/ShinobiOnline/?fref=ts
    Video:
    Vejam este video que acabei de fazer e postar. Está básico, mas é não está terminado ainda.
    Video
     
     
    [Readygo]Video 2016-09-20 13-22-59.mp4
  17. Gostei
    Yota recebeu reputação de eliasferro em Shinobi Online - 忍 オン ラ イ ン   
    Boa tarde galera.
    Ideia inicial:
    Bem, eu sou muito fã de Anime/Mangá de Naruto. Então, já que tinha por ai, um spr e dat com um gráfico, eu resolvi fazer um servidor basado no mundo de Naruto. Mas com ideias e plataforma diferente(não é tão diferente, porque existem 2 servidores atualmente com uma grande equipe, que podem fazer um ótimo game.) que os servidores de hoje em dia oferecem.
    Sobre o nome do projeto ser Shinobi Online, irei explicar o motivo.
    Bem, minha ideia inicial para o servidor é: O jogador, será um Shinobi/Ninja normal, e não um dos protagonistas do anime. Mas calma lá. O jogador poderá escolher seus pais e aldeia.(lembrado que cada pais tem sua aldeia, e toda aldeia possui seu clã.) entrando no clã escolhido por o jogador, ele poderá aprender os jutsus que quiser, de acordo com o elemento/kekkei genkai que ele vai herdar ao entrar no clã escolhido,
    E bem, sobre o nome Shinobi Online, eu não pensei em outro. O jogador será um Shinobi, e o jogo será um MMORPG. Então, eu deixei o mais obvio, Shinobi Online, e sim, eu posso usar, a menos que alguém registre essa marca. Não é uma copia, e também não tem nada a ver com o antigo Shinobi Online, a não ser a logo, que eu gostei, e mandei um amigo refazer para mim.
    Sobre o Game:
    Graduações:
    Missões:
    Jutsus:
    Imagens:
    Bem galera, eu tenho varias coisas listadas para que o Shinobi Online possa cumprir seu papel como um Game diferenciado!
    Podem comentar suas duvidas, criticas, e até sugestões.
    Fã page: https://www.facebook.com/ShinobiOnline/?fref=ts
    Video:
    Vejam este video que acabei de fazer e postar. Está básico, mas é não está terminado ainda.
    Video
     
     
    [Readygo]Video 2016-09-20 13-22-59.mp4
  18. Gostei
    Yota recebeu reputação de JonatasLucasf em Shinobi Online - 忍 オン ラ イ ン   
    Boa tarde galera.
    Ideia inicial:
    Bem, eu sou muito fã de Anime/Mangá de Naruto. Então, já que tinha por ai, um spr e dat com um gráfico, eu resolvi fazer um servidor basado no mundo de Naruto. Mas com ideias e plataforma diferente(não é tão diferente, porque existem 2 servidores atualmente com uma grande equipe, que podem fazer um ótimo game.) que os servidores de hoje em dia oferecem.
    Sobre o nome do projeto ser Shinobi Online, irei explicar o motivo.
    Bem, minha ideia inicial para o servidor é: O jogador, será um Shinobi/Ninja normal, e não um dos protagonistas do anime. Mas calma lá. O jogador poderá escolher seus pais e aldeia.(lembrado que cada pais tem sua aldeia, e toda aldeia possui seu clã.) entrando no clã escolhido por o jogador, ele poderá aprender os jutsus que quiser, de acordo com o elemento/kekkei genkai que ele vai herdar ao entrar no clã escolhido,
    E bem, sobre o nome Shinobi Online, eu não pensei em outro. O jogador será um Shinobi, e o jogo será um MMORPG. Então, eu deixei o mais obvio, Shinobi Online, e sim, eu posso usar, a menos que alguém registre essa marca. Não é uma copia, e também não tem nada a ver com o antigo Shinobi Online, a não ser a logo, que eu gostei, e mandei um amigo refazer para mim.
    Sobre o Game:
    Graduações:
    Missões:
    Jutsus:
    Imagens:
    Bem galera, eu tenho varias coisas listadas para que o Shinobi Online possa cumprir seu papel como um Game diferenciado!
    Podem comentar suas duvidas, criticas, e até sugestões.
    Fã page: https://www.facebook.com/ShinobiOnline/?fref=ts
    Video:
    Vejam este video que acabei de fazer e postar. Está básico, mas é não está terminado ainda.
    Video
     
     
    [Readygo]Video 2016-09-20 13-22-59.mp4
  19. Gostei
    Yota recebeu reputação de Arthur leandrohh em Error - CreatureScript Interface   
    Isso acontece quando você erra em alguma função na lib, ou coloca uma virgula a mais. Faz com que a lib buge.
  20. Gostei
    Yota recebeu reputação de Love Tibia em Shinobi Online - 忍 オン ラ イ ン   
    Boa tarde galera.
    Ideia inicial:
    Bem, eu sou muito fã de Anime/Mangá de Naruto. Então, já que tinha por ai, um spr e dat com um gráfico, eu resolvi fazer um servidor basado no mundo de Naruto. Mas com ideias e plataforma diferente(não é tão diferente, porque existem 2 servidores atualmente com uma grande equipe, que podem fazer um ótimo game.) que os servidores de hoje em dia oferecem.
    Sobre o nome do projeto ser Shinobi Online, irei explicar o motivo.
    Bem, minha ideia inicial para o servidor é: O jogador, será um Shinobi/Ninja normal, e não um dos protagonistas do anime. Mas calma lá. O jogador poderá escolher seus pais e aldeia.(lembrado que cada pais tem sua aldeia, e toda aldeia possui seu clã.) entrando no clã escolhido por o jogador, ele poderá aprender os jutsus que quiser, de acordo com o elemento/kekkei genkai que ele vai herdar ao entrar no clã escolhido,
    E bem, sobre o nome Shinobi Online, eu não pensei em outro. O jogador será um Shinobi, e o jogo será um MMORPG. Então, eu deixei o mais obvio, Shinobi Online, e sim, eu posso usar, a menos que alguém registre essa marca. Não é uma copia, e também não tem nada a ver com o antigo Shinobi Online, a não ser a logo, que eu gostei, e mandei um amigo refazer para mim.
    Sobre o Game:
    Graduações:
    Missões:
    Jutsus:
    Imagens:
    Bem galera, eu tenho varias coisas listadas para que o Shinobi Online possa cumprir seu papel como um Game diferenciado!
    Podem comentar suas duvidas, criticas, e até sugestões.
    Fã page: https://www.facebook.com/ShinobiOnline/?fref=ts
    Video:
    Vejam este video que acabei de fazer e postar. Está básico, mas é não está terminado ainda.
    Video
     
     
    [Readygo]Video 2016-09-20 13-22-59.mp4
  21. Gostei
    Yota recebeu reputação de Ivens Pontes em Shinobi Online - 忍 オン ラ イ ン   
    Boa tarde galera.
    Ideia inicial:
    Bem, eu sou muito fã de Anime/Mangá de Naruto. Então, já que tinha por ai, um spr e dat com um gráfico, eu resolvi fazer um servidor basado no mundo de Naruto. Mas com ideias e plataforma diferente(não é tão diferente, porque existem 2 servidores atualmente com uma grande equipe, que podem fazer um ótimo game.) que os servidores de hoje em dia oferecem.
    Sobre o nome do projeto ser Shinobi Online, irei explicar o motivo.
    Bem, minha ideia inicial para o servidor é: O jogador, será um Shinobi/Ninja normal, e não um dos protagonistas do anime. Mas calma lá. O jogador poderá escolher seus pais e aldeia.(lembrado que cada pais tem sua aldeia, e toda aldeia possui seu clã.) entrando no clã escolhido por o jogador, ele poderá aprender os jutsus que quiser, de acordo com o elemento/kekkei genkai que ele vai herdar ao entrar no clã escolhido,
    E bem, sobre o nome Shinobi Online, eu não pensei em outro. O jogador será um Shinobi, e o jogo será um MMORPG. Então, eu deixei o mais obvio, Shinobi Online, e sim, eu posso usar, a menos que alguém registre essa marca. Não é uma copia, e também não tem nada a ver com o antigo Shinobi Online, a não ser a logo, que eu gostei, e mandei um amigo refazer para mim.
    Sobre o Game:
    Graduações:
    Missões:
    Jutsus:
    Imagens:
    Bem galera, eu tenho varias coisas listadas para que o Shinobi Online possa cumprir seu papel como um Game diferenciado!
    Podem comentar suas duvidas, criticas, e até sugestões.
    Fã page: https://www.facebook.com/ShinobiOnline/?fref=ts
    Video:
    Vejam este video que acabei de fazer e postar. Está básico, mas é não está terminado ainda.
    Video
     
     
    [Readygo]Video 2016-09-20 13-22-59.mp4
  22. Gostei
    Yota recebeu reputação de Bruna marques em Shinobi Online - 忍 オン ラ イ ン   
    Boa tarde galera.
    Ideia inicial:
    Bem, eu sou muito fã de Anime/Mangá de Naruto. Então, já que tinha por ai, um spr e dat com um gráfico, eu resolvi fazer um servidor basado no mundo de Naruto. Mas com ideias e plataforma diferente(não é tão diferente, porque existem 2 servidores atualmente com uma grande equipe, que podem fazer um ótimo game.) que os servidores de hoje em dia oferecem.
    Sobre o nome do projeto ser Shinobi Online, irei explicar o motivo.
    Bem, minha ideia inicial para o servidor é: O jogador, será um Shinobi/Ninja normal, e não um dos protagonistas do anime. Mas calma lá. O jogador poderá escolher seus pais e aldeia.(lembrado que cada pais tem sua aldeia, e toda aldeia possui seu clã.) entrando no clã escolhido por o jogador, ele poderá aprender os jutsus que quiser, de acordo com o elemento/kekkei genkai que ele vai herdar ao entrar no clã escolhido,
    E bem, sobre o nome Shinobi Online, eu não pensei em outro. O jogador será um Shinobi, e o jogo será um MMORPG. Então, eu deixei o mais obvio, Shinobi Online, e sim, eu posso usar, a menos que alguém registre essa marca. Não é uma copia, e também não tem nada a ver com o antigo Shinobi Online, a não ser a logo, que eu gostei, e mandei um amigo refazer para mim.
    Sobre o Game:
    Graduações:
    Missões:
    Jutsus:
    Imagens:
    Bem galera, eu tenho varias coisas listadas para que o Shinobi Online possa cumprir seu papel como um Game diferenciado!
    Podem comentar suas duvidas, criticas, e até sugestões.
    Fã page: https://www.facebook.com/ShinobiOnline/?fref=ts
    Video:
    Vejam este video que acabei de fazer e postar. Está básico, mas é não está terminado ainda.
    Video
     
     
    [Readygo]Video 2016-09-20 13-22-59.mp4
  23. Gostei
    Yota recebeu reputação de chora boy em script nao funciona   
    <action actionid="1353" event="script" value="earthstone.lua"/> Aqui você está usando actionid, no caso, tem que ir no mapa e colocar está actionID no item.. Mas, eu tenho certeza que você queria fazer assim:
    no action.xml troque sua linha por esta:
    <action itemid="1353" event="script" value="earthstone.lua"/>  
  24. Gostei
    Yota recebeu reputação de Viny 13 em Shinobi Online - 忍 オン ラ イ ン   
    Boa tarde galera.
    Ideia inicial:
    Bem, eu sou muito fã de Anime/Mangá de Naruto. Então, já que tinha por ai, um spr e dat com um gráfico, eu resolvi fazer um servidor basado no mundo de Naruto. Mas com ideias e plataforma diferente(não é tão diferente, porque existem 2 servidores atualmente com uma grande equipe, que podem fazer um ótimo game.) que os servidores de hoje em dia oferecem.
    Sobre o nome do projeto ser Shinobi Online, irei explicar o motivo.
    Bem, minha ideia inicial para o servidor é: O jogador, será um Shinobi/Ninja normal, e não um dos protagonistas do anime. Mas calma lá. O jogador poderá escolher seus pais e aldeia.(lembrado que cada pais tem sua aldeia, e toda aldeia possui seu clã.) entrando no clã escolhido por o jogador, ele poderá aprender os jutsus que quiser, de acordo com o elemento/kekkei genkai que ele vai herdar ao entrar no clã escolhido,
    E bem, sobre o nome Shinobi Online, eu não pensei em outro. O jogador será um Shinobi, e o jogo será um MMORPG. Então, eu deixei o mais obvio, Shinobi Online, e sim, eu posso usar, a menos que alguém registre essa marca. Não é uma copia, e também não tem nada a ver com o antigo Shinobi Online, a não ser a logo, que eu gostei, e mandei um amigo refazer para mim.
    Sobre o Game:
    Graduações:
    Missões:
    Jutsus:
    Imagens:
    Bem galera, eu tenho varias coisas listadas para que o Shinobi Online possa cumprir seu papel como um Game diferenciado!
    Podem comentar suas duvidas, criticas, e até sugestões.
    Fã page: https://www.facebook.com/ShinobiOnline/?fref=ts
    Video:
    Vejam este video que acabei de fazer e postar. Está básico, mas é não está terminado ainda.
    Video
     
     
    [Readygo]Video 2016-09-20 13-22-59.mp4
  25. Gostei
    Yota recebeu reputação de OtFunEX em Erro Script /ban   
    Sim.
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo