Hi Bräuchte hilfe bei einem "Kampfscript"

  • Allgemein

Es gibt 9 Antworten in diesem Thema. Der letzte Beitrag () ist von Fab.

    Hi Bräuchte hilfe bei einem "Kampfscript"

    Hi hab seit einer Woche VB in der der Schule hab angefangen mein eigenes kleines spiel zu entwickeln ^^ und komm leider nicht bei meinen Kampfscript nicht weiter was bis jetzt mehrer Variablen + random berechnet nur leider bekomm ich es nicht hin Schaden Abzuziehen ( Rüstung) hier mal das script hättet ihr vieleicht nen tipp wie ich was abziehen kann aber das es auf keinen fall ins minus geht



    hab Oben die Variable Rüstung auf + 20



    würd es gerne mit in den mit * makierten source einfügen

    Dim varschaden AsInteger = CInt(Int((3 * Rnd()) + 1))
    Dim varmschaden AsInteger = CInt(Int((3 * Rnd()) + 1))


    ************************************************

    hp = hp - mschaden2 - varmschaden <--- da würde ich gerne noch meine rüstungs variable mit einfügen das problem ist wenn die rüstung zu hoch ist steigt das hp maximum

    m2 = m2 - schaden - varschaden

    *********************************************




    txtCombat.Text = (
    "Du Triffst Wurm für " & mschaden2 + varschaden & " Schaden")txtCMonster.Text = ("Wurm Trifft dích " & mschaden2 + varmschaden & " Schaden")



    If m2 <= 0 Then
    ep = ep + 5
    Geld = Geld + 30MsgBox("Glückwunsch du hast den Kleinen Drachen besiegt!")
    txtCombat.Text = "Du hast 5 Ep erhalten"
    txtCMonster.Text = "Du hast 30 Goldstücke gefunden"




    wie könnt ich das unterbinden?
    müsste das nicht eigentlich

    VB.NET-Quellcode

    1. hp = hp - mschaden1 + varschaden + rüstung

    heißen?
    naja das schaffst du auf jeden fall so:

    VB.NET-Quellcode

    1. if mschaden1 - varschaden - rüstung > 0 then hp = hp - mschaden1 + varschaden + rüstung


    Habs nun gelöst weis nicht ob du das gleiche geschrieben hast aber so gehts nun danke an alle für die hilfe

    VB.NET-Quellcode

    1. '*****Game Over Script*****
    2. incombat = 1
    3. If hp <= 0 Then
    4. MsgBox("Du bist Gestorben")
    5. MsgBox("Deine du verlierst die hälfte deines Goldes")
    6. leben = leben - 1
    7. score = score - 500
    8. hp = maxhp
    9. Geld = Geld / 2
    10. leben = leben - 1lblHP.Text = hp & "/" & maxhp
    11. lblEP.Text = ep
    12. lblGeld.Text = Geld
    13. lblLvl.Text = lvl
    14. lblSchaden.Text = schaden + waffe
    15. lblScore.Text = score
    16. lblRüstungswert.Text = rüstungswert
    17. lblTrank.Text = Trank
    18. lblGTrank.Text = gtrank
    19. lblLeben.Text = leben
    20. End If
    21. If leben <= 0 Then
    22. lblHP.Text = hp & "/" & maxhp
    23. lblEP.Text = ep
    24. lblGeld.Text = Geld
    25. lblLvl.Text = lvl
    26. lblSchaden.Text = schaden + waffe
    27. lblScore.Text = score
    28. lblRüstungswert.Text = rüstungswert
    29. lblTrank.Text = Trank
    30. lblGTrank.Text = gtrank
    31. lblLeben.Text = leben
    32. MsgBox("Game Over du hast " & score & " Punkte erreicht")Me.Close()
    33. End If
    34. If m1 > 0 Then
    35. 'Angriffs Script
    36. Randomize()
    37. Dim varschaden AsInteger = CInt(Int((3 * Rnd()) + 1))Dim varmschaden AsInteger = CInt(Int((3 * Rnd()) + 1))
    38. mgesamtschaden = varmschaden + mschaden1 - rüstungswert
    39. If mgesamtschaden <= 0 Then
    40. hp = hp - 0
    41. m1 = m1 - varschaden - gesamtschadentxt
    42. Combat.Text = ("Du Triffst Wurm für " & varschaden + gesamtschaden & " Schaden")
    43. txtCMonster.Text = ("Wurm Prallt an deiner Rüstung ab und zieht dir 0 Schaden ab")Else
    44. m1 = m1 - varschaden - gesamtschaden
    45. hp = hp - mgesamtschaden
    46. txtCombat.Text = ("Du Triffst Wurm für " & varschaden + gesamtschaden & " Schaden")txtCMonster.Text = ("Wurm Trifft dich für " & mgesamtschaden & " Schaden")
    47. End If
    48. 'Belohnungs Script
    49. If m1 <= 0 Then
    50. incombat = 0lblMHP.Text = "0"
    51. MsgBox("Du hast deinen Gegner besiegt!")
    52. ep = ep + 1
    53. Geld = Geld + 50
    54. score = score + 100
    55. txtCombat.Text = "Du hast 1 Ep erhalten"txtCMonster.Text = "Du hast 50 Goldstücke gefunden"
    56. End If
    57. Else
    58. MsgBox("Du hast den Wurm schon besiegt gehe zum Nächsten Monster Viel Glück !")
    59. End If

    Edit by Agent: VB-Tag eingefügt, das nächste mal bitte selber machen.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Agent“ ()

    Du hast zwar dein Problem schon erledigt,
    aber ich glaube ich kann dir noch einen guten Tipp zur Spieleentwicklung geben.
    Im allgemeinen hällt man es in der Spieleentwicklung so, dass man sich einen Schadensprinzip ausdenkt, das dann auch einheitlich ist.
    (mit einheitlich meine ich, im Verlaufe des Spiels einheitlich ist)
    Mein Vorschlag an dich ist:
    Vergib an deine Character Punkte.
    z.B.:
    Level: 5
    Schaden: 5

    .
    .
    .

    Nun kannst du z.B. den Angriff so berechnen, dass du Level * Schaden rechnest.
    Das Produkt kannst du dann von den Lebenspunkten des Gegners abziehen.
    Der Vorteil an diesem System ist, dass man so vermeidet, Gegener in höheren Leveln anzugreifen, oder das diese zu schwach geraten.
    Man kann natürlich auch viele andere Systeme machen.
    Aber das muss jeder für sich selbst finden.
    Man könnte z.B. noch Verteidigungspunkte mit berechnen.

    Ich hoffe, dass ich dir für deine weiteren Projekte helfen konnte.
    MFG
    Fab

    PS: Respekt für das Spiel, ich selbst hab auch erst vor kurzem mit VB angefangen.
    Hab aber schon Javaerfahrungen.