Beiträge von Pille

    An dem auch, aber das return in SendRadiusMessage wird Probleme machen ^^
    Wenn du alleine bist nicht, aber sobald mehr als Ein User auf dem Server ist.


    Hinweis:
    case 0: return teamRang = " ";


    // ändern zu:


    case 0: teamRang = " ";

    Übrigens, du verwendest eine viel zu lange Zeichenkette.
    Es reicht wenn du für den Rang eine mit 32 Zeichen erstellst,
    und für den Output einen mit 128. Du kannst ja strings mehrmals
    umformatieren.

    Und ein String mit einer Länge von einem Zeichen ist deiner Ansicht nach kein String mehr?


    Nein, ein Integer.
    Ein string ist ja nichts anderes als ein Integer mit mehreren Arrays.
    In jeden davon speicherst du die Zahl des Buchstabens rein.
    PAWNO bzw. SAMP konvertiert das dann zu einer Zeichenkette.


    //edit: Fehler gefunden:
    Nur der erste User, der in der Nähe ist erhält die Nachricht,
    weil dannach durch das 'return' der stock beendet wird.

    In PAWN kannst du keine Strings mit == vergleichen, dafür musst du strcmp benutzen.


    Falsch, denn er vergleicht nicht den String, sondern das erste Zeichen in der Zeichenkette.


    Zeig uns bitte mal SendRadiusMessage.

    Du lässt bei OnPlayerStateChange (PLAYER_STATE_DRIVER) das neue Auto in eine Variable speichern (die AutoID).
    Dann frägst du mit dem Befehl die Variable ab und ordnest dementsprechend die Fraktion, den Autonamen etc. zu.

    new level=GetPlayerScore(playerid);
    new price=1000+(1000*score);
    new respect=4*level;


    if(SpielerInfo[playerid][pRespekt]<4) return SCM(playerid,COLOR_LIGHTRED,"Du hast nicht genug Respektpunkte oder nicht genug Geld, um dir das nächste Level zu kaufen!");
    if(SpielerInfo[playerid][pGeld]<price) return SCM(playerid,COLOR_LIGHTRED,"Du hast nicht genug Respektpunkte oder nicht genug Geld, um dir das nächste Level zu kaufen!");


    SpielerInfo[playerid][pRespekt] -= respect;
    SpielerInfo[playerid][pLevel] += 1;
    SetPlayerScore(playerid,level+1);
    SpielerInfo[playerid][pGeld] -= price;
    SavePlayer(playerid);
    new string[128];
    format(string,sizeof(string),"Herzlichen Glückwunsch, du bist nun Level %i!",level+1);
    Echo COLOR_LIGHTGREEN,string);


    Das müsste dann für alle Level funktionieren :)

    & bedeutet in diesem Fall, dass etwas in die Variable reingespeichert wird.
    (ob die Erklärung jetzt richtig ist, weiß ich nicht, aber ich habe es so verstanden)


    Ich gebe dir einen Tipp:
    Lass den Spieler beim Einloggen den Account laden. (SELECT * FROM ..... WHERE name = '...')
    Dann schaust du, ob eine Reihe erfolgreich gefunden wurde, wenn ja, ist der Spieler registriert,
    und du kannst seine Daten in die Variablen laden, wenn nicht, ist der Spieler noch nicht registriert.

    mysql_num_rows(); zählt die gefundenen Reihen.
    Diese wird bei deiner aktuellen SELECT-Abfrage immer 1 sein.


    Du musst die Zahl, die er returned mit mysql_fetch_int speichern.

    Hallo Community,


    habe einige Fragen, zu etwas, was ich beim Scripten noch nicht verstehe.



    1. Wie wird eine 0x....-Farbe in einen Integer umgerechnet?
    SAMP macht das ja Automatisch, wie mach ich das manuell?
    (0xFF0000FF oder 0xFF etc.)
    z.B. printf("Farbe: %i",0xFFFFFFFF); // Er gibt aus: "Farbe: -1"


    2. Was bedeuten die Operatoren '>>', '<<' und '|'?
    Beispiel:
    stock RGBAToHex(r, g, b, a) //By Betamaster
    {
    return (r<<24 | g<<16 | b<<8 | a);
    }


    3. Was bedeutet der Operator '&'?
    Irgendwas mit Bit war das, aber das habe ich noch nie verstanden.
    Wäre gut, wenn mir das jemand verständlich erklärt :/
    Beispiel:
    if(newkeys & KEY_FIRE)


    r = (colour >> 24) & 0xFF;



    Freue mich auf Antworten :)
    LG
    Pille

    Vorsicht, io_write schreibt zwar das gewünschte in die Datei, löscht aber alles,
    was zu vor in der Datei drinnengestanden ist! Verwende io_append um etwas
    'hinzuzufügen' bzw. 'dazuzuschreiben'.