Beiträge von d0ma

    SetObjectMaterialText + Eine Windows font(Schriftart) die aus solchen Symbolen besteht
    btw. man sollte nur fonts verwenden die auch standardmäßig bei windows dabei sind, sonst wird es für alle spieler die diese font nicht besitzen auch falsch angezeigt


    vll. so ?

    Alles in pawn( new NAME; ) ist erst einmal gleich 0 bis ein anderer wert gesetzt wird, nur aus solchen gründen könnte ich mir Fehler vorstellen die nur für die ID 0 auftreten.


    Es gibt keinen der dir dabei helfen kann ohne genauere Informationen zu haben.


    Und jeder der sagt "Mach einen Bot rauf der dann die ID 0 belegt" [weiß nicht was er sagt, Anm. d. Moderation] (Fehler verdrängen)

    1 -
    Bots sind eigene Prozesse und stehen daher nicht mit dem SA-MP Server in Verbindung, im allgemeinen sind die Bots auf dem Server wie normale Spieler.
    Solange die Server CPU und RAM nicht überlastet ist sollte das überhaupt kein Problem darstellen
    Du kannst die Bots deswegen sogar von einem anderen System aus starten(zum Beispiel auf deinem PC)


    2 -
    Das ist nicht möglich diese Objekte sichtbar zu machen, was aber auf alle fälle sehr sinnvoll wäre ;) ;)
    Es gibt nur diesen COP Skin als objekt -> http://gta-sa-mp.de/object/?searchName=cop

    Hilft mir leider nicht wirklich weiter, hab
    format(query,sizeof(query),"SELECT `Key` FROM `users` WHERE `Name` = '%s' AND `Key` = '%s'",sendername,passwort);
    zu
    mysql_real_escape_string(passwort, passwort);


    geändert, aber beim Login kann ich mich immer noch mit ' in jeden Account einloggen :/


    //Edit: Text richtig gemacht


    du musst mysql_real_escape_string(passwort, passwort); VOR der format Zeile einfügen und nicht die format zeile mit dem ersetzen.
    also:

    mysql_real_escape_string(passwort, passwort);
    format(query,sizeof(query),"SELECT `Key` FROM `users` WHERE `Name` = '%s' AND `Key` = '%s'",sendername,passwort);

    1. Eingabe sicher machen mit mysql_real_escape_string
    2. Sicheren Text in die Abfrage einbauen MIT 'TEXT'


    Hier eine kleine Erklärung damit auch der Grund/Hintergrund von mysql_real_escape_string vertanden wird: Klick

    Das geht nicht ;)


    Wie es beim MySQL R7 download steht:

    Zitat

    NOTE: DON'T USE VERSION R7 OR ABOVE IF YOU HAVE NO IDEA WHAT THREADING MEANS OR HOW IT WORKS. YOU MIGHT HARM YOUR SERVER WHEN USING IT NOT PROPERLY.


    mysql_function_query(connectionHandle, "UPDATE `foo` SET `bar` = 1", false, "EigensDefiniertesCallback", "dsf", 1337, "string", 1.5634);


    public EigensDefiniertesCallback(integer, string[], Float:float)
    {
    printf("Abfrage erfolgreich ausgeführt. Daten: %d | %s | %f", integer, string, float);
    return 1;
    }
    du kannst nicht mit mysql_Get* mysql_Set* stock Funktionen arbeiten wenn du R7 benutzt, weil die Daten erst zu einem späteren Zeitpunkt per Aufruf eines Callbacks(Hier EigensDefiniertesCallback(integer, string[], Float:float)) zurück kommen.

    du musst die ganzen arrays ohne [...] angeben, also:
    mysql_fetch_field_row(name,"name");
    du musst der funktion nur den array-namen geben, wenn du der funktion den wert an stelle 29( [29] ) gibst wird das nicht viel sinn ergeben.


    edit: lösch überall in der while schleife die [...] weg

    Wenn das mal helfen würde, das es nicht macht X(
    new id = sizeof(Tuning);
    ShowModelSelectionMenuEx(playerid, Tuning[id][FModelid], id, "Select Wheel", CUSTOM_TRAILER_MENU, 16.0, 0.0, -55.0);
    ergebnis ist nen Runtine error X(


    enums und die arrayübergabe... :D wenn es zu sowas kommt und man nicht genau weiß wie enum's eigentlich funktionieren dann sollte man lieber einen umweg in anspruch nehmen ->


    versuch es einfach mal mit einem extraarray:
    new Wheels={nummer, nummer, nummer, nummer, nummer, nummer, nummer, nummer, nummer};
    ShowModelSelectionMenuEx(playerid, Wheels, sizeof(Wheels), "Select Wheel", CUSTOM_TRAILER_MENU, 16.0, 0.0, -55.0);



    Edit: btw in der nächsten mselection version kann man extra texte unter jedem model haben + die menügröße anpassen falls es jemanden interessiert

    du hast ein forward in deinem skript welches anders ist vom Syntax als die funktion die du mit stock deklariert hast.


    Beispiel:
    forward split(const strsrc[], strdest[][], delimiter[]) ;
    stock split(const strsrc[], strdest[][], delimiter)


    oder bei einer doppelten unterschiedliche deklaration von split jedoch meist im zusammenhang mit der error das diese funktion schon existiert


    bei stock muss überhaupt kein forward vorkommen, liegt warsch. daran das i-etwas schon "split" heißt

    Hier mit Erklärungen:


    Beim Raub:
    letzterRaubZeit = gettime(); // speichere aktuelle zeit(gettime() gibt die anzahl an vergangenen sekunden seit dem 1 januar 1970 an)



    Zum überprüfen ob 30 Minuten um sind:
    if( ( letzterRaubZeit + (60*30) ) < gettime() )// ist ('letzterRaubZeit' + 30 Minuten) kleiner als die aktuelle zeit(gettime() gibt die anzahl an vergangenen sekunden seit dem 1 januar 1970 an) ?

    Speichern: "Show Code" und dann etnweder Kopieren oder "Export pwn"
    Fotos: Nur mit der Windows "Druck" taste(ist auf der tastertur aufzufinden) möglich, anschließend kannst du das Bild vom Bildschirm mit rechtsklick+Einfügen in jedes Bildbearbeitungsprogramm einfügen.
    Autofarbe: Nicht möglich, die muss anschließend am Code verändert werden.

    new OnlineSeit[MAX_PLAYERS];
    public OnPlayerConnect(playerid)
    {
    OnlineSeit[playerid] = gettime();
    }


    stock GetPlayerOnlineTime(playerid)
    {
    return floatround( floatdiv( float(gettime() - OnlineSeit[playerid]) , float(60) ), floatround_floor ); //convert seconds ( gettime() - OnlineSeit[playerid] ) to minutes
    }
    Mit GetPlayerOnlineTime(playerid) kann nun die Onlinezeit in minuten abgefragt werden ganz ohne Timer


    Edit: floor durch floatround ersetzt