EXP bónusz túlcsordulás

Indította gife974, 2018-04-08, 11:01:04

2018-04-08, 11:01:04 Utolsó szerkesztés: 2018-04-08, 19:10:57 Szerző: gife974
------

Próbáld meg, hogy a PointChange függvényben (char.cpp) a
POINT_MALL_EXPBONUS
POINT_EXP_DOUBLE_BONUS


case-ek alól kiszeded a
         if (GetPoint(type) + amount > 100)
         {
            sys_err("MALL_BONUS exceeded over 100!! point type: %d name: %s amount %d", type, GetName(), amount);
            amount = 100 - GetPoint(type);
         }

elágazást

C++ programmer at Gameloft

2018-04-08, 12:00:17 #2 Utolsó szerkesztés: 2018-04-08, 12:25:00 Szerző: gife974
Köszi, kipróbálom. :)


Üzenet összefésülés: 2018-04-08, 12:25:00

Illetve még annyi, hogy ugye ha sok exp-t ad egy mob, akkor elkezd visszafele menni. Úgy, tudom, hogy ezt a max_yang berakása megoldja, igaz ez?

2018-04-08, 12:31:59 #3 Utolsó szerkesztés: 2018-04-08, 12:35:12 Szerző: Distraught
fogalmam sincs, nem néztem mi van benne, de nem gondolnám, hogy van összefüggés köztük

írd át minden az exphez köthető változó típusát valami másra, ami nagyobb értéket képes tárolni

C++ programmer at Gameloft


Matematikailag úgy néz ki a dolog, hogy a mob_protoban meg van adva a mob exp dobás értéke, ezt szorozza fel az exp dobás +x%-kal. Kb 16-18millió exp-nél akad ki, ha sok mobot ölsz, akkor visszafelé megy az exp.

Még nem jutottam oda, hogy ránézzek, hogy mitől csinálja, de majd csak megtalálom. :D

Még asszem te írtad Pisti, hogy a max_yangtól elvileg nem akadt ki 18 milla után.

az csak rész megoldás, nem fix hanem tartomány bővítés, azaz nem pl 100 expnél akad ki, hanem 1000-nél remélem így érthető

Teljes mértékben. Nagyon nagy szükségem lenne rá, még akár fizetnék is érte, ha valaki megtudja csinálni.

szerintem igaz nem próbáltam, de ha értesz a forráshoz, próbáld meg átírni az exp adattipusait, amit mobokból kapsz, tippem az hogy pl -2000től 2000 -ig kezeli kapsz 2500-at akkor ad -500-at mert túlcsordul