Beiträge von Jeffry

    Ich versuche es noch mal mit mehreren Buchstaben und es ist nicht alles in einer Reihe, keine Ahnung warum das Forum das so ausgibt...


    Das liegt daran, dass du einen Editor nutzt, der einen Zeilenumbruch verwendet, den das Forum nicht unterstützt. Kopiere deinen Code erst in Word, und dann dort ausschneiden, dann ins Forum. Dann geht es. Oder nutze den Standard Editor. ;)

    Welches Windows hast du denn?


    Hast du mal versucht, das Spiel + SAMP komplett zu deinstallieren, und dann ein neues Benutzerkonto auf deinem Rechner zu erstellen, und es mit dem, auf einen anderen Pfad zu installieren. Anschließend auch mit dem Benutzer zu starten. Klappt das?
    Hast du die aktuelle DirectX installiert?
    Hast du deine Grafikkartentreiber aktualisiert?


    Ging das Spiel auf diesem Rechner jemals?

    Also, das Array gehört nicht unter OnGameModeInit sondern einfach global unter die Includes.


    Abfragen tust du das ganze über eine Schleife, indem du die jeweiligen Werte mit der SkinID vergleichst, und wenn der Spieler einen Skin ausgewählt hat, der nicht dabei ist und den er somit nicht benutzen darf, dann gibst du eine Meldung aus.


    Einen Code kann ich dir da nicht geben, da ich weder deine Bedingungen für die Nutzung der jeweiligen Skins kenne, noch deine Variablen. Ich schlage dir vor, probiere es erstmal selbst und falls es nicht klappt poste das was du bis dahin hast und beschreibe dein Vorhaben.

    Du kannst es über ein Array lösen, je nach dem in welches Kriterium er fällt, kann er eben die Skins dann sehen.


    new skinArray[][] = {
    {14, 19, 20, 58, 149},
    {1, 57, 99, 125, 258}
    };


    Fraktion (Beispiel) 0 kann dann die Skins der ersten Zeile nutzen und Fraktion 1 die der zweiten Zeile.

    stock IsCoordBehindVehicle(veh,Float:x,Float:y,Float:z)
    {
    new Float:size[3]; GetVehicleModelInfo(GetVehicleModel(veh), VEHICLE_MODEL_INFO_SIZE, size[0],size[1],size[2]);
    new Float:vangle; GetVehicleZAngle(veh,vangle);
    x = floatadd(x,(size[0]* floatsin(-vangle,degrees)));
    y = floatadd(y,(size[1]* floatcos(-vangle,degrees)));
    if(IsVehicleInRangeOfPoint(veh,7,x,y,z)) return 1;
    return 0;
    }
    Ohne die Minuse vor size in der Berechnung. Das dreht das ganze praktisch um.

    #define DIALOG_STATS 1337
    ShowPlayerDialog(playerid, DIALOG_STATS, DIALOG_STYLE_MSGBOX, pSpielerName(playerid), "Stats hier", "Ok", "");


    stock pSpielerName(playerid)
    {
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, name, sizeof(name));
    return name;
    }

    Deklaration:
    new Text3D:vehicle3Dtext[MAX_VEHICLES] = {Text3D:-1,...};



    In beiden Befehlen:
    if(vehicle3Dtext[GetPlayerVehicleID(playerid)] != Text3D:-1)
    {
    DestroyDynamic3DTextLabel(vehicle3Dtext[GetPlayerVehicleID(playerid)]);
    vehicle3Dtext[GetPlayerVehicleID(playerid)] = Text3D:-1;
    return SendClientMessage(playerid, -1, "Entfernt");
    }

    public OnPlayerClickTextDraw(playerid,Text:clickedid)
    {
    if(clickedid == Skinselect1)
    {
    if(GetPlayerSkin(playerid) == 1)
    {
    SetPlayerSkin(playerid,299);
    }
    else
    {
    new skin = GetPlayerSkin(playerid)-1;
    for(new i=0; i<sizeof(GangSkins); i++)
    {
    if(GangSkins[i] == skin)
    {
    skin--;
    if(skin < 1) skin = 299;
    i = 0;
    }
    }
    SetPlayerSkin(playerid,skin);
    }
    }
    if(clickedid == Skinselect2)
    {
    if(GetPlayerSkin(playerid) == 299)
    {
    SetPlayerSkin(playerid,1);
    }
    else
    {
    new skin = GetPlayerSkin(playerid)+1;
    for(new i=0; i<sizeof(GangSkins); i++)
    {
    if(GangSkins[i] == skin)
    {
    skin++;
    if(skin > 299) skin = 1;
    i = 0;
    }
    }
    SetPlayerSkin(playerid,skin);
    }
    }
    if(clickedid == Skinselect3)
    {
    CancelSelectTextDraw(playerid);
    SpawnPlayer(playerid);
    }
    return 1;
    }


    Versuch es mal so.

    if(clickedid == Skinselect3) {
    new skin = GetPlayerSkin(playerid);
    for(new i=0; i<sizeof(GangSkins); i++)
    {
    if(skin == GangSkins[i])
    {
    SendClientMessage(playerid, 0xFF0000FF, "Diesen Skin darfst du nicht nehmen.");
    return 1;
    }
    }
    CancelSelectTextDraw(playerid);
    SpawnPlayer(playerid);
    }


    Oder wilst du, dass man sie erst gar nicht sehen kann?

    Also bei mir funktioniert es ohne Probleme. :rolleyes:


    Hier nochmal richtig eingerückt:

    Spoiler anzeigen
    forward CountDown();
    public CountDown()
    {
    Event[Sekunde]--;
    new string[128];
    format(string,128,"%02d:%02d",Event[Minute],Event[Sekunde]);
    TextDrawSetString(EUHR1,string);
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    if(OnEvent[i] != 0)
    {
    TextDrawShowForPlayer(i,EUHR0);
    TextDrawShowForPlayer(i,EUHR1);
    }
    }
    if(Event[Sekunde] == 0)
    {
    if(Event[Minute] >0)
    {
    Event[Minute]--;
    Event[Sekunde] = 60;
    }
    else
    {
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    if(OnEvent[i] != 0)
    {
    ocmd_devent(i,"");
    }
    }
    return 1;
    }
    }
    cd = SetTimer("CountDown",1000,0);
    return 1;
    }