Drivein system Problem

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Hab ihr ein Problem ich bekomme kein Leben


    {
    if(!strcmp("/drivein",cmdtext))
    {
    ShowPlayerDialog(playerid,DIALOG_DRIVEIN,DIALOG_STYLE_LIST,"[YLR] Drivein Menu","Cheesburger\nChickenburger\nCola und Pommes","Bestellen","Abbrechen");
    return 1;
    }
    return 0;
    }


    if(response==0)
    {
    SendClientMessage(playerid,0x8C8C8CFF,"Vielen dank für ihren Einkauf.");
    }
    if(response==1)
    {
    SendClientMessage(playerid,0x8C8C8CFF,"Kommen sie bald wieder.");
    }
    switch(DIALOG_DRIVEIN)
    {
    case 1:
    {
    switch(listitem)
    {
    case 0:
    {
    if(GetPlayerMoney(playerid) < 50) return SendClientMessage(playerid, 0xFFFFFF, "Du hast leider nicht genug Geld.");
    GivePlayerMoney(playerid, -50);
    SetPlayerHealth(playerid,50.0);
    SendClientMessage(playerid,0x8C8C8CFF,"Ich hoffe es hat ihnen Geschmeckt.");
    }
    case 1:
    {
    if(GetPlayerMoney(playerid) < 50) return SendClientMessage(playerid, 0xFFFFFF, "Du hast leider nicht genug Geld.");
    GivePlayerMoney(playerid, -50);
    SetPlayerHealth(playerid,50.0);
    SendClientMessage(playerid,0x8C8C8CFF,"Ich hoffe es hat ihnen Geschmeckt.");
    }
    case 2:
    {
    if(GetPlayerMoney(playerid) < 100) return SendClientMessage(playerid, 0xFFFFFF, "Du hast leider nicht genug Geld.");
    GivePlayerMoney(playerid, -100);
    SetPlayerHealth(playerid,50.0);
    SendClientMessage(playerid,0x8C8C8CFF,"Ich hoffe es hat ihnen Geschmeckt.");
    }
    }
    }
    }
    return 1;
    }

  • Wenn ich mich nicht täusche, dann musst du "+50.0" eingeben, wenn du Health zuzüglich dazu rechnen willst. Bloß "50.0" würde heißen, dass du die Health des Spielers allgemein auf 50.0 setzt, egal wie viel HP er im Moment hat.


    Bin jetzt auch kein Profi, sondern eher das Gegenteil, aber ich hätte es so gemacht, dass GetPlayerHealth erstmal abfrägt, ob die Health des Spielers < 100.0 sind. Wenn ja, dann HP beim Drive-In dazu rechnen, wenn nicht, dann eine Nachricht ausgeben, im Sinne von "Du hast bereits volles Leben."

  • Wenn ich mich nicht täusche, dann musst du "+50.0" eingeben, wenn du Health zuzüglich dazu rechnen willst. Bloß "50.0" würde heißen, dass du die Health des Spielers allgemein auf 50.0 setzt, egal wie viel HP er im Moment hat.


    Bin jetzt auch kein Profi, sondern eher das Gegenteil, aber ich hätte es so gemacht, dass GetPlayerHealth erstmal abfrägt, ob die Health des Spielers < 100.0 sind. Wenn ja, dann HP beim Drive-In dazu rechnen, wenn nicht, dann eine Nachricht ausgeben, im Sinne von "Du hast bereits volles Leben."


    Sehr richtig!


    So wird es gemacht ;)


    Ich gebe mal ein Beispiel wie sowas aussieht:


    new Float:health;
    GetPlayerHealth(playerid,health);
    if(health>=100) return SendClientMessage(playerid,-1,"Du hast bereits volles Leben!");
    SetPlayerHealth(playerid,health+25.0);


    mfg. :thumbup:

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

    Einmal editiert, zuletzt von Schwabbel ()

  • Versuch das Bei den Dialogen:
    GivePlayerHealth(playerid,HEALTH);


    und das hier ganz unten in den Script:
    stock GivePlayerHealth(playerid, Float:health)
    {
    new Float:Current;
    GetPlayerHealth(playerid, Current);
    if((Current)+(health) > 100) return SetPlayerHealth(playerid, 100);
    SetPlayerHealth(playerid, ((Current)+(health)));
    return 1;
    }


    sollte klappen.


    lg

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen