* Added crash check for Ice Wall
- reduce mob_data->size variable to 1 bytes - change from if-else to switch statements in buildin_strmobinfo git-svn-id: https://svn.code.sf.net/p/rathena/svn/branches/stable@1020 54d463be-8e91-2dee-dedb-b68131a5f0ec
This commit is contained in:
parent
d530bc485d
commit
d96cc5a331
@ -1,4 +1,9 @@
|
|||||||
Date Added
|
Date Added
|
||||||
|
02/02
|
||||||
|
* Added crash check for Ice Wall [celest]
|
||||||
|
* Added some optimisations by Ilpalazzo-sama [celest]
|
||||||
|
- reduce mob_data->size variable to 1 bytes
|
||||||
|
- change from if-else to switch statements in buildin_strmobinfo
|
||||||
|
|
||||||
01/31
|
01/31
|
||||||
* Fixed a typo in Pressure causing it to deduct sp from the caster, and remove
|
* Fixed a typo in Pressure causing it to deduct sp from the caster, and remove
|
||||||
|
@ -3887,7 +3887,7 @@ int clif_clearchar_skillunit(struct skill_unit *unit,int fd)
|
|||||||
WFIFOW(fd, 0)=0x120;
|
WFIFOW(fd, 0)=0x120;
|
||||||
WFIFOL(fd, 2)=unit->bl.id;
|
WFIFOL(fd, 2)=unit->bl.id;
|
||||||
WFIFOSET(fd,packet_len_table[0x120]);
|
WFIFOSET(fd,packet_len_table[0x120]);
|
||||||
if(unit->group->skill_id == WZ_ICEWALL)
|
if(unit->group && unit->group->skill_id == WZ_ICEWALL)
|
||||||
clif_set0192(fd,unit->bl.m,unit->bl.x,unit->bl.y,unit->val2);
|
clif_set0192(fd,unit->bl.m,unit->bl.x,unit->bl.y,unit->val2);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -456,7 +456,7 @@ struct mob_data {
|
|||||||
struct skill_unit_group skillunit[MAX_MOBSKILLUNITGROUP];
|
struct skill_unit_group skillunit[MAX_MOBSKILLUNITGROUP];
|
||||||
struct skill_unit_group_tickset skillunittick[MAX_SKILLUNITGROUPTICKSET];
|
struct skill_unit_group_tickset skillunittick[MAX_SKILLUNITGROUPTICKSET];
|
||||||
char npc_event[50];
|
char npc_event[50];
|
||||||
short size;
|
unsigned char size;
|
||||||
int owner;
|
int owner;
|
||||||
};
|
};
|
||||||
struct pet_data {
|
struct pet_data {
|
||||||
|
@ -5550,37 +5550,46 @@ int buildin_strmobinfo(struct script_state *st)
|
|||||||
int num=conv_num(st,& (st->stack->stack_data[st->start+2]));
|
int num=conv_num(st,& (st->stack->stack_data[st->start+2]));
|
||||||
int class_=conv_num(st,& (st->stack->stack_data[st->start+3]));
|
int class_=conv_num(st,& (st->stack->stack_data[st->start+3]));
|
||||||
|
|
||||||
if(num<=0 || num>=8 || (class_>=0 && class_<=1000) || class_ >2000)
|
if((class_>=0 && class_<=1000) || class_ >2000)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
if(num==1) {
|
switch (num) {
|
||||||
|
case 1:
|
||||||
|
{
|
||||||
char *buf;
|
char *buf;
|
||||||
buf=aCallocA(24, 1);
|
buf=aCallocA(24, 1);
|
||||||
// buf=mob_db[class_].name;
|
// buf=mob_db[class_].name;
|
||||||
// for string assignments you would need to go for c++ [Shinomori]
|
// for string assignments you would need to go for c++ [Shinomori]
|
||||||
strcpy(buf,mob_db[class_].name);
|
strcpy(buf,mob_db[class_].name);
|
||||||
push_str(st->stack,C_STR,buf);
|
push_str(st->stack,C_STR,buf);
|
||||||
return 0;
|
break;
|
||||||
}
|
}
|
||||||
else if(num==2) {
|
case 2:
|
||||||
|
{
|
||||||
char *buf;
|
char *buf;
|
||||||
buf=aCallocA(24, 1);
|
buf=aCallocA(24, 1);
|
||||||
// buf=mob_db[class_].jname;
|
// buf=mob_db[class_].jname;
|
||||||
// for string assignments you would need to go for c++ [Shinomori]
|
// for string assignments you would need to go for c++ [Shinomori]
|
||||||
strcpy(buf,mob_db[class_].jname);
|
strcpy(buf,mob_db[class_].jname);
|
||||||
push_str(st->stack,C_STR,buf);
|
push_str(st->stack,C_STR,buf);
|
||||||
return 0;
|
break;
|
||||||
}
|
}
|
||||||
else if(num==3)
|
case 3:
|
||||||
push_val(st->stack,C_INT,mob_db[class_].lv);
|
push_val(st->stack,C_INT,mob_db[class_].lv);
|
||||||
else if(num==4)
|
break;
|
||||||
|
case 4:
|
||||||
push_val(st->stack,C_INT,mob_db[class_].max_hp);
|
push_val(st->stack,C_INT,mob_db[class_].max_hp);
|
||||||
else if(num==5)
|
break;
|
||||||
|
case 5:
|
||||||
push_val(st->stack,C_INT,mob_db[class_].max_sp);
|
push_val(st->stack,C_INT,mob_db[class_].max_sp);
|
||||||
else if(num==6)
|
break;
|
||||||
|
case 6:
|
||||||
push_val(st->stack,C_INT,mob_db[class_].base_exp);
|
push_val(st->stack,C_INT,mob_db[class_].base_exp);
|
||||||
else if(num==7)
|
break;
|
||||||
|
case 7:
|
||||||
push_val(st->stack,C_INT,mob_db[class_].job_exp);
|
push_val(st->stack,C_INT,mob_db[class_].job_exp);
|
||||||
|
break;
|
||||||
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user