Ir para conteúdo

Líderes

Conteúdo Popular

Exibindo conteúdo com a maior reputação em 12/04/11 em todas áreas

  1. Critical Chance Hit

    MaTTch reagiu a grafit por uma resposta no tópico

    1 ponto
    Esse sistema foi postado na otland pelo usuário VirrageS Foi testado em um TFS 0.4 REV.3884 Vamos lá: ITEM.CPP Embaixo de: case ATTR_ARTICLE: { std::string article; if(!propStream.getString(article)) return ATTR_READ_ERROR; setAttribute("article", article); break; } Colocar: case ATTR_CRITICALHITCHANCE: { int32_t criticalHitChance; if(!propStream.getLong((uint32_t&)criticalHitChance)) return ATTR_READ_ERROR; setAttribute("criticalhitchance", criticalHitChance); break; } Embaixo de: bool begin = true; if(tmp) { s << " (Arm:" << tmp; begin = false; } Colocar: 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; } Embaixo de: 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; } Colocar: 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; } ITEM.H Embaixo de: ATTR_DUALWIELD = 43, Colocar: ATTR_CRITICALHITCHANCE = 44, Embaixo de: int32_t getAttack() const; Colocar: int32_t getCriticalHitChance() const; Embaixo de: inline bool Item::isScriptProtected() const { const bool* v = getBooleanAttribute("scriptprotected"); if(v) return *v; return false; } Colocar: inline int32_t Item::getCriticalHitChance() const { const int32_t* v = getIntegerAttribute("criticalhitchance"); if(v) return *v; return items[id].criticalHitChance; } ITEMS.CPP Embaixo de: attackSpeed = 0; Colocar: criticalHitChance = 0; Embaixo de: else if(tmpStrValue == "extradefense" || tmpStrValue == "extradef") { if(readXMLInteger(itemAttributesNode, "value", intValue)) it.extraDefense = intValue; } Colocar: else if(tmpStrValue == "criticalhitchance") { if(readXMLInteger(itemAttributesNode, "value", intValue)) it.criticalHitChance = intValue; } ITEMS.H TROCAR: int32_t attack, extraAttack, defense, extraDefense, armor, breakChance, hitChance, maxHitChance, POR: int32_t attack, criticalHitChance, extraAttack, defense, extraDefense, armor, breakChance, hitChance, maxHitChance, LUASCRIPT.CPP Embaixo de: setField(L, "text", item->text); Colocar: setField(L, "criticalHitChance", item->criticalHitChance); PLAYER.CPP Embaixo de: 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; } Colocar: 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; } PLAYER.H Embaixo de: virtual int32_t getArmor() const; Colocar: virtual int32_t getCriticalHitChance() const; WEAPONS.CPP Substituir todos: if(random_range(1, 100) < g_config.getNumber(ConfigManager::CRITICAL_HIT_CHANCE)) Por: if(random_range(1, 100) < player->getCriticalHitChance() + g_config.getNumber(ConfigManager::CRITICAL_HIT_CHANCE)) A tag para se colocar no items.xml é a seguinte: <attribute key="criticalHitChance" value="5" /> Espero que gostem!
  2. (Resolvido) mappers, me deem uma ajuda aqui.

    Tokeras reagiu a Guilherme por uma resposta no tópico

    1 ponto
    Abra o mapa com o simone, dps copie e cole partes do mapa no rme. é um processo trabalho e que demora. ou voce vai em file>import map, ai seleciona o mapa. pq se abrir ele normalmente tem mais chance de dar erro.
  3. PFIELD Project v2.0

    Breno Luiz reagiu a Doughell por uma resposta no tópico

    1 ponto
    Sabe raulot, isso aqui vai ser fundamental no seu "projeto". Não chega pegando esses servidores, com as descrições: "Melhor servidor de Pokémon, etc.. etc..." Está na hora da galera do Pokémon inovar um pouco, por exemplo: Adicionar uma quest que tenha a ver com o Red (shiny) Gyarados (sei lá como escreve) e que seja preciso pescar 100 magikarps falar com o Team Rocket [...] ou até mesmo, criar scripts que pareçam com o servidor original (atual PXG); Fazer que com o Pokémon ao ficar na casa do seu proprietário aparecer aquele ícone/emoticon da CASA, criar emoticons (coisa tão simples, aonde pouco servidores tem). Tem detalhes que destacaram o seu servidor (destacaram pelo seguinte motivo, os servidores para download sempre a mesma coisa - a maioria ), porquê não começa agora? Pega esse PFIELD Project por exemplo, e adicione essas ideias entre outras! Observação: Caso fazer o que aconselhei, boa sorte!
  4. PFIELD Project v2.0

    Breno Luiz reagiu a Google por uma resposta no tópico

    1 ponto
    Muito bom, você trabalha com OT Pokemon ? Pois é muito bom mesmo, pensei até em criar um server Obrigado pelo conteúdo, continue assim ! Abraços .
Líderes está configurado para São Paulo/GMT-03:00

Informação Importante

Confirmação de Termo