Tää siis formilla weaponshop:
Option Explicit
Private Sub btnBuyWeapon_Click()
Dim i As Integer
Dim a As Integer
For i = 0 To lstWeapons.ListIndex - 1
Next i
a = MsgBox("Are you sure you want to buy " & WeaponData(i).WeapName & " for " & WeaponData(i).WeapValue & " gold pieces?", vbYesNo)
If a = vbYes Then
frmInventory.lstPlayerWeapons.AddItem WeaponData(i).WeapName
Else:
MsgBox "I'm sorry to hear that"
Exit Sub
End If
End Sub
Private Sub lstWeapons_Click()
Dim i As Integer
For i = 0 To lstWeapons.ListIndex
If lstWeapons.Selected(i) Then
lblWeaponDesc.Caption = WeaponData(i).WeapDesc & vbCrLf
lblWeaponDesc.Caption = lblWeaponDesc.Caption & "Price: " & WeaponData(i).WeapValue
End If
Next i
End SubJa tää on formilla inventory:
Private Sub lstPlayerWeapons_Click()
Dim i As Integer
For i = 0 To lstPlayerWeapons.ListIndex
If lstPlayerWeapons.Selected(i) Then
lblPlayerItemDesc.Caption = WeaponData(i).WeapName & vbCrLf & _
lblPlayerItemDesc.Caption = lblPlayerItemDesc.Caption & "Value: " & WeaponData(i).WeapValue
End If
Next i
End Sub
Private Sub btnEquipWeapon_Click()
Dim j As Integer
For j = 0 To lstPlayerWeapons.ListIndex - 1
Next j
If PlayerData.EquippedWeapon = "Nothing" Then
PlayerData.EquippedWeapon = WeaponData(j).WeapName
PlayerData.MinDamage = WeaponData(j).WeapMinDam
PlayerData.MaxDamage = WeaponData(j).WeapMaxDam
PlayerData.Accuracy = PlayerData.Accuracy + WeaponData(j).WeapAcc
PlayerData.Str = PlayerData.Str + WeaponData(j).WeapStr
PlayerData.Dex = PlayerData.Dex + WeaponData(j).WeapDex
PlayerData.Con = PlayerData.Con + WeaponData(j).WeapCon
PlayerData.Wis = PlayerData.Wis + WeaponData(j).WeapWis
PlayerData.Cha = PlayerData.Cha + WeaponData(j).WeapCha
Else:
MsgBox ("You already have an equipped weapon!")
End If
PlayerUpdate
End Sub
Private Sub btnRemoveWeapon_Click()
Dim i As Integer
For i = 0 To lstPlayerWeapons.ListIndex - 1
Next i
If Not PlayerData.EquippedWeapon = "Nothing" Then
PlayerData.EquippedWeapon = "Nothing"
PlayerData.Accuracy = 100
PlayerData.MinDamage = 1
PlayerData.MaxDamage = 2
PlayerData.Str = PlayerData.Str - WeaponData(i).WeapStr
PlayerData.Dex = PlayerData.Dex - WeaponData(i).WeapDex
PlayerData.Con = PlayerData.Con - WeaponData(i).WeapCon
PlayerData.Wis = PlayerData.Wis - WeaponData(i).WeapWis
PlayerData.Cha = PlayerData.Cha - WeaponData(i).WeapCha
Else:
MsgBox ("You don't have any weapon equipped!")
End If
PlayerUpdate
End SubNiin muuten toi kyllä toimii mut jos ostan vaikka short swordin joka on tokana kaupassa olevassa listassa niin kaikki on ihan ok vieläpä tuolla inventory formilla... Siihen asti ku klikkaan btnEquippia, siinä vaiheessa heittää jotain randomia, joskus equipped weapon on rapier (joka on neljäs kaupan listassa) ja joskus se on dagger (ensimmäisenä kaupan listassa), mut ei osu kohalle se equ minkä "oon kaupasta" sattunu valitsemaan... Oon aivan täysin ymmälläni! Kamppaillu asian kanssa jo liian kauan huoh..
-Feltsu
EDIT: Joo sain kaikkein alkuperäisimmän ongelmani mitä tässä kyselin niin "toimimaan" koska kun se lähti toimimaan niin tämä yllä oleva ongelma ilmeni, huoh, ei taida olla vaan koodaus kaikille prkl :(
EDIT: Jotain pientä muunnellu, lisää infoa jne.
En kerenny enää muokkaamaan edellistä viestiä, mut ilmeni vielä semmoinen että jostain syystä tuo label tuolla inventoryssäkin näyttää jotain ihan outoa.. siinä lukee vaan False. Niin ja otin tuon if lauseen siitä pois eli koodi tällä hetkellä seuraavanlainen:
Private Sub lstPlayerWeapons_Click()
Dim i As Integer
For i = 0 To lstPlayerWeapons.ListIndex
lblPlayerItemDesc.Caption = WeaponData(i).WeapName & vbCrLf & _
lblPlayerItemDesc.Caption = lblPlayerItemDesc.Caption & "Value: " & WeaponData(i).WeapValue
Next i
End SubOk, ongelma melkein ylipäästy :) Pitää tallentaa ostettujen kamojen tiedot ensin "välimuuttujiin" ja sitä kautta sitte lähen rakentamaan :) Katsotaan jos en saa toimii niin pitää itkee lisää apua.
-Feltsu
Aihe on jo aika vanha, joten et voi enää vastata siihen.