• logo_cipsoft
    Nowe serwery zostały otwarte 27 Sie 2025:
    Escura (Retro Open PvP) Mystera (Retro Open PvP) us_logo Penumbra (Retro Open PvP)

-Tibia 7.60 [7.6] Exp Ring

Status
Zamknięty.

Thorge D

Advanced User
Dołączył
Lipiec 24, 2014
Posty
300
Liczba reakcji
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]
 
Odp: [7.6] Exp Ring

Dodalem ten kod, i zrobilem poprawke by Psikus ale exp ring nie daje 2x expa. Pomoze ktos?
 
Odp: [7.6] Exp Ring

To go dobrze ustaw sobie w configu to b?dzie dawa? zapewne.
 
Odp: [7.6] Exp Ring

Jest dobrze ustawiony. exp x2 ustawiony ale nie smiga. Co sekunde daje ten exp nie wiem co jest
 
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
 
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.
 
Odp: [7.6] Exp Ring

latest


Zawsze zostaje opcja DIY (do it yourself)
 
Status
Zamknięty.
Do góry