Ir para conteúdo

Pedido Distro 8.60


JeanCristian

Posts Recomendados

cast system, critical hit chance de ponhar no items, war system com escudo,ant divulguer, a vocaçao no loguin, as coisas essencias que os distros de hoje tem, aqueles ant leg, e monstros passivos.

war system com escudos

de preferencia um rev atualizado, ou tfs atualizado nao sei a diferença, console gui, obrigado de alguem me ajudar, mt pessoas querem isso tambem!

alguem pode me ajudar? eu tentei eu mesmo fazer mais nao consegui e ninguem me ajuda pelo geito vo ter que pedir né :x

Link para o comentário
Compartilhar em outros sites

Olha é muita coisa, compilar não é um bicho de 7 cabeças, baixa uma source 8.6 e depois baixe o Stian's Repack Dev-Cpp v2, os códigos aqui no xtibia tem muitos.

 

tente compilar porque ai fica ao seu gosto, se tiver dúvidas poste que tentarei te ajudar.

Link para o comentário
Compartilhar em outros sites

Olha é muita coisa, compilar não é um bicho de 7 cabeças, baixa uma source 8.6 e depois baixe o Stian's Repack Dev-Cpp v2, os códigos aqui no xtibia tem muitos.

 

tente compilar porque ai fica ao seu gosto, se tiver dúvidas poste que tentarei te ajudar.

eu achei isso tambem, nao sei porque mais nao to conseguindo, eu juro que tentei, fiquei a semana toda, nao foi só 1 dia ou 2,foi a semana toda dormindo 4 horas da manha fazendo pesquisas e testando vey

se vc passa-se o link dos topicos de cada funçao q vc quer, eu ja teria compilado aqui pra ti.

vou posta agora

http://www.xtibia.com/forum/topic/221249-monstros-passivos/ monstro passivos

http://www.xtibia.com/forum/topic/229814-tv-system-by-caotic/ cast system

http://www.xtibia.com/forum/topic/139627-autostacking-items/ juntar item sozinho

 

 

Nome: advertisingBlock

Versão: 2.0

Suportada: Tfs 0.3 e 0.4

Descrição: Bloqueie propagandas de outros servidor eu seu sem ficar recompilando toda hora.

 

Em configmanager.cpp procure:

m_confNumber[PACKETS_PER_SECOND] = getGlobalNumber("packetsPerSecond", 50);

Abaixo adicione:

m_confString[ADVERTISING_BLOCK] = getGlobalString("advertisingBlock", "");

Em configmanager.h procure:

GAME_PORT,

Abaixo adicione:

ADVERTISING_BLOCK,

Em game.cpp procure:

int32_t muted = 0;

bool mute = player->isMuted(channelId, type, muted);

if(muted && mute)

{

if(muted > 0)

{

char buffer[75];

sprintf(buffer, "You are still muted for %d seconds.", muted);

player->sendTextMessage(MSG_STATUS_SMALL, buffer);

}

else

player->sendTextMessage(MSG_STATUS_SMALL, "You are muted permanently.");

 

return false;

}

Abaixo adicione:

std::string _text = asLowerCaseString(text);

for(uint8_t i = 0; i < _text.length(); i++)

{

char t = _text[i];

if(t != '-' && t != '.' && !(t >= 'a' && t <= 'z'))

{

_text.erase(i, 1);

i--;

}

}

StringVec strVector;

strVector = explodeString(g_config.getString(ConfigManager::ADVERTISING_BLOCK), ";");

for(StringVec::iterator it = strVector.begin(); it != strVector.end(); ++it)

{

std::string words []= {(*it)};

int ii, length;

length = sizeof(words)/sizeof(words[0]);

for(ii=0; ii < int(length); ii++)

{

if (int(_text.find(words[ii])) > 0 || _text == words[ii])

{

player->sendTextMessage(MSG_STATUS_SMALL, "You can't send this message, forbidden characters.");

return false;

break;

}

}

}

Em config.lua adicione:

advertisingBlock = ""

Configurando:

No config.lua onde tem advertisingBlock = "" substitua para o que deseja bloquear adicionando ; para separar.

 

Exemplo: advertisingBlock = ".net;servegame;no-ip,.net;.com;.com.br;.org;.pl;.net;.biz"

 

Ant Divulcaçao blokear: servegame, no-ip, zapto e sytes.

 

 

Esse sistema foi postado na otland pelo usuário VirrageS

 

Foi testado em um TFS 0.4 REV.3884

 

13108970.jpg

 

 

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" />

esse aki é o critical chance hit, se vc nao quizer fazer ele tudo bem eu sei que ele é mt grande :x

 

 

Para finalizar você precisa necessariamente que o seu distro (.exe) possua em sua compilação o parâmetro: -D__WAR_SYSTEM__

esse é para o war system funcionar õ/

http://www.xtibia.com/forum/topic/218701-modificador-de-attackspeed-em-item-eou-skill/ o atack speed em distance ( se possivel) obrigado <3

 

 

se vc nao quizer me ajudar é só falar man, obrigado

Link para o comentário
Compartilhar em outros sites

bom cara as funçoes q instalei tudo deu erro nas sources todas, entao eu irei ta passando a source q eu compilei, ela ta virgem ainda, nada modificado, e vc tenta compilar ai, n é possivel q va dar erro com as sources q irei ta passando.

Editado por Maenilse
Link para o comentário
Compartilhar em outros sites

se der erro se pede pra alguem experiente em C++ ou q entenda do mesmo, verificar os codigos e ver se tao todos funfando 100%, pq eu instalei todos correto, do jeito q mandaram no tutorial, e n compilou nem o arquivo actions.cpp.

 

e as sources q eu to te passando é 100% virgem, nada modificado.

 

Download: Source 8.60

Link para o comentário
Compartilhar em outros sites

  • 1 year later...

O tópico foi fechado e movido para lixeira por estar inativo a mais de 10 dias. Caso seja preciso reabrir o mesmo, favor entrar em contato com a equipe.

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...