Beiträge von CaIaze

    Guten Tag,
    da ich mich gerade daran probiere einen TTT Server für Samp zu Scripten hätte ich mal 2 Fragen.


    Frage 1: Ist es möglich anzufragen ob ein Spieler afk ist und wie lange er das ist? (Ps: Die Include die ich hier im Forum gefunden habe funktioniert bei mir irgendwie nicht)


    Frage 2:
    Sobald die Runde anfängt wird dem Spieler der Wert: SpielGestartet = 1; zugewiesen.
    Nun habe ich einen Globalen Timer erstellt. In diesem soll Abgafragt werden ob alle Spieler tot sind, also wenn der Wert Tot =1; bei allen Spielern gesetzt ist wo SpielGestartet = 1 ist.
    Das habe ich ja realisiert bekommen. Meine Frage nun, wie kann ich abfragen wie viele Spieler den werr Tot = 1 haben?
    Ich möchte nämlich das wenn nur noch ein Spieler Lebt das Spiel beendet wird da ja kein anderer mehr lebt um den letzten überlebenden zu killen.


    Vielen Dank im Voraus!

    Kleiner einwand:for(new i = 0, j = GetPlayerPoolSize(); i <= j; i++)
    (Wichtig ist das <=)


    GetPlayerPoolSize gibt die höchste Spieler ID zurück, wenn du < benutzt wird der letzte Spieler (der mit der höchsten ID) nie ausgewählt.

    Hab das ganze mal getestet. Einziges Problem ist nur das wir zwei Spieler waren und alle zwei waren Innocent. Es sollte jedoch einen Traitor geben. Wie kann ich das ganze Realisieren?
    Vielen Dank im Voraus!

    Guten Abend,
    ich möchte gern einen TTT Server für SA:MP schreiben.
    Ich möchte das wenn es 4 Spieler sind 2 Traitor und 2 Innocent sin. Spielen nur 2 soll einer Inno sein und der andere Traitor. Spielen 6 soll es 3 Traitor geben und 3 Innos usw. so das alles gleich aufgeteilt ist.
    Wie kann ich nun den Spielern die verschiedenen (random) Werte zuweisen. Wir nehmen mal an " IsPlayerTraitor = 1 " wenn er Traitor ist und "IsPlayerTraitor = 0" wenn er keiner ist.
    @Jeffry
    Vielen Dank im Voraus!

    Das Auto wird jetzt gar nicht mehr gespawnt.


    Code:


    enum carEnum{
    id_x,
    model,
    besitzer,
    vcolor1,
    vcolor2,
    numberplate,
    Float:c_x,
    Float:c_y,
    Float:c_z,
    Float:c_r,
    db_id
    }
    new cInfo[50][carEnum];




    public OnPlayerCarsLoad(playerid)
    {
    new num_fields,num_rows;
    cache_get_data(num_rows,num_fields,dbhandle);
    if(!num_rows)return 1;
    for(new i=0; i<num_rows; i++)
    {
    new idx=getFreeCarID();
    cInfo[idx][model]=cache_get_field_content_int(i,"model",dbhandle);
    cInfo[idx][besitzer]=cache_get_field_content_int(i,"besitzer",dbhandle);
    cInfo[idx][c_x]=cache_get_field_content_float(i,"x",dbhandle);
    cInfo[idx][c_y]=cache_get_field_content_float(i,"y",dbhandle);
    cInfo[idx][c_z]=cache_get_field_content_float(i,"z",dbhandle);
    cInfo[idx][c_r]=cache_get_field_content_float(i,"r",dbhandle);
    cInfo[idx][db_id]=cache_get_field_content_int(i,"id",dbhandle);
    cInfo[idx][vcolor1]=cache_get_field_content_int(i,"color1",dbhandle);
    cInfo[idx][vcolor2]=cache_get_field_content_int(i,"color2",dbhandle);
    cInfo[idx][numberplate]=cache_get_field_content(i,"numberplate",cInfo[idx][numberplate], dbhandle, 32);
    cInfo[idx][id_x]=CreateVehicle(cInfo[idx][model],cInfo[idx][c_x],cInfo[idx][c_y],cInfo[idx][c_z],cInfo[idx][c_r],cInfo[idx][vcolor1],cInfo[idx][vcolor2],-1);
    SetVehicleNumberPlate(cInfo[idx][id_x],cInfo[idx][numberplate]);
    printf("Besitzer %d | ID: %s", cInfo[idx][id_x], cInfo[idx][numberplate]);
    }
    return 1;
    }

    new string[100] ;cInfo[idx][numberplate]=cache_get_field_content(i,"numberplate",string, dbhandle);
    Da hat eine Klammer gefehlt denke ich mal.

    Die hab ich im nachgang noch gesetzt. Trotzdem wird das Kennzeichen nicht korrekt angezeigt -.-

    new string[100] ;cInfo[idx[numberplate]=cache_get_field_content(i,"numberplate",string, dbhandle);


    So vllt

    Hab das Nummernschild mal printen lassen. Sieht dann so aus: Besitzer 1807 | ID: ª±ê

    Enthält die Variale numberplate denn einen Wert?
    Meines Wissens nach, muss das Fahrzeug erst respawnt werden, damit das Kennzeichen angezeigt wird. Korrigiert mich, wenn ich falsch liege.

    cInfo[idx][numberplate]=cache_get_field_content_int(i,"numberplate",dbhandle);
    Da hab ich einen Fehler!


    Müsste so heißen oder?
    cInfo[idx][numberplate]=cache_get_field_content(i,"numberplate",dbhandle);


    #handy

    Ich möchte das gern so realisieren:
    cInfo[idx][id_x]=CreateVehicle(cInfo[idx][model],cInfo[idx][c_x],cInfo[idx][c_y],cInfo[idx][c_z],cInfo[idx][c_r],cInfo[idx][vcolor1],cInfo[idx][vcolor2],-1);
    SetVehicleNumberPlate(cInfo[idx][id_x],cInfo[idx][numberplate]);


    Allerdings funktioniert das nicht so wie ich es gern möchte. Jemand eine Idee wie es funktionieren könnte?

    Versuch es so;


    new Days, Hours, Minutes;new Time = (sInfo[playerid][premiumZeit] - gettime());Days = Time / 86400;Time -= Days * 86400;Hours = Time / 3600;Time -= Hours * 3600;Minutes = Time / 60;Time -= Minutes * 60;


    Ausgabe erfolgt dementsprechend über Days, Hours, Minutes.

    Ja perfekt. Danke Dir. Funktioniert einwandfrei!