• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!
  • 2026 staff recruitment is open! Check it out and consider applying!

Edycja zrodla.

Paxton

Banned User
Joined
Feb 23, 2008
Messages
4,110
Reaction score
48
Location
London, UK
Witam :$

Edytuje sobie zrodlo 0.4.0 do moich wymagan, lecz kompletnie nie moge znalezc tego co chce <_< Wiecie jak to jest.

Potrzebuje edytowac funkcje ktora odpowiada za atak, a doklanie to ze jesli creature ma 100 hp, a ja uderze ja za 150 to sie pokaze 150 a nie 100, wiec moge np. uderzyc Rat z SD za 700 hp czaicie? Nie musicie dawac gotowca, sam sie polapie tylko mnie nakierujcie gdzie to jest, szukalem w combat oraz w game, przeczytalem te 2 pliki i nic nie znalazlem <_<

Druga opcja to ze przy respwanie potwora, bedzie mu ustawialo maxhealth na +10% lub -10% tego co jest aktualnie a najlepiej losowalo te 10% czyli od 1% do 10%, czyli ze kazdy rat bedzie mial inna ilosc HP, niektore 22hp niektore 18hp etc

Chce sie rowniez podzielic skryptem na ladowanie items.otb pomogl mi Stian z tym, wiec zadzialalo mi edytowanie pliku otb na 0.4.0 ! :peace: Powiedzial ze moze troche byc bugow, ale sam sie jeszcze nie napotkalem.

Usuncie to
PHP:
 else if(Items::dwMinorVersion != CLIENT_VERSION_854)
        {
                std::clog << "[Error - Items::loadFromOtb] Another (client) version of items.otb is required." << std::endl;
                return ERROR_INVALID_FORMAT;
        }

z items.cpp

Mi smiga :peace:
 
Jeśli chodzi o hp potworów to w każdym monsterze masz
Code:
<health now="1000" max="1000"/>
ustawiając "now" na 100 masz 10% hp podczas respawnu :D

Dzięki za info o items.otb
 
Druga opcja to ze przy respwanie potwora, bedzie mu ustawialo maxhealth na +10% lub -10% tego co jest aktualnie a najlepiej losowalo te 10% czyli od 1% do 10%, czyli ze kazdy rat bedzie mial inna ilosc HP, niektore 22hp niektore 18hp etc

spawn.cpp
funkcja:
Code:
bool Spawn::spawnMonster()

pod:
Code:
monster->setSpawn(this);
monster->setMasterPosition(pos, radius);
monster->setDirection(dir);
dodaj:
Code:
monster->changeHealth()
monster->changeMaxHealth()

gettery na health tez masz wiec mozesz sobie wyciagnac getMaxHealth() bodajze.


z pierwsza opcja Ci napisze, ale pozniej bo spadac musze.
 
Jeśli chodzi o hp potworów to w każdym monsterze masz
Code:
<health now="1000" max="1000"/>
ustawiając "now" na 100 masz 10% hp podczas respawnu :D

Dzięki za info o items.otb

Ale tu chodzilo aby sie samo zmienialo.

Dzieki koob, zobacze czy dam rade :)
 
Druga opcja to ze przy respwanie potwora, bedzie mu ustawialo maxhealth na +10% lub -10% tego co jest aktualnie a najlepiej losowalo te 10% czyli od 1% do 10%, czyli ze kazdy rat bedzie mial inna ilosc HP, niektore 22hp niektore 18hp etc
Z poziomu c++ zamień configowe 'rateMonsterHealth' na losową liczbę od 0.9 do 1.1
 
@up chcesz byc fajny ?


Daj znac Paxton : )

Nie, ale widzę, że ty o tym marzysz... Kopiowałem z tego tematu fragment posta Paxtona, który możesz znaleźć teraz w tym temacie:peace:, i przez pomyłkę swój post napisałem tutaj. No chyba, że nie rozumiesz skrótu w/w a więc:
w/w, ww etc. - wrong window(złe okno)
 
Napisalem cos takiego:

PHP:
	int health = monster->getMaxHealth();
	int percent = random_range(1,20);
	int much = float (health/50)*percent;
	double add = random_range(1, much);
        if(random_range(1,2) == 1)
           health = health+add;
        else
            health = health-add;
 
	monster->changeMaxHealth(health);
	monster->changeHealth(health);

