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 Sub
Ja 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 Sub
Niin 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 Sub
Ok, 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.