* Fixed potential crash in IRC processing message with '%' using *printf.
* Fixed memory leaking caused by homun_data not freed when removed. * Minor adjustments to sign/unsign in script commands. modified Changelog-Trunk.txt modified src/map/irc.c modified src/map/script.c modified src/map/unit.c git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@9245 54d463be-8e91-2dee-dedb-b68131a5f0ec
This commit is contained in:
parent
617a4d0850
commit
3bfc48996a
@ -4,6 +4,8 @@ AS OF SVN REV. 5091, WE ARE NOW USING TRUNK. ALL UNTESTED BUGFIXES/FEATURES GO
|
|||||||
IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK.
|
IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK.
|
||||||
|
|
||||||
2006/11/17
|
2006/11/17
|
||||||
|
* Fixed potential crash in IRC processing message with '%' using *printf. [Lance]
|
||||||
|
* Fixed memory leaking caused by homun_data not freed when removed. [Lance]
|
||||||
* Fixed client not validating the chat-kick-request packet, which can cause
|
* Fixed client not validating the chat-kick-request packet, which can cause
|
||||||
crashes. [Skotlex]
|
crashes. [Skotlex]
|
||||||
* Updated map_quit to handle removing of players who are not even
|
* Updated map_quit to handle removing of players who are not even
|
||||||
|
@ -63,9 +63,10 @@ int irc_connect_timer(int tid, unsigned int tick, int id, int data)
|
|||||||
void irc_announce(char *buf)
|
void irc_announce(char *buf)
|
||||||
{
|
{
|
||||||
char send_string[256];
|
char send_string[256];
|
||||||
malloc_tsetdword(send_string,'\0',256);
|
// malloc_tsetdword(send_string,'\0',256); // NOT REQUIRED
|
||||||
|
|
||||||
sprintf(send_string,"PRIVMSG %s :%s",irc_channel, buf);
|
sprintf(send_string,"PRIVMSG %s :",irc_channel);
|
||||||
|
strcat(send_string, buf);
|
||||||
irc_send(send_string);
|
irc_send(send_string);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -11988,10 +11988,10 @@ int buildin_setmobdata(struct script_state *st){
|
|||||||
md->level = (unsigned short)value2;
|
md->level = (unsigned short)value2;
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
md->status.hp = value2;
|
md->status.hp = (unsigned int)value2;
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
md->status.max_hp = value2;
|
md->status.max_hp = (unsigned int)value2;
|
||||||
break;
|
break;
|
||||||
case 4:
|
case 4:
|
||||||
md->master_id = value2;
|
md->master_id = value2;
|
||||||
@ -12006,49 +12006,49 @@ int buildin_setmobdata(struct script_state *st){
|
|||||||
md->bl.y = (short)value2;
|
md->bl.y = (short)value2;
|
||||||
break;
|
break;
|
||||||
case 8:
|
case 8:
|
||||||
md->status.speed = (short)value2;
|
md->status.speed = (unsigned short)value2;
|
||||||
break;
|
break;
|
||||||
case 9:
|
case 9:
|
||||||
md->status.mode = (short)value2;
|
md->status.mode = (unsigned short)value2;
|
||||||
break;
|
break;
|
||||||
case 10:
|
case 10:
|
||||||
md->special_state.ai = (unsigned int)value2;
|
md->special_state.ai = (unsigned int)value2;
|
||||||
break;
|
break;
|
||||||
case 11:
|
case 11:
|
||||||
md->sc.option = (short)value2;
|
md->sc.option = (unsigned short)value2;
|
||||||
break;
|
break;
|
||||||
case 12:
|
case 12:
|
||||||
md->vd->sex = value2;
|
md->vd->sex = (char)value2;
|
||||||
break;
|
break;
|
||||||
case 13:
|
case 13:
|
||||||
md->vd->class_ = value2;
|
md->vd->class_ = (unsigned short)value2;
|
||||||
break;
|
break;
|
||||||
case 14:
|
case 14:
|
||||||
md->vd->hair_style = (short)value2;
|
md->vd->hair_style = (unsigned short)value2;
|
||||||
break;
|
break;
|
||||||
case 15:
|
case 15:
|
||||||
md->vd->hair_color = (short)value2;
|
md->vd->hair_color = (unsigned short)value2;
|
||||||
break;
|
break;
|
||||||
case 16:
|
case 16:
|
||||||
md->vd->head_bottom = (short)value2;
|
md->vd->head_bottom = (unsigned short)value2;
|
||||||
break;
|
break;
|
||||||
case 17:
|
case 17:
|
||||||
md->vd->head_mid = (short)value2;
|
md->vd->head_mid = (unsigned short)value2;
|
||||||
break;
|
break;
|
||||||
case 18:
|
case 18:
|
||||||
md->vd->head_top = (short)value2;
|
md->vd->head_top = (unsigned short)value2;
|
||||||
break;
|
break;
|
||||||
case 19:
|
case 19:
|
||||||
md->vd->cloth_color = (short)value2;
|
md->vd->cloth_color = (unsigned short)value2;
|
||||||
break;
|
break;
|
||||||
case 20:
|
case 20:
|
||||||
md->vd->shield = value2;
|
md->vd->shield = (unsigned short)value2;
|
||||||
break;
|
break;
|
||||||
case 21:
|
case 21:
|
||||||
md->vd->weapon = (short)value2;
|
md->vd->weapon = (unsigned short)value2;
|
||||||
break;
|
break;
|
||||||
case 22:
|
case 22:
|
||||||
md->vd->shield = (short)value2;
|
md->vd->shield = (unsigned short)value2;
|
||||||
break;
|
break;
|
||||||
case 23:
|
case 23:
|
||||||
md->ud.dir = (unsigned char)value2;
|
md->ud.dir = (unsigned char)value2;
|
||||||
|
@ -1837,6 +1837,7 @@ int unit_free(struct block_list *bl, int clrtype) {
|
|||||||
intif_homunculus_requestdelete(hd->homunculus.hom_id);
|
intif_homunculus_requestdelete(hd->homunculus.hom_id);
|
||||||
if (sd) sd->status.hom_id = 0;
|
if (sd) sd->status.hom_id = 0;
|
||||||
}
|
}
|
||||||
|
aFree(hd); // Remember to free it! [Lance]
|
||||||
if(sd) sd->hd = NULL;
|
if(sd) sd->hd = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user