Bedürfnissystem

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
  • Hallo Leute!
    hab mal an euch 2Fragen




    1.Das Berdürfnissystem von Los Angeles REallife 4.6 klappt nicht so richtig
    und zwar da steht z. B. (Du bist infolge einer hygienischen Krankheit ins Krankenhaus geliefert worden)
    aber da passiert nichts, ich lebe da einfach ganz normal weiter, obwohl bei script steht SetPlayerHealth(playerid,0);
    funkt. aber nichts.


    else if(PlayerInfo[playerid][pHarndrang] == 100)
    {
    SetPlayerHealth(playerid,-100);
    SendClientMessage(playerid,COLOR_GREY," Du bist infolge einer hygienischen Krankheit ins Krankenhaus geliefert worden!");
    PlayerInfo[playerid][pHarndrang] = 0;
    }


    2. Frage wie kann ich es so machen das bei z.b. Durst nicht mit 0% änfängt sondern das gegenteil
    z.b. Durst: 100% ( bei 10% ) (du sollstest .....)


    // kann mir da wirklich keiner helfen?! :(

    Einmal editiert, zuletzt von KingCaN ()

  • else if(PlayerInfo[playerid][pHarndrang] == wert)
    {
    SendClientMessage(playerid, farbe, "Text");
    }
    Wert eben ab da, wo es ist.
    Zu dem Problem mit dem sterben haben Deadwalker und ich keine Lösung gefunden.


    LG
    Evil.

  • Evil, ich mein bei durst steht wenn man sich z.b. Registriert.


    Drust 0 %
    Hunger 0%
    usw.


    Ich möchte das da steht:


    Drust 100%
    Hunger 100%
    usw.


    das dann bei 50% steht du musst langsam was drinken/essen oder so
    weist du wie ich es meine?

  • Naja du musst das ganze einfach umdrehen.
    Also am Anfang stellst du die ganzen Hunger, Durst (usw.) Variablen auf 100 und zählst dann nicht pro Minute (oder pro 3 Minuten, keine Ahnung wie du das handhabst) eins dazu, sondern ziehst eins ab.
    Und dann einfach per If-Abfrage, wenn Durst gleich 50 ist, dann sende dem Player eine Nachricht.



    Gruß, FlasH ;)


    P.S. Ich schreibe bewusst keine fertigen Scripts, sondern will, dass die Leser (bzw. der Fragesteller) selbst überlegen, wie sie es scripten müssen. Übung macht den Meister

    Professioneller Webentwickler.

  • wo soll ich das finden?
    hab ganzezeit (pDurst) z.b. gesucht.
    aber das mit abfrage und so finde ich nicht...


    /edit mir kann echt keiner dabei helfen -.-"

    Einmal editiert, zuletzt von KingCaN ()

  • Welcher GM oder von welchem GM hast du es dir genommen?


    Du musst alles umdrehen! Ein wenig nachdenken, was könnte das denn bedeuten? Komm schon, so dumm wirst doch nicht sein...



    Ein Tipp


    PlayerInfo[playerid][pHarndrang] = 0; bedeutet, dass der Harndrang bei 0 ist, wie müsste es bei dir aussehen?


    Und wie müsst der Hanrdrang im Laufe der Zeit verändert werden?



    Ich werde dir keine Komplettlösung geben, also fang bitte an ein wenig zu denken.

  • Ich benutze den Gamemod von Deadwalker/Slash ( Los Angeles Reallife 4.6)
    Es ist ja so bei durst und bei alle anderen steht am anfang alles auf 0% und steigen auf bis 100%
    bei 100% stirbt halt der Spieler wegen Drust,Hunger usw.


    Aber ich möchte es so das es alles mit 100% anfängt und bis 0% runter sinkt.
    Halt das dann dieses mal bei 0% der spieler halt stirbt wegen Drust,Hunger usw.

    2 Mal editiert, zuletzt von KingCaN ()

  • Wir haben es verstanden, fang mal an zu denken, es ist leichter als du es dir vorstellen magst.


    Also nochmal; Lese dir mein Threat durch und gebe mir die Antwort...



    Was müsstest wie ersetzen, wenn du im Normalzustandes deines GMs ein


    PlayerInfo[playerid][pHarndrang] = 0


    findest und warum.


    Das ist eine reine Denkaufgabe für dich und hat nichts mit Scripten zu tun... das ist doch nicht so schwer...


    Wenn du das verstanden hast, bist du der Lösung einen großen Schritt nähergekommen.

  • das es mit 100% anfängt und so alles hab ich hinbekommen
    das nächste problem


    Das Berdürfnissystem von Los Angeles REallife 4.6 klappt nicht so richtig
    und zwar da steht z. B. (Du bist infolge einer hygienischen Krankheit ins Krankenhaus geliefert worden)
    aber da passiert nichts, ich lebe da einfach ganz normal weiter, obwohl bei script steht SetPlayerHealth(playerid,0);
    funkt. aber nichts.


    else if(PlayerInfo[playerid][pHarndrang] == 0)
    {
    SetPlayerHealth(playerid,0);
    SendClientMessage(playerid,COLOR_GREY," Du bist infolge einer hygienischen Krankheit ins Krankenhaus geliefert worden!");
    PlayerInfo[playerid][pHarndrang] = 100;
    }


    das passiert einfach garnichts. Wie kann ich es so machen das es klappt. Halt das der spieler dann irgendwie ins Krankenhaus gebracht wird.


    danke MaxiYoda das du mir gerade hilfst :)

  • hmm sieht für mich gar nicht so unrichtig aus...


    Sendest du uns mal bitte die komplette Abfrage, dann kann dir sicher besser geholfen werden.


    Als Lösungsansatz gilt auch hier: Geh den Weg der If-Schleife einmal durch und frage dich, was wo und warum passiert und wo der Haken liegen könnte.


    Das gleiche gilt auch für dein BedSystem:


    Schau einfach mal nach, 1. wann die Abfrage ausgeführt wird, 2. ob eine If-Schleife vor dem else schon immer greift oder du 3. nicht noch irgendwo anders eine solche Abfrage enthalten hast.


    Im Notfall spawnst du den Spieler neu und führst vor OnPlayerDeath aus.

  • new Float:h[MAX_PLAYERS];
    GetPlayerHealth(playerid, h[playerid]);
    if(PlayerInfo[playerid][pHarndrang] == 50)
    {
    SendClientMessage(playerid,COLOR_GREY," Du solltest langsam mal Wasser lassen!");
    SetPlayerHealth(playerid, h[playerid]-5);
    }
    else if(PlayerInfo[playerid][pHarndrang] == 40)
    {
    SetPlayerHealth(playerid,h[playerid]-10);
    SendClientMessage(playerid,COLOR_GREY," Du solltest langsam mal Wasser lassen!");
    }
    else if(PlayerInfo[playerid][pHarndrang] == 20)
    {
    SetPlayerHealth(playerid,h[playerid]-25);
    SendClientMessage(playerid,COLOR_GREY," Du solltest langsam mal Wasser lassen!");
    }
    else if(PlayerInfo[playerid][pHarndrang] == 0)
    {
    SetPlayerHealth(playerid,h[playerid]-100);
    SendClientMessage(playerid,COLOR_GREY," Du bist infolge einer hygienischen Krankheit ins Krankenhaus geliefert worden!");
    PlayerInfo[playerid][pHarndrang] = 100;
    }
    if(PlayerInfo[playerid][pNeedSex] == 470)
    {
    SendClientMessage(playerid,COLOR_GREY," Deine Stimmung ist im Keller, besorg dir ein bischen Spaß!");
    }
    else if(PlayerInfo[playerid][pNeedSex] == 480)
    {
    SendClientMessage(playerid,COLOR_GREY," Deine Stimmung ist im Keller, besorg dir ein bischen Spaß!");
    }


    bittschön


    und ja wenn ich /pee eingebe wird mein Handrang wieder auf 0 gesetzt obwohl ich auf 100 will


    so hab ich es:


    if(strcmp(cmd, "/pee", true) == 0)
    {
    new car = GetPlayerVehicleID(playerid);
    if(IsPlayerInVehicle(playerid,car))
    {
    SendClientMessage(playerid,COLOR_GRAD2, "Du kannst hier nicht Pinkeln!");
    return 1;
    }
    if(PlayerInfo[playerid][pHarndrang] >= 60)
    {
    SetPlayerSpecialAction(playerid,SPECIAL_ACTION_PISSING);
    PlayerInfo[playerid][pHarndrang] = 100;
    }
    else
    {
    SendClientMessage(playerid,COLOR_GRAD2,"Du kannst nicht Pinkeln! Du hast zuwenig Druck!");
    }
    return 1;
    }

  • Lösung zu 2:


    if(PlayerInfo[playerid][pHarndrang] >= 60)


    Wie muss die Abfrage richtig heißen?



    Lösung zu 1:


    Komisch, wundert mich schon ein wenig


    Frag mal lieber ab, ob


    PlayerInfo[playerid][pHarndrang] < 1


    und dann setze das Leben gleich ganz auf 0, ohne jegliche Berechnung...

  • hab alles entfernt mit ( GetPlayerHealth(playerid, h[playerid]);


    t.dem klappt das nicht


    //edit
    kennst du vllt ein gutes Gamemod wo auch so ne Bedürfnissystem mit drinnen isT?

  • Öh warte mal, Fusion (GM von mir)


    Das ist aber ein wenig komplexer und hat ein zusätzliches Itemsystem für User...