[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
  • Ich hätte gerne eine Anzeige wieviel HP ein Fahrzeug hat. Allerdings in Form einer Nachricht beim einsteigen ins Fahrzeug.
    So hab ichs gemacht :



    public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
    {
    new Float:Health;
    new string[128];
    GetVehicleHealth(vehicleid,Health);
    format(string,sizeof(string),"%s",Health);
    SCM(playerid,Gelb,"Fahrzeug HP : %s");
    return 1;
    }


    und das geht nicht.
    Wie ists richtig?

  • Wie ists richtig?


    So:


    public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
    {
    new Float:Health,string[128];
    GetVehicleHealth(vehicleid,Health);
    format(string,sizeof(string),"Fahrzeug Hp: %f",Health);
    SCM(playerid,Gelb,string);
    return 1;
    }


    mfg. :thumbup:

    ast2ufdyxkb1.png


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

  • Jemand ne idee wiso der query in meiner Datenbank kein wert verändert?
    DT_Public SafeBanPlayer(playerid)
    {
    new query[128],Name[64];
    GetPlayerName(playerid,Name,64);
    format(query,128,"UPDATE `player` SET `SaveBan` = '1' WHERE `Name` = '%s'",Name);
    mysql_query(query, (-1), (0), SQL);
    Kick(playerid);
    return 1;
    }
    Irgendwie passiert da nix
    das is der debug

    Zitat

    [Tue Jan 22 05:16:52 2013] Function: mysql_query executed: "UPDATE `player` SET `SaveBan` = '1' WHERE `Name` = '[DT]Beavis'" with result: "0".

    All in all it's just another brick in the wall

  • unter ondialogresponse
    einfach


    strval(inputtext) so wird´s dann ne zahl

    [tabmenu][tab='Angebote','http://cdn3.iconfinder.com/data/icons/glyph/227/Tag-48.png']

    + Die Preise liegen bei 5-100+€ Ablauf:
    + Entweder ihr addet mich in Skype (PN vorher Schreiben) oder Ihr schreibt eine PN an mich (Betreff - Euer Wunsch z.B. Filterscript)
    + So nun schreibt ihr mir was ihr alles in dem Script haben wollt ich werd euch dann sagen ob ich es hinbekomme.
    + Dann machen wir ein groben Preis aus. Ich werde das Script erstellen und es zusammen mit dem Kunden Testen.



    [tab='Kontakt','http://cdn3.iconfinder.com/data/icons/line/36/person_add-48.png']
    edmix23

    + Bitte beim Adden angeben wer ihr seit oder per PN bescheid sagen!
    [tab='Zahlungs Methoden','https://cdn3.iconfinder.com/data/icons/line/36/check_money-32.png']
    +Paypal!
    +Direkte Banküberweisung

  • Wie überprüfe ich in einem Dialog ob die Eingabe eine Zahl war ?


    Sobald du auf einen Knopf von dem Dialog drückst wird dieser Callback aufgerufen:


    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    if(dialogid == 1) //die 1 ändern in deine dialogid !
    {
    if(!repsonse) return 1; //Wenn er auf Abbrechen klickt
    new zahl = strval(inputtext);
    //zahl hat den Wert von dem, was in das Input Fenster eingegeben wurde !
    }
    return 1;
    }


    mfg. :thumbup:

    ast2ufdyxkb1.png


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

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Die Funktion setzt alle zeichen klein (strtolower in PHP)
    In PWN: tolower
    http://wiki.sa-mp.com/wiki/Tolower


    //EDIT:
    Musst du in einer Schleife machen ,da es immer nur einen buchstaben macht.

  • //EDIT:
    Musst du in einer Schleife machen ,da es immer nur einen buchstaben macht.


    Hier mal eine Funktion dafür:



    //Nutzung:
    printf("Text: %s",Lower("HALLO"));
    //printet: Text: hallo


    stock Lower(text[]) {
    new buffer[128];
    for(new i; i<strlen(text); i++) {
    buffer[i] = tolower(text[i]);
    }
    format(text,128,buffer);
    return buffer;
    }


    mfg. :thumbup:

    ast2ufdyxkb1.png


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

  • Moin,
    wenn ich mit einer Schleife alle Spieler durchgehe und jedem der eine bestimmte Variable auf 1 hat und den ich dann in einen List Dialog packe, wie kann ich dann den Namen des Spielers bekommen, wenn ich auf das listitem klicke?


    Ehm, meinst du sowas:


    for(new i; i<MAX_PLAYERS; i++) {
    if(!IsPlayerConnected(i)) continue;
    if(var[i] == 1) { //Wenn var[i] == 1
    new name[24];
    GetPlayerName(i,name,24),
    //In "name" steht der Name von dem Spieler jetzt
    break;
    }
    }


    mfg. :thumbup:

    ast2ufdyxkb1.png


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

    • Offizieller Beitrag


    Nein, der Name soll unter OnDialogResponse beim Klicken auf ein bestimmtes listitem ausgegeben werden. ID wäre aber besser :whistling:

  • Heeeeey :)


    Habe folgendes Problem :( Habe mir nun viele Tutorials angeschaut was Fraktions Befehle angeht wie Z.b /invite /unvinte jedoch kann ich diese ganzen dinge iwie nicht in mein Script einbauen :(. Es kommt bei mir immer du bist kein Leader der Fraktion weiß nicht woran es liegt :( ?


    Also bei mir sind meine Fraktionen so aufgebaut.


    Ich habe die Spawns der Fraktionen und das sie in den Stats angezeigt werden. einmal im Ocmd /Stats und dann die Fraktionsspawns. Ich wollte dieses einfügen:





    ocmd:invite(playerid,params[]) { if(GetPVarInt(playerid,"Leader") == 1) { new fraktname[64]; new pID,string[280]; if(sscanf(params,"u",pID))return SendClientMessage(playerid,COLOR_GREY,"Benutze: /invite [Spieler/ID]"); format(string,sizeof(string),"Du wurdest von Leader %s in die Fraktion: %s eingeladen",SpielerName(playerid),fraktname); SendClientMessage(pID,COLOR_LIGHTBLUE,string); format(string,sizeof(string),"Du hast %s in deine Fraktion: %s eingeladen",SpielerName(pID),fraktname); SendClientMessage(playerid,COLOR_LIGHTBLUE,string); ShowPlayerDialog(pID,DIALOG_LSPDINVITE,DIALOG_STYLE_MSGBOX,"Invite","Du wurdest in eine Fraktion eingeladen.\nUm beizutreten dürcke *Beitreten* wenn nicht *Abbrechen*","Beitreten","Abbrechen"); } else { SendClientMessage(playerid,COLOR_RED,"Du bist kein Leader!"); } return 1; }


    Also ich wollte das so einfügen jedoch kommt immer du bist kein Leader :(


    Hoffe es kann mir jemand helfen ?

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