Mit Prozenten arbeiten ?

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 ;) Ich wollte mal fragen ob es möglich ist mit Prozenten zu Arbeiten. Ich benötige dies um ein Motorsystem zu scripten wo der Motor einen auch mal absaufen kann :).
    Kann mir jemand sagen wie dies möglich ist und ob es überhaupt möglich ist mit Prozenten zu scripten ? .

  • Ich verstehe deinen Zusammenhang nicht.
    Was soll das absaufen mit den Prozenten zutun haben?

  • Genau genommen ist das nicht 70%,sondern so:
    new start = random(100);
    if(start > 70) // Tritt zu 29% ein
    {
    //Motor startet
    }
    else // Tritt zu 71% ein.
    {
    //Motor startet nicht
    }


    Denn random(100) gibt die Zahlen von 0 - 99. Das sind insgesamt 100 Wert.
    0 - 69 sind somit 70 Werte und stellen somit auch 70% dar.
    Du hast aber 0 - 70 gemacht und das sind 71 Wert ( 71% ) .


    Kleiner Exkurs :| .
    new start = random(100);
    if(start >= 70) //Wahrscheinlichkeit = 70% | >= anstatt >
    {
    //Motor startet
    }
    else
    {
    //Motor startet nicht
    }


  • Sry ^^
    Du hast natürlich recht
    99-70=29^^

  • Genau das meinte ich :) Danke jungs :). Nun habe ich aber auch noch ein anderes Problem ;).
    Ich versuche gerade ein Mietsetzungs system fertig zustellen ;). Nun wird die Miete aber nicht verändert sondern bleibt gleich.
    Der befehl :
    dcmd_mietesetzen(playerid,params[]){
    new name[MAX_PLAYER_NAME],Miete = strval(params); GetPlayerName(playerid,name,sizeof(name));

    for(new haus=1;haus<MAX_HAUS;haus++)
    {
    if (sscanf(params, "i",Miete)){SendClientMessage(playerid, grün, "/mietesetzen [preis]"); return 1;}
    if(strcmp(Haus[haus][haus_besitzer],name,false) == 0)
    {
    if(IsPlayerInRangeOfPoint(playerid,5,Haus[haus][haus_x],Haus[haus][haus_y],Haus[haus][haus_z]))
    {
    new datei[64];
    format(datei,64,"/haus/%d.txt",haus);
    Miete = Haus[haus][miete];
    dini_IntSet(datei,"miete",Miete);
    Hausloeschen(haus);
    Hausladen(haus);
    }

    else if(IsPlayerInRangeOfPoint(playerid,6,Haus[haus][haus_x],Haus[haus][haus_y],Haus[haus][haus_z])) { return SendClientMessage(playerid,rot,"Du bist nicht in der Reichweite deines Hauses !"); }
    }
    }
    return 1;
    }
    Danke im Vorraus :).

  • Anscheind lässt du das Haus nicht einmal Speichern.

  • stock Hausladen(hausid)
    {
    new pfad[128];
    format(pfad,128,"/haus/%d.txt",hausid);
    if(!fexist(pfad))return 0;


    Haus[hausid][haus_x] = dini_Float(pfad,"x");
    Haus[hausid][haus_y] = dini_Float(pfad,"y");
    Haus[hausid][haus_z] = dini_Float(pfad,"z");
    Haus[hausid][haus_preis] = dini_Int(pfad,"preis");
    Haus[hausid][haus_innenraum] = dini_Int(pfad,"innenraum");
    Haus[hausid][miete] = dini_Int(pfad,"miete");
    format(Haus[hausid][haus_besitzer],32,"%s",dini_Get(pfad,"besitzer"));
    Haus[hausid][haus_pickup] = CreatePickup(1273 ,23,Haus[hausid][haus_x],Haus[hausid][haus_y],Haus[hausid][haus_z],0);
    new s[128];
    format(s,128,"[HAUS]\nBesitzer: %s\nPreis: %d$\nMiete:%d",Haus[hausid][haus_besitzer],Haus[hausid][haus_preis],Haus[hausid][miete]);
    Haus[hausid][haus_label] = Create3DTextLabel(s,gelb,Haus[hausid][haus_x],Haus[hausid][haus_y],Haus[hausid][haus_z],20,0,1);
    return print("Das Haus wurde erfolgreich geladen");
    }
    stock Hausloeschen(hausid)
    {
    Delete3DTextLabel(Haus[hausid][haus_label]);
    return DestroyPickup(Haus[hausid][haus_pickup]);
    }