Corrected a few minor issues

* Follow up to 2cfb844.
* Adjusted the instance_db documentation.
* Adjusted script command instance_announce to check when instance ID is 0 rather than -1 since instance IDs are stored as unsigned now.
* Added a couple of checks when sending instance information to the client.
* Fixed a compile warning.
This commit is contained in:
aleos89
2016-05-24 09:22:03 -04:00
parent c591586f2b
commit 6babca3689
6 changed files with 21 additions and 13 deletions

View File

@@ -1,6 +1,6 @@
// Instance Database
//
// Structure of Database:
// ID,Name,LimitTime,IdleTimeOut,EnterMap,EnterX,EnterY,Map2,Map3,Map4,Map5,Map6,Map7,Map8,Map9,Map10
// ID,Name,LimitTime,IdleTimeOut,EnterMap,EnterX,EnterY,Map2,Map3,...,Map255
//
// EnterMap is considered as Map1

View File

@@ -1,7 +1,7 @@
// Instance Database
//
// Structure of Database:
// ID,Name,LimitTime,IdleTimeOut,EnterMap,EnterX,EnterY,Map2,Map3,Map4,Map5,Map6,Map7,Map8,Map9,Map10
// ID,Name,LimitTime,IdleTimeOut,EnterMap,EnterX,EnterY,Map2,Map3,...,Map255
//
// EnterMap is considered as Map1

View File

@@ -1,7 +1,7 @@
// Instance Database
//
// Structure of Database:
// ID,Name,LimitTime,IdleTimeOut,EnterMap,EnterX,EnterY,Map2,Map3,Map4,Map5,Map6,Map7,Map8,Map9,Map10
// ID,Name,LimitTime,IdleTimeOut,EnterMap,EnterX,EnterY,Map2,...,Map255
//
// EnterMap is considered as Map1

View File

@@ -8201,7 +8201,7 @@ fails, the script will come to a halt.
*instance_announce <instance id>,"<text>",<flag>{,<fontColor>{,<fontType>{,<fontSize>{,<fontAlign>{,<fontY>}}}}};
Broadcasts a message to all players in the instance <instance id> currently
residing on an instance map. If -1 is specified for <instance id>, the instance
residing on an instance map. If 0 is specified for <instance id>, the instance
the script is attached to is used. If the script is not attached to an instance,
the instance of the currently attached player is used (if it is a character,
party, or guild mode). If it is not owned by anyone, no player needs to be attached.

View File

@@ -16589,8 +16589,12 @@ void clif_instance_create(unsigned short instance_id, int num)
return;
db = instance_searchtype_db(instance_data[instance_id].type);
if (!db)
return;
WBUFW(buf,0) = 0x2cb;
safestrncpy(WBUFP(buf,2), StringBuf_Value(db->name), INSTANCE_NAME_LENGTH);
safestrncpy((char *)WBUFP(buf,2), StringBuf_Value(db->name), INSTANCE_NAME_LENGTH);
WBUFW(buf,63) = num;
clif_send(buf,packet_len(0x2cb),&sd->bl,target);
#endif
@@ -16636,8 +16640,12 @@ void clif_instance_status(unsigned short instance_id, unsigned int limit1, unsig
return;
db = instance_searchtype_db(instance_data[instance_id].type);
if (!db)
return;
WBUFW(buf,0) = 0x2cd;
safestrncpy(WBUFP(buf,2), StringBuf_Value(db->name), INSTANCE_NAME_LENGTH);
safestrncpy((char *)WBUFP(buf,2), StringBuf_Value(db->name), INSTANCE_NAME_LENGTH);
WBUFL(buf,63) = limit1;
WBUFL(buf,67) = limit2;
clif_send(buf,packet_len(0x2cd),&sd->bl,target);

View File

@@ -18866,7 +18866,7 @@ BUILDIN_FUNC(instance_create)
mode = script_getnum(st, 3);
if (mode < IM_NONE || mode >= IM_MAX) {
ShowError("buildin_instance_create: Unknown instance owner type %d for '%s'\n", mode, script_getstr(st, 2));
ShowError("buildin_instance_create: Unknown instance mode %d for '%s'\n", mode, script_getstr(st, 2));
return SCRIPT_CMD_FAILURE;
}
}
@@ -18916,8 +18916,8 @@ BUILDIN_FUNC(instance_destroy)
else
instance_id = script_instancegetid(st);
if( instance_id <= 0 || instance_id >= MAX_MAP_PER_SERVER ) {
ShowError("buildin_instance_destroy: Trying to destroy invalid instance %d.\n", instance_id);
if( instance_id == 0 || instance_id >= MAX_MAP_PER_SERVER ) {
ShowError("buildin_instance_destroy: Trying to destroy invalid instance %hu.\n", instance_id);
return SCRIPT_CMD_FAILURE;
}
@@ -18970,10 +18970,10 @@ BUILDIN_FUNC(instance_npcname)
if( instance_id && (nd = npc_name2id(str)) != NULL ) {
static char npcname[NAME_LENGTH];
snprintf(npcname, sizeof(npcname), "dup_%d_%d", instance_id, nd->bl.id);
snprintf(npcname, sizeof(npcname), "dup_%hu_%d", instance_id, nd->bl.id);
script_pushconststr(st,npcname);
} else {
ShowError("buildin_instance_npcname: Invalid instance NPC (instance_id: %d, NPC name: \"%s\".)\n", instance_id, str);
ShowError("buildin_instance_npcname: Invalid instance NPC (instance_id: %hu, NPC name: \"%s\".)\n", instance_id, str);
st->state = END;
return SCRIPT_CMD_FAILURE;
}
@@ -19087,7 +19087,7 @@ BUILDIN_FUNC(instance_warpall)
* Broadcasts to all maps inside an instance
*
* instance_announce <instance id>,"<text>",<flag>{,<fontColor>{,<fontType>{,<fontSize>{,<fontAlign>{,<fontY>}}}}};
* Using -1 for <instance id> will auto-detect the id.
* Using 0 for <instance id> will auto-detect the id.
*------------------------------------------*/
BUILDIN_FUNC(instance_announce) {
unsigned short instance_id = script_getnum(st,2);
@@ -19100,7 +19100,7 @@ BUILDIN_FUNC(instance_announce) {
int fontY = script_hasdata(st,9) ? script_getnum(st,9) : 0; // default fontY
int i;
if( instance_id == -1 ) {
if( instance_id == 0 ) {
instance_id = script_instancegetid(st);
}