What's new

-Tibia 7.60 [7.6] Exp Ring

Status
Not open for further replies.

Thorge D

Advanced User
Joined
Jul 24, 2014
Messages
300
Reaction score
29
1. Autor: Rabbcio i Baabuseek(poprawki)
2. Link do oryginalnego tematu:
3. Opis: Dzia?anie ringu polega na zwi?kszeniu exp rate i przyrostu exp'a co sekund?... Wszystko to ustawiane w config.lua.

4. Kod:

w game.cpp szukamy:
[CPP]player->checkRing(thinkTicks);[/CPP]
i nad tym wklejamy:
[CPP]if(player && player->items[SLOT_RING] && player->items[SLOT_RING]->getID() == ITEM_EXP_RING && !tile->isPz())
{
int exp_ring=g_config.getGlobalNumber("exp_ring", 1)+player->getLevel();
if(g_config.getGlobalNumber("exp_ring", 1) != 0){
player->experience += exp_ring;
player->sendAnimatedText(player->pos, 155, "EXP");
}
}[/CPP]
w creature.cpp szukamy:
[CPP]int attackerdamage = getInflicatedDamage(attacker);[/CPP]
i pod tym wklejamy:
[CPP]int ring_rate = g_config.getGlobalNumber("exp_ring_rate", 0);
Player* player=dynamic_cast<Player*>(attacker);
Item* ring = player->getItem(SLOT_RING);[/CPP]
dalej szukamy:
[CPP]if (dynamic_cast<Player*>(this))
return gainexperience * g_config.EXP_MUL_PVP;[/CPP]
i pod tym wklejamy:
[CPP]else if(player && ring && ring->getID() == ITEM_EXP_RING)
return gainexperience * g_config.EXP_MUL*ring_rate;[/CPP]
w const76.h szukamy:
[CPP]ITEM_STEALTH_RING = 2165,[/CPP]
i wklejamy:
[CPP]ITEM_EXP_RING = 2124, [/CPP]
Wejd? do data/items i otw?rz items.xml i dodaj tam:
[XML]<item id="2124" time="500000"/> -- Exp Ring[/XML]
Teraz wejd? w config.lua i dodaj na samym dole :
[LUA]--exp ring // ilo?? dostawanego expa co sekunde
exp_ring= 10 -- + lvl
--exp ring rate
exp_ring_rate= 2--ile razy zwi?ksza exp[/LUA]
Je?eli gracz b?dzie nosi? ring'a co sekund? b?dzie mu dawa? 10+jego lv expa.
I za ka?dego potwora b?dzie otrzymywa? 2 razy wi?cej expa.

Jak wida? kod nie jest ani trudny, ani skomplikowany.

Poprawka by Babuseek

Psikus

Jak ju? wiele os?b zauwa?y?o ten kod crashuje, dziwie si? ?e nikt nie zauwa?y?/poprawi? tego b??du o_O

Mo?na to naprawi?..
Po dodaniu ca?ego kodu.. usun??:
[CPP]Player* player=dynamic_cast<Player*>(attacker);
Item* ring = player->getItem(SLOT_RING);[/CPP]
oraz zamieni?:
[cpp]else if(player && ring && ring->getID() == ITEM_EXP_RING)[/cpp]
na:
[CPP]else if(dynamic_cast<Player*>(attacker) && attacker->getItem(SLOT_RING) && attacker->getItem(SLOT_RING)->getID() == ITEM_EXP_RING)[/CPP]
 

reeeq

Active User
Joined
Mar 3, 2012
Messages
141
Reaction score
10
Odp: [7.6] Exp Ring

Dodalem ten kod, i zrobilem poprawke by Psikus ale exp ring nie daje 2x expa. Pomoze ktos?
 

Thorge D

Advanced User
Joined
Jul 24, 2014
Messages
300
Reaction score
29
Odp: [7.6] Exp Ring

To go dobrze ustaw sobie w configu to b?dzie dawa? zapewne.
 

reeeq

Active User
Joined
Mar 3, 2012
Messages
141
Reaction score
10
Odp: [7.6] Exp Ring

Jest dobrze ustawiony. exp x2 ustawiony ale nie smiga. Co sekunde daje ten exp nie wiem co jest
 

Baabuseek

Advanced User
Joined
Aug 17, 2008
Messages
449
Reaction score
45
Odp: [7.6] Exp Ring

Wszystko zale?y od umiej?tno?ci czytania ze zrozumieniem, poprawiaj?c kod osobi?cie go sprawdzi?em. Nie jest idealny, spoczko, nikt nie widzi. Nie mamy tu programist?w.
~by Psikus
 

azar951

Active User
Joined
Aug 24, 2008
Messages
124
Reaction score
3
Odp: [7.6] Exp Ring

Doda?em ca?y kod i p??niej usun??em co baabuseek poprawi? i po wyczarowaniu itemu na ots pojawia si? jaki? inny i nawet po klikni?ciu na niego nie jest napisane ?e to exp ring.
 

Baabuseek

Advanced User
Joined
Aug 17, 2008
Messages
449
Reaction score
45
Odp: [7.6] Exp Ring

latest


Zawsze zostaje opcja DIY (do it yourself)
 
Status
Not open for further replies.
Top