[SAMMELTHREAD] Kleine Scripting Fragen

Dein Problem konnte durch einen User gelöst werden? Bedank dich bei ihm indem du seinen Beitrag als Hilfreich markierst sowie einen Daumen oben dalässt
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, wie mach ich das, das die Leute, die im Chat schreiben, nicht Bunt, sondern weiß sind? :D


    Indem du sie durch die Funktion SetPlayerColor weiß machst oder einfach im Chat ein {FFFFFF} vor das %s: setzt ;)


    mfg. :thumbup:

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Danke, klappt nun.
    Am anfang wusste ich nicht, wo das hin musste, weil im Wiki nichts stand. ;)


    Wie mach ich das, das wenn ich %s im Script einfüge, auch wirklich der Name erscheint, und nicht "%s"?
    Irgendwas mit string oder so.
    Bin aber noch relativ neu in der Scripting Szene, deshalb brauche ich mal eure hilfe.
    Hab schonmal wo nachgefragt, aber ich habs nicht wirklich verstanden.. ;)

  • Danke, klappt nun.
    Am anfang wusste ich nicht, wo das hin musste, weil im Wiki nichts stand. ;)


    Wie mach ich das, das wenn ich %s im Script einfüge, auch wirklich der Name erscheint, und nicht "%s"?
    Irgendwas mit string oder so.
    Bin aber noch relativ neu in der Scripting Szene, deshalb brauche ich mal eure hilfe.
    Hab schonmal wo nachgefragt, aber ich habs

  • Okai, fangen wir ganz vorne an.


    Es gibt in fast allen Programmiersprachen Variablen.


    In Pawn (das womit man einen SAMP Server codet) deklariert man diese folgendermaßen:


    new dasisteinstring[128]; // Die Zahl in Klammern gibt die Anzahl der Cells an. Also wenn man so will die Anzahl der Buchstaben
    new dasisteinint; // Ein Integer, auch Ganzzahl (z.B. 1234) benötigt keine Cells, daher auch keine Angabe dazu
    new Float:dasisteinefloat // Eine Float, auch Fließkommazahl (z.B. 123,567) benötigt den Prefix Float: vor dem Bezeichner der Variable


    Da wir hier mit dem Spielernamen, also einer Zeichenkette (String) arbeiten wollen, benötigen wir Variablen des ersten Typs (siehe oben).


    new playername[MAX_PLAYER_NAME]; // Ich deklariere hier eine Variable des Typs String (eigentlich Array aber ist ja egll). Diese hat 24 Cells, da MAX_PLAYER_NAME für die Zahl 24 steht


    In diese Variable wollen wir jetzt den Spielernamen schreiben. Das native (also die Funktion) GetPlayerName(playerid,string,len); SChreibt uns den Namen des Spielers mit der ID = playerid direkt in den angegebenen String:
    new playername[MAX_PLAYER_NAME];
    GetPlayerName(playerid,playername,sizeof(playername));
    Alternativ könnte man auch folgendes machen:
    new playername[24];
    GetPlayerName(playerid,playername,24);


    Damit steht dann der Name des Spielers mit der ID playerid in der Variable 'playername';


    Da wir jetzt den Namen in einen andere String "einbauen" wollen, müssen wir erstmal einen anderen String deklarieren:


    new stringmitname[64]; // in diesen String passen 64 ASCII Zeichen


    Jetzt kommen wir zum native format. Mit format können wir Datentypen (String,Integer,Float usw.) in einen String schreiben. Dafür werden im Text Platzhalter verwendet:


    Code
    %b 	Inserts a number at this position in binary radix
    %c 	Inserts a single character.
    %d 	Inserts an integer (whole) number
    %f 	Inserts a floating point number.
    %i 	Inserts an integer.
    %s 	Inserts a string.
    %x 	Inserts a number in hexadecimal notation.
    %% 	Inserts the literal '%'


    Wollen wir also den Spielernamen in die Varialb schreiben, benötigen wir %s, da es sich bei 'playername' um einen String handelt:


    new stringmitname[64];
    format(stringmitname,sizeof(stringmitname),"Dein Name lautet: %s",playername);
    Alternativ geht auch
    new stringmitname[64];
    format(stringmitname,64,"Dein Name lautet: %s",playername);

  • Moin ,
    ich habe ein Drogen system drin. Die pflanzen sind nach 20 minuten fertig , nun habe ich versucht das umzu ändern also das es nur noch 8 min dauert
    aber es gelingt einfach nicht :D


    so sieht der Timer aus wenn es 20 minuten sind :

    SetTimer("plant", 80000, 1);


    Ich habe das so umgeändert :

    SetTimer("plant", 8000, 0);

    In diesem fall währen es ja 8 Minuten.


    Vielleicht hilft das euch weiter :

    public wTimer()
    {
    foreach (Player,i)
    {
    if(Weeder[i] > 0)
    {
    Weeder[i] --;
    }
    }
    return 1;
    }


    public plant()
    {
    for(new b = 0; b < sizeof(wInfo); b++)
    {
    if(wInfo[b][WeedTime] > 0 && wInfo[b][WeedPlanted] == 1)
    {
    wInfo[b][WeedTime] -= 1;
    }
    }
    return 1;
    }


    Kann mir da jemand helfen ? :o

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen

  • SetTimer arbeitet mit Millisekunden sprich 8000 millisekunden sind rund 8 Sekunden.

    KleineHilfe 2.0

  • Bin noch nicht so ganz in der Materie von MYSQL drine und würde gerne wissen wie ich den nun abfrage ob bereits so und so viele einträge vorhanden sind irgendwoher muss das script ja wissen wie viele häuser bereits existieren?


    ocmd:chouse(playerid,params[])
    {
    if(SpielerInfo[playerid][pAdmin] >= 1 || IsPlayerAdmin(playerid))
    {
    for (new h = 0; h < MAX_HOUSES; h++)
    {

  • Moin moin ich bins wieder :)


    Let's go :D


    Ich habe ein Weed anpflanzsystem doch wenn er das erntet kann ich damit nix anfangen bzw. ich habe nix damit er weed rauchen kann oder so.
    Nun wollte ich das so machen das wenn jemand 20g Weed hat das er das an einem bestimmten Platz gegen 10g Drugs umtauschen kann :D !


    Kann mir einer bitte helfen ?
    sonnst müsste ich das Weed system raus machen aber das währe schade :D



  • Beispiel(Array):
    if(SpielerInfo[playerid][Chickenwings] < 20) return SendClientMessage(playerid,-1,"Du bist nicht in Besitz von 20 Chickenwings"); // Negative Abfrage von Weed
    SpielerInfo[playerid][Schockoriegel] = 10; // Setzen der Drugs


    Wo liegt das Problem?
    Frag die vorhandenen Spieler bezogenen Variablen ab :)

    KleineHilfe 2.0

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen