Skin System "/skin"

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 Breadfisher,


    ich habe folgendes problem:


    Ich wollte mir ein System machen mit dem ich "/skin [SkinID]" machen kann dieser Bewirkt damit man seinen Skin ändern kann.
    Nun wollte ich Cop Skins in einem "Enum" speichern und diese abfragen bloß ich bekomm es nicht hin. Kann mir wer helfen?


    /Skin System

    ocmd:skin(playerid,params[])
    {
    new skinID,string[128];
    if(sscanf(params,"i",skinID)) return SCM(playerid,gelb,"Benutzung: /skin [SkinID]");
    if(skinID == 0)
    {
    SCM(playerid,rot,"Der CJ Skin ist Verboten!");
    return 1;
    }
    else if(skinID == copskins[cskin]) //Error4319
    {
    if(GetPVarInt(playerid,"Fraktion") != 1) return SCM(playerid,rot,"Du bist kein Cop!");
    SetPlayerSkin(playerid,skinID);
    }
    else if(skinID == 284)
    SetPlayerSkin(playerid,skinID);
    return 1;
    }


    enum

    enum cskin
    {
    285, //Zeile 89
    280,
    281,
    282,
    283,
    288,
    284,
    165,
    286,
    287,
    63,
    164
    }


    Dann noch ein New :
    new copskins[cskin];


    Erros:

    C:\Users\Mike\Desktop\samp03dsvr_win32\gamemodes\selfmade.pwn(89) : error 001: expected token: "-identifier-", but found "-integer value-"
    C:\Users\Mike\Desktop\samp03dsvr_win32\gamemodes\selfmade.pwn(4319) : error 032: array index out of bounds (variable "copskins")
    C:\Users\Mike\Desktop\samp03dsvr_win32\gamemodes\selfmade.pwn(4312) : warning 204: symbol is assigned a value that is never used: "string"
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    2 Errors.


    MFG Stein

    Einmal editiert, zuletzt von Mr.Stein ()

  • ein ";" fehlte :D



    enum cskin
    {
    285,
    280,
    281,
    282,
    283,
    288,
    284,
    165,
    286,
    287,
    63,
    164
    }; // hier war dein fehler ^^

  • Jz, sind es 3Erros



    C:\Users\Mike\Desktop\samp03dsvr_win32\gamemodes\selfmade.pwn(89) : error 001: expected token: "-identifier-", but found "-integer value-"
    C:\Users\Mike\Desktop\samp03dsvr_win32\gamemodes\selfmade.pwn(101) : error 010: invalid function or declaration
    C:\Users\Mike\Desktop\samp03dsvr_win32\gamemodes\selfmade.pwn(4319) : error 032: array index out of bounds (variable "copskins")
    C:\Users\Mike\Desktop\samp03dsvr_win32\gamemodes\selfmade.pwn(4312) : warning 204: symbol is assigned a value that is never used: "string"
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    3 Errors.

    MFG Stein

    Einmal editiert, zuletzt von Mr.Stein ()

  • /edit
    Okay hab das jz. mit einem new gemacht klappt auch bloß nur noch 1Error


    Das new

    new cskin[12]={
    285,
    280,
    281,
    282,
    283,
    288,
    284,
    165,
    286,
    287,
    63,
    164
    };


    Befehl

    ocmd:skin(playerid,params[])
    {
    new skinID,string[128];
    if(sscanf(params,"i",skinID)) return SCM(playerid,gelb,"Benutzung: /skin [SkinID]");
    if(skinID == 0)
    {
    SCM(playerid,rot,"Der CJ Skin ist Verboten!");
    return 1;
    }
    else if(skinID == cskin[12]) //Error Zeile
    {
    if(GetPVarInt(playerid,"Fraktion") != 1) return SCM(playerid,rot,"Du bist kein Cop!");
    SetPlayerSkin(playerid,skinID);
    return 1;
    }
    SetPlayerSkin(playerid,skinID);
    return 1;
    }


    Errors

    C:\Users\Mike\Desktop\samp03dsvr_win32\gamemodes\selfmade.pwn(4321) : error 032: array index out of bounds (variable "cskin")
    C:\Users\Mike\Desktop\samp03dsvr_win32\gamemodes\selfmade.pwn(4314) : warning 204: symbol is assigned a value that is never used: "string"
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    1 Error.


    Der Warning entsteht weil ich den String noch nicht benutzt habe da Script nicht fertig

    2 Mal editiert, zuletzt von Mr.Stein () aus folgendem Grund: Tipp Fehler

  • Also ich scripte derzeit mit einem anderen Scripter ein Selfmade und da habe ich mal zugeschaut, und er hat da mal paar Enums erstellt und die hatten alle einen Array am Ende^^
    Also mal ein Beispiel :
    enum BankInfo
    {
    sHatKonto,
    sKonto,
    sBankPIN,
    sECKarte
    }
    new Bank[MAX_PLAYERS][BankInfo]; // Array
    xD


    // Edit : Ich arbeite eher mit PVars und so :)

    Mit unfreundlichen Grüßen
    Buschmensch

  • Einsatz:





    Dein Fehler:
    ocmd:skin(playerid,params[])
    {
    new skinID,string[128];
    if(sscanf(params,"i",skinID) return SCM(playerid,gelb,"Benutzung: /skin [SkinID]");
    if(skinID == 0)
    {
    SCM(playerid,rot,"Der CJ Skin ist Verboten!");
    return 1;
    }
    else if(skinID =+ copskins[cskin]) //Error4319
    {
    if(GetPVarInt(playerid,"Fraktion") != 1) return SCM(playerid,rot,"Du bist kein Cop!");
    SetPlayerSkin(playerid,skinID);
    }
    else if(skinID == 283)
    SetPlayerSkin(playerid,skinID);
    return 1;
    }

    Ich bin mir nicht sicher!

    KingFurkan
    Spitzenreiter SA-MP Scripting

  • Ich seh den Fehler auch nicht. Normalerweise sollte das so gehen meiner Ansicht nach.

  • Okay, ich habe nun nur noch 1Error


    Error:

    C:\Users\Mike\Desktop\samp03dsvr_win32\gamemodes\selfmade.pwn(4321) : error 032: array index out of bounds (variable "cskin")
    C:\Users\Mike\Desktop\samp03dsvr_win32\gamemodes\selfmade.pwn(4314) : warning 204: symbol is assigned a value that is never used: "string"
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    1 Error.


    Und die Zeile +-

    ocmd:skin(playerid,params[])
    {
    new skinID,string[128];
    if(sscanf(params,"i",skinID)) return SCM(playerid,gelb,"Benutzung: /skin [SkinID]");
    if(skinID == 0)
    {
    SCM(playerid,rot,"Der CJ Skin ist Verboten!");
    return 1;
    }
    else if(skinID == cskin[12]) // Error Zeile
    {
    if(GetPVarInt(playerid,"Fraktion") != 1) return SCM(playerid,rot,"Du bist kein Cop!");
    SetPlayerSkin(playerid,skinID);
    return 1;
    }
    SetPlayerSkin(playerid,skinID);
    return 1;
    }

  • So viele Posts und doch so oft falsch :/.


    else if(skinID == cskin[12]) // Error Zeile
    Das würde nur prüfen, ob der Skin in Index 12 die eingetragene SkinID ist. Du musst eine Schleife benutzen, um alle Einträge von cskin durchzugehen. Eine Funktion wäre dafür wohl am einfachsten zu benutzen:


    stock IsPoliceSkin( skinid ) {
    new cskin[]={
    285,
    280,
    281,
    282,
    283,
    288,
    284,
    165,
    286,
    287,
    63,
    164
    };
    for(new i = 0 ; i < sizeof( cskin ) ; i++) {
    if( cskin[i] == skinid ) return 1;
    }
    return 0;
    }