Tylko cos mnie strasznie wkurwia, mianowicie nie moge obliczyc procenta dla tego jest (health/50)*percent; jak daje na 100 to mi dodaje lub odejmuje 1 lub 2 z Rotworma ktory ma 65hp a powinno dodawac/odejmowac do 13 albo jak zamienie kolejnosc obliczania to w ogole nic sie nie zmienia :\ Dalem na 50 i oblicza w miare poprawnie ale nadal nie to. Jak obliczyc poprawnie ten procent?
 
Nie, ale widzę, że ty o tym marzysz... Kopiowałem z tego tematu fragment posta Paxtona, który możesz znaleźć teraz w tym temacie:peace:, i przez pomyłkę swój post napisałem tutaj. No chyba, że nie rozumiesz skrótu w/w a więc:
w/w, ww etc. - wrong window(złe okno)

Wiem co to znaczy w/w i nie musisz mi wykladow z j.angielskiego tu dawac,.... "cfaniaczku":peace:
 
Co dokladnie chcesz obliczyc ?
0.1 * monster->getMaxHealth(); = 10%

PHP:
	int health = monster->getMaxHealth();
	float percent = random_range(1,20)/100;
	float much = percent*health;
	int add = random_range(1, much);
        if(random_range(1,2) == 1)
           health = health+add;
        else
            health = health-add;
 
	monster->changeMaxHealth(health);
	monster->changeHealth(health);

Dodaje lub odejmuje mi do potwora 1 :huh:

A co do pierwszego requestu to zamiencie w game.cpp to

PHP:
if(textColor < COLOR_NONE && magicEffect < MAGIC_EFFECT_NONE)
				{
					char buffer[20];
					sprintf(buffer, "%d", damage);

					addMagicEffect(list, targetPos, magicEffect);
					addAnimatedText(list, targetPos, textColor, buffer);
				}

na :

PHP:
if(textColor < COLOR_NONE && magicEffect < MAGIC_EFFECT_NONE)
				{
					char buffer[20];
					sprintf(buffer, "%d", healthChange);

					addMagicEffect(list, targetPos, magicEffect);
					addAnimatedText(list, targetPos, textColor, buffer);
				}

Mozecie dodac abs jesli nie chcecie by wam sie minusy nie pokazywaly, mi sie osobiscie podobaja :)

Creditsy dla Chojraka.
 
PHP:
	int health = monster->getMaxHealth();
	float percent = random_range(1,20)/100;
	float much = percent*health;
	int add = random_range(1, much);
        if(random_range(1,2) == 1)
           health = health+add;
        else
            health = health-add;
 
	monster->changeMaxHealth(health);
	monster->changeHealth(health);

Nadal nie rozumiem ;) Napisz slownie co chcesz policzyc. Bo to co napisales pokrecone troche jest.
 
Kazdy potwor, ma maxhealth ustalone ktore zawsze jest to samo, a ja chce aby dodawalo lub odejmowalo od niego do 20% czyli ze kazdy potwor bedzie mial troche inne HP, np. jeden rotworm 74 drugi 63 etc
 
Kazdy potwor, ma maxhealth ustalone ktore zawsze jest to samo, a ja chce aby dodawalo lub odejmowalo od niego do 20% czyli ze kazdy potwor bedzie mial troche inne HP, np. jeden rotworm 74 drugi 63 etc

monster->changeMaxHealth(monster->getMaxHealth() +/- (random_range(1,20)/100)*monster->getMaxHealth())

plus minus sobie dopisz tak jak wyzej miales.
 
tak se patrze, nie jestem pewien ale czy to nie zmieni hp tylko jesli mob sie spawni na... spawnie normalnie, wszelkie summony itp beda normalne chyba?

k mam, w monster.cpp po
Code:
double multiplier = g_config.getDouble(ConfigManager::RATE_MONSTER_HEALTH);
zmienic 2 linijki na
Code:
health = (int32_t) (multiplier*((mType->health*(random_range(80,120)))/100));
	healthMax = health;
 
Last edited:
Back
Top