[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 habe bei manchen Servern gesehen das sie vor dem SetObjectMaterialText noch ein Icon hatten wie z.B ein Geldsack wie bekommt man sowas hin?
    mit SetObjectMaterial kann ich mittlerweile ganz gut arbeiten.

  • @Flex_Gun.
    Das scheint ein Problem in der Funktion "format" zu sein.
    ein Workaround wäre wie strins an der Position, an der du das Prozentzeichen haben willst, %% einzufügen.


    Das funktioniert auf jedenfall :thumbup:

    "Bevor ich mir Informationen aus der "Bild" hole,
    werde ich anfangen, Wahlergebnisse danach vorauszusagen,
    neben welchen Busch unsere Katze gepinkelt hat."

    Margarete Stokowski

  • @FleX_GuN:
    format(infostring, 256, "Du hast dir die Waffe %s gekauft mit %d Munition. Preis: $%d (20%s Rabatt).",gunid,ammo,Rabatt, "%%");


    Das tut so.



    PS: 256 in SendClientMessage ist sinnlos, es kann maximal 144 Zeichen ausgeben, versuchst du mehr auszugeben, zeigt es gar nichts an.

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Simon: Was ist wenn diese Person aber schwimmt? Dann könnte der ja genauso einen Ban erhalten, oder halt die Strafe, die vom Script aus entschieden wurde.


    Das Wasser ist in einer Höhe von etwa 0.0. Wenn man darin schwimmt beträgt die maximale Höhe ich glaube ca 0-0.5. Ich habe sogar noch einen kleinen toleranz-bereich gelassen und lasse alles was über 2.5 schwimmt bannen.


    Jedoch ist das mit den Autos etwas schwieriger, weiß nicht genau ob da jemand ein bestimmtes Verhalten herausgefunden hat, was man abfragen kann..

  • Wie kann ich etwas so splitten?


    Code
    text Hello World


    Das soll gesplittet werden zu:

    Code
    text


    und

    Code
    Hello World


    Ich habe es nun so versucht:
    new csplit[2][15];
    split("text Hello World",csplit,' ');
    print(csplit[0]);
    print(csplit[1]);


    stock split(const strsrc[], strdest[][], delimiter)
    {
    new i, li;
    new aNum;
    new len;
    while(i <= strlen(strsrc))
    {
    if(strsrc[i] == delimiter || i == strlen(strsrc))
    {
    len = strmid(strdest[aNum], strsrc, li, i, 128);
    strdest[aNum][len] = 0;
    li = i+1;
    aNum++;
    }
    i++;
    }
    return 1;
    }



    Ausgeben tut er jedoch:

    Code
    text
    Hello


    Also nur das 1. Wort. Wie kann ich das richtig machen? :/

  • Have Fun mein Freund.
    stock missgebuert_Split(text[],MeinString[][],strlen2,Splitx){ new SaveString[124]; format(SaveString,sizeof(SaveString),"%s",text); split(text,MeinString,Splitx); strdel(SaveString,0,strlen(MeinString[0])); format(MeinString[1],strlen2,"%s",SaveString); return 1;}

  • Spieler.pwn(3) : fatal error 100: cannot read from file: "Dini"




    Wie ist der Error oben bitte um Hilfe! unten ist die pawn datei.





    //(c) Edited by Kaliber
    #include <a_samp>
    #include <Dini>
    #include <MD5>


    #define rot 0xB70000FF
    #define green 0x00F500FF
    #define grau 0x8C8C8CFF
    #define orange 0xFF9F00FF
    #define SCM SendClientMessage
    #define SetPos(%0,%1,%2,%3) \
    SetPlayerPos(%0,%1,%2,%3),SetPlayerCameraPos(%0,%1,%2,%3),SetPlayerCameraLookAt(%0,%1,%2,%3)


    new name[MAX_PLAYERS][MAX_PLAYER_NAME];


    stock Register(playerid,key[]) {
    new Spieler[64];format(Spieler,sizeof(Spieler),"/Spieler/%s.txt",name[playerid]),dini_Create(Spieler),dini_Set(Spieler,"Passwort",key);
    return SCM(playerid,-1,"{FFA600}** {FFFFFF}Du hast dich {6CB400}Erfolgreich registriert{FFFFFF}. {0090FE}Viel Spaß!");
    }
    stock Login(playerid,key[]) {
    new Spieler[64];format(Spieler,sizeof(Spieler),"/Spieler/%s.txt",name[playerid]);
    if(!strcmp(key,dini_Get(Spieler,"Passwort"),true)) return SCM(playerid,-1,"{FFA600}** {FFFFFF}Du hast dich {6CB400}Erfolgreich eingeloggt{FFFFFF}. {0090FE}Viel Spaß!");
    return SCM(playerid,rot,"Du hast ein falsches Passwort eingegeben."),SCM(playerid,rot,"Du wurdest vom Server gekickt!"),Kick(playerid);
    }


    public OnFilterScriptInit() return print("\n======================================"),print(" Filterscript by Neco "),print("======================================\n");


    public OnGameModeInit() return SetGameModeText("Blank Script"),AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);


    public OnPlayerRequestClass(playerid, classid) return SetPos(playerid, 1958.3783, 1343.1572, 15.3746);


    public OnPlayerConnect(playerid) {
    new Spieler[64];GetPlayerName(playerid,name[playerid],MAX_PLAYER_NAME),format(Spieler,sizeof(Spieler),"/Spieler/%s.txt",name[playerid]);
    if(dini_Exists(Spieler)) {
    SCM(playerid,grau,"Deine Account-Daten werden gesucht."),SCM(playerid,green,"Willkommen zurück auf {0091FF}Ultimate {00FFDC}Deathmatch. {B9FF00}Wir wünschen dir viel Spaß & viel Erfolg!");
    return ShowPlayerDialog(playerid,0,DIALOG_STYLE_INPUT,"Login","{FFFFFF}Dein Account wurde erfolgreich gefunden. Gebe\n nun bitte dein Passwort ein.\n {0091FF}Ultimate {00FFDC}Deathmatch {FFFFFF}wünscht dir viel Spaß!","Login","Abbrechen");
    }
    return SCM(playerid,green,"Herzlich Willkommen auf {0090FE}Ultimate {00FFDC}Deathmatch. {FFFFFF}Viel Spaß!"),ShowPlayerDialog(playerid,1,DIALOG_STYLE_INPUT,"Registrierung auf Ultimate Deathmatch","Bitte registrieren Sie sich, um sich einen Account anzulegen.\nGeben Sie ihr Passwort ein. Viel Spaß auf {0090FE}Ultimate {00FFDC}Deathmatch.","Registrieren","Abbrechen");
    }


    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) {
    switch(dialogid) {
    case 0: {
    if(!response) return SCM(playerid,rot,"Du hast den Login Vorgang abgebrochen"),SCM(playerid,rot,"Du wurdest vom Server gekickt!"),Kick(playerid);
    return Login(playerid,MD5_Hash(inputtext));
    }
    case 1: {
    if(!response) return SCM(playerid,rot,"Du hast den Registrierungs Vorgang abgebrochen"),SCM(playerid,rot,"Du wurdest vom Server gekickt!"),Kick(playerid);
    if(!inputtext[0]) return SCM(playerid,orange,"Bitte gebe dein gewünschtes Passwort ein."),ShowPlayerDialog(playerid,1,DIALOG_STYLE_INPUT,"Registrieren","Bitte registrieren Sie sich, um sich einen Account anzulegen.\nGeben Sie ihr Passwort ein. Viel Spaß auf Ultimate Deathmatch.","Registrieren","Abbrechen");
    return Register(playerid,MD5_Hash(inputtext));
    }
    }
    return 1;
    }

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