- Corrected the online_data_cleanup routine setting offline characters that are still connected to the char-server.

- Added a check in script command sc_end to properly end infinte endure
- ASC_BREAKER no longer triggers status effect cards.


git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11817 54d463be-8e91-2dee-dedb-b68131a5f0ec
This commit is contained in:
skotlex 2007-11-27 09:21:18 +00:00
parent 8e58ea8df8
commit 9a56a88f4a
5 changed files with 16 additions and 1 deletions

View File

@ -4,6 +4,10 @@ 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.
2007/11/27 2007/11/27
* Corrected the online_data_cleanup routine setting offline characters that
are still connected to the char-server.
* Added a check in script command sc_end to properly end infinte endure
* ASC_BREAKER no longer triggers status effect cards. [Skotlex]
* Fixed fake_nd not being exported correctly and being unloaded when * Fixed fake_nd not being exported correctly and being unloaded when
reloading scripts. (probably fixes bugreport:444) [FlavioJS] reloading scripts. (probably fixes bugreport:444) [FlavioJS]
2007/11/26 2007/11/26

View File

@ -3909,6 +3909,8 @@ static int chardb_waiting_disconnect(int tid, unsigned int tick, int id, int dat
static int online_data_cleanup_sub(DBKey key, void *data, va_list ap) static int online_data_cleanup_sub(DBKey key, void *data, va_list ap)
{ {
struct online_char_data *character= (struct online_char_data*)data; struct online_char_data *character= (struct online_char_data*)data;
if (character->fd != -1)
return 0; //Character still connected
if (character->server == -2) //Unknown server.. set them offline if (character->server == -2) //Unknown server.. set them offline
set_char_offline(character->char_id, character->account_id); set_char_offline(character->char_id, character->account_id);
if (character->server < 0) if (character->server < 0)

View File

@ -3455,6 +3455,8 @@ static int chardb_waiting_disconnect(int tid, unsigned int tick, int id, int dat
static int online_data_cleanup_sub(DBKey key, void *data, va_list ap) static int online_data_cleanup_sub(DBKey key, void *data, va_list ap)
{ {
struct online_char_data *character= (struct online_char_data*)data; struct online_char_data *character= (struct online_char_data*)data;
if (character->fd != -1)
return 0; //Still connected
if (character->server == -2) //Unknown server.. set them offline if (character->server == -2) //Unknown server.. set them offline
set_char_offline(character->char_id, character->account_id); set_char_offline(character->char_id, character->account_id);
if (character->server < 0) if (character->server < 0)

View File

@ -8122,6 +8122,12 @@ BUILDIN_FUNC(sc_end)
if( bl ) if( bl )
{ {
if( type == SC_ENDURE )
{ //Required to terminate properly infinite endure.
struct status_change *sc = status_get_sc(bl);
struct status_change_entry *sce = sc?sc->data[type]:NULL;
if (sce) sce->val4 = 0;
}
if( type >= 0 ) if( type >= 0 )
status_change_end(bl, type, INVALID_TIMER); status_change_end(bl, type, INVALID_TIMER);
else else

View File

@ -799,7 +799,8 @@ int skill_additional_effect (struct block_list* src, struct block_list *bl, int
if(sd && attack_type&BF_WEAPON && if(sd && attack_type&BF_WEAPON &&
skillid != WS_CARTTERMINATION && skillid != WS_CARTTERMINATION &&
skillid != AM_DEMONSTRATION && skillid != AM_DEMONSTRATION &&
skillid != CR_REFLECTSHIELD skillid != CR_REFLECTSHIELD &&
skillid != ASC_BREAKER
){ //Trigger status effects ){ //Trigger status effects
int i, type; int i, type;
for(i=0; i < ARRAYLENGTH(sd->addeff) && sd->addeff[i].flag; i++) for(i=0; i < ARRAYLENGTH(sd->addeff) && sd->addeff[i].flag; i++)