Beiträge von Goldkiller

    Das ist nicht abgeguckt,dass ist ganz klar kopiert.


    Wenn du 5 Zeilen kopierst und aus GetDotXY das Wort Speed machst,hat es nix mit abgucken zu tun.
    Das Gleiche für den Anderen Codeausschnitt . Die 2 Zahlen die du dort geändert hast ( 60 => 70 ) , ist ebenfalls nicht abgucken. Ich hab mir den Quellcode nicht genauer angeguckt, ob ich da noch mehr finden würde,weiss ich nicht.


    Ich brauch hier aber nix versuchen zu beweisen,im Endeffekt musst du ja selber wissen, ob und welche Teile nicht von dir sind bzw "abgeguckt".


    Zitat

    Außerdem zu sagen das ich es nicht gescriptet habe ist jetzt auch ein bisschen .... "beschissen" da jeder Scripter mal etwas abguckt und nicht alles zu 100% weiß, das tust du mit sicherheit auch.

    Ich hab nicht geschrieben,dass du es nicht gescriptet hast. Ich bezweifel nur,dass alles von dir ist.
    Einen Satz zum letzten Teil spar ich mir, würde sonst überheblich klingen :p

    Ich bezweifel,dass es komplett von dir ist.Der Quellcode und auch die Textdraws sehen diesem Script [ [FilterScript] [FS] Real Clock Speedometer ] verdammt ähnlich.


    Um jetzt mal eine Funktion zu nehmen,bei der es direkt 1 zu 1 sichtbar ist:
    sa-mp.com
    stock GetDotXY(Float:StartPosX, Float:StartPosY, &Float:NewX, &Float:NewY, Float:alpha, Float:dist)
    {
    NewX = StartPosX + (dist * floatsin(alpha, degrees));
    NewY = StartPosY + (dist * floatcos(alpha, degrees));
    }
    deins
    stock Speed(Float:StartPosX, Float:StartPosY, &Float:NewX, &Float:NewY, Float:alpha, Float:dist)
    {
    NewX = StartPosX + (dist * floatsin(alpha, degrees));
    NewY = StartPosY + (dist * floatcos(alpha, degrees));
    }
    Das dein Tacho auch zufällig bis 130 geht,dass im Englischen Forum aber bis 260 ist sehr komisch.Einfach mal die Hälfte genommen :huh: .


    Oder das hier,mehr als merkwürdig.

    GetVehicleVelocity(GetPlayerVehicleID(playerid), fPos[0], fPos[1], fPos[2]);
    sSpeed = floatsqroot(floatpower(fPos[0], 2) + floatpower(fPos[1], 2) +
    floatpower(fPos[2], 2)) * 200;
    new Float:alpha = 320 - sSpeed;
    if(alpha < 70)
    alpha = 70;
    Aus dem Script von sa-mp.com
    GetVehicleVelocity(GetPlayerVehicleID(playerid), fPos[0], fPos[1], fPos[2]);

    fSpeed = floatsqroot(floatpower(fPos[0], 2) + floatpower(fPos[1], 2) +
    floatpower(fPos[2], 2)) * 200;

    new Float:alpha = 320 - fSpeed;
    if(alpha < 60)
    alpha = 60;

    Ich weiss nicht, dass Script entzieht sich meiner Wertung. Sieht nicht wirklich selbstgemacht aus ... .

    Versuch es lieber mal mit y_va.
    http://forum.sa-mp.com/showpost.php?p=1421736&postcount=2462
    y_va.inc
    Damit kannste schnell und einfach Funktionen erstellen,die direkt mit format Arbeiten sollen.


    Falls du es mit deiner Methode dennoch machen möchtest,du kannst den Code ja ein Level anheben ( mir fällt beim Besten willen nicht ein,wie man es richtig nennt :-O ). Damit meine ich, { } benutzen und dort drin deinen Code ;).Dann klappt es aber nicht mehr mit dem Semikolon am Ende, daher nutzen die meisten dafür einen Umweg.Der ist aber schon relativ Alt und mit der y_va Methode ist es definitiv eleganter:



    static stock bool:FALSE = false;
    #define SendFormat(%0,%1,%2,%3) do{new _str[128];format(_str,128,%2,%3);SendClientMessage(%0,%1,_str);}while(FALSE)

    format(str, 256, "Deine Ip: %i",plrIP)
    %i ist falsch.Das würde nämlich bedeuten,deine IP wäre eine Zahl.Ist sie aber nicht , sondern ein String.
    Kannst ja mal schauen welcher Platzhalter für Strings gut ist ;).
    http://wiki.sa-mp.com/wiki/Format


    Übrigens ist 256 viel zu groß. 27 wäre groß genug für diesen Text den du dort hast.

    Dann ist strfind immernoch eine total schlechte Lösung.Da müsstest ja für jeden Buchstaben 1x strfind benutzen,ist doch Quatsch.
    Da würde ich eher durch das Array gehen und prüfen ob :
    ...
    Schleife {
    if( 'a' <= array[index]<= 'z' || 'A' <=array[index] <= 'Z' )
    }
    ...

    Weil sscanf mehr oder weniger zum Standard gehört.
    Es gibt keine native Funktion die dir zu 100% sicherstellt,dass es sich bei der Eingabe um eine Zahl handelt.
    Du könntest "strval( inputtext ) " benutzen , allerdings funktioniert es für den Sonderfalls das inputtext = "0" ist nicht. Denn funktioniert strval nicht Fehlerfrei,gibt es als Rückgabewert 0.


    Eine extra Funktion wirst du sowieso brauchen,ob es nun sscanf ist oder zum Beispiel isNumeric:
    stock IsNumeric(const string[])
    {
    new lenght = strlen(string);
    for (new i=0; i<length; i++)
    {
    if (!((string[i] <= '9' && string[i] >= '0') || (i==0 && (string[i]=='-' || string[i]=='+'))))
    {
    return false;
    }
    }
    return 0;
    }
    Da würde ich definitiv eher sscanf benutzen.


    //Edit:
    Kannst es ja mal selber probieren:
    printf("strval(blaaa) %d",strval("blaa"));
    printf("strval(0) %d",strval("0"));

    Beides wird für %d die Zahl 0 einsetzen,obwohl "blaa" keine gültige Zahl ist.

    Zitat

    In SQL einfügen (Also Befehl ?)


    In phpmyadmin zum Beispiel,ja. ( Würde auch über SA:MP funktionieren ).


    Zitat

    Und wie setzte ich die neu registrierten PW's auf Mysql.


    Ehm,ich denke du hast die md5 Include für PAWN. Sonst hättest du doch gar nicht wegen MD5 angefragt,oder ? Man kann auch wie gesagt einen Tabellenwert immer von MySQL eintragen lassen und daraus angewendet MD5. Weiss leider nicht mehr wie es geht.


    Zitat

    Und wie "Get" ich sie ? (Damit das Script MD5 entschlüsselt.)


    Den Eintrag aus der Tabelle ? Ganz normal als String auslesen.

    Kommt darauf an,was du meinst.

    Zitat

    da ich bei der mysql abfrage die koordinaten zur sicherheit mit angebe.


    Die Koordinaten nicht mit übergeben wäre eine Option, meinst du nicht ? Du solltest die Fahrzeuge anhand einer Einzigartigen ID festlegen und lediglich mit dieser vergleichen.

    Zitat

    Ich möchte aber nich jedem Auto fest eine zweite ID in der Tabelle zuweisen, da ich dann im script immer leicht durcheinander komme. Danke wenn ihr mir helfen könnt.


    Wäre aber die einfachste Lösung :/.

    Kannst auch direkt über MySQL machen lassen.


    SQL
    UPDATE `deinetabelle` SET `passwort` = MD5( `passwort` )


    Würde alle Passwörter neu abspeichern ( Feld passwort ) in deiner Tabelle ( deinetabelle ) ,allerdings MD5 verschlüsselt.Das solltest du nur 1x ausführen. Denn sonst wendest du MD5 an dem bereits verschlüsseltem Passwort an,bringt ja nix ;).


    Man kann auch einstellen,dass automatisch jeder neu eingetragene Wert an sich die Funktion MD5 angewendet bekommt,bevor letztendlich in die Datenbank geschrieben wird.


    Einfach ein neues Feld (INT) zur Spieler Tabelle hinzufügen.


    Nein, MD5 Hash ist keine Zahl.

    Du hast wohl gar nicht mehr vor, wenigstens etwas aus dem MySQL Referenzbuch zu lesen.


    format(sql,sizeof(sql),"DELETE FROM `%s` WHERE `%s`",table,where);
    WHERE was ?


    http://forum.sa-mp.de/san-andr…6schen-fehler/#post981870
    Maddin hat es geschrieben.
    Angenommen du willst die Eintrag Löschen,wo der Spielername "Testname" ist:
    stock mysql_delete(table,where[],is[])
    {
    new sql[256];
    format(sql,sizeof(sql),"DELETE FROM `%s` WHERE `%s` = '%s'",table,where,is);
    mysql_query(sql);
    }
    mysql_delete("players","name","Testname");

    Über Google hättest du da die Lösung schnell gefunden.


    http://forum.sa-mp.de/san-andr…nvalid-line-continuation/
    http://forum.sa-mp.com/showpost.php?p=874363&postcount=17
    oder auch pawn-lang.pdf:

    Zitat

    049 invalid line continuation
    A line continuation character (a backslash at the end of a line) is at an invalid position, for example at the end of a file or in a single
    line comment.


    Solltest also mal die Zeilen über "if(strcmp(cmdtext,"/setblitzer",true) == 0)" posten bzw prüfen.