diff options
-rw-r--r-- | npc/merchants/shops.txt | 8 | ||||
-rw-r--r-- | npc/warps/cities/comodo.txt | 2 | ||||
-rw-r--r-- | npc/warps/dungeons/odin.txt | 2 | ||||
-rw-r--r-- | npc/warps/dungeons/xmas_dun.txt | 2 | ||||
-rw-r--r-- | src/map/atcommand.c | 8 | ||||
-rw-r--r-- | src/map/clif.c | 31 | ||||
-rw-r--r-- | src/map/clif.h | 2 | ||||
-rw-r--r-- | src/map/map.c | 59 | ||||
-rw-r--r-- | src/map/map.h | 3 | ||||
-rw-r--r-- | src/map/party.c | 2 |
10 files changed, 44 insertions, 75 deletions
diff --git a/npc/merchants/shops.txt b/npc/merchants/shops.txt index 57a2ca825..80438b83c 100644 --- a/npc/merchants/shops.txt +++ b/npc/merchants/shops.txt @@ -114,9 +114,9 @@ geffen,193,152,4 shop Pet Groomer#gef 124,537:-1,643:-1,10013:-1,10014:-1 //======================================================= // Gonryun //======================================================= -gonryun,147,84,5 shop Tool Dealer 777,1750:-1,1770:-1,611:-1,501:-1,502:-1,503:-1,504:-1,506:-1,645:-1,656:-1,601:-1,602:-1,1065:-1 -gonryun,174,101,3 shop Weapon Dealer 774,1207:-1,1216:-1,1107:-1,1122:-1,1116:-1,1154:-1,1407:-1,1457:-1,1354:-1,1519:-1 -gonryun,173,84,3 shop Armor Dealer 770,2211:-1,2401:-1,2403:-1,2501:-1,2503:-1,2101:-1,2103:-1,2305:-1,2321:-1,2332:-1,2328:-1,2627:-1 +gonryun,147,84,5 shop Tool Dealer#gon 777,1750:-1,1770:-1,611:-1,501:-1,502:-1,503:-1,504:-1,506:-1,645:-1,656:-1,601:-1,602:-1,1065:-1 +gonryun,174,101,3 shop Weapon Dealer#gon 774,1207:-1,1216:-1,1107:-1,1122:-1,1116:-1,1154:-1,1407:-1,1457:-1,1354:-1,1519:-1 +gonryun,173,84,3 shop Armor Dealer#gon 770,2211:-1,2401:-1,2403:-1,2501:-1,2503:-1,2101:-1,2103:-1,2305:-1,2321:-1,2332:-1,2328:-1,2627:-1 //======================================================= // Hugel @@ -136,7 +136,7 @@ izlude_in,60,127,4 shop Weapon Dealer#iz 72,1750:-1,1751:-1,1701:-1,1601:-1,1201 izlude_in,70,127,4 shop Armor Dealer#iz 62,2103:-1,2105:-1,2403:-1,2405:-1,2503:-1,2505:-1,2226:-1,2228:-1,2303:-1,2305:-1,2328:-1,2307:-1,2309:-1,2312:-1,2314:-1,2316:-1,2628:-1 izlude_in,115,61,0 shop Tool Dealer#iz 47,611:-1,501:-1,502:-1,503:-1,504:-1,506:-1,645:-1,656:-1,601:-1,602:-1,1065:-1,1750:-1 izlude,105,99,0 shop Butcher#iz 54,517:-1 -izlude,94,98,4 shop Fruit Gardene#izr 53,512:-1,513:-1,515:-1,516:-1 +izlude,94,98,4 shop Fruit Gardene#iz 53,512:-1,513:-1,515:-1,516:-1 izlude,105,92,7 shop Vendor from Milk Ranch#i 90,519:-1 izlude,164,138,4 shop Pet Groomer#iz 124,537:-1,643:-1,10013:-1,10014:-1 diff --git a/npc/warps/cities/comodo.txt b/npc/warps/cities/comodo.txt index 5c7993dae..72ff8aa11 100644 --- a/npc/warps/cities/comodo.txt +++ b/npc/warps/cities/comodo.txt @@ -42,4 +42,4 @@ cmd_in02,74,21,0 warp cmd_casino4-2 1,1,comodo,140,86 cmd_in02,168,113,0 warp cmd_casino5-1 1,1,cmd_in02,63,73 cmd_in02,58,74,0 warp cmd_casino5-2 1,1,cmd_in02,166,116 cmd_in02,187,78,0 warp cmd_casino6-1 1,1,cmd_in02,84,37 -cmd_in02,90,37,0 warp cmd_casino6-2 1,1,cmd_in02,191,77
\ No newline at end of file +cmd_in02,90,37,0 warp cmd_casino6-2 1,1,cmd_in02,191,77 diff --git a/npc/warps/dungeons/odin.txt b/npc/warps/dungeons/odin.txt index 478c3cad7..d9791115b 100644 --- a/npc/warps/dungeons/odin.txt +++ b/npc/warps/dungeons/odin.txt @@ -24,4 +24,4 @@ odin_tem02,21,334,0 warp odin04 1,1,odin_tem01,379,334 odin_tem02,153,349,0 warp odin05 1,1,odin_tem03,120,54 odin_tem03,121,49,0 warp odin06 1,1,odin_tem02,154,345 odin_tem02,261,377,0 warp odin07 1,1,odin_tem03,247,40 -odin_tem03,247,34,0 warp odin08 1,1,odin_tem02,263,372
\ No newline at end of file +odin_tem03,247,34,0 warp odin08 1,1,odin_tem02,263,372 diff --git a/npc/warps/dungeons/xmas_dun.txt b/npc/warps/dungeons/xmas_dun.txt index fbcb6b511..d797e074e 100644 --- a/npc/warps/dungeons/xmas_dun.txt +++ b/npc/warps/dungeons/xmas_dun.txt @@ -16,4 +16,4 @@ xmas,143,314,0 warp xmas_dun1-1 1,1,xmas_dun01,205,16 xmas_dun01,205,13,0 warp xmas_dun1-2 1,1,xmas,143,311 xmas_dun01,129,130,0 warp xmas_dun2-1 1,1,xmas_dun02,131,130 -xmas_dun02,129,130,0 warp xmas_dun2-2 1,1,xmas_dun01,132,130
\ No newline at end of file +xmas_dun02,129,130,0 warp xmas_dun2-2 1,1,xmas_dun01,132,130 diff --git a/src/map/atcommand.c b/src/map/atcommand.c index ea8a1d163..fcba7b5dd 100644 --- a/src/map/atcommand.c +++ b/src/map/atcommand.c @@ -3663,7 +3663,7 @@ int atcommand_kick(const int fd, struct map_session_data* sd, const char* comman return -1; } - clif_GM_kick(sd, pl_sd, 1); + clif_GM_kick(sd, pl_sd); return 0; } @@ -3682,7 +3682,7 @@ int atcommand_kickall(const int fd, struct map_session_data* sd, const char* com for (i = 0; i < users; i++) { if ((pl_sd = pl_allsd[i]) && pc_isGM(sd) >= pc_isGM(pl_sd)) { // you can kick only lower or same gm level if (sd->status.account_id != pl_sd->status.account_id) - clif_GM_kick(sd, pl_sd, 0); + clif_GM_kick(NULL, pl_sd); } } @@ -3899,9 +3899,9 @@ int atcommand_mapexit(const int fd, struct map_session_data* sd, const char* com pl_allsd = map_getallusers(&users); for (i = 0; i < users; i++) { if ((pl_sd = pl_allsd[i]) && sd->status.account_id != pl_sd->status.account_id) - clif_GM_kick(sd, pl_sd, 0); + clif_GM_kick(NULL, pl_sd); } - clif_GM_kick(sd, sd, 0); + clif_GM_kick(NULL, sd); flush_fifos(); diff --git a/src/map/clif.c b/src/map/clif.c index fd8b2e076..5700aa435 100644 --- a/src/map/clif.c +++ b/src/map/clif.c @@ -3434,9 +3434,9 @@ void clif_getareachar_unit(struct map_session_data* sd,struct block_list *bl) TBL_PC* tsd = (TBL_PC*)bl; clif_getareachar_pc(sd, tsd); if(tsd->state.size==2) // tiny/big players [Valaris] - clif_specialeffect_single(bl, 423, sd->fd); + clif_specialeffect_single(bl,423,sd->fd); else if(tsd->state.size==1) - clif_specialeffect_single(bl, 421, sd->fd); + clif_specialeffect_single(bl,421,sd->fd); } break; case BL_NPC: @@ -3450,9 +3450,9 @@ void clif_getareachar_unit(struct map_session_data* sd,struct block_list *bl) { TBL_MOB* md = (TBL_MOB*)bl; if(md->special_state.size==2) // tiny/big mobs [Valaris] - clif_specialeffect_single(bl, 423, sd->fd); + clif_specialeffect_single(bl,423,sd->fd); else if(md->special_state.size==1) - clif_specialeffect_single(bl, 421, sd->fd); + clif_specialeffect_single(bl,421,sd->fd); } break; case BL_PET: @@ -6880,7 +6880,7 @@ int clif_GM_kickack(struct map_session_data *sd, int id) return 0; } -int clif_GM_kick(struct map_session_data *sd,struct map_session_data *tsd,int type) +void clif_GM_kick(struct map_session_data *sd,struct map_session_data *tsd) { int fd = tsd->fd; @@ -6889,10 +6889,8 @@ int clif_GM_kick(struct map_session_data *sd,struct map_session_data *tsd,int ty else map_quit(tsd); - if( type ) + if( sd ) clif_GM_kickack(sd,tsd->status.account_id); - - return 0; } /// Displays various manner-related status messages @@ -9046,14 +9044,11 @@ void clif_parse_ChangeCart(int fd,struct map_session_data *sd) type = (int)RFIFOW(fd,2); - if( (type == 5 && sd->status.base_level <= 90) || - (type == 4 && sd->status.base_level <= 80) || - (type == 3 && sd->status.base_level <= 65) || - (type == 2 && sd->status.base_level <= 40) || - pc_setcart(sd,type) ) - { - LOG_SUSPICIOUS(sd,"clif_parse_ChangeCart"); - } + if( (type == 5 && sd->status.base_level > 90) || + (type == 4 && sd->status.base_level > 80) || + (type == 3 && sd->status.base_level > 65) || + (type == 2 && sd->status.base_level > 40) ) + pc_setcart(sd,type); } /*========================================== @@ -9403,7 +9398,7 @@ void clif_parse_NpcSelectMenu(int fd,struct map_session_data *sd) select = RFIFOB(fd,6); if((select > sd->npc_menu && select != 0xff) || !select){ ShowWarning("Hack on NPC Select Menu: %s (AID: %d)!\n",sd->status.name,sd->bl.id); - clif_GM_kick(sd,sd,0); + clif_GM_kick(NULL,sd); } else { sd->npc_menu=select; npc_scriptcont(sd,RFIFOL(fd,2)); @@ -10258,7 +10253,7 @@ void clif_parse_GMKick(int fd, struct map_session_data *sd) clif_GM_kickack(sd, 0); return; } - clif_GM_kick(sd, tsd, 1); + clif_GM_kick(sd, tsd); if(log_config.gm && lv >= log_config.gm) { char message[256]; sprintf(message, "/kick %s (%d)", tsd->status.name, tsd->status.char_id); diff --git a/src/map/clif.h b/src/map/clif.h index b93321985..8a0cd10a9 100644 --- a/src/map/clif.h +++ b/src/map/clif.h @@ -362,7 +362,7 @@ void clif_specialeffect_single(struct block_list* bl, int type, int fd); int clif_message(struct block_list *bl, const char* msg); // messages (from mobs/npcs) [Valaris] int clif_GM_kickack(struct map_session_data *sd,int id); -int clif_GM_kick(struct map_session_data *sd,struct map_session_data *tsd,int type); +void clif_GM_kick(struct map_session_data *sd,struct map_session_data *tsd); void clif_manner_message(struct map_session_data* sd, uint32 type); void clif_GM_silence(struct map_session_data* sd, struct map_session_data* tsd, uint8 type); int clif_timedout(struct map_session_data *sd); diff --git a/src/map/map.c b/src/map/map.c index e713b7d4a..3900247fe 100644 --- a/src/map/map.c +++ b/src/map/map.c @@ -1770,17 +1770,19 @@ struct map_session_data** map_getallusers(int *users) all_count = pc_db->size(pc_db); //This is the real number of chars in the db, better use this than the actual "online" count. if (all_count < 1) all_count = 10; //Allow room for at least 10 chars. - all_sd = aCalloc(all_count, sizeof(struct map_session_data*)); //it's actually just the size of a pointer. + CREATE(all_sd, struct map_session_data*, all_count); } if (all_count < pc_db->size(pc_db)) { all_count = pc_db->size(pc_db)+10; //Give some room to prevent doing reallocs often. - all_sd = aRealloc(all_sd, all_count*sizeof(struct map_session_data*)); + RECREATE(all_sd, struct map_session_data*, all_count); } + *users = pc_db->getall(pc_db,(void**)all_sd,all_count,map_getallpc_sub); if (*users > (signed int)all_count) //Which should be impossible... *users = all_count; + return all_sd; } @@ -1819,18 +1821,18 @@ int map_foreachiddb(int (*func)(DBKey,void*,va_list),...) int map_addnpc(int m,struct npc_data *nd) { int i; - if(m<0 || m>=map_num) + if( m < 0 || m >= map_num ) return -1; - for(i=0;i<map[m].npc_num && i<MAX_NPC_PER_MAP;i++) - if(map[m].npc[i]==NULL) - break; - if(i==MAX_NPC_PER_MAP){ + + ARR_FIND( 0, MAX_NPC_PER_MAP, i, map[m].npc[i] == NULL ); + if( i == MAX_NPC_PER_MAP ) + { ShowWarning("too many NPCs in one map %s\n",map[m].name); return -1; } - if(i==map[m].npc_num){ + + if( i == map[m].npc_num ) map[m].npc_num++; - } nullpo_retr(0, nd); @@ -1841,44 +1843,19 @@ int map_addnpc(int m,struct npc_data *nd) return i; } -void map_removenpc(void) -{ - int i,m,n=0; - - for(m=0;m<map_num;m++) { - for(i=0;i<map[m].npc_num && i<MAX_NPC_PER_MAP;i++) { - if(map[m].npc[i]!=NULL) { - clif_clearunit_area(&map[m].npc[i]->bl,2); - map_delblock(&map[m].npc[i]->bl); - idb_remove(id_db,map[m].npc[i]->bl.id); - if(map[m].npc[i]->subtype==SCRIPT) { - aFree(map[m].npc[i]->u.scr.script); - aFree(map[m].npc[i]->u.scr.label_list); - } - aFree(map[m].npc[i]); - map[m].npc[i] = NULL; - n++; - } - } - } - - ShowStatus("Successfully removed and freed from memory '"CL_WHITE"%d"CL_RESET"' NPCs.\n",n); -} - /*========================================= * Dynamic Mobs [Wizputer] *-----------------------------------------*/ -// allocates a struct when it there is place free in the cache, -// and returns NULL otherwise -// -- i'll just leave the old code in case it's needed ^^; +// Stores the spawn data entry in the mob list. +// Returns the index of successful, or -1 if the list was full. int map_addmobtolist(unsigned short m, struct spawn_data *spawn) { size_t i; - for (i = 0; i < MAX_MOB_LIST_PER_MAP; i++) { - if (map[m].moblist[i] == NULL) { - map[m].moblist[i] = spawn; - return i; - } + ARR_FIND( 0, MAX_MOB_LIST_PER_MAP, i, map[m].moblist[i] == NULL ); + if( i < MAX_MOB_LIST_PER_MAP ) + { + map[m].moblist[i] = spawn; + return i; } return -1; } diff --git a/src/map/map.h b/src/map/map.h index 0ae13ad95..fc67a5387 100644 --- a/src/map/map.h +++ b/src/map/map.h @@ -503,9 +503,6 @@ struct homunculus_db; //[orn] struct item_data; struct square; -// The player performed a suspicious action (not used right now) [FlavioJS] -#define LOG_SUSPICIOUS(sd,msg) - struct map_session_data { struct block_list bl; struct unit_data ud; diff --git a/src/map/party.c b/src/map/party.c index 1b3a9eaf7..0f042db89 100644 --- a/src/map/party.c +++ b/src/map/party.c @@ -145,7 +145,7 @@ int party_check_member(struct party *p) nullpo_retr(0, p); all_sd = map_getallusers(&users); - + for(i=0;i<users;i++) { sd = all_sd[i]; |