/skin 0-300

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
  • Hi unszwar möchte ich das ich während des Spiels ich mir einen Skin geben kann.Naja ich kann das aber nur mit diesem Befehl:
    if(strcmp(cmdtext,"skin 8",true)==0)
    {
    SetPlayerSkin(playerid,8);
    return 1;
    }
    Ich möchte es aber nicht 300 mal schreiben.Könnt ihr mir sagen wie das geht?

  • Habe das mal für jemanden gemacht (nur für GF !!!):


    if(strcmp(cmd, "/skin", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, COLOR_GRAD2, "FEHLER: /skin [playerid] [skinid]");
    return 1;
    }
    giveplayerid = ReturnUser(tmp);
    if (PlayerInfo[playerid][pAdmin] >= 1336)
    {
    if(IsPlayerConnected(giveplayerid))
    {
    if(giveplayerid != INVALID_PLAYER_ID)
    {
    GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
    GetPlayerName(playerid, sendername, sizeof(sendername));
    new length = strlen(cmdtext);
    while ((idx < length) && (cmdtext[idx] <= ' '))
    {
    idx++;
    }
    new offset = idx;
    new result[64];
    while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
    {
    result[idx - offset] = cmdtext[idx];
    idx++;
    }
    result[idx - offset] = EOS;
    if(!strlen(result))
    {
    SendClientMessage(playerid, COLOR_GRAD2, "FEHLER: /skin [playerid] [skinid]");
    return 1;
    }
    new Nummer = strval(result);
    if(Nummer > 299 || Nummer < 0) { SendClientMessage(playerid, COLOR_GREY, "Die Nummer darf nicht unter 0 und über 299 sein!"); return 1; }
    format(string, sizeof(string), "* Du hast den Skin von %s auf die Skinid %d geändert.", giveplayer, Nummer);
    SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
    SetPlayerSkin(giveplayerid, PlayerInfo[giveplayerid][pChar] = Nummer);
    SetPlayerSkin(giveplayerid, PlayerInfo[giveplayerid][pModel] = Nummer);
    SendClientMessage(giveplayerid, COLOR_GREEN,"Dein Skin wurde von einem Administrator geändert !");
    }
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_LIGHTRED, "Dir ist es nicht erlaubt, diesen Befehl zu benutzen!");
    }
    }
    return 1;
    }


    mfg. :thumbup:

    ast2ufdyxkb1.png


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

  • GF bringt mir wenig
    Nein ich möchte es nicht abspeichern.Ich möchte /skin 0 eingeben und dann während des Spieles den CJ Skin erhalten.Und ich möchte nicht:
    if(strcmp(cmdtext,"skin X",true)==0)
    {
    SetPlayerSkin(playerid,X);
    return 1;
    }
    eingeben müssen ins Script.Darum meine Frage: Gibt es ne andere Möglichkeit?Wenn ja wie?

  • if(strcmp(cmd, "/skin", true) == 0)
    {
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, COLOR_LIGHTRED, "Benutze: /skin [skinid]");
    return 1;
    }
    new skin;
    skin = strval(tmp);
    SetPlayerSkin(playerid, skin);
    return 1;
    }


    mfg. :thumbup:

    ast2ufdyxkb1.png


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

  • Ganz oben ins Script :D
    new curPlayerSkin[MAX_PLAYERS] = {MIN_SKIN_ID, ...};

    dcmd_s(playerid, params[])
    {

    new idx, iString[128];
    iString = strtok(params, idx);


    if (!strlen(iString)) {
    SendClientMessage(playerid, COLOR_RED, "[BENUTZUNG]: /s SKINID");
    return true;
    }


    idx = strval(iString);


    if (IsInvalidSkin(idx) || idx < MIN_SKIN_ID || idx > MAX_SKIN_ID) {
    SendClientMessage(playerid, COLOR_RED, "[ERROR]: Falsche SKINID");
    return true;
    }


    SetPlayerSkin(playerid, idx);
    curPlayerSkin[playerid] = idx;
    format(iString, 128, "Dein Skin wurde erfolgreich zu Skin ID %d verändert !", idx);


    SendClientMessage(playerid, COLOR_GREEN, iString);


    return true;
    }

  • curPlayerSkin[playerid] = idx;


    schöner Copy & Paste :D


    wird ihm aber glaube ich nur Errors bringen, da er kein dcmd verwendet und das was ich oben markiert habe, sinnlos ist :pinch:


    mfg. :thumbup:

    ast2ufdyxkb1.png


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

  • schreib drüber:


    new tmp[256];
    strtok(const string[], &index)
    {
    new length = strlen(string);
    while ((index < length) && (string[index] <= ' '))
    {
    index++;
    }
    new offset = index;
    new result[20];
    while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
    {
    result[index - offset] = string[index];
    index++;
    }
    result[index - offset] = EOS;
    return result;
    }


    mfg. :thumbup:

    ast2ufdyxkb1.png


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

  • Das ganz unten ins Script:
    strtok(const string[], &index)
    {
    new length = strlen(string);
    while ((index < length) && (string[index] <= ' '))
    {
    index++;
    }


    new offset = index;
    new result[20];
    while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
    {
    result[index - offset] = string[index];
    index++;
    }
    result[index - offset] = EOS;
    return result;
    }
    Edit:
    Grrr...
    Kaliber war schneller :D

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen