Paar Scripting fragen. :)

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Hey.
    Ich hab absichtlich ein neuen Thread geöffnet und habe ausnahmsweise auf den Sammelthread verzichtet, da dort immer so großes durcheinander herrscht und so weiter.


    !!!!!Kann immer ergänzt werden!!!!!!!


    Zu meinen fragen. :)


    Wichtige Details. Ich scripte mit Dini & dem Ocmd Include.

    • Wie mache ich es, das im Chat steht: Tony_Jaa sagt: und nicht Tony_Jaa: Text
    • Wie mache ich es, das z.B Wörter mitten einer SendClientMessage (beispiel) anders farbig sind, als der gewöhnliche Satz: Genau das meine ich.
    • Habe zurzeit ein Mietautohaussystem gescriptet. Ich will nun erreichen, das wenn man sich ein Auto mietet, mit einem Befehl das Auto löschen kann und sich dann ein neues mieten kann, da ich es so gemacht habe, das man sich nur 1 Vehikel mieten kann. Außerdem soll das Car nach einem relogg verschwinden, und nicht dort bleiben, wo es war.
    • Einfachen /stats Befehl im Dialog wo man vorerst nur den eigenen Namen und das Level ansehen kann.
    • Adminabfrage bei einem Befehl. Zum Beispiel /restart, isPlayerAnAdmin usw.^^
    • Freeze & Unfreeze Command.

    Mehrere Fragen fallen mir gerade nicht mehr ein.
    Sollen noch Fragen auftauchen, werd ich es entweder hier editieren oder unter dem Thread hier nachfragen. :)


    Ich hoffe ihr könnt mir helfen. :)
    Bin derzeit noch ein Anfänger-scripter. :)


    Mit Freundlichen Grüßen,
    Tony_Jaa. :)

    Einmal editiert, zuletzt von Tony_Jaa ()

    • OnPlayerText return 0 nutzen und deinen eigenen text per Formatierung eines strings verwenden.



    • Bei deinem Fahrzeugsystem kann ich dir nicht helfen ohne die Variablen zu sehen. Im Dialog musst du wieder einen Text Formatieren und per Dialog ausgeben.


    • Bei einer Admin Abfrage gilt es eigentlich nur eine Spielervariable zu setzen welche dann unter den Befehlen abgefragt wird. Diese Variable wird nur bei einem Admin Make Befehl zu geordnet.


    • Freeze & unfreeze = TogglePlayerControllable siehe Wiki

    KleineHilfe 2.0

  • 1. public OnPlayerText(playerid, text[])
    {
    new string[128], name[MAX_PLAYER_NAME]; // Erstelle zwei Variablen, in einer wird der Text gespeichert, der letztendlich ausgegeben werden soll und in der anderen wird der Name gespeichert
    GetPlayerName(playerid,name,sizeof(name)); //Die Funktion schreibt den Spielernamen von playerid in die Variable "name"
    format(string,sizeof(string),"%s sagt: %s",name,text); //Setzt den Text zwischen den Anführungsstrichen in den String "string". %s wird mit den Variablen die hinten dran stehen ersetzt ( name, text = vorgegebene Variable, dort steht das drin, was um Chat eingegeben wurde )
    SendClientMessageToAll(0xFFFFFFFF,string); // Verschickt die Nachricht nun an alle
    return 0;
    }


    2. SendClientMessage(playerid,0xFFFFFFFF,"Haha {FF0000}Test"); // In den geschweiften Klammern ist der Farbcode anzugeben


    3. s.o.*


    4. ocmd:stats(playerid,params[])
    {
    new name[MAX_PLAYER_NAME], level; // Erstellt zwei neue Variablen, in name wird die Spielername gespeichert in level das Level.
    GetPlayerName(playerid,name,sizeof(name)); //Die Funktion schreibt den Spielernamen von playerid in die Variable "name"
    level = GetPlayerScore(playerid); // Der Inhalt der Variable "level" wird mit der Ausgabe von GetPlayerScore überschrieben, GetPlayerScore gibt das Level von playerid aus
    format(string,sizeof(string),"Name: %s \n Level: %d",name,level); //Setzt den Text zwischen den Anführungsstrichen in den String "string". %s wird mit den Variablen die hinten dran stehen ersetzt ( name, level )
    ShowPlayerDialog(playerid, 1337, DIALOG_STYLE_LIST, "Statistiken", string,"Okay","Abbrechen"); // Zeigt Spieler den Dialog
    return 1;
    }


    5. s.o.*


    6.
    ocmd:freeze(playerid,params[])
    {
    new pID; // erstelle neue Variable, dort wird die angegebene ID gespeichert
    if(sscanf(params,"u",pID)) return SendClientMessage(playerid,Hellblau,"Benutzung: /freeze [ID]"); //Wenn nichts eingegeben wurde, wird SendClientMessage(.. ausgegeben.
    TogglePlayerControllable(pID, 0); // Die angegebene ID wird "gefreezt"
    return 1;
    }

    Unfreeze ist genau das selbe, nur bei ToglePlayerControllable 1, statt 0.

    *s.o. = siehe oben, Post von Ghostrider

    2 Mal editiert, zuletzt von Frosty ()

  • Freeze Befehl kann ich dir morgen einen geben. Melde dich einfach mal bei mir auch mit Unfreeze usw und Nachrichten wenn du willst + Erklärung.


    Wieso willste ihm das Morgen geben ?!


    @Frosty: hat es doch schon Richtig gesagt ..

    Man soll weder annehmen noch besitzen, was man nicht wirklich zum Leben braucht.



  • new string[128], text[128];
    GetPlayerName(playerid,name);format(string,sizeof(string),"%s sagt: %s","SpielerName(playerid),text);SendClientMessageToAll(FARBE;string);



    new name[]
    GetPlayerName(playerid,name,sizeof(name)); SendClientMessageToAll(FARBE,string);


    Wenn schon denn schon :D

    KleineHilfe 2.0