Beiträge von Hagi

    Sicher, dass es am Server liegt ?


    Es könnte auch durchaus sein, dass bei der "Lost connection" dein Internet für ne Sekunde verloren gegangen ist.
    Das mit dem "Remove Player" könnte ein Hinweis auf einen anderen Spieler sein, welcher irgentwelche Probleme auf Server und Clientside verursacht und dann vom Server vorsichtshalber "gelöscht" wird.

    Es kommt immer darauf an wie der Spieler seine Tastatur belegt hat, so hat er nur Feuer auf Alt dann geht es auch nur mit alt.


    Ich glaube, bin mir aber jetzt nicht ganz so sicher, ist es nicht möglich ein bestimmtes Zeichen auszulesen.

    Hi Leute. Diese Function hier gibt leider nicht den richtigen Timestamp wieder.


    stock mktime(hour,minute,second,day,month,year)
    {
    new timestamp2;


    timestamp2 = second + (minute * 60) + (hour * 3600);


    new days_of_month[12];


    if ( ((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0) ) {
    days_of_month = {31,29,31,30,31,30,31,31,30,31,30,31}; // Schaltjahr
    } else {
    days_of_month = {31,28,31,30,31,30,31,31,30,31,30,31}; // keins
    }
    new days_this_year = 0;
    days_this_year = day;
    if(month > 1) { // No January Calculation, because its always the 0 past months
    for(new i=0; i<month-1;i++) {
    days_this_year += days_of_month[i];
    }
    }
    timestamp2 += days_this_year * 86400;


    for(new j=1970;j<year;j++) {
    timestamp2 += 31536000;
    if ( ((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0) ) timestamp2 += 86400; // Schaltjahr + 1 Tag
    }


    return timestamp2;
    }


    Hat jemand eine aktuelle Function die auch wirklich den Timestamp zurück gibt und nicht ein paar Tage hinterherhinkt oder sogar noch besser ein Plugin ?


    public OnPlayerCommandText(playerid, cmdtext[])
    {
    if(strcmp(cmdtext,"/Panzer",true)==0)
    {
    SetPlayerPos(playerid,1962.5103,-2185.6628,13.5469);
    return 1;
    }


    if(strcmp(cmdtext,"/Admin",true)==0)
    {
    SetPlayerPos(playerid,1813.5697,-1301.6871,131.7332);
    return 1;
    }
    if(strcmp(cmdtext,"/Hunter",true)==0)
    {
    SetPlayerPos(playerid,239.6949,-1814.2419,4.2509);
    return 1;
    }
    return 0;
    }

    In den if Körper deines Commands:



    new Float:x,Float:z,Float:z;
    GetPlayerPos(playerid,x,y,z);


    for(new i = 0;i<MAX_PLAYERS;i++)
    {
    if(IsPlayerConnected(i))
    {
    if(IsPlayerInRangeOfPoint(i,50.0 /*Meteranzahl*/,x,y,z))
    {
    SendClientMessage(i,COLOR,STRING);
    }
    }
    }


    edit: Alternative Koordinatenversion



    new Float:x = 50.0;
    new Float:z = 50.0;
    new Float:z = 50.0;
    new Float:meter = 50.0; // Koordinaten nach beleben ändern, wenn man nicht in dem obrigen Beispiel von einer Spielerposition ausgehen möchte.


    for(new i = 0;i<MAX_PLAYERS;i++)
    {
    if(IsPlayerConnected(i))
    {
    if(IsPlayerInRangeOfPoint(i,meter,x,y,z))
    {
    SendClientMessage(i,COLOR,STRING);
    }
    }
    }

    Das muss ja in irgentwas nach folgendem Schema stehen


    blubb[][] =



    Oder sowas in der richtung. Vermutlich ist ein Wert in den Klammern zu niedrig.


    new wantedstring[1024];
    new pname[20];
    for(new i = 0;i<MAX_PLAYERS;i++)
    {
    if(pInfo[i][pWanted] > 0)
    {
    GetPlayerName(i,pname,sizeof(pname));
    format(wantedstring,sizeof(wantedstring),"%s %s %d\n",wantedstring,pname,pInfo[i][pWanted]);
    }
    }
    ShowPlayerDialog(playerid,dialogid,DIALOG_STYLE_LIST,"Aktuelle Wanteds",dialogstring,"","");

    Joa der Abgang war geil und auf so ein geflame muss man ja nicht hören. Dreiste Unterstellungen sollte man einfach ignorieren. Das was da mit der "freundlichen" Verteidigung jetzt passiert ist, ist passiert, aber das zeigt doch nichts. Wichtig ist die Community, die bis auf ein paar Ausnahmen ja immer dahinter steht. (Prost 29 Seiten soll mal was heißen)

    Nein, da du ja an der Art des Dialogs nichts änderst.


    DIALOG_STYLE_LIST bleibt DIALOG_STYLE_LIST


    Achtung: unter OnDialogResponse musst du nun natürlich auch anstatt der Zahlen den richtigen Namen verwenden, der zum Dialog gehört, sonst verweist er auf die falschen Abfragen.

    Jedem Dialog ne andere ID geben


    #define DIALOG_LOGIN 0
    #define DIALOG_ADMIN 1
    #define DIALOG_JOBS 2
    #define DIALOG_REG 3
    #define ReportDialog 4
    #define DIALOG_REG2 5
    #define DIALOG_CLICK 6
    #define DIALOG_CLICK_KICK 7
    #define DIALOG_CLICK_BAN 8
    #define DIALOG_CLICK_HEALTH 9
    #define DIALOG_CLICK_INT 10
    #define DIALOG_TICKET 11
    #define DIALOG_REGSTEP_1 12
    #define DIALOG_REGSTEP_2 13
    #define DIALOG_REGSTEP_3 14
    #define DIALOG_UNDERCOVER_SF 15
    #define DIALOG_UNDERCOVER_LS 16
    #define DIALOG_STADION 17
    #define DIALOG_KLEIDUNG_PRO 18
    #define DIALOG_KLEIDUNG_ZIP 19
    #define DIALOG_TORE 20
    #define List 21


    edit: Bei ShowPlayerDialog brauchste dann als Dialogid auch nicht mehr die Zahl angeben, sondern kannst den Namen verwenden, da der ja stellvertretend für den Namen steht. Das bringt dir mehr übersichtlichkeit ins Script.

    Du könntest mit STRVAl arbeiten.


    http://wiki.sa-mp.com/wiki/Strval


    Da diese Funktion aber nur einen String anstatt einer Float akzeptiert musst du erst die Float in einen String verwandeln


    new Float:geld = 150.00; // Wäre in deinem Falle die Float
    new string[20]; // string wird erstellt
    format(string,sizeof(string),"%f",geld); //Float wird in String gepackt
    new ngeld = strval(string); // ngeld wird der int Wert von string zugewiesen
    printf("Geld: %f | String: %s | Ngeld: %d",geld,string,ngeld); /* Hab ich jetzt fix benutzt um zu schauen ob alles funktioniert.
    Hat bei mir "[15:05:16] Geld: 150.000000 | String: 150.000000 | Ngeld: 150" ausgegeben. Es funktioniert so also*/

    Kannst du natürlich machen, dann wird der Score immer gesetzt wenn man PayDay hat.


    Zusätzlich kannst du den Score ja noch bei deinem login setten, damit man nicht erst beim ersten Payday den Score angezeigt bekommt, sondern zusätzlich einmal beim einloggen.

    Es wird der Inhalt geschrieben, der der Variable zugewiesen wurde.
    Sprich wenn das ein String ist und der Name darin gespeichert ist, ja.


    new playername2[20];
    GetPlayerName(playerid,playername2,sizeof(playername2));
    new string2[50];
    format(string2, sizeof(string2), "SERVER: Willkommen %s",playername2);


    Um auf deine Frake einzugehen, %s ist immer ein String, sprich eine Zeichenkette.

    Integer %d anstatt String %s


    new kennzeichen[MAX_VEHICLES];//-----[Ganz oben ins Script]
    public OnVehicleSpawn(vehicleid)
    {
    new Text3D:vehicle3d[MAX_VEHICLES],string[20];
    kennzeichen[vehicleid] = vehicleid*10;
    format(string, sizeof(string), "SA-%d",kennzeichen[vehicleid]);
    vehicle3d[vehicleid] = Create3DTextLabel(string,COLOR_RED,30.0,30.0,5.0,30.0,0);
    Attach3DTextLabelToVehicle(vehicle3d[vehicleid],vehicleid, 0.0, 0.0, 0.0);
    }


    Kannst natürlich auch nicht von der Vehicleid anhängen lassen


    new kennzeichen[MAX_VEHICLES];//-----[Ganz oben ins Script]
    public OnVehicleSpawn(vehicleid)
    {
    new Text3D:vehicle3d[MAX_VEHICLES],string[20];
    kennzeichen[vehicleid] = random(98)+1;
    format(string, sizeof(string), "SA-%s",kennzeichen[vehicleid]);
    vehicle3d[vehicleid] = Create3DTextLabel(string,COLOR_RED,30.0,30.0,5.0,30.0,0);
    Attach3DTextLabelToVehicle(vehicle3d[vehicleid],vehicleid, 0.0, 0.0, 0.0);
    }


    edit: Wenn du da noch zwei Buchstaben zwischen haben willst würd ich die ersten zwei des Playername nehmen.


    new kennzeichen[MAX_VEHICLES];//-----[Ganz oben ins Script]
    public OnVehicleSpawn(vehicleid)
    {
    new Text3D:vehicle3d[MAX_VEHICLES],string[20],pname[20],nname[3];;
    GetPlayerName(playerid,pname,sizeof(pname));
    strmid(nname,pname,0,1);
    kennzeichen[vehicleid] = random(98)+1;
    format(string, sizeof(string), "SA-%s-%d",nname,kennzeichen[vehicleid]);
    vehicle3d[vehicleid] = Create3DTextLabel(string,COLOR_RED,30.0,30.0,5.0,30.0,0);
    Attach3DTextLabelToVehicle(vehicle3d[vehicleid],vehicleid, 0.0, 0.0, 0.0);
    }


    Sollte eigentlich funktionieren.
    Dafür musst du natürlich das Auto euf einem bestimmten Spieler zuschreiben. Aber wenn du ihn in der Stadthalle anmeldest weißt duw arscheinlich wies geht.

    Also echt auf sowas muss man jetzt erstmal kommen.


    Auch super, dass verschiedene Welten benutzt werden. Ist echt Klasse geworden. Also wenn du weiterhin so geile Ideen hast wird das hier noch richtig geil.


    10/10

    Also für mich steht da 40 und nicht 44


    84 + x = 5(8 + x) | T
    84 + x = 40 + 5x | -x
    84 = 40 + 4x | -44
    40 = (-4) + 4x


    84 + x = 5(8 + x) | T
    84 + x = 40 + 5x | -x
    84 = 40 + 4x | -40
    44 = 4x | :11
    11=1x