Преглед изворни кода

Add getitempos script (#6621)

item script that return equip position.
Joam пре 3 година
родитељ
комит
44188e39d4
2 измењених фајлова са 30 додато и 0 уклоњено
  1. 9 0
      doc/script_commands.txt
  2. 21 0
      src/map/script.cpp

+ 9 - 0
doc/script_commands.txt

@@ -3135,6 +3135,15 @@ EQI_COMPOUND_ON      - Item slot that calls this script (In context of item scri
 
 For a list of others equipment slots see 'getequipid'.
 
+---------------------------------------
+
+*getitempos()
+
+This function will return the equip position of the equipment from which the
+function is called. (see EQP_* constants)
+
+This function is intended for use in item scripts.
+
 ---------------------------------------
 //
 2,1.- End of item-related commands.

+ 21 - 0
src/map/script.cpp

@@ -25736,6 +25736,25 @@ BUILDIN_FUNC( openstylist ){
 #endif
 }
 
+BUILDIN_FUNC(getitempos) {
+	struct map_session_data* sd;
+
+	if ( !script_rid2sd(sd) ){
+		script_pushint(st, 0);
+		return SCRIPT_CMD_FAILURE;
+	}
+
+	if( current_equip_item_index == -1 ){
+		ShowError( "buildin_getitempos: Invalid usage detected. This command should only be used inside item scripts.\n" );
+		script_pushint(st, 0);
+		return SCRIPT_CMD_FAILURE;
+	}
+
+	script_pushint(st, sd->inventory.u.items_inventory[current_equip_item_index].equip);
+
+	return SCRIPT_CMD_SUCCESS;
+}
+
 #include "../custom/script.inc"
 
 // declarations that were supposed to be exported from npc_chat.cpp
@@ -26443,6 +26462,8 @@ struct script_function buildin_func[] = {
 
 	BUILDIN_DEF(setinstancevar,"rvi"),
 	BUILDIN_DEF(openstylist, "?"),
+
+	BUILDIN_DEF(getitempos,""),
 #include "../custom/script_def.inc"
 
 	{NULL,NULL,NULL},