Explorar o código

bindatcmd now supports the new event name length

Lemongrass3110 %!s(int64=8) %!d(string=hai) anos
pai
achega
7377f0f674
Modificáronse 3 ficheiros con 6 adicións e 4 borrados
  1. 3 1
      src/map/atcommand.h
  2. 1 1
      src/map/mob.c
  3. 2 2
      src/map/script.c

+ 3 - 1
src/map/atcommand.h

@@ -4,6 +4,8 @@
 #ifndef _ATCOMMAND_H_
 #define _ATCOMMAND_H_
 
+#include "../common/mmo.h"
+
 struct map_session_data;
 
 //This is the distance at which @autoloot works,
@@ -35,7 +37,7 @@ bool atcommand_exists(const char* name);
 // @commands (script based)
 struct atcmd_binding_data {
 	char command[50];
-	char npc_event[50];
+	char npc_event[EVENT_NAME_LENGTH];
 	int level;
 	int level2;
 };

+ 1 - 1
src/map/mob.c

@@ -385,7 +385,7 @@ struct mob_data* mob_spawn_dataset(struct spawn_data *data)
 	if (data->state.size)
 		md->special_state.size = data->state.size;
 	if (data->eventname[0] && strlen(data->eventname) >= 4)
-		memcpy(md->npc_event, data->eventname, 50);
+		safestrncpy(md->npc_event, data->eventname, EVENT_NAME_LENGTH);
 	if(status_has_mode(&md->db->status,MD_LOOTER))
 		md->lootitems = (struct s_mob_lootitem *)aCalloc(LOOTITEM_SIZE,sizeof(struct s_mob_lootitem));
 	md->spawn_timer = INVALID_TIMER;

+ 2 - 2
src/map/script.c

@@ -20093,7 +20093,7 @@ BUILDIN_FUNC(bindatcmd) {
 	} else {
 		ARR_FIND(0, atcmd_binding_count, i, strcmp(atcmd_binding[i]->command,atcmd) == 0);
 		if( i < atcmd_binding_count ) {/* update existent entry */
-			safestrncpy(atcmd_binding[i]->npc_event, eventName, 50);
+			safestrncpy(atcmd_binding[i]->npc_event, eventName, EVENT_NAME_LENGTH);
 			atcmd_binding[i]->level = level;
 			atcmd_binding[i]->level2 = level2;
 		} else
@@ -20109,7 +20109,7 @@ BUILDIN_FUNC(bindatcmd) {
 		CREATE(atcmd_binding[i],struct atcmd_binding_data,1);
 
 		safestrncpy(atcmd_binding[i]->command, atcmd, 50);
-		safestrncpy(atcmd_binding[i]->npc_event, eventName, 50);
+		safestrncpy(atcmd_binding[i]->npc_event, eventName, EVENT_NAME_LENGTH);
 		atcmd_binding[i]->level = level;
 		atcmd_binding[i]->level2 = level2;
 	}