Was Falsch?

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
  • also wenn ich mich z.b mich her hole gehts einmal


    versuche ichs dann wieder mit ner andren id dann gehts net mehr...


    kommt immer


    kein mitglied des admin teams und ich kann automatisch keine admin cmds mehr ausführen wieso?


    also hier


    COde:


    dcmd_gethere(playerid,params[])
    {
    #pragma unused params
    if(!strlen(params)) return SendClientMessage(playerid,Blau,"/gethere [playerid]");
    GetPlayerName(playerid,name,sizeof(name));
    new id = strval(strget(params, 0));
    new admin = dini_Int(s, "admin");
    if(admin >= 1)
    {
    if(Adminlogin[playerid])
    {
    if(IsPlayerConnected(id))
    {
    GetPlayerPos(playerid,sx[playerid],sy[playerid],sz[playerid]);
    if(GetPlayerState(id) == 2)
    {
    new tmpcar = GetPlayerVehicleID(playerid);
    SetVehiclePos(tmpcar, sx[playerid],sy[playerid]+5,sz[playerid]);
    format(s,sizeof(s),"Du hast %s zu dir geportet.",name);
    SendClientMessage(playerid, Blau, s);
    return 1;
    }
    else
    {
    SetPlayerPos(id,sx[playerid],sy[playerid]+5,sz[playerid]);
    SetPlayerInterior(id, inte[playerid]);
    SetPlayerVirtualWorld(id, Virt[playerid]);
    return 1;
    }
    }
    else
    {
    SendClientMessage(playerid, Rot, "Spieler ist nicht online!");
    return 1;
    }
    }
    else
    {
    SendClientMessage(playerid, Rot, "Du bist nicht eingeloggt!");
    return 1;
    }
    }
    else
    {
    SendClientMessage(playerid, Rot, "Du bist kein Mitglied des Admin Teams!");
    }
    return 1;
    }

    Einmal editiert, zuletzt von Quini ()

  • iwie checke ich das net? wieso nutzte net sscanf?


    dcmd_gethere(blablub)
    {
    new pID;
    is(sscanf(params, "u", pID))
    {
    return SendClientMessage(playerid,farbe,"benutztung: /gethere [id]
    }
    //und dann rallerst du alle abfrage runter, ob pID das ist, ob playerid das ist, und wenn alles erfüllt ist dann was passieren soll

  • sehr sehr einfach.
    hier ich gebe dir mal mein /gethere.


    dcmd_get(playerid,params[])
    {
    new pID;
    if(sscanf(params, "u", pID))
    {
    return SendClientMessage(playerid,COLOR_RED,"Benutzung: /get [Playerid]");
    }
    if(!IsPlayerConnected(pID))
    {
    return SendClientMessage(playerid,COLOR_RED,"Kein Spieler mit angegebener ID Online");
    }
    if(SpielerInfo[playerid][alvl]<3)
    {
    return SendClientMessage(playerid,COLOR_RED,"Du bist kein Admin Level 3!");
    }
    if(SpielerInfo[playerid][alvl]<SpielerInfo[pID][alvl])
    {
    return SendClientMessage(playerid,COLOR_RED,"Du kannst diesen Befehl nicht an höherrangigen Admins ausführen!");
    }
    else
    {
    new Float:x, Float:y, Float:z;
    GetPlayerPos(playerid, x, y, z);
    SetPlayerPos(pID, x+2, y+2, z+2);
    new admint = GetPlayerInterior(playerid);
    SetPlayerInterior(pID, admint);
    new aname[MAX_PLAYER_NAME], string2[256];
    GetPlayerName(playerid, aname, sizeof(aname));
    format(string2, sizeof(string2), "Du wurdest von %s zu sich teleportiert.", aname);
    SendClientMessage(pID, COLOR_RED, string2);
    new name[MAX_PLAYER_NAME], string[256];
    GetPlayerName(pID, name, sizeof(name));
    format(string, sizeof(string), "Du hast %s zu dir teleportiert.", name );
    SendClientMessage(playerid, COLOR_GREEN, string);
    }
    return 1;
    }


    musst das an deinem admin system anpassen und aus /get /gethere machen..


    und ganz unten im script einfach das hier:


    stock sscanf(string[], format[], {Float,_}:...)
    {
    #if defined isnull
    if (isnull(string))
    #else
    if (string[0] == 0 || (string[0] == 1 && string[1] == 0))
    #endif
    {
    return format[0];
    }
    #pragma tabsize 4
    new
    formatPos = 0,
    stringPos = 0,
    paramPos = 2,
    paramCount = numargs(),
    delim = ' ';
    while (string[stringPos] && string[stringPos] <= ' ')
    {
    stringPos++;
    }
    while (paramPos < paramCount && string[stringPos])
    {
    switch (format[formatPos++])
    {
    case '\0':
    {
    return 0;
    }
    case 'i', 'd':
    {
    new
    neg = 1,
    num = 0,
    ch = string[stringPos];
    if (ch == '-')
    {
    neg = -1;
    ch = string[++stringPos];
    }
    do
    {
    stringPos++;
    if ('0' <= ch <= '9')
    {
    num = (num * 10) + (ch - '0');
    }
    else
    {
    return -1;
    }
    }
    while ((ch = string[stringPos]) > ' ' && ch != delim);
    setarg(paramPos, 0, num * neg);
    }
    case 'h', 'x':
    {
    new
    num = 0,
    ch = string[stringPos];
    do
    {
    stringPos++;
    switch (ch)
    {
    case 'x', 'X':
    {
    num = 0;
    continue;
    }
    case '0' .. '9':
    {
    num = (num << 4) | (ch - '0');
    }
    case 'a' .. 'f':
    {
    num = (num << 4) | (ch - ('a' - 10));
    }
    case 'A' .. 'F':
    {
    num = (num << 4) | (ch - ('A' - 10));
    }
    default:
    {
    return -1;
    }
    }
    }
    while ((ch = string[stringPos]) > ' ' && ch != delim);
    setarg(paramPos, 0, num);
    }
    case 'c':
    {
    setarg(paramPos, 0, string[stringPos++]);
    }
    case 'f':
    {


    new changestr[16], changepos = 0, strpos = stringPos;
    while(changepos < 16 && string[strpos] && string[strpos] != delim)
    {
    changestr[changepos++] = string[strpos++];
    }
    changestr[changepos] = '\0';
    setarg(paramPos,0,_:floatstr(changestr));
    }
    case 'p':
    {
    delim = format[formatPos++];
    continue;
    }
    case '\'':
    {
    new
    end = formatPos - 1,
    ch;
    while ((ch = format[++end]) && ch != '\'') {}
    if (!ch)
    {
    return -1;
    }
    format[end] = '\0';
    if ((ch = strfind(string, format[formatPos], false, stringPos)) == -1)
    {
    if (format[end + 1])
    {
    return -1;
    }
    return 0;
    }
    format[end] = '\'';
    stringPos = ch + (end - formatPos);
    formatPos = end + 1;
    }
    case 'u':
    {
    new
    end = stringPos - 1,
    id = 0,
    bool:num = true,
    ch;
    while ((ch = string[++end]) && ch != delim)
    {
    if (num)
    {
    if ('0' <= ch <= '9')
    {
    id = (id * 10) + (ch - '0');
    }
    else
    {
    num = false;
    }
    }
    }
    if (num && IsPlayerConnected(id))
    {
    setarg(paramPos, 0, id);
    }
    else
    {
    #if !defined foreach
    #define foreach(%1,%2) for (new %2 = 0; %2 < MAX_PLAYERS; %2++) if (IsPlayerConnected(%2))
    #define __SSCANF_FOREACH__
    #endif
    string[end] = '\0';
    num = false;
    new
    name[MAX_PLAYER_NAME];
    id = end - stringPos;
    foreach (Player, playerid)
    {
    GetPlayerName(playerid, name, sizeof (name));
    if (!strcmp(name, string[stringPos], true, id))
    {
    setarg(paramPos, 0, playerid);
    num = true;
    break;
    }
    }
    if (!num)
    {
    setarg(paramPos, 0, INVALID_PLAYER_ID);
    }
    string[end] = ch;
    #if defined __SSCANF_FOREACH__
    #undef foreach
    #undef __SSCANF_FOREACH__
    #endif
    }
    stringPos = end;
    }
    case 's', 'z':
    {
    new
    i = 0,
    ch;
    if (format[formatPos])
    {
    while ((ch = string[stringPos++]) && ch != delim)
    {
    setarg(paramPos, i++, ch);
    }
    if (!i)
    {
    return -1;
    }
    }
    else
    {
    while ((ch = string[stringPos++]))
    {
    setarg(paramPos, i++, ch);
    }
    }
    stringPos--;
    setarg(paramPos, i, '\0');
    }
    default:
    {
    continue;
    }
    }
    while (string[stringPos] && string[stringPos] != delim && string[stringPos] > ' ')
    {
    stringPos++;
    }
    while (string[stringPos] && (string[stringPos] == delim || string[stringPos] <= ' '))
    {
    stringPos++;
    }
    paramPos++;
    }
    do
    {
    if ((delim = format[formatPos++]) > ' ')
    {
    if (delim == '\'')
    {
    while ((delim = format[formatPos++]) && delim != '\'') {}
    }
    else if (delim != 'z')
    {
    return delim;
    }
    }
    }
    while (delim > ' ');
    return 0;
    }