Beiträge von Jameso

    Wann benutzte ich >= und wann >
    Ist das nicht das Selbe?



    Irgendwie spawnt mein Fahrzeug nicht, warum?


    C
    stock const Float:AHCarSpawn1[][] = 
    {
        {740.280,-1346.980,13.209,242.152},
    //... +5 Einträge
    
    
    };


    C
    new AutohausCar1[6];
    Code
    stock const AHVehTypes1[][] =
    {
        {"X","X",411,1},
    // +8 Einträge
    };

    Mois,
    random(sizeof(/*Array-Name*/));
    Wie kann ich die ersten beiden Einträge eine geringe Wahrscheinlichkeit geben beim randomisieren wie zuvor gezeigt?


    Heißt ich will das die Zahl 0 oder 1 eine geringere Wahrscheinlichkeit haben als die 2 hier im Beispiel

    C
    stock const AHVehTypes1[][] =
    {
        {"Fahrzeug1",410, 2500}, //Geringe Wahrscheinlichkeit
        {"Fahrzeug2",411, 1000},
        {"Fahrzeug3",412, 5020}, //hohe Wahrscheinlichkeit

    Hö,
    ich wunder mich gerade, wie ich die Objekte destroye vom Fahrzeug?
    ObjektLkwJob1[1][/*Index*/]


    Der Index ist ja gleich pInfo[playerid][pJobVeh] (< -- das ist JobFahrzeug[i])
    Ist das nicht Riskant?


    Funktioniert der Code so auch, wenn ich nicht der Killer vom Fahrzeug bin, sollte es ja, kann es nur nicht testen :D

    Kann das Include nicht benutzten (eDistance), weil dies komplett nur für ein Fahrzeug gedacht ist. Dies hatte Jeffry mal herausgefunden.


    Aber du hast Recht!
    Ich hatte mich vertauscht mit VehData und VehDefaultData da brauchte ich nämlich das Model, Vollidiot... :D


    Also:
    - Problem gelöst - Include funktioniert.

    Das speichert den Wert ja so in einer Datenbank und ich will da nichts drum rum bearbeiten, nicht das ich was falsches Lösche.
    Vor allem, weil der Timer beim OnGameModeInt gesetzt wird, das verstehe ich nicht.
    Gibt es keine andere Lösung, die für mich einfacher ist :D


    //Edit - Eigenes "include" ins Gamemode packen



    Hoffe ihr könnt mir helfen, den Timer public zu füllen, ich habe echt keinen Plan...
    Unten steht die Km Variable zum anzeigen und speichern. Hoffe habe keine Informationen vergessen.



    C
    SetTimer("KMCounter", 4500, true); //OnGameModeInit



    C
    forward KMCounter();
    public KMCounter()
    {
    	return 1;
    }


    C
    if((newstate == PLAYER_STATE_DRIVER || (newstate == PLAYER_STATE_PASSENGER))
    	{
    	    new vehicleid = GetVehicleModel(GetPlayerVehicleID(playerid)) - 400;
    		UpdateVehicleKM(playerid, vehicleid);
    	}
    C
    stock UpdateVehicleKM(playerid, vehicleid)
    {
    	new string[32];
    	format(string, sizeof(string), "%0.2f", vehData[vehicleid][e_km]);
    	PlayerTextDrawSetString(playerid, textdraw[11][playerid], string);
    	return 1;
    }
    
    
    //Km Anzeigen lassen

    Hey,
    Ich habe hier ein Include, dass ich benutzen will, um den KM-Stand eines Fahrzeuges zu ermitteln. (bzw. soll er mir dies in eine Vehicle Data Variable speichern)


    Folgendes Include wird genutzt:
    https://forum.sa-mp.com/showthread.php?t=404367



    So habe ich versucht es anzuwenden:

    C
    if((newstate == PLAYER_STATE_DRIVER) || (newstate == PLAYER_STATE_PASSENGER))
    	{
            new string[32], idx = GetVehicleModel(GetPlayerVehicleID(playerid)) - 400;
            vehData[idx][e_km] += GetKilometers(idx);
    		format(string, sizeof(string), "%0.2f", vehData[idx][e_km]);
    		PlayerTextDrawSetString(playerid, textdraw[11][playerid], string);
    	}


    Allerdings passiert nichts, was mache ich falsch, oder habe ich was übersehen?

    Ich speicher mir aber immer nur den Index, ich kann ja dann nicht abfragen ob "JobFahrzeug[playerid] == i" ist ?
    Da es ja noch andere Fahrzeuge mit dem Index gibt.


    Was passiert denn, wenn ich die VID speichere das Fahrzeug heißt Job1Fahrzeug[2], wenn ich das einer Variable gebe heißt die doch nicht auch Job1Fahrzeug[2] oder?

    Zitat von Kaliber

    das bedeutet wohl, dass nicht alle Array-Felder Fahrzeugen zugewiesen wurden

    Ja natürlich, die Einträge brauchen auch bisschen Platz.
    Nicht das die Einträge Klaustrophobie haben und mein ganzes System nicht mehr funktioniert. :whistling:

    Haha :D



    C
    new vehicleid = GetPlayerVehicleID(playerid);
    if(IsInAorB(vehicleid))
    {
    //...
    }
    else
    {
    //Nachricht das er nicht im Fahrzeug ist
    }

    Es ist egal, ob ich zu Fuß unterwegs bin oder im richtigen Fahrzeug er zeigt mir immer das nach der if Abfrage nie den else Teil.

    @Kaliber
    Ja ich habe 2 Möglichkeiten.
    Einmal könnte ich die Vehicle-ID abfragen, aber dafür habe ich 2 Arrays.
    Oder ich frage die Model-ID ab.


    Die Vehicle-ID abfrage gefällt mir da lieber, da ich nicht weiß ob ich das Model noch wo anders nutzen möchte


    Code
    if(vehicleid == FahrzeugTypA[idx] || vehicleid == FahrzeugTypB[i])

    Das ist ja so blöd, da ich 2 Schleifen davor laufen lassen muss.

    Ich habe einen Befehl, den man nur in einen der beiden Fahrzeug-Typen nutzen kann.
    Beide Fahrzeugtypen haben die selbe Model-ID sind aber anders.
    2 Schleifen hintereinander sind ja nicht so das gelbe vom Ei, was kann ich machen?
    Ich kann ja nicht abfragen, ob der Spieler in dem Vehicle-Model ist, da man dafür die Vehicle-ID brauch... :(

    C
    new FahrzeugTypA[10];
    new FahrzeugTypB[10];


    Code
    for(new idx;idx<sizeof FahrzeugTypA;idx++ )
    {
    	for(new i;i<sizeof FahrzeugTypB;i++ )
    	{

    Ich habe ein Array voller Koordinaten, zu diesen will ich per Zufall eine aussuchen (x,y,z) und abfragen, ob diese eine Koordinate schon benutzt wurde, damit er beim zweiten mal dort kein Checkpoint kriegt, sondern
    dann eine noch nicht benutzte Koordinate rausgesucht wird.
    Ist etwas für ein Job


    was wäre das schlauste?
    Wenn ich ein Enum dazu erstelle und dort z.b 0 eintrage, kann ich dann beim setzten da die 1 setzten und später abfragen ob es auf 1 ist?
    Das geht ja alles nicht über Playerid oder?

    Code
    stock const Float:trash1[][] =
    {
    	{770.2623,-1260.5071,12.4866}, // 1
    	{-69.7510,-1624.0002,12.4859,0}, // enum Beispiel
    //...
    };