Bot einen Skin zuweisen funktioniert nicht (mehr)!

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


    ich möchte meinen Bots Skins zuweisen und habe daher bei OnPlayerSpawn folgendes gemacht:


    if(IsPlayerNPC(playerid))
    {
    new npc = GetFreeNPCID();
    if(!strcmp(PName[playerid],"ArbeitsamtBackground",true))
    {
    NPCID[npc] = playerid;
    s_SetPlayerSkin(playerid,57);
    }
    else if(!strcmp(PName[playerid],"ArbeitsamtTresen",true))
    {
    NPCID[npc] = playerid;
    s_SetPlayerSkin(playerid,141);
    }
    else if(!strcmp(PName[playerid],"DJ01",true))
    {
    NPCID[npc] = playerid;
    s_SetPlayerSkin(playerid,19);
    }
    else if(!strcmp(PName[playerid],"StadthalleBG",true))
    {
    NPCID[npc] = playerid;
    s_SetPlayerSkin(playerid,163);
    }
    ...

    }


    Der Stock:


    stock GetFreeNPCID()
    {
    for(new i=0; i<MAX_NPC; i++)
    {
    if(NPCID[i] != 0) continue;
    return i;
    }
    return -1;
    }



    Die Variable NPCID:


    new NPCID[MAX_NPC];



    derStock s_SetPlayerSkin:


    stock s_SetPlayerSkin(playerid,skin)
    {
    SetPlayerSkin(playerid,skin);
    if(pInfo[playerid][pWeste] == 1)
    {
    SetPlayerAttachedObject(playerid,0,19142,1,WestePosInfo[skin][w_OffX],WestePosInfo[skin][w_OffY],WestePosInfo[skin][w_OffZ],WestePosInfo[skin][w_RotX],WestePosInfo[skin][w_RotY],WestePosInfo[skin][w_RotZ],WestePosInfo[skin][w_ScaX],WestePosInfo[skin][w_ScaY],WestePosInfo[skin][w_ScaZ]);
    }
    else
    {
    RemovePlayerAttachedObject(playerid,0);
    }
    return 1;
    }


    Komischerweise hatte es mal geklappt, weiß aber nicht mehr was genau ich editiert habe :o

  • was bewirgst du mit dem
    new npc = GetFreeNPCID(); und NPCID[npc] = playerid;???


    Also ich habe das immer nur so beim onplayerspawn

    new botname[MAX_PLAYER_NAME];
    GetPlayerName(playerid, botname, sizeof(botname));
    if(!strcmp(botname, "burgershotdame1", true))
    {
    SetPlayerSkin(playerid,205);
    SetPlayerVirtualWorld(playerid,1);
    }



    Ich denke es ligt an
    PName[playerid]


    mfg Mogly1 :thumbup: :thumbup: :thumbup:

  • Die Variable NPCID macht mich stutzig, ist es wirklich nötig den NPCS diese Variable zu geben?


    Ja MichiEXE, dies ist nötig, da dich Bots durch eine Schleife laufen, die jede Sekunde durchläuft.

    Mit Freundlichen Grüßen
    Whitetiiger aka. Kaito-sensei
    P.s. Alle mit #IRONIE bestätigten Sätze von mir, sind als Ironie anzusehen.

  • Okay, wollte ich nur wissen weil diese sonst unnötig wirkt. Ich wär bei der Schleife einfach GetMaxPlayers(); abgegangen und hätte dann abgefragt ob 'i' ein NPC ist.. dann der Rest.
    Wenn NPCID nur für die Schleife da ist, wär' diese für mich unnötig.