26-01-2009, 10:25 PM
I did some chances, though I'm not sure if they'll work. :\
I need a way to make it check to see if anyone bought that item in the last day/game day.
10 minutes = 1 game hour
I need a way to make it check to see if anyone bought that item in the last day/game day.
10 minutes = 1 game hour
Code:
' ::::::::::::::::::::::::::
' :: Trade request packet ::
' ::::::::::::::::::::::::::
Sub HandleTradeRequest(ByVal Index As Long, _
ByRef Parse() As String)
Dim n As Long
Dim i As Long
Dim x As Long
Dim z As Long
' Trade num
n = CLng(Parse(1))
' Prevent hacking
If (n MAX_TRADES) Then
Call HackingAttempt(Index, "Trade Request Modification")
Exit Sub
End If
' Index for shop
i = Map(GetPlayerMap(Index)).Shop
' Check if inv full
x = FindOpenInvSlot(Index, Shop(i).TradeItem(n).GetItem)
'If the Demand Increase and Decrease = 0 Then the stock = 10
'(This is so that, an item that hasn't ever been bought, will be in stock)
If Shop(i).TradeItem(n).DemandIncrease = 0 And Shop(i).TradeItem(n).DemandDecrease = 0 Then
Shop(i).TradeItem(n).Stocked = 10
End If
If x = 0 Then
Call PlayerMsg(Index, "Trade unsuccessful, inventory full.", BrightRed)
Exit Sub
End If
'Check to see if they have on in stock
If Shop(i).TradeItem(n).Stocked > 0 Then
' Check if they have the item
If HasItem(Index, Shop(i).TradeItem(n).GiveItem) >= Shop(i).TradeItem(n).GiveValue Then
Call TakeItem(Index, Shop(i).TradeItem(n).GiveItem, Shop(i).TradeItem(n).GiveValue)
Call GiveItem(Index, Shop(i).TradeItem(n).GetItem, Shop(i).TradeItem(n).GetValue)
Call PlayerMsg(Index, "The trade was successful!", Yellow)
'Minus one from stock
Shop(i).TradeItem(n).Stocked = Shop(i).TradeItem(n).Stocked - 1
'Add moar demand
Shop(i).TradeItem(n).DemandIncrease = Shop(i).TradeItem(n).DemandIncrease + 0.1
Select Case Shop(i).TradeItem(n).DemandIncrease
Case 1
Shop(i).TradeItem(n).Stocked = Shop(i).TradeItem(n).Stocked + 5
Case 5
Shop(i).TradeItem(n).Stocked = Shop(i).TradeItem(n).Stocked + 10
Case 10
Shop(i).TradeItem(n).Stocked = Shop(i).TradeItem(n).Stocked + 20
End Select
'It's in high demand, lets give a stock increase of five.
'If Shop(i).TradeItem(n).DemandIncrease > 1 Then
' 'Add five more to the current stock
' Shop(i).TradeItem(n).Stocked = Shop(i).TradeItem(n).Stocked + 5
'End If
Select Case Shop(i).TradeItem(n).DemandDecrease
Case 1
Shop(i).TradeItem(n).Stocked = Shop(i).TradeItem(n).Stocked - 5
Case 5
Shop(i).TradeItem(n).Stocked = Shop(i).TradeItem(n).Stocked - 10
Case 10
Shop(i).TradeItem(n).Stocked = Shop(i).TradeItem(n).Stocked = 0
End Select
'No one buys it, why keep a high stock?
'If Shop(i).TradeItem(n).DemandDecrease >= 1 Then
' Shop(i).TradeItem(n).Stocked = Shop(i).TradeItem(n).Stocked - 5
'End If
Else
Call PlayerMsg(Index, "Trade unsuccessful.", BrightRed)
End If
Else
Call PlayerMsg(Index, "This item is not in stock, at the moment!", BrightRed)
End If
End Sub