📄 dinput.bas
字号:
For IntCount = 0 To 24
If UserInvent(IntCount).Index = TempIndex Or UserInvent(IntCount).Index = -1 Then
UserInvent(IntCount).Index = TempIndex
UserInvent(IntCount).GrhIndex = DaItems(TempIndex).GrhIndex
UserInvent(IntCount).Amount = UserInvent(IntCount).Amount + 1
UserCash = UserCash - TempCost
Exit Sub
End If
Next
End If
End If
If TradeNPC = 2 And StopTalk And DDraw.PointerY = 70 Then
TradeNPC = 0
SayNPC = False
StopTalk = False
CanMove = True
If Facing = East Then NPCz(DudeCoord.X + 1, DudeCoord.Y).CanMove = True
If Facing = West Then NPCz(DudeCoord.X - 1, DudeCoord.Y).CanMove = True
If Facing = South Then NPCz(DudeCoord.X, DudeCoord.Y + 1).CanMove = True
If Facing = North Then NPCz(DudeCoord.X, DudeCoord.Y - 1).CanMove = True
End If
If TradeNPC = 3 And StopTalk And DDraw.PointerY = 70 Then
TradeNPC = 0
SayNPC = False
StopTalk = False
CanMove = True
If Facing = East Then NPCz(DudeCoord.X + 1, DudeCoord.Y).CanMove = True
If Facing = West Then NPCz(DudeCoord.X - 1, DudeCoord.Y).CanMove = True
If Facing = South Then NPCz(DudeCoord.X, DudeCoord.Y + 1).CanMove = True
If Facing = North Then NPCz(DudeCoord.X, DudeCoord.Y - 1).CanMove = True
End If
If TradeNPC = 1 And StopTalk And DDraw.PointerX = 515 Then
DDraw.PointerX = 275
SayNPC = False
StopTalk = False
TradeNPC = 0
CanMove = True
If Facing = East Then NPCz(DudeCoord.X + 1, DudeCoord.Y).CanMove = True
If Facing = West Then NPCz(DudeCoord.X - 1, DudeCoord.Y).CanMove = True
If Facing = South Then NPCz(DudeCoord.X, DudeCoord.Y + 1).CanMove = True
If Facing = North Then NPCz(DudeCoord.X, DudeCoord.Y - 1).CanMove = True
End If
If TradeNPC = 1 And StopTalk And DDraw.PointerX = 275 Then
SayNPC = False
StopTalk = False
SalePointer = 1
TradeNPC = 2
DDraw.PointerX = 135
DDraw.PointerY = 113
End If
If TradeNPC = 1 And StopTalk And DDraw.PointerX = 395 Then
SayNPC = False
StopTalk = False
SalePointer = 1
SaleLoop = 0
TradeNPC = 3
DDraw.PointerX = 135
DDraw.PointerY = 113
End If
If SayNPC = False And StopTalk And Walking = 0 And TradeNPC = 0 And DispInventMenu = False Then
StopTalk = False
NPC.CheckNPC
If DDraw.PointerY = 70 Then DDraw.PointerX = 275
End If
If SayNPC And StopTalk And TradeNPC = 0 Then
StopTalk = False
If NPCNext <> "" Then
NPCTalk = NPCNext
NPCFirst = False
Else
CanMove = True
NPCFirst = True
SayNPC = False
Walking = 0
If Facing = East Then NPCz(DudeCoord.X + 1, DudeCoord.Y).CanMove = True
If Facing = West Then NPCz(DudeCoord.X - 1, DudeCoord.Y).CanMove = True
If Facing = South Then NPCz(DudeCoord.X, DudeCoord.Y + 1).CanMove = True
If Facing = North Then NPCz(DudeCoord.X, DudeCoord.Y - 1).CanMove = True
Exit Sub
End If
End If
Else: StopTalk = True
End If
If aKeys(DIK_RIGHT) Then
If TradeNPC = 1 And StopTradeR And Walking = 0 Then
StopTradeR = False
If DDraw.PointerX = 515 Then DDraw.PointerX = 155
DDraw.PointerX = DDraw.PointerX + 120
End If
Else: StopTradeR = True
End If
If aKeys(DIK_LEFT) Then
If TradeNPC = 1 And StopTradeL And Walking = 0 Then
StopTradeL = False
If DDraw.PointerX = 275 Then DDraw.PointerX = 635
DDraw.PointerX = DDraw.PointerX - 120
End If
Else: StopTradeL = True
End If
If aKeys(DIK_DOWN) Then
If TradeNPC = 2 And StopTradeD And Walking = 0 Then
StopTradeD = False
If DDraw.PointerY = 70 Then
DDraw.PointerY = 88
SalePointer = 0
End If
If DDraw.PointerY = 338 Then
DDraw.PointerX = 360
DDraw.PointerY = 45
Else:
DDraw.PointerX = 135
End If
DDraw.PointerY = DDraw.PointerY + 25
SalePointer = SalePointer + 1
End If
If TradeNPC = 3 And StopTradeD And Walking = 0 Then
StopTradeD = False
If DDraw.PointerY = 70 Then
DDraw.PointerY = 88
SalePointer = DDraw.SaleLoop
End If
If DDraw.PointerY = 338 Then
If SaleLoop < 15 Then
DDraw.SaleLoop = DDraw.SaleLoop + 1
SalePointer = SalePointer + 1
Exit Sub
End If
End If
If DDraw.PointerY = 338 Then
DDraw.PointerX = 360
DDraw.PointerY = 45
Else:
DDraw.PointerX = 135
End If
DDraw.PointerY = DDraw.PointerY + 25
SalePointer = SalePointer + 1
End If
If DispInventMenu = True And StopTradeD And Walking = 0 Then
StopTradeD = False
If DDraw.PointerY = 70 Then
DDraw.PointerY = 88
SalePointer = DDraw.SaleLoop
End If
If DDraw.PointerY = 338 Then
If SaleLoop < 15 Then
DDraw.SaleLoop = DDraw.SaleLoop + 1
SalePointer = SalePointer + 1
Exit Sub
End If
End If
If DDraw.PointerY = 338 Then
DDraw.PointerX = 245
DDraw.PointerY = 45
Else:
DDraw.PointerX = 25
End If
DDraw.PointerY = DDraw.PointerY + 25
SalePointer = SalePointer + 1
End If
Else: StopTradeD = True
End If
If aKeys(DIK_UP) Then
If TradeNPC = 2 And StopTradeU And Walking = 0 Then
StopTradeU = False
If DDraw.PointerY = 70 Then
DDraw.PointerY = 363
SalePointer = 11
End If
If DDraw.PointerY = 113 Then
DDraw.PointerX = 360
DDraw.PointerY = 95
Else:
DDraw.PointerX = 135
End If
DDraw.PointerY = DDraw.PointerY - 25
SalePointer = SalePointer - 1
End If
If TradeNPC = 3 And StopTradeU And Walking = 0 Then
StopTradeU = False
If DDraw.PointerY = 70 Then
DDraw.PointerY = 363
SalePointer = DDraw.SaleLoop + 11
End If
If DDraw.PointerY = 113 Then
If DDraw.SaleLoop > 0 Then
DDraw.SaleLoop = DDraw.SaleLoop - 1
SalePointer = SalePointer - 1
Exit Sub
End If
End If
If DDraw.PointerY = 113 Then
DDraw.PointerX = 360
DDraw.PointerY = 95
Else:
DDraw.PointerX = 135
End If
DDraw.PointerY = DDraw.PointerY - 25
SalePointer = SalePointer - 1
End If
If DispInventMenu = True And StopTradeU And Walking = 0 Then
StopTradeU = False
If DDraw.PointerY = 70 Then
DDraw.PointerY = 363
SalePointer = DDraw.SaleLoop + 11
End If
If DDraw.PointerY = 113 Then
If DDraw.SaleLoop > 0 Then
DDraw.SaleLoop = DDraw.SaleLoop - 1
SalePointer = SalePointer - 1
Exit Sub
End If
End If
If DDraw.PointerY = 113 Then
DDraw.PointerX = 245
DDraw.PointerY = 95
Else:
DDraw.PointerX = 25
End If
DDraw.PointerY = DDraw.PointerY - 25
SalePointer = SalePointer - 1
End If
Else: StopTradeU = True
End If
If aKeys(DIK_I) Then
If TradeNPC = 0 And SayNPC = False Then
SaleLoop = 0
SalePointer = 1
CanMove = False
DispInventMenu = True
DDraw.PointerX = 25
DDraw.PointerY = 113
End If
End If
End If
If Walking = 0 And CanMove Then
If aKeys(DIK_UP) Then
Walking = North
MainChar.CheckCol
GoTo Skipper:
End If
If aKeys(DIK_DOWN) Then
Walking = South
MainChar.CheckCol
GoTo Skipper:
End If
If aKeys(DIK_LEFT) Then
Walking = West
MainChar.CheckCol
GoTo Skipper:
End If
If aKeys(DIK_RIGHT) Then
Walking = East
MainChar.CheckCol
End If
If aKeys(DIK_LCONTROL) Then
Combat.Attack
Else: NPCz(DudeCoord.X, DudeCoord.Y).State = Wandering
End If
If aKeys(DIK_P) Then
If mbytMap(DudeCoord.X, DudeCoord.Y).GItem.Index > 0 Then
TempIndex = mbytMap(DudeCoord.X, DudeCoord.Y).GItem.Index - 1
TempAmount = mbytMap(DudeCoord.X, DudeCoord.Y).GItem.Amount
If DaItems(TempIndex).Type = 0 Then
UserCash = UserCash + (DaItems(TempIndex).Value * TempAmount)
mbytMap(DudeCoord.X, DudeCoord.Y).GItem.Index = 0
mbytMap(DudeCoord.X, DudeCoord.Y).GItem.Amount = 0
Exit Sub
End If
For IntCount = 0 To 24
If UserInvent(IntCount).Index = TempIndex Or UserInvent(IntCount).Index = -1 Then
UserInvent(IntCount).Index = TempIndex
UserInvent(IntCount).GrhIndex = DaItems(TempIndex).GrhIndex
UserInvent(IntCount).Amount = UserInvent(IntCount).Amount + TempAmount
mbytMap(DudeCoord.X, DudeCoord.Y).GItem.Index = 0
mbytMap(DudeCoord.X, DudeCoord.Y).GItem.Amount = 0
Exit Sub
End If
Next
End If
End If
End If
Skipper:
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -