Random Floats speichern

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, und zwar habe ich gerade eine frage und zwar wie speicher ich random floats ?
    Code.
    ocmd:garbage(playerid,params[])
    {
    if(IsPlayerConnected(playerid))
    {
    if(istdabei[playerid] == 0)
    {
    if(Spieler[playerid][Job] == 9)
    {
    if(IsPlayerInAnyVehicle(playerid))
    {
    new veh = GetPlayerVehicleID(playerid);
    for(new i = 0;i<sizeof(muellcars);i++)
    {
    if(veh == muellcars[i])
    {
    new rand = random(sizeof(bmx1));
    new string[123],pID,string2[123];
    /// if(sscanf(params,"d",pID))return SendClientMessage(playerid,COLOR_GREY,"[Benutze] /garbage [SpielerID]");
    if(wurdeangefragt[playerid] == 0)
    {
    inviteID[playerid] = pID;
    format(string,sizeof(string),"Du hast %s erfolgreich eine Anfrage gesendet, bitte warte bis er sie annehmt!",inviteID[playerid]);
    SendClientMessage(playerid,COLOR_BLUE,string);
    format(string2,sizeof(string2),"%s hat dich angefragt, benutze /agarbage um die Anfrage anzunehmen",SpielerName(playerid));
    SendClientMessage(inviteID[playerid],COLOR_BLUE,string2);
    wurdeangefragt[pID] = 1;
    maxkubik[veh] = 15.0;
    kubik[veh] = 0.0;


    pMuellAuto[playerid] = veh;
    istdabei[playerid] = 1;
    checkpointgarbage[playerid] = playerid;
    bmxo[playerid] = CreateDynamicCP(bmx1[rand][0],bmx1[rand][1],bmx1[rand][2],5.0,-1,-1,checkpointgarbage[playerid],1000.0);
    return 1;
    }
    }
    }
    SendClientMessage(playerid, COLOR_RED, "Du bist in keinem Müllwagen.");
    return 1;
    }
    }
    else return SendClientMessage(playerid, COLOR_RED, "Du bist kein Müllmann.");
    }
    }
    return 1;
    }

  • Ich hab dir mal was geschrieben:
    forward Float:randomfloat(Float:a, Float:b);
    stock Float:randomfloat(Float:a, Float:b)
    {
    new Float:rand = b - a;
    new x = random(5000)+5000;
    new Float:tmp = (1.0/float(x)*10000.0)-1.0;
    rand = (rand * tmp) + a;
    return rand;
    }


    Benutzung:
    printf("%f", randomfloat(10.0, 200.0));


    Gibt aus (bei 100 Versuchen):


    Für die Speicherung in eine Variable:
    new Float:variable = randomfloat(minimum, maximum);

  • Ok und wie soll ich das dann damit machen ?

    new Float: bmx1[2][3] =
    {
    {1860.9629,-2042.7212,13.5469},
    {1866.7927,-2056.9846,13.3828}
    };
    new rand = random(sizeof(bmx1));


    das ding ist ja ich möchte was da random rausgekommen ist in eine globale Variable speichern

  • Achso, naja das könntest du so machen:
    new Float:globalVar[3];


    new rand = random(sizeof(bmx1));
    globalVar[0] = bmx1[rand][0];
    globalVar[1] = bmx1[rand][1];
    globalVar[2] = bmx1[rand][2];


    Du könntest aber auch einfach den Wert von rand in eine globale Variable schreiben.


    new globalVar;


    new rand = random(sizeof(bmx1));
    globalVar = rand;

  • Und zwar habe ich jetzt einen Fehler:
    Ich mache das man random müllsacke krieg ( d.H so oft wie man durch den checkpoint laufen sollte 5-7 ) das Funktioniert auch.
    Nur ich möchte das es einmal random macht und dann in eine variable speichert und dann die random zahl bis 0 geht. Nur er machte jetzt die ganze Zeit random code:
    new fahrzeug[MAX_PLAYERS];
    public OnPlayerEnterDynamicCP(playerid, checkpointid)
    {
    new muellsacke[MAX_VEHICLES];//HIER
    new rand1 = 5+random(3);
    muellsacke[pMuellAuto[playerid]] = rand1;//HIER
    DisablePlayerCheckpoint(playerid);
    new rand = random(sizeof(bmx1));
    if(checkpointid == bmxo[playerid])
    {
    SetPlayerAttachedObject(playerid,0,1264,6,0.165999,0.003000,-0.184999,0.000000,0.000000,0.000000,0.498999,0.466999,0.489000);
    ApplyAnimation(playerid,"CARRY","liftup",4.1,0, 0, 0, 1, 1);
    ClearAnimations(playerid,1);
    SetPlayerSpecialAction(playerid,25);
    new Float:vX,Float:vY,Float:vZ;
    GetPosVorVeh(pMuellAuto[playerid], -5.0, vX, vY, vZ);
    DisablePlayerCheckpoint(bmxo[playerid]);
    fahrzeug[playerid] = CreateDynamicCP(vX,vY,vZ,4.0,-1,-1,playerid,30.0);
    // TogglePlayerDynamicCP(playerid,fahrzeug[playerid],1);
    return 1;
    }
    else if(checkpointid == fahrzeug[playerid])
    {
    if(kubik[pMuellAuto[playerid]] == 2.0)
    {
    SendClientMessage(playerid,COLOR_RED,"Das Fahrzeug ist voll, benutze /garbagestop");
    ClearAnimations(playerid,1);
    SetPlayerSpecialAction(playerid,0);
    RemovePlayerAttachedObject(playerid, 0);
    DisablePlayerCheckpoint(fahrzeug[playerid]);
    }
    else
    {
    if(muellsacke[pMuellAuto[playerid]] == 0)//Das funktioniert ja
    {
    ClearAnimations(playerid,1);
    SetPlayerSpecialAction(playerid,0);
    RemovePlayerAttachedObject(playerid, 0);
    DisablePlayerCheckpoint(fahrzeug[playerid]);
    kubik[pMuellAuto[playerid]] += 0.5;
    bmxo[playerid] = CreateDynamicCP(bmx1[rand][0],bmx1[rand][1],bmx1[rand][2],5.0,-1,-1,playerid,1000.0);
    return 1;
    }
    else
    {
    new string[123],string2[123];
    ClearAnimations(playerid,1);
    SetPlayerSpecialAction(playerid,0);
    kubik[pMuellAuto[playerid]] += 0.5;
    muellsacke[pMuellAuto[playerid]] -= 1;//HIER
    RemovePlayerAttachedObject(playerid, 0);
    format(string,sizeof(string),"Kubik: %f",kubik[pMuellAuto[playerid]]);
    SendClientMessage(playerid,COLOR_LIGHTBLUE,string);
    format(string2,sizeof(string2),"Müllsäcke: %d",muellsacke[pMuellAuto[playerid]]);
    SendClientMessage(playerid,COLOR_LIGHTBLUE,string2);
    DisablePlayerCheckpoint(fahrzeug[playerid]);
    bmxo[playerid] = CreateDynamicCP(globalVar[playerid][0],globalVar[playerid][1],globalVar[playerid][2],4.0,-1,-1,playerid,30.0);
    return 1;
    }
    }
    }
    return 1;
    }

    Einmal editiert, zuletzt von Gazette ()

  • So sollte es passen:
    new fahrzeug[MAX_PLAYERS];
    new muellsacke[MAX_VEHICLES];


    public OnPlayerEnterDynamicCP(playerid, checkpointid)
    {
    DisablePlayerCheckpoint(playerid);
    new rand = random(sizeof(bmx1));
    if(checkpointid == bmxo[playerid])
    {
    SetPlayerAttachedObject(playerid,0,1264,6,0.165999,0.003000,-0.184999,0.000000,0.000000,0.000000,0.498999,0.466999,0.489000);
    ApplyAnimation(playerid,"CARRY","liftup",4.1,0, 0, 0, 1, 1);
    ClearAnimations(playerid,1);
    SetPlayerSpecialAction(playerid,25);
    new Float:vX,Float:vY,Float:vZ;
    GetPosVorVeh(pMuellAuto[playerid], -5.0, vX, vY, vZ);
    DisablePlayerCheckpoint(bmxo[playerid]);
    fahrzeug[playerid] = CreateDynamicCP(vX,vY,vZ,4.0,-1,-1,playerid,30.0);
    // TogglePlayerDynamicCP(playerid,fahrzeug[playerid],1);
    return 1;
    }
    else if(checkpointid == fahrzeug[playerid])
    {
    if(kubik[pMuellAuto[playerid]] == 2.0)
    {
    SendClientMessage(playerid,COLOR_RED,"Das Fahrzeug ist voll, benutze /garbagestop");
    ClearAnimations(playerid,1);
    SetPlayerSpecialAction(playerid,0);
    RemovePlayerAttachedObject(playerid, 0);
    DisablePlayerCheckpoint(fahrzeug[playerid]);
    }
    else
    {
    if(muellsacke[pMuellAuto[playerid]] == 0)
    {
    new rand1 = 5+random(3);
    muellsacke[pMuellAuto[playerid]] = rand1;//HIER
    return 1;
    }
    else if(muellsacke[pMuellAuto[playerid]] == 1)//Das funktioniert ja
    {
    muellsacke[pMuellAuto[playerid]] = 0;
    ClearAnimations(playerid,1);
    SetPlayerSpecialAction(playerid,0);
    RemovePlayerAttachedObject(playerid, 0);
    DisablePlayerCheckpoint(fahrzeug[playerid]);
    kubik[pMuellAuto[playerid]] += 0.5;
    bmxo[playerid] = CreateDynamicCP(bmx1[rand][0],bmx1[rand][1],bmx1[rand][2],5.0,-1,-1,playerid,1000.0);
    return 1;
    }
    else
    {
    new string[123],string2[123];
    ClearAnimations(playerid,1);
    SetPlayerSpecialAction(playerid,0);
    kubik[pMuellAuto[playerid]] += 0.5;
    muellsacke[pMuellAuto[playerid]] -= 1;//HIER
    RemovePlayerAttachedObject(playerid, 0);
    format(string,sizeof(string),"Kubik: %f",kubik[pMuellAuto[playerid]]);
    SendClientMessage(playerid,COLOR_LIGHTBLUE,string);
    format(string2,sizeof(string2),"Müllsäcke: %d",muellsacke[pMuellAuto[playerid]]);
    SendClientMessage(playerid,COLOR_LIGHTBLUE,string2);
    DisablePlayerCheckpoint(fahrzeug[playerid]);
    bmxo[playerid] = CreateDynamicCP(globalVar[playerid][0],globalVar[playerid][1],globalVar[playerid][2],4.0,-1,-1,playerid,30.0);
    return 1;
    }
    }
    }
    return 1;
    }

  • Ich habe mal eine frage und zwar lasse ich im string ein float anzeigen er zeigt auch alles richtig an, nur er macht 0.50000 aber ich möchte das er nur 0.5 anzeigt wie mache ich das?
    format(string,sizeof(string),"Kubik: %f",kubik[pMuellAuto[playerid]]);