[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
  • Danke Eddy.
    Schön wieder von dir zu hören :D


    Aber spaß bei seite
    Es kommen 2 Warnings ;)


    C:\Users\Aimen\Desktop\German Street Light - ALT\gamemodes\GSL.pwn(67572) : warning 203: symbol is never used: "garage"
    C:\Users\Aimen\Desktop\German Street Light - ALT\gamemodes\GSL.pwn(67572) : warning 203: symbol is never used: "tuningcredits"

    Einmal editiert, zuletzt von Saphire () aus folgendem Grund: # Grammatik

  • COMMAND:garage(playerid, params[])
    {
    #pragma unused params
    if(!IsPlayerInAnyVehicle(playerid))
    return SendClientMessage(playerid, COLOR_BRIGHTRED, "Du bist in keinem Fahrzeug!");
    if(TgateB == 1)
    return SendClientMessage(playerid, COLOR_BRIGHTRED, "Die Tuninggarage wird gerade schon benutzt!");
    if(IsPlayerInRangeOfPoint(playerid,3,1521.5718,-1474.5720,9.5712))
    {
    MoveObject(tgate0,1518.26220700,-1476.00231900,8.48960700,2);
    MoveObject(tgate,1529.72448700,-1474.88757300,13.53587000 ,2);
    MoveObject(tgate1,1518.25378400,-1474.64648400,8.46458500 ,2);
    MoveObject(tgate2,1520.91699200,-1475.98803700,8.48958300 ,2);
    MoveObject(tgate3,1520.91577100,-1474.64892600,8.48958300 ,2);
    MoveObject(tgate4,1523.55273400,-1475.99853500,8.48960800 ,2);
    MoveObject(tgate5,1523.57202100,-1474.65380900,8.48960800 ,2);
    MoveObject(tgate6,1518.24743700,-1473.30639600,8.46460800 ,2);
    MoveObject(tgate7,1520.91491700,-1473.30334500,8.46460800 ,2);
    MoveObject(tgate8,1523.57458500,-1473.29760700,8.46460800 ,2);
    MoveObject(tgate9,1516.72961400,-1476.32873500,9.60031800 ,2);
    MoveObject(tgate10,1517.60376000,-1476.72082500,10.29875500 ,2);
    MoveObject(tgate11,1517.60107400,-1472.48510700,10.24875500 ,2);
    TgateB = 1;
    StartGarage(playerid);
    }
    else return SendClientMessage(playerid,COLOR_BRIGHTRED,"Du bist nicht in der Tuninggarage!");
    return 1;
    }



    COMMAND:tuningcredits(playerid, params[])
    {
    #pragma unused params
    SendClientMessage(playerid,COLOR_YELLOW,"Dieser Server benutzt das Tuningsystem von Nemesus!");
    return 1;
    }

    Die Kritik an anderen hat noch keinem die eigene Leistung erspart.

    – Noël Coward

  • Vielen Dank ,hat super geklappt !

  • Hier hast du dir ein wenig Zeilen gespart :)


    COMMAND:garage(playerid, params[])
    {
    #pragma unused params
    if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, COLOR_BRIGHTRED, "Du bist in keinem Fahrzeug!");
    if(TgateB == 1) return SendClientMessage(playerid, COLOR_BRIGHTRED, "Die Tuninggarage wird gerade schon benutzt!");
    if(!IsPlayerInRangeOfPoint(playerid,3,1521.5718,-1474.5720,9.5712)) return SendClientMessage(playerid,COLOR_BRIGHTRED,"Du bist nicht in der Tuninggarage!");
    MoveObject(tgate0,1518.26220700,-1476.00231900,8.48960700,2);
    MoveObject(tgate,1529.72448700,-1474.88757300,13.53587000 ,2);
    MoveObject(tgate1,1518.25378400,-1474.64648400,8.46458500 ,2);
    MoveObject(tgate2,1520.91699200,-1475.98803700,8.48958300 ,2);
    MoveObject(tgate3,1520.91577100,-1474.64892600,8.48958300 ,2);
    MoveObject(tgate4,1523.55273400,-1475.99853500,8.48960800 ,2);
    MoveObject(tgate5,1523.57202100,-1474.65380900,8.48960800 ,2);
    MoveObject(tgate6,1518.24743700,-1473.30639600,8.46460800 ,2);
    MoveObject(tgate7,1520.91491700,-1473.30334500,8.46460800 ,2);
    MoveObject(tgate8,1523.57458500,-1473.29760700,8.46460800 ,2);
    MoveObject(tgate9,1516.72961400,-1476.32873500,9.60031800 ,2);
    MoveObject(tgate10,1517.60376000,-1476.72082500,10.29875500 ,2);
    MoveObject(tgate11,1517.60107400,-1472.48510700,10.24875500 ,2);
    TgateB = 1;
    StartGarage(playerid);
    return 1;
    }

    KleineHilfe 2.0


  • Nett von dir :D


    aber ich lass das so glaube ich , wenn ich das brauche komm ich drauf zurück aber danke trotzdem :)


    Btw. Mein Post nummer 100. ! *freu* :love:

  • Ich brauch ma eure Hilfe
    bei den Code kommt es zu Fehlern im Log die in klammern mit beistehen
    public OnFilterScriptInit()
    {
    new data[] ="test~123|maja~123|fgg~123|dfghfd~123|afddddds~123";
    new Output[TS_SLOTS][128],Buffer[2][64];
    split(data,Output,'|');
    for(new i = 0; i < TS_SLOTS; i ++)//32
    {
    printf("%d - %s",i,Output[i]);
    split(Output[i],Buffer,'~');
    printf("%d - %s - %s",i,Buffer[0],Buffer[1]);
    }
    return 1;
    }
    /*
    [17:47:17] [debug] Run time error 3: "Stack/heap collision (insufficient stack size)"
    [17:47:17] [debug] Stack pointer (STK) is 0x7F0, heap pointer (HEA) is 0x948
    */
    Wenn ich jetzt da eine Feste zahl eingebe wie in den fall 5 wegen der Anzahl geht es
    Ich möchte aber das ich keine Festen Zahlen habe, da sich alles regelmäßig ändert.
    Wie kann ich das einfach beheben?

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


  • wenn du noch die split Funktion posten könntest ;)


    Was meinst du genau mit dem unterem Absatz, auf was ist der bezogen ? Mit 5 eingeben usw.

  • Aso, TS_SLOTS ist bestimmt GRÖßER als 5, falls ja: nehme ich mal an das die split-Funktion(hab sie ja nicht vorliegen) mit einem leeren string diesen Fehler verursacht ;)


    Mit Prüfung ob der String leer ist sollte das ganze dann behoben sein:
    public OnFilterScriptInit()
    {
    new data[] ="test~123|maja~123|fgg~123|dfghfd~123|afddddds~123";
    new Output[TS_SLOTS][128],Buffer[2][64];
    split(data,Output,'|');
    for(new i = 0; i < TS_SLOTS; i ++)//32
    {
    if(Output[i][0] == 0)continue;
    printf("%d - %s",i,Output[i]);
    split(Output[i],Buffer,'~');
    printf("%d - %s - %s",i,Buffer[0],Buffer[1]);
    }
    return 1;
    }

  • Da kommt der Selbe Fehler bei raus :/


    Split is das
    stock split(const strsrc[],strdest[][],delimiter)
    {
    new aNum,len,i,li;
    while(i <= strlen(strsrc))
    {
    if(strsrc[i] == delimiter || i == strlen(strsrc))
    {
    len = strmid(strdest[aNum],strsrc,li,i,128);
    strdest[aNum][len] = false;
    li = i+1;
    aNum++;
    }
    i++;
    }
    return 1;
    }
    Der Code dazu
    #define TS_SLOTS 32
    public OnFilterScriptInit()
    {
    new data[] ="test~123|maja~123|fgg~123|dfghfd~123|afddddds~123";
    new Output[TS_SLOTS][128],Buffer[2][64];
    split(data,Output,'|');
    for(new i = 0; i < TS_SLOTS; i ++)//32
    {
    if(Output[i][0] == 0)continue;
    printf("%d - %s",i,Output[i]);
    split(Output[i],Buffer,'~');
    printf("%d - %s - %s",i,Buffer[0],Buffer[1]);
    }
    return 1;
    }

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

  • Wollte das man den Carkey durch ein Dialog auswählen kann, sind insgesamt 4 Stück, habe es so versucht jedoch kommt ein Error.
    Der erscheinende Error: error 035: argument type mismatch (argument 3)
    if (strcmp("/carkey", cmdtext, true, 10) == 0) { new mv = MaxVeh; if(mv > 1) { Dtc_PlayerKey[playerid] += 1; if(Dtc_PlayerKey[playerid] == MaxVeh) { Dtc_PlayerKey[playerid] = 0; } if(Dtc_PlayerHaveCar[playerid][Dtc_PlayerKey[playerid]]) { ShowPlayerDialog(playerid,DIALOG_CARKEY,"Carkey-System","%s/n%s/n%s/n%s",Dtc_PlayerKey[playerid]+1,CarName[PlayerCar[playerid][Dtc_PlayerKey[playerid]][CarModel]-400],Dtc_PlayerKey[playerid]+1,CarName[PlayerCar[playerid][Dtc_PlayerKey[playerid]][CarModel]-400],Dtc_PlayerKey[playerid]+1,CarName[PlayerCar[playerid][Dtc_PlayerKey[playerid]][CarModel]-400],Dtc_PlayerKey[playerid]+1,CarName[PlayerCar[playerid][Dtc_PlayerKey[playerid]][CarModel]-400],"Benutzen","Abbrechen"); } else { format(string, sizeof(string), "Du besitz kein Auto!"); } SendClientMessage(playerid,COLOR_GRAD2,string); } return 1; }

    2 Mal editiert, zuletzt von Y0shi ()

  • @HellYeah:

    Spieler Speichern:
    new waffe,ammox,form[128];
    for(new i = 0;i<13;i++)
    {
    GetPlayerWeaponData(playerid,i,waffe,ammox);
    format(form,sizeof form,"WaffeSlot%d",i);
    dini_IntSet(Spielerdatei,form,waffe);
    format(form,sizeof form,"MunitionSlot%d",i);
    dini_IntSet(Spielerdatei,form,ammox);
    }


    SpielerLaden:
    new waffe,ammox,form[128];
    for(new i = 0;i<13;i++)
    {
    format(form,sizeof form,"WaffeSlot%d",i);
    waffe = dini_Int(Spielerdatei,form);
    format(form,sizeof form,"MunitionSlot%d",i);
    ammox = dini_Int(Spielerdatei,form);
    GivePlayerWeapon(playerid,waffe,ammox);
    }

  • Guten morgen,
    wie funktioniert genau fread?
    Wenn ich beispielsweise Koordinaten + ID oder Text speichern lassen, wie kann ich diese auslesen und angepasst wiedergeben ?
    Wäre nett wenn wir wer dies beantworten könnte :thumbup:


    mfg

    KleineHilfe 2.0

  • Guten morgen,
    wie funktioniert genau fread?
    Wenn ich beispielsweise Koordinaten + ID oder Text speichern lassen, wie kann ich diese auslesen und angepasst wiedergeben ?
    Wäre nett wenn wir wer dies beantworten könnte :thumbup:


    mfg


    fread liest nur alles, was in der Datei steht aus.


    Da wird nichts gesplittet oder formatiert, zum beispiel steht in deiner Datei "Hallo", wird fread in einen vorgegebenen string auch nur "Hallo" schreiben ;)


    mfg. :thumbup:

    ast2ufdyxkb1.png


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

  • Da wird nichts gesplittet oder formatiert, zum beispiel steht in deiner Datei "Hallo", wird fread in einen vorgegebenen string auch nur "Hallo" schreiben


    Alles klar, möchte man aber angenommen Koordinaten speichern + ID, was empfiehlt sich da außer jeden Wert einzeln in die Datei zu schreiben?

    KleineHilfe 2.0

  • Alles klar, möchte man aber angenommen Koordinaten speichern + ID, was empfiehlt sich da außer jeden Wert einzeln in die Datei zu schreiben?


    Alles zusammenschreiben und dann in die Datei schreiben ;)


    Warte, ich überarbeite schnell was, dann kannst du diese Speichersystem dafür verwenden:


    [ INCLUDE ] Speicherungssystem


    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