Beiträge von Goldkiller

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

    Zitat

    This function has no internal error checking. Do not assign custom number plates to vehicles without plates (boats etc) as this will result in some unneeded processing time on the client.
    The vehicle must be respawned or restreamed for the changes to take effect.
    There's a limit of 32 characters on each numberplate (including embedded colors).
    This function only works in versions 0.2.1, 0.2.2, 0.2x and 0.3c (and beyond).

    Der Zeilenumbruch ist nun mal ein besonders Sonderzeichen (?) . Alleine schon beim auslesen wirst du hier Schwierigkeiten haben, denn der Zeilenumbruch "stört".
    Du kannst es ja auch mal mit \0 probieren, da wirst du auch nur Probleme mit haben.
    Es gibt vielleicht auch bessere / einfachere Lösungen, jedenfalls kenne ich keine. Ich weiss aber nun mal auch nicht alles ;).

    Ich hatte das Problem auch mal, hab es wie folgt gelößt.Der Tipp von XeroX ist eigentlich ganz gut.


    Anstatt "\n" habe ich als Kennzeichnung für eine Neue Zeile "~n~" benutzt und trage es auch so in die Datenbank ein.
    Beim Auslesen gibt es dann zunächst keine Problem. Nun muss man aber beim Anzeigen im Dialog ( zB ) aus dem "~n~" wieder ein "\n" machen.
    Dabei ist aber zu beachten, dass man \n als CHAR einfügen muss ( Zumindest kenn Ich keine bessere Lösung ). Es klappt nicht,wenn du "~n~" mit "\n" ersetzt. Du brauchst \n als Character.


    Kleiner Pseudocode:

    text = Hallo,ich bin der Text~n~aus der Datenbank~n~~n~Ciao.
    text = replace("~n~","%c",text) // - Ja, %c
    format( text , size , text , '\n' ) // %c mit '\c' ersetzten
    text // fertig


    Nur zum Anzeigen wandel ich das ~n~ in \n um. In die Datenbank schreibe ich es immer mit ~n~.

    Wozu brauch man die Teamviewer Daten,wenn doch das Erste doch Problem ersichtlich ist.


    stock create_player_car(playerid,Float:pX,Float:pY,Float:pZ,Float:pA,c1,c2) {
    new query[128], name[MAX_PLAYER_NAME]; // <- Der String ist definitiv zu klein. 200 sollte reichen
    GetPlayerName(playerid,name,MAX_PLAYER_NAME);
    format(query,128,"INSERT INTO `usercars` (`Besitzer`,`CarID`,`PosX`,`PosY`,`PosZ`,`PosA`,`Farbe1`,`Farbe2`) VALUES ('%s','%f','%f','%f','%f','%i','%i')", name,pX,pY,pZ,pA,c1,c2); // <- 128 anpassen UND du hast CarID nicht beachtet
    mysql_query(query);
    return 1;
    }
    Für den Fall CarID ist mit auto-increment versehen, dann solltest du dennoch als Wert NULL dafür angeben.



    Zitat

    CMySQLHandler::Query(SELECT `80` FROM `117` WHERE `Besitzer` = 'Fabi.StaR') - An error has occured. (Error ID: 1146, Table 'autohaustest.117' doesn't exist)


    Wieso heißt die Tabelle bei dir 117 und die Spalte 80 ? Falsch formatiert ? Das würde nämlich nicht mal mit der Fehlermeldung übereinstimmen.


    //Edit: Grammatik .

    Die Lösung von Kaliber ist mal mehr als hässlich.
    random(9000) + 1000


    Zitat

    Sagen wir ich benutze es als zufällig generierte Telefonnummer wenn man den Server betritt, wie kann ich dann verhindern, dass Personen die gleiche Nummer erhalten ?


    Eine Liste führen wäre das Einfachste. Die Liste wäre aber rekativ schnell voll, wenn du nur 4-Stellige Zahlen erlaubst.

    Was für eine Antwort erwartest du jetzt von mir ? Es kann "vorher" nicht funktioniert haben,wenn es genau so war wie du es gepostet hast.
    Du musst etwas geändert haben, da gibts keine Andere Möglichkeit.


    Und Nein,so funktioniert es auch nicht.
    GetPlayerName(playerid, name, sizeof(name));
    GetPlayerName(playerid, aname, sizeof(aname)); // <-- 2x mit playerid arbeiten ?
    new string[128], string2[128];
    if(sscanf(params,"ud",pID,Adminrank)) // <- Erst hier hat pID einen gültigen Wert, also kannst du erst DANACH auslesen lassen.


    Wo hast denn diese Funktion her ?
    rtn = floatsqroot(floatpower(rtn,2) /* + floatpower(Vz*100,2))*/ ;
    Warum quadriere ich etwas, um danach wieder die Wurzel zu ziehen ?

    Spoiler anzeigen
    rtn ist doch sowieso positiv,falls hier ein Schlaumeier damit um die Ecke kommen will ;)

    Statt dem Timer OnPlayerUpdate verwenden, und am besten einen stock schreiben...


    Was bewirkt denn so ein "stock" ?


    Ich würde das Interval zum aktualisieren des Tachos niedriger setzen. Bloß nicht OnPlayerUpdate nutzen.

    "Free Palastine, nieder mit IsraHell" ist die Meinung die ich dazu vertrete um das mal aufzuklären. Und das Sachliche ist auf die Diskussion bezogen


    Dann solltest du zumindest einen Absatz zwischen diesen Beiden Aussagen lassen, denn so wirkt es zusammenhängend. Dein "Bitte sachlich Diskutieren" ist für mich daher mehr als lächerlich.


    Zitat

    Nieder mit Palästina. Bitte unterlasst provokative Aussagen.


    So eine Aussage sollte dann zumindest dich nicht stören :| . Es ist im übrigen aber auch nicht meine Meinung zu diesem Thema.


    Anonymous bleibt für mich auch weiterhin ein Troll-Verein.