Simple Probleme

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
  • Guten Tag liebe Community,
    ich wollte nahc langem wieder etwas Scripten und habe bereits mit einem Selfmade begonnen und ja tatsächlich habe ich noch ein wenig drauf.
    Und es funktioniert lustigerweise auch ohne C&P. Das Habe ich früher eigentlich nur getan, aber jetzt nicht mehr. Liegt villeicht an der Reife ;)
    Naja egal das spielt keine Rolle. Kommen wir zu meinem Problem. Das 1. ist mein Stock für "SendAdminMessage" also damit es eine Nachricht an alle Admins sendet.
    So hatte ich das in erinnerung:
    stock SendAdminMessage(COLOR,message[])
    {
    new string[128];
    for(new i = 0; < MAX_PLAYERS; i++)//Zeile 555
    if(sInfo[i][Adminlevel] > 1)
    {
    SendClientMessage(i,COLOR,message);
    }
    return 0;
    }
    Nur leider bekomme ich Errors:

    Code
    C:\Users\Sven\Desktop\SAMP 0.3x\gamemodes\SanStoreisRC.pwn(555) : error 029: invalid expression, assumed zero
    C:\Users\Sven\Desktop\SAMP 0.3x\gamemodes\SanStoreisRC.pwn(555) : warning 215: expression has no effect
    C:\Users\Sven\Desktop\SAMP 0.3x\gamemodes\SanStoreisRC.pwn(555) : error 001: expected token: ")", but found ";"
    C:\Users\Sven\Desktop\SAMP 0.3x\gamemodes\SanStoreisRC.pwn(555) : error 036: empty statement
    C:\Users\Sven\Desktop\SAMP 0.3x\gamemodes\SanStoreisRC.pwn(555) : fatal error 107: too many error messages on one line


    Nun kommen wir zum anderen problem.
    Ich wollte die Waffen speichern und laden. Das Speichern habe ich in wenigen Zeilen gelöst(11) nur das Laden macht mir irgendwie Probleme.
    stock WaffenLaden(playerid)
    {
    new save[40],name[MAX_PLAYER_NAME], i, string[9];
    GetPlayerName(playerid,name,sizeof(name));
    format(save,sizeof(save),"/Waffen/%s.ini",name);
    //____________________________________Waffen Laden____________________________________
    format(string, sizeof string,"waslot%d",i);
    wInfo[playerid][string] =dini_Int(save,string);//Zeile 263
    format(string, sizeof string,"amslot%d",i);
    wInfo[playerid][string] =dini_Int(save,string);//Zeile 265
    return 1;
    }

    Code
    C:\Users\Sven\Desktop\SAMP 0.3x\gamemodes\SanStoreisRC.pwn(263) : error 033: array must be indexed (variable "string")
    C:\Users\Sven\Desktop\SAMP 0.3x\gamemodes\SanStoreisRC.pwn(265) : error 033: array must be indexed (variable "string")


    Ich tippe drauf das es am 1. "string" liegt. Ich möchte nicht für jede Waffe schreibe
    waslot 1
    waslot 2
    etc. und somit Recourcen sparen. Ich währe dankbar wenn ich von euch hilfe bekommen würde.


    Mit freundlichen Grüßen
    Sven


    Bewerte mich und meine Transaktionen als Mittelsmann

    Einmal editiert, zuletzt von lollipop ()


  • for(new i = 0; < MAX_PLAYERS; i++)//Zeile 555
    {
    if(sInfo[i][Adminlevel] > 1)
    {
    SendClientMessage(i,COLOR,message);
    }
    }


    for-schleiefn brauchen auch klammern

    >> sPa.M << go, go,Bann me, Bann me

    Einmal editiert, zuletzt von Grek () aus folgendem Grund: in quellcode eingefügt


  • Danke Error ist weg. Ich muss glaube ich alles bisschen auffrischen ;)
    Jetzt habe ich nurnoch das Problem mit dem Laden der Waffen.


    Bewerte mich und meine Transaktionen als Mittelsmann

  • Könnte mir einer erklären, seit wann es möglich ist, mit einer Zeichenkette auf ein enum-Index zuzugreifen?


    sizeof string
    Dies sollte eigentlich kein Problem darstellen, wird ja auch, sofern ich mich erinnere, in den Includes auch verwendet.

  • schon dass versucht?
    mir kommt es vor als wurde mein post überlesen

    >> sPa.M << go, go,Bann me, Bann me

  • schon dass versucht?
    mir kommt es vor als wurde mein post überlesen


    Das Problem liegt hier:
    stock WaffenLaden(playerid)
    {
    new save[40],name[MAX_PLAYER_NAME], i, string[9];
    GetPlayerName(playerid,name,sizeof(name));
    format(save,sizeof(save),"/Waffen/%s.ini",name);
    //____________________________________Waffen Laden____________________________________
    format(string, sizeof string,"waslot%d",i);
    wInfo[playerid][string] =dini_Int(save,string);//Zeile 263
    format(string, sizeof string,"amslot%d",i);
    wInfo[playerid][string] =dini_Int(save,string);//Zeile 265
    return 1;
    }
    Das andere hat geklappt und die Lösung ist plausiebel ;)


    Bewerte mich und meine Transaktionen als Mittelsmann

  • ich sgate doch es gehört so: sizeof(string) ;)


    MFG Arendium


    Du meinst das jetzt so oder?
    stock WaffenLaden(playerid)
    {
    new save[40],name[MAX_PLAYER_NAME], i, string[9];
    GetPlayerName(playerid,name,sizeof(name));
    format(save,sizeof(save),"/Waffen/%s.ini",name);
    //____________________________________Waffen Laden____________________________________
    format(string, sizeof(string),"waslot%d",i);
    wInfo[playerid][string] =dini_Int(save,string);//Zeile 263
    format(string, sizeof(string),"amslot%d",i);
    wInfo[playerid][string] =dini_Int(save,string);//Zeile 265
    return 1;
    }
    Falls ja macht es trotzdem kein unterschied ;)
    Der Fehler liegt da würde ich sagen:
    format(string, sizeof(string),"waslot%d",i);
    wInfo[playerid][string] =dini_Int(save,string);//Zeile 263
    format(string, sizeof(string),"amslot%d",i);
    wInfo[playerid][string] =dini_Int(save,string);//Zeile 265
    Den String verwende ich ja um net das jedes mal neu zuschreiben, da es ja glaube 11 Waffenslots gibt und ich die ja decken muss ;)


    Bewerte mich und meine Transaktionen als Mittelsmann

  • Ich geh davon aus dass in deinem Enum wInfo nur "String" steht anstatt "String[Stringgrösse]", richtig?

    Wer ist der Mensch hinter der Uniform? Ist euch das bekannt?
    Es ist der selbe der noch eben in Zivil neben euch stand.
    Warum wird er gehasst und so selten respektiert?
    Warum ist er derjenige der seinen Hals für euch riskiert?
    Trägt der Bulle eine Weste, das hat er früher nie gemacht,
    die Zeiten haben sich geändert und jeder Dienst ist ein Kampf!
    Warum gibt’s das SEK und warum sind sie so brutal?
    Und wieso hat wieder einer mit seinem Leben bezahlt?

  • Könnte mir einer erklären, seit wann es möglich ist, mit einer Zeichenkette auf ein enum-Index zuzugreifen?


    Ich zittiere mich mal jetzt. Man kann mit einer Zeichenkette, nur z. B. auf PVars auf diese Weise zugreifen. Es wird nicht mit einem enum klappen. Man könnte nur die Zahl mit einer if-Abfrage auswerten und dann den Index statisch angegeben: "waslot1", es geht nicht anders.

  • format(string, sizeof(string),"waslot%d",i);


    was ist denn ' i ' ? dort ist keine for-schleife oder sonst was, sehe zumindest keine


    Hattest Recht da hat die Schleife gefehlt jetzt ist sie da aber immernoch das gleiche Problem ;)
    stock WaffenLaden(playerid)
    {
    new save[40],name[MAX_PLAYER_NAME], i, string[12];
    GetPlayerName(playerid,name,sizeof(name));
    format(save,sizeof(save),"/Waffen/%s.ini",name);
    //____________________________________Waffen Laden____________________________________
    for(; i!=11; i++)
    {
    format(string, sizeof string,"waslot%d",i);
    wInfo[playerid][string] =dini_Int(save,string);
    format(string, sizeof string,"amslot%d",i);
    wInfo[playerid][string] =dini_Int(save,string);
    }
    return 1;
    }

    Ich geh davon aus dass in deinem Enum wInfo nur "String" steht anstatt "String[Stringgrösse]", richtig?


    Ich glaube du verstehst meinen Bezug nicht oder?
    Ich möchte nich das so schreiben:
    wInfo[playerid][waslot1] =dini_Int(save,string);
    wInfo[playerid][waslot1] =dini_Int(save,string);
    wInfo[playerid][waslot2] =dini_Int(save,string);
    wInfo[playerid][waslot3] =dini_Int(save,string);
    wInfo[playerid][waslot4] =dini_Int(save,string);
    wInfo[playerid][waslot5] =dini_Int(save,string);
    wInfo[playerid][waslot6] =dini_Int(save,string);
    wInfo[playerid][waslot7] =dini_Int(save,string);
    wInfo[playerid][waslot8] =dini_Int(save,string);
    wInfo[playerid][waslot9] =dini_Int(save,string);
    wInfo[playerid][waslot10] =dini_Int(save,string);
    wInfo[playerid][waslot11] =dini_Int(save,string);
    wInfo[playerid][waslot12] =dini_Int(save,string);
    wInfo[playerid][amslot1] =dini_Int(save,string);
    wInfo[playerid][amslot2] =dini_Int(save,string);
    wInfo[playerid][amslot3] =dini_Int(save,string);
    wInfo[playerid][amslot4] =dini_Int(save,string);
    wInfo[playerid][amslot5] =dini_Int(save,string);
    wInfo[playerid][amslot6] =dini_Int(save,string);
    wInfo[playerid][amslot7] =dini_Int(save,string);
    wInfo[playerid][amslot8] =dini_Int(save,string);
    wInfo[playerid][amslot9] =dini_Int(save,string);
    wInfo[playerid][amslot10] =dini_Int(save,string);
    wInfo[playerid][amslot11] =dini_Int(save,string);
    wInfo[playerid][amslot12] =dini_Int(save,string);

    mach string[9] mal zu z.B string[30];


    MFG Arendium


    Bringt auch nichts... hier mein Enum:
    enum Waffen_Info
    {
    waslot[11],
    amslot[11]
    };
    new wInfo[MAX_PLAYERS][Waffen_Info];


    Mit freundlichen Grüßen
    Sven


    //edit

    Ich zittiere mich mal jetzt. Man kann mit einer Zeichenkette, nur z. B. auf PVars auf diese Weise zugreifen. Es wird nicht mit einem enum klappen. Man könnte nur die Zahl mit einer if-Abfrage auswerten und dann den Index statisch angegeben: "waslot1", es geht nicht anders.


    Gibt es denn eine andere Methode?
    Bzw. frisst das mehr Recourcen? Will den Code ja möglichst optimiert haben^^


    Bewerte mich und meine Transaktionen als Mittelsmann