Launesystem

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
  • Guten Tag,


    Ich wollte eine Laune System schreiben für jeden "Spieler".


    Wen der User z.b BMX Fährt oder mit den Auto fährt oder eine Rauchen oder einfach Schwimmen gehen sollte die Laune Steigen.

    Rauchen
    Alkohol trinken
    Schwimmen
    Speedrausch
    BMX Park


    sowas z.b einfach das seine Laune steigt wen er spaß hat.
    Wen der Spieler kein Spaß hat sollte Langsam die Laune Sinken.


    - sehr gut
    - Gut
    - Schlecht
    - Sehr schlecht

  • Und nun?
    Du solltest erst anfangen ein System zuschreiben um aus deinen Fehlern
    überhaupt erstmal lernen zu können wenn dir hier jetzt einer die Codeschnipsel hinschreibt hilft dir das auf langer Zeit auch nicht weiter
    fang doch erstmal an und wenn du nicht weiter kommst eröffne ein Thema.


    //EDIT:


    Na gut ich will ein wenig helfen, über was speicherst du DINI oder MYSQL ist nehme einfach mal jetzt MYSQL
    du musst erstmal in deiner Spielerdatei oder Datenbank je nachdem eine neue Variable abspeichern.
    Ich nenne es jetzt einfach mal pLaune so, dann machst du zum Beispiel abfragen wenn er mit einem Fahrrad fährt
    if(IsPlayerInVehicle([...]) und er noch schneller als keine Ahnung wie schnell so ein Fahrrad fährt das ist ja bei jedem
    leicht unterschiedlich gibst du ihn wenn er die Geschwindigkeit hält pLaunte += 1; wenn er langsamer wird halt nicht
    mehr.. beim rauchen auch ganz einfach wenn er anfängt zu rauchen pLaune += 5; oder so musst du dann wissen und
    beim Alk. ist es das gleiche.. so hoffe ich konnte dir Denkanstöße geben :)

    - heftig abhängig von Karli Kugelblitz Choco Drinks

    Einmal editiert, zuletzt von Pride ()

  • public Beduerfnisse()
    {
    for(new j = 0; j<MAX_PLAYERS; j++)
    {
    if(IsPlayerConnected(j))
    {
    new Float:health;
    if(pInfo[j][pHarndrang] <= 99)
    {
    new rand = 1 + random(1);
    pInfo[j][pHarndrang] += rand;
    if(pInfo[j][pHarndrang] == 65)
    {
    SendClientMessage(j,WEIß,"{FF0000}ACHTUNG: {FEFEFE}Du solltest so langsam Druck ablassen!");
    }
    if(pInfo[j][pHarndrang] >= 70)
    {
    GetPlayerHealth(j, health);
    SetPlayerHealth(j, health - 2.0);
    }
    }
    if(pInfo[j][pHunger] <= 99)
    {
    new rand = 1 + random(1);
    pInfo[j][pHunger] += rand;
    if(pInfo[j][pHunger] == 65)
    {
    Sinker[j] = Create3DTextLabel("Stinkt", 0x00F5FFFF, 30.0, 40.0, 50.0, 40.0, 0);
    Attach3DTextLabelToPlayer(Sinker[j], j, 0.0, 0.0, 0.7);
    SetPlayerSkin(j,79);
    SendClientMessage(j,WEIß,"{FF0000}ACHTUNG: {FEFEFE}Deine Hygiene hart Stark nachgelassen du Stinkst gehe dich waschen /waschen");
    }
    if(pInfo[j][pHunger] >= 70)
    {
    GetPlayerHealth(j, health);
    SetPlayerHealth(j, health - 3.0);
    }
    }
    }
    }
    }


    So sieht das Beduerfnisse


    Und hab das auch mit Laune vor hab jetz erstmal pLaune erstellt das es gespeichert wird also in enum usw eingetragen



    //E:


    pLaune,


    pInfo[playerid][pLaune] = 0;


    pInfo[playerid][pLaune] = 0;


    dini_IntSet(Spielerdatei, "Laune", pInfo[playerid][pLaune]);


    pInfo[playerid][pLaune] = dini_Int(Spielerdatei, "Laune");


    Was ich bisher eingetragen habe

  • Da hast du dir ja ein großes ziel gesetzt


    Der erste schritt wäre das du dem spieler eine variable "laune" hinzufügst Je nachdem welche art von Speicher du nutzt (stock / pVar etc). Diese solltest du vlt prozentual aufbauen. 0-100%


    dann solltest du bei den jeweiligen handlern diesen wert setzten


    z.B.
    onPlayerDeath() {
    /* setze laune auf 20 */
    }
    onPlayerEnterVehicle {
    /*
    such dir ein paar ausergewöhnliche fahrzeuge raus z.B. Monstertruck, BMX, infernus und setze die laune auf den jeweiligen wunschwert
    */
    }



    Natürlich solltest du die laune irgendwo anzeigen
    cool wäre ein textdraw unten rechts oder so


    cool wäre dann auch kleine sondersachen die du nur mit einer bestimmten laune nutzen kannst z.B. Jobs dort hast du ja sicher irgendwo im code einen punkt wo der job beginnt z.B.


    onPlayerStartFarming() { /*überprüfe ob die laune >= 60 ist wenn ja setze einen timer der aller 2 minuten die laune um 1 senkt*/ }


    ich hoffe das hilft dir ein wenig weiter

  • Naja so weit so gut du musst jetzt halt fast das gleiche für Laune machen und dann dort halt einfach deine Abfragen unterbringen wenn du jetzt halt das mit dem Geschwindigkeitsrausch machen möchtest fragst du einfach ab... du hast ja wahrscheinlich schon ein Tacho drinnen da ist das ja enthalten wie schnell diese Person gerade fährt und wenn es beim Infernus jetzt 190 KMH oder so ist lässt du ein Timer starten der sich immer wiederholt und gibst ihn pLaune += 1; solange er halt schneller ist als deine Wunsch Geschwindigkeit.. Wie gesagt das mit dem rauchen. Du hast doch bestimmt ein Befehl drinnen wo er /rauchen eintippen kann und wo die Animation und der ganze Bla abgespielt wird... da machst du dann einfach noch zwischen pLaune += 50; oder so was je nachdem was dein höhstes bei Laune halt sein wird.. ich nehme an 100. Eine Abfrage ob der Spieler schwimmt kenne ich jetzt auch grad nicht aber es gibt so ein Unternehmen was stinke reich ist.. die könnte man ja mal fragen http://www.google.de. Jor dann kannst du ja dein Hunger und so mit einbauen das wenn er Vollgefressen ist das ist bei mir immer der Fall das die pLaune dann = 100 ist oder so und beim Harndrang wenn er sich in die Hosen gemacht hat oder gerade war halt auch pLaune + oder - anwenden.

    - heftig abhängig von Karli Kugelblitz Choco Drinks

  • Eigentlich meinte ich diese Abfrage hier: https://wiki.sa-mp.com/wiki/IsPlayerInAnyVehicle die du halt einbauen musst ich habe in meinem Script ein getPlayerSpeed(playerid) Stock mit dem ich halt dann noch eine Abfrage einbauen kann wie schnell oder wie langsam er gerade fährt. Ich würde dann bei OnPlayerUpdate beide Abfragen rein machen in welchem Fahrzeug er sitzt und mit welcher Geschwindigkeit er gerade fährt... dann halt die Variable hochsetzen.

    - heftig abhängig von Karli Kugelblitz Choco Drinks

  • public OnPlayerUpdate(playerid)
    {
    lastUpdate[playerid] = GetTickCount();
    if(TazerAcceso[playerid] == 1)
    {
    if(GetPlayerWeapon(playerid) == 0)
    {
    SetPlayerAttachedObject(playerid, 7, 18642, 6, 0.06, 0.01, 0.08, 180.0, 0.0, 0.0); //Taser
    }
    if(GetPlayerWeapon(playerid) != 0)
    {
    RemovePlayerAttachedObject(playerid, 7);
    }
    }
    new gCurVeh = GetPlayerVehicleID(playerid);
    if(gCurVeh)
    {
    new Float:tempHealth;
    GetVehicleHealth(gCurVeh, tempHealth);
    if(tempHealth < 300) //250
    {
    new enginexD2, lightsxD2, alarmxD2, doorsxD2, bonnetxD2, bootxD2, objectivexD2;
    GameTextForPlayer(playerid, "~r~Motorschaden", 5000, 3);
    SetVehicleHealth(gCurVeh, 299);
    GetVehicleParamsEx(gCurVeh,enginexD2,lightsxD2,alarmxD2,doorsxD2,bonnetxD2,bootxD2,objectivexD2);
    SetVehicleParamsEx(gCurVeh,VEHICLE_PARAMS_OFF,lightsxD2,alarmxD2,doorsxD2,bonnetxD2,bootxD2,objectivexD2);
    }


    }
    new Float:armour[MAX_PLAYERS];
    GetPlayerArmour(playerid, armour[playerid]);
    if( armour[playerid] > 0.0 )
    {
    SetPlayerAttachedObject( playerid, ARMOUR_INDEX, 1242, 1, 0.019999, 0.039999, 0.000000, 2.459999, 89.699989, -3.100000, 1.710000, 2.119999, 1.719999);//áðîíÿ
    }
    else if( armour[playerid] == 0.0 && IsPlayerAttachedObjectSlotUsed(playerid, ARMOUR_INDEX))
    {
    RemovePlayerAttachedObject(playerid, ARMOUR_INDEX); // armour
    }
    return 1;
    }


    So sieht das derzeit aus

  • Beitrag von datgame ()

    Dieser Beitrag wurde gelöscht, Informationen über den Löschvorgang sind nicht verfügbar.

  • Hau das ja raus aus OnPlayerUpdate... dein server wird dabei ordentlich ruckeln. Erstelle die einen Spieler Timer mit SetTimerEx

  • Fällt auch nicht auf, dass es genau die gleichen Möglichkeiten gibt, seine Laune zu pushen. Komisch auch, dass es exakt die gleichen Begriffe sind, wie auch in dem LoG Thread.


    Es komm auch andere dazu^^ nur verrate ich das noch nicht lol? Und jetz unterlass es bitte. Es hilft mir auch nicht weiter.!

  • Wie wäre es mal mit überlegen und kombinieren wenn du es nicht selber scripten möchtest dann such dir einen oder nimm ein Filterscript
    du kannst nicht erwarten das wir hier dir das alles vorschreiben ich habe dir Tipps gegeben Agent47 hat mich sogar verbessert jetzt heißt es scripten
    oder lassen.. sry so sehe ich das..

    - heftig abhängig von Karli Kugelblitz Choco Drinks

  • onPlayerEnterVehicle {
    {400},
    {401},
    {402},
    {403},
    {404},
    {405},
    {406},
    {407},
    {408},
    {409},
    {410},
    {411},
    {412},
    {413}
    }


    Habe jetz die Fahrzeuge mal eingetragen und ich komme nicht weiter wie ich das mache das die Laune steig wen der User 120 Fährt wie soll ich den Code anfangen


    @PrideGame ich frage wie ich anfangen soll.. dann versuche ich es selbst zu machen naja.