Bekomme Error im System.

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
  • ocmd:kleidungklauen(playerid,params[])
    {
    new string[128];
    if(!IsPlayerConnected(playerid))return ErrorMsg(playerid,"Nicht eingeloggt");
    if(tod[playerid]==1)return ErrorMsg(playerid,"Du bist verwundet");
    new pID,tmpskin;
    new Float:xx, Float:yy, Float:zz;
    if(IsPlayerInFrak(playerid,10)||IsPlayerLeader(playerid,10))
    {
    if(sscanf(params,"u",pID)) return ErrorMsg(playerid,"INFO: /kleidungklauen [id]");
    if(pID == playerid)return ErrorMsg(playerid,"Du kannst dir nicht selbst Kleidung klauen.");
    if(GetPVarInt(playerid,"Mörder")>= 1)
    {
    GetPlayerPos(pID,xx,yy,zz);
    if(IsPlayerInRangeOfPoint(playerid,5.0,xx,yy,zz))
    {
    new killtperson = GetPVarInt(playerid,"Killt");
    if(pID==killtperson&&tod[pID]==1)
    {
    if(IsPlayerInFrak(pID,1)||IsPlayerLeader(pID,1)||IsPlayerInFrak(pID,3)||IsPlayerLeader(pID,3)||IsPlayerInFrak(pID,2)||IsPlayerLeader(pID,2))
    {
    tmpskin = GetPlayerSkin(pID);
    }
    else
    {
    tmpskin = GetPlayerSkin(pID);
    }
    SetPVarInt(playerid,"Kleidung",tmpskin);
    SetPVarInt(playerid,"KDieb",1);
    SetPlayerSkin(pID,0);
    new tmpname[MAX_PLAYER_NAME];
    if(Maske[playerid]==0)
    {
    tmpname=SpielerName(playerid);
    }
    else
    {
    new mname[265];
    GetPVarString(playerid, "maskname", mname, MAX_PLAYER_NAME);
    format(tmpname,sizeof(tmpname),"*Unbekannter %s",mname);
    }
    format(string,sizeof(string),"*%s hat %s die Kleidung abgezogen.",tmpname,SpielerName(pID));
    SetPVarInt(playerid,"Mörder",0);
    ProxDetector(30.0, playerid, string, FARBE_WEISS,FARBE_WEISS,FARBE_WEISS,FARBE_GRAU,FARBE_DUNKELGRAU);
    return 1;
    }
    return ErrorMsg(playerid,"Du hast diese Person nicht getötet.");
    }
    return ErrorMsg(playerid,"Du musst näher dran sein.");
    }
    return ErrorMsg(playerid, "Du hast niemanden getötet.");
    }
    return 1;
    }


    Das ist der Error
    Zeile (1440) : error 047: array sizes do not match, or destination array is too small


    Und hier die Zeile.


    new tmpname[MAX_PLAYER_NAME];
    if(Maske[playerid]==0)
    {
    tmpname=SpielerName(playerid);
    }


    Was soll ich tuhn ?

  • Zeile (1440) : error 047: array sizes do not match, or destination array is too small


    Wenn ich micht nicht Irre heißt es (glaube ich) das der array nicht Benutz worden ist zu klein ist. Bin mir da nicht sicher. (Scripte leider nicht mehr über 2 Jahre her)

  • new tmpname[MAX_PLAYER_NAME];
    if(Maske[playerid]==0)
    {
    tmpname=SpielerName(playerid);
    }


    Hast du dadraus evtl. einen boolean gemacht? (False/True)


    Zudem würd ich dir empfehlen mit else if(...)


    zu schreiben.


    new mname[265];


    Übrigens tun es 25 Zeichen auch für den Namen. ->


    new mname[25];


    MFG


    Engelsflügel am Astonkühler, als Schutz vor dem Teufel!

  • Es hat alles nichts geholfen.


    Hier die Definierung
    new Maske[MAX_PLAYERS];


    Hier nochmal der Befehl.
    ocmd:kleidungklauen(playerid,params[])
    {
    new string[265];
    if(!IsPlayerConnected(playerid))return ErrorMsg(playerid,"Nicht eingeloggt");
    if(tod[playerid]==1)return ErrorMsg(playerid,"Du bist verwundet");
    new pID,tmpskin;
    new Float:xx, Float:yy, Float:zz;
    if(IsPlayerInFrak(playerid,10)||IsPlayerLeader(playerid,10))
    {
    if(sscanf(params,"u",pID)) return ErrorMsg(playerid,"INFO: /kleidungklauen [id]");
    if(pID == playerid)return ErrorMsg(playerid,"Du kannst dir nicht selbst Kleidung klauen.");
    if(GetPVarInt(playerid,"Mörder")>= 1)
    {
    GetPlayerPos(pID,xx,yy,zz);
    if(IsPlayerInRangeOfPoint(playerid,5.0,xx,yy,zz))
    {
    new killtperson = GetPVarInt(playerid,"Killt");
    if(pID==killtperson&&tod[pID]==1)
    {
    if(IsPlayerInFrak(pID,1)||IsPlayerLeader(pID,1)||IsPlayerInFrak(pID,3)||IsPlayerLeader(pID,3)||IsPlayerInFrak(pID,2)||IsPlayerLeader(pID,2))
    {
    tmpskin = GetPlayerSkin(pID);
    }
    else
    {
    tmpskin = GetPlayerSkin(pID);
    }
    SetPVarInt(playerid,"Kleidung",tmpskin);
    SetPVarInt(playerid,"KDieb",1);
    SetPlayerSkin(pID,0);
    new mname[25];
    new tmpname[MAX_PLAYER_NAME];
    if(Maske[playerid]==0)
    {
    tmpname=SpielerName(playerid);
    }
    else if(Maske[playerid]==1)
    {
    GetPVarString(playerid, "maskname", mname, MAX_PLAYER_NAME);
    format(tmpname,sizeof(tmpname),"*Unbekannter %s",mname);
    }
    format(string,sizeof(string),"*%s hat %s die Kleidung abgezogen.",tmpname,SpielerName(pID));
    SetPVarInt(playerid,"Mörder",0);
    ProxDetector(30.0, playerid, string, FARBE_WEISS,FARBE_WEISS,FARBE_WEISS,FARBE_GRAU,FARBE_DUNKELGRAU);
    return 1;
    }
    return ErrorMsg(playerid,"Du hast diese Person nicht getötet.");
    }
    return ErrorMsg(playerid,"Du musst näher dran sein.");
    }
    return ErrorMsg(playerid, "Du hast niemanden getötet.");
    }
    return 1;
    }

  • Du hast der Variable bspw durch ein "new variable[10]" eine gewisse Anzahl an Dimensionen gegeben. In diesem Beispiel 10 (variable[0] - variable[9]).
    Nun kannst du aber auch nur diese nutzen.
    Der Fehler tritt auf wenn du also bspw nur 10 Dimensionen erstellst, aber versuchst weitere Dimensionen anzusprechen,
    also du bspw versucht, nun die Variable "variable[200]" zu nutzen.


    Quelle: Hier