What's new

-Tibia 7.60 Protect System (Bramki)

Status
Not open for further replies.

Khuznath

Active User
Joined
Jun 26, 2014
Messages
69
Reaction score
7
Cze??.

Pewna strona w sieci si? znajduj? na kt?rej s? dost?pne kody c++ pod wersj? 7.60, kt?re przetrwa?y po upadku forum Otsfotu, wi?c postanowi?em te? kilka powrzuca? wzoruj?c si? na tematach poprzednich wykonanych w takim stylu, a nie innym.

Autor: Jero
Modyfikacja (pl/config.lua): Blizzar?aviD
Link ?r?d?owy:
Testowany na: YurOTS 0.4.9f
Opis: System bramek poziomowych (lvl'owych) - polega on na tym, ?e postacie z poziomami z r??nych bramek nie mog? siebie zaatakowa?, mog? natomiast ze swojej. Dodatkowo zmodyfikowa?em kod, by mo?na by?o ustawia? limity bramek w config.lua. System dzia?a na zasadzie:
postacie od poziomu r?wnego bramce1 do poziomu r?wnego bramce2 mog? siebie atakowa?,
postacie od poziomu r?wnego bramce2 do poziomu r?wnego bramce3 mog? siebie atakowa?,
postacie od poziomu r?wnego bramce3 do poziomu r?wnego bramce4 mog? siebie atakowa? itd.
, postacie z r??nych przedzia??w bramek nie mog? si? wzajemnie atakowa?.
Powy?ej ostatniej najwi?kszej bramki ProSys wy??cza si?.


Kod:

1. w game.cpp
pod:
[CPP]Creature *attackedCreature = getCreatureByID(creature->attackedCreature);[/CPP]
dodaj:
[CPP]//Begin protect system - Made by Jero
Player *attacker = dynamic_cast<Player*>(creature);
Player *attacked = dynamic_cast<Player*>(attackedCreature);
bool protection = false;
if(attacker && attacked)
{
if(attacked->level >= g_config.getGlobalNumber("bramka1", 1) && attacked->level <= g_config.getGlobalNumber("bramka2", 1) && attacker->level >= g_config.getGlobalNumber("bramka1", 1) && attacker->level <= g_config.getGlobalNumber("bramka2", 1))
protection = true;
else if(attacked->level >= g_config.getGlobalNumber("bramka2", 1) && attacked->level <= g_config.getGlobalNumber("bramka3", 1) && attacker->level >= g_config.getGlobalNumber("bramka2", 1) && attacker->level <= g_config.getGlobalNumber("bramka3", 1))
protection = true;
else if(attacked->level >= g_config.getGlobalNumber("bramka3", 1) && attacked->level <= g_config.getGlobalNumber("bramka4", 1) && attacker->level >= g_config.getGlobalNumber("bramka3", 1) && attacker->level <= g_config.getGlobalNumber("bramka4", 1))
protection = true;
else if(attacked->level >= g_config.getGlobalNumber("bramka4", 1) && attacked->level <= g_config.getGlobalNumber("bramka5", 1) && attacker->level >= g_config.getGlobalNumber("bramka4", 1) && attacker->level <= g_config.getGlobalNumber("bramka5", 1))
protection = true;
else if(attacked->level >= g_config.getGlobalNumber("bramka5", 1) && attacked->level <= g_config.getGlobalNumber("bramka6", 1) && attacker->level >= g_config.getGlobalNumber("bramka5", 1) && attacker->level <= g_config.getGlobalNumber("bramka6", 1))
protection = true;
else if(attacked->level >= g_config.getGlobalNumber("bramka6", 1) && attacked->level <= g_config.getGlobalNumber("bramka7", 1) && attacker->level >= g_config.getGlobalNumber("bramka6", 1) && attacker->level <= g_config.getGlobalNumber("bramka7", 1))
protection = true;
else if(attacked->level >= g_config.getGlobalNumber("bramka7", 1) && attacked->level <= g_config.getGlobalNumber("bramka8", 1) && attacker->level >= g_config.getGlobalNumber("bramka7", 1) && attacker->level <= g_config.getGlobalNumber("bramka8", 1))
protection = true;
else if(attacked->level >= g_config.getGlobalNumber("bramka8", 1) && attacked->level <= g_config.getGlobalNumber("bramka9", 1) && attacker->level >= g_config.getGlobalNumber("bramka8", 1) && attacker->level <= g_config.getGlobalNumber("bramka9", 1))
protection = true;
else if(attacked->level >= g_config.getGlobalNumber("bramka9", 1) && attacked->level <= g_config.getGlobalNumber("bramka10", 1) && attacker->level >= g_config.getGlobalNumber("bramka9", 1) && attacker->level <= g_config.getGlobalNumber("bramka10", 1))
protection = true;
}
if(attacker && attacked && !protection)
{
attacker->sendCancelAttacking();
attacker->sendCancel("System ochrony");
playerSetAttackedCreature(attacker, 0);
return;
}
//End protect system - Mady by Jero[/CPP]

2. w magic.cpp
pod:
[cpp]int MagicEffectClass::getDamage(Creature *target, const Creature *attacker /*= NULL*/) const
{[/cpp]
dodaj:
[CPP]//Begin protect system - Made by Jero
Player *attacked = dynamic_cast<Player*>(target);
bool protection = false;
if(attacker && attacked)
{
if(attacked->level >= g_config.getGlobalNumber("bramka1", 1) && attacked->level <= g_config.getGlobalNumber("bramka2", 1) && attacker->level >= g_config.getGlobalNumber("bramka1", 1) && attacker->level <= g_config.getGlobalNumber("bramka2", 1))
protection = true;
else if(attacked->level >= g_config.getGlobalNumber("bramka2", 1) && attacked->level <= g_config.getGlobalNumber("bramka3", 1) && attacker->level >= g_config.getGlobalNumber("bramka2", 1) && attacker->level <= g_config.getGlobalNumber("bramka3", 1))
protection = true;
else if(attacked->level >= g_config.getGlobalNumber("bramka3", 1) && attacked->level <= g_config.getGlobalNumber("bramka4", 1) && attacker->level >= g_config.getGlobalNumber("bramka3", 1) && attacker->level <= g_config.getGlobalNumber("bramka4", 1))
protection = true;
else if(attacked->level >= g_config.getGlobalNumber("bramka4", 1) && attacked->level <= g_config.getGlobalNumber("bramka5", 1) && attacker->level >= g_config.getGlobalNumber("bramka4", 1) && attacker->level <= g_config.getGlobalNumber("bramka5", 1))
protection = true;
else if(attacked->level >= g_config.getGlobalNumber("bramka5", 1) && attacked->level <= g_config.getGlobalNumber("bramka6", 1) && attacker->level >= g_config.getGlobalNumber("bramka5", 1) && attacker->level <= g_config.getGlobalNumber("bramka6", 1))
protection = true;
else if(attacked->level >= g_config.getGlobalNumber("bramka6", 1) && attacked->level <= g_config.getGlobalNumber("bramka7", 1) && attacker->level >= g_config.getGlobalNumber("bramka6", 1) && attacker->level <= g_config.getGlobalNumber("bramka7", 1))
protection = true;
else if(attacked->level >= g_config.getGlobalNumber("bramka7", 1) && attacked->level <= g_config.getGlobalNumber("bramka8", 1) && attacker->level >= g_config.getGlobalNumber("bramka7", 1) && attacker->level <= g_config.getGlobalNumber("bramka8", 1))
protection = true;
else if(attacked->level >= g_config.getGlobalNumber("bramka8", 1) && attacked->level <= g_config.getGlobalNumber("bramka9", 1) && attacker->level >= g_config.getGlobalNumber("bramka8", 1) && attacker->level <= g_config.getGlobalNumber("bramka9", 1))
protection = true;
else if(attacked->level >= g_config.getGlobalNumber("bramka9", 1) && attacked->level <= g_config.getGlobalNumber("bramka10", 1) && attacker->level >= g_config.getGlobalNumber("bramka9", 1) && attacker->level <= g_config.getGlobalNumber("bramka10", 1))
protection = true;
}
const Monster *monster = dynamic_cast<const Monster*>(attacker);
if(attacker && attacked && !protection && !monster)
if(offensive)
{
attacker->sendCancel("System ochrony");
return 0;
}
//End protect system - Mady by Jero[/CPP]

3. w config.lua
na samym dole dodaj:
Code:
-- Bramki lvl'owe (standardowo wszystko od 1lvl'a) (przyk?ad: PVP od bramki1 do bramki2 | PVP od bramki2 do bramki3 itd...) 
-- Bramki musz? by? coraz wy?sze lvl'owo (im wy?szy numer bramki, tym wy?szy lvl)!!! 
bramka1 = 1 
bramka2 = 50 
bramka3 = 100 
bramka4 = 150 
bramka5 = 200 
bramka6 = 250 
bramka7 = 300 
bramka8 = 400 
bramka9 = 500 
bramka10 = 1000

Na powy?szym przyk?adzie widzimy, ?e bramki s? od: 1-50, 50-100, 100-150, 150-200, 200-250, 250-300, 300-400, 400-500, 500-1000. Wszystkie postacie powy?ej 1000 poziomu mog? siebie atakowa?.

Projekt przebudowa? (Ctrl+F11) zapisa? config.lua i gotowe.


Dodatkowe opcje:

a) Standardowo doda?em tylko 10 bramek, ale mo?na doda? wi?cej, wystarczy
1. w game.cpp i magic.cpp pod:
[cpp]else if(attacked->level >= g_config.getGlobalNumber("bramka9", 1) && attacked->level <= g_config.getGlobalNumber("bramka10", 1) && attacker->level >= g_config.getGlobalNumber("bramka9", 1) && attacker->level <= g_config.getGlobalNumber("bramka10", 1))
protection = true;[/cpp]
doda?:
[CPP]else if(attacked->level >= g_config.getGlobalNumber("bramka10", 1) && attacked->level <= g_config.getGlobalNumber("bramka11", 1) && attacker->level >= g_config.getGlobalNumber("bramka10", 1) && attacker->level <= g_config.getGlobalNumber("bramka11", 1))
protection = true;[/CPP]

2. A w config.lua dodawa? kolejne:
[LUA]bramka11 = 99999[/LUA]

I tak w k??ko, pami?taj?c by dodawa? o jeden numer kolejnej bramki wy?ej.

Uwaga, jak w config.lua jest ju? opisne, im wy?szy numer bramki, tym wi?ksza liczba poziom?w powinna jej odpowiada? (jak kolejno powinno by? ustawione, jest przyk?adowo pokazane wy?ej w Kodzie #3).
 
Status
Not open for further replies.
Top