В продолжение
открытой мною темы , хочу сказать, что если такой персонаж, как СуперНовис существует, значит, он для чего-то придуман.
Разработчики Атены настолько "забили" на СН, что даже не сделали до путя ему его законный +10 ко всем статам бонус... (ровно как и не довели до ума НИОДИН его бонус (IMG:
http://rusro2.org/forum/style_emoticons/default/sad.gif) ).
В Атене бонус +10 ко всем статам позиционируется так:
Цитата
If a Super Novice has never died and is at least joblv 70, he gets all stats +10
что означает:
Цитата
если СН никогда не умирал и джоб, хотя-бы 70, то получит +10 к статам
Это есть откровенная глупость, хотя-бы потому, что на ПВП и ГВ тоже ведется счет смертей...
Короче, говоря, если даже и прожил без смертей до 99/99, а потом умер на ПВП/ГВ - прощай бонус...
Мое предложение относится к ГМам: Давайте восстановим справедливость и дадим СНу хотя-бы один его законный бонус!!!
Итак, все, что я предлагаю, это немного поправить эмуль, дабы
Цитата
после 70-го джоба, СН, если ниразу не умер, получал бы +10 ко всем статам навсегда
а не до смерти.
Выкладываю патчик для СВН (11782) версии Атены написанный мною.
Уверен, что ГМы найдут его куда применить.
Буду оооооочень благодарен, если мои мольбы услышат!
Код
Index: map.h
===================================================================
--- map.h (revision 11782)
+++ map.h (working copy)
@@ -734,6 +734,7 @@
unsigned char mission_count; //Stores the bounty kill count for TK_MISSION
short mission_mobid; //Stores the target mob_id for TK_MISSION
int die_counter; //Total number of times you've died
+ int sn_die_bonus; //Super Novice (+10 to all stats) Bonus
int devotion[5]; //Stores the char IDs of chars devoted to.
int reg_num; //Number of registries (type numeric)
int regstr_num; //Number of registries (type string)
Index: pc.c
===================================================================
--- pc.c (revision 11782)
+++ pc.c (working copy)
@@ -841,6 +841,7 @@
sd->change_level = pc_readglobalreg(sd,"jobchange_level");
sd->die_counter = pc_readglobalreg(sd,"PC_DIE_COUNTER");
+ sd->sn_die_bonus = pc_readglobalreg(sd,"PC_SN_BONUS10");
if ((sd->class_&MAPID_BASEMASK)==MAPID_TAEKWON)
{ //Better check for class rather than skill to prevent "skill resets" from unsetting this
@@ -4207,6 +4208,12 @@
clif_updatestatus(sd,SP_JOBLEVEL);
clif_updatestatus(sd,SP_NEXTJOBEXP);
clif_updatestatus(sd,SP_SKILLPOINT);
+
+ if ((sd->class_&MAPID_UPPERMASK) == MAPID_SUPER_NOVICE && !sd->sn_die_bonus && sd->die_counter == 0 && sd->status.job_level >= 70){
+ pc_setglobalreg(sd,"PC_SN_BONUS10",1);
+ sd->sn_die_bonus=1;
+ }
+
status_calc_pc(sd,0);
clif_misceffect(&sd->bl,1);
if (pc_checkskill(sd, SG_DEVIL) && !pc_nextjobexp(sd))
Index: status.c
===================================================================
--- status.c (revision 11782)
+++ status.c (working copy)
@@ -1982,7 +1982,7 @@
}
// If a Super Novice has never died and is at least joblv 70, he gets all stats +10
- if((sd->class_&MAPID_UPPERMASK) == MAPID_SUPER_NOVICE && sd->die_counter == 0 && sd->status.job_level >= 70){
+ if((sd->class_&MAPID_UPPERMASK) == MAPID_SUPER_NOVICE && sd->sn_die_bonus){
status->str += 10;
status->agi += 10;
status->vit += 10;