How to remove an item from a specified inventory slot?

Users who are viewing this thread

dariel

Sergeant Knight at Arms
Hi all! I'm trying to make a gifting dialogue that lets you select a suitable item and give it to a lord. The item should not have any negative modifiers to be suitable. So far I've been able to filter for that using inventory slots, but when I give the item and try to empty the item's slot, I instead get an [Invalid Item] entry for that slot. How can I fix this? Thanks!
 
Last edited:
Solution
Never mind, found a solution. I just had to remove "itm_no_item" afterward. :smile: Locking.

Code:
[anyone|plyr,"choose_gift_item",[
(assign,reg60,0),
(assign,":good_item_slot",0),
(assign,":gift_item",0),
(troop_get_inventory_capacity, ":inv_cap", "trp_player"),
(try_for_range, ":slot_no", 11, ":inv_cap"),
(troop_get_inventory_slot, ":item", "trp_player", ":slot_no"),
(gt, ":item", 0),
(troop_get_inventory_slot_modifier, ":mod", "trp_player", ":slot_no"),
(is_between,":item","itm_jamdhar_katari","itm_bandit_dagger"),
(try_begin),
(eq,":mod",imod_plain)...
Never mind, found a solution. I just had to remove "itm_no_item" afterward. :smile: Locking.

Code:
[anyone|plyr,"choose_gift_item",[
(assign,reg60,0),
(assign,":good_item_slot",0),
(assign,":gift_item",0),
(troop_get_inventory_capacity, ":inv_cap", "trp_player"),
(try_for_range, ":slot_no", 11, ":inv_cap"),
(troop_get_inventory_slot, ":item", "trp_player", ":slot_no"),
(gt, ":item", 0),
(troop_get_inventory_slot_modifier, ":mod", "trp_player", ":slot_no"),
(is_between,":item","itm_jamdhar_katari","itm_bandit_dagger"),
(try_begin),
(eq,":mod",imod_plain),
(le,":good_item_slot",0),
(assign,":good_item_slot",":slot_no"),
(else_try),
(eq,":mod",imod_fine),
(le,":good_item_slot",0),
(assign,":good_item_slot",":slot_no"),
(else_try),
(eq,":mod",imod_well_made),
(le,":good_item_slot",0),
(assign,":good_item_slot",":slot_no"),
(else_try),
(eq,":mod",imod_sharp),
(le,":good_item_slot",0),
(assign,":good_item_slot",":slot_no"),
(else_try),
(eq,":mod",imod_balanced),
(le,":good_item_slot",0),
(assign,":good_item_slot",":slot_no"),
(else_try),
(eq,":mod",imod_tempered),
(le,":good_item_slot",0),
(assign,":good_item_slot",":slot_no"),
(else_try),
(eq,":mod",imod_masterwork),
(le,":good_item_slot",0),
(assign,":good_item_slot",":slot_no"),
(else_try),
(eq,":mod",imod_heavy),
(le,":good_item_slot",0),
(assign,":good_item_slot",":slot_no"),
(try_end),
(gt,":good_item_slot",0),
(assign,reg60,":good_item_slot"),
(troop_get_inventory_slot, ":gift_item", "trp_player", ":good_item_slot"),
(str_store_item_name,s4,":gift_item"),
(assign,reg63,":gift_item"),
(try_end),
],"A fine {s4}. New version.","lord_accept_gift",[
(assign,"$chosen_item",reg63),
]],

[anyone,"lord_accept_gift",[
(gt,"$chosen_item",0),
(call_script, "script_troop_get_player_relation", "$g_talk_troop"),
(ge,reg0,0),
(str_store_item_name,s4,"$chosen_item"),
],"Thank you! I accept this fine {s4} with pleasure. Your generosity is impressive, {s1}.","lord_leave",[
(troop_set_inventory_slot,"trp_player",reg60,0),
#zeroes out the identified slot, thus removing the item
#works but leaves me with an Invalid Item in that slot
(call_script,"script_change_player_relation_with_troop","$g_talk_troop","$gift_value"),
]],
 
Upvote 0
Solution
Back
Top Bottom