Allow selling items to the public merch chest
This commit is contained in:
parent
5e36e7bb6b
commit
c986c14754
@ -87,9 +87,9 @@ function MaybeCreateTransaction()
|
||||
elseif soldAmount > 0 && soldItemBase && soldItemQuantity > 0
|
||||
debug.Trace("BRMerchChestScript MaybeCreateTransaction creating sell transaction")
|
||||
BRQuestScript BRScript = BRQuest as BRQuestScript
|
||||
bool result = BRTransaction.CreateFromVendorSale(BRScript.ApiUrl, BRScript.ApiKey, BRScript.ActiveShopId, false, boughtItemQuantity, soldAmount, soldItemBase, self)
|
||||
bool result = BRTransaction.CreateFromVendorSale(BRScript.ApiUrl, BRScript.ApiKey, BRScript.ActiveShopId, true, soldItemQuantity, soldAmount, soldItemBase, self)
|
||||
if !result
|
||||
Debug.MessageBox("Failed to buy merchandise.\n\n" + BRScript.BugReportCopy)
|
||||
Debug.MessageBox("Failed to sell merchandise.\n\n" + BRScript.BugReportCopy)
|
||||
endif
|
||||
soldAmount = 0
|
||||
soldItemBase = None
|
||||
|
@ -14,3 +14,4 @@ bool function Create(string apiUrl, string apiKey, int shopId, Cell shopCell, Ob
|
||||
|
||||
int function GetQuantity(ObjectReference activator) global native
|
||||
int function GetPrice(ObjectReference activator) global native
|
||||
int function GetSellPrice(Form form) global native
|
@ -1,9 +1,12 @@
|
||||
scriptname BRPublicMerchChestScript extends ObjectReference
|
||||
|
||||
Keyword property BRLinkMerchShelf auto
|
||||
Keyword property BRLinkMerchChest auto
|
||||
Actor property PlayerRef auto
|
||||
Quest property BRQuest auto
|
||||
FormList property BREmptyFormList auto
|
||||
Message property BRSellMerchandise auto
|
||||
MiscObject property Gold001 auto
|
||||
|
||||
event OnInit()
|
||||
Debug.Trace("BRPublicMerchChestScript OnInit")
|
||||
@ -48,10 +51,27 @@ endEvent
|
||||
|
||||
Event OnItemAdded(Form baseItem, int itemCount, ObjectReference itemRef, ObjectReference sourceContainer)
|
||||
if sourceContainer == PlayerRef
|
||||
; TODO: implement selling, for now it rejects all additions
|
||||
debug.Notification("Trade rejected")
|
||||
BRQuestScript BRScript = BRQuest as BRQuestScript
|
||||
Form selectedMerchandiseRepl = BRScript.SelectedMerchandise.GetBaseObject()
|
||||
selectedMerchandiseRepl.SetName(baseItem.GetName())
|
||||
ObjectReference shelf = self.GetLinkedRef(BRLinkMerchShelf)
|
||||
ObjectReference privateChest = shelf.GetLinkedRef(BRLinkMerchChest)
|
||||
int price = BRMerchandiseList.GetSellPrice(baseItem)
|
||||
if BRSellMerchandise.Show(itemCount, price * itemCount, price) == 0
|
||||
debug.Trace("BRPublicMerchChestScript creating sell transaction")
|
||||
bool result = BRTransaction.CreateFromVendorSale(BRScript.ApiUrl, BRScript.ApiKey, BRScript.ActiveShopId, true, itemCount, price * itemCount, baseItem, privateChest)
|
||||
if !result
|
||||
Debug.MessageBox("Failed to sell merchandise.\n\n" + BRScript.BugReportCopy)
|
||||
else
|
||||
RemoveAllItems()
|
||||
PlayerRef.AddItem(baseItem, 1)
|
||||
PlayerRef.AddItem(Gold001, price * itemCount)
|
||||
endif
|
||||
else
|
||||
debug.Notification("Trade cancelled")
|
||||
RemoveAllItems()
|
||||
PlayerRef.AddItem(baseItem, itemCount)
|
||||
endif
|
||||
; TODO: trade rejection
|
||||
endif
|
||||
endEvent
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user