[SAMMELTHREAD] Kleine Scripting Fragen

Dein Problem konnte durch einen User gelöst werden? Bedank dich bei ihm indem du seinen Beitrag als Hilfreich markierst sowie einen Daumen oben dalässt
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
  • stock GetFrakColor2(fraktID)
    {
    switch(fraktID)
    {
    case 1: return 1;
    case 2: return 247;
    case 3: return 181;
    case 4: return 128;
    }
    return -1;
    }


    Kann mir jemand erklären warum die case`s so returnt werden? Und was es bringt .

  • Das kannst du mit dieser Funktion herausfinden:
    stock GetPosHinterVeh(vehicleid, Float:dist, &Float:x, &Float:y, &Float:z) //©Jeffry
    {
    new Float:a;
    GetVehicleZAngle(vehicleid, a);
    GetVehiclePos(vehicleid, x, y, z);
    x += (-dist * floatsin(-a, degrees));
    y += (-dist * floatcos(-a, degrees));
    return true;
    }


    Den Checkpoint erstellst du dann einfach an der Position, die du zurück bekommst, sprich:
    new Float:x, Float:y, Float:z;
    GetPosHinterVeh(GetPlayerVehicleID(playerid), 3.0, x, y, z);
    SetPlayerCheckPoint(playerid, x, y, z, 2.0);

  • Kleineres Skin-Auswahl-Problem.
    Ich möchte es so machen: wenn der Spieler NEU ist, kann er in die Skin Auswahl.
    Wenn er allerdings schon registriert ist soll er sich mit den Skin einloggen können. (Ohne eine Skin-Auswahl zu sehen)


    Bei "SpielerLaden" und "SpielerSpeichern" hab ich es jeweils eingefügt sowie in Enum.
    Bei OnPlayerSpawn und OnPlayerRequestClass ebenso.


    Mein Problem: Ich weiß nicht wo ich das hintun soll. (Siehe in den folgenden Code)

    //Skinauswahl
    //JUNGS (19) die Zahlen in den Kommentaren hinter den Befehl sind die Skin IDs #merken
    AddPlayerClass(0, 1766.2850,-1895.8571,13.5629,273.2245, 0,0,0,0,0,0); //0
    AddPlayerClass(3, 1766.2850,-1895.8571,13.5629,273.2245, 0,0,0,0,0,0); //3
    AddPlayerClass(15, 1766.2850,-1895.8571,13.5629,273.2245, 0,0,0,0,0,0); //15
    AddPlayerClass(17, 1766.2850,-1895.8571,13.5629,273.2245, 0,0,0,0,0,0); //17
    AddPlayerClass(18, 1766.2850,-1895.8571,13.5629,273.2245, 0,0,0,0,0,0); //18
    AddPlayerClass(20, 1766.2850,-1895.8571,13.5629,273.2245, 0,0,0,0,0,0); //20
    AddPlayerClass(21, 1766.2850,-1895.8571,13.5629,273.2245, 0,0,0,0,0,0); //21
    AddPlayerClass(23, 1766.2850,-1895.8571,13.5629,273.2245, 0,0,0,0,0,0); //23
    AddPlayerClass(25, 1766.2850,-1895.8571,13.5629,273.2245, 0,0,0,0,0,0); //25
    AddPlayerClass(26, 1766.2850,-1895.8571,13.5629,273.2245, 0,0,0,0,0,0); //26
    AddPlayerClass(29, 1766.2850,-1895.8571,13.5629,273.2245, 0,0,0,0,0,0); //29
    AddPlayerClass(28, 1766.2850,-1895.8571,13.5629,273.2245, 0,0,0,0,0,0); //28
    AddPlayerClass(33, 1766.2850,-1895.8571,13.5629,273.2245, 0,0,0,0,0,0); //33
    AddPlayerClass(32, 1766.2850,-1895.8571,13.5629,273.2245, 0,0,0,0,0,0); //32
    AddPlayerClass(37, 1766.2850,-1895.8571,13.5629,273.2245, 0,0,0,0,0,0); //37
    AddPlayerClass(36, 1766.2850,-1895.8571,13.5629,273.2245, 0,0,0,0,0,0); //36
    AddPlayerClass(38, 1766.2850,-1895.8571,13.5629,273.2245, 0,0,0,0,0,0); //38
    AddPlayerClass(49, 1766.2850,-1895.8571,13.5629,273.2245, 0,0,0,0,0,0); //49
    AddPlayerClass(51, 1766.2850,-1895.8571,13.5629,273.2245, 0,0,0,0,0,0); //51
    //MÄDCHENS (19)
    AddPlayerClass(9, 1766.2850,-1895.8571,13.5629,273.2245, 0,0,0,0,0,0); //9
    AddPlayerClass(10, 1766.2850,-1895.8571,13.5629,273.2245, 0,0,0,0,0,0); //10
    AddPlayerClass(12, 1766.2850,-1895.8571,13.5629,273.2245, 0,0,0,0,0,0); //12
    AddPlayerClass(41, 1766.2850,-1895.8571,13.5629,273.2245, 0,0,0,0,0,0); //41
    AddPlayerClass(40, 1766.2850,-1895.8571,13.5629,273.2245, 0,0,0,0,0,0); //40
    AddPlayerClass(55, 1766.2850,-1895.8571,13.5629,273.2245, 0,0,0,0,0,0); //55
    AddPlayerClass(54, 1766.2850,-1895.8571,13.5629,273.2245, 0,0,0,0,0,0); //54
    AddPlayerClass(63, 1766.2850,-1895.8571,13.5629,273.2245, 0,0,0,0,0,0); //63
    AddPlayerClass(65, 1766.2850,-1895.8571,13.5629,273.2245, 0,0,0,0,0,0); //65
    AddPlayerClass(90, 1766.2850,-1895.8571,13.5629,273.2245, 0,0,0,0,0,0); //90
    AddPlayerClass(131, 1766.2850,-1895.8571,13.5629,273.2245, 0,0,0,0,0,0); //131
    AddPlayerClass(150, 1766.2850,-1895.8571,13.5629,273.2245, 0,0,0,0,0,0); //150
    AddPlayerClass(157, 1766.2850,-1895.8571,13.5629,273.2245, 0,0,0,0,0,0); //157
    AddPlayerClass(169, 1766.2850,-1895.8571,13.5629,273.2245, 0,0,0,0,0,0); //169
    AddPlayerClass(178, 1766.2850,-1895.8571,13.5629,273.2245, 0,0,0,0,0,0); //178
    AddPlayerClass(193, 1766.2850,-1895.8571,13.5629,273.2245, 0,0,0,0,0,0); //193
    AddPlayerClass(226, 1766.2850,-1895.8571,13.5629,273.2245, 0,0,0,0,0,0); //226
    AddPlayerClass(201, 1766.2850,-1895.8571,13.5629,273.2245, 0,0,0,0,0,0); //201
    AddPlayerClass(216, 1766.2850,-1895.8571,13.5629,273.2245, 0,0,0,0,0,0); //216


    OnPlayerSpawn:

    SetPlayerSkin(playerid, GetPVarInt(playerid,"Skin"));


    OnPlayerRequestClass:

    new Spieler[64];
    new Sname[MAX_PLAYER_NAME];
    GetPlayerName(playerid,Sname,sizeof(Sname));
    format(Spieler,sizeof(Spieler),"/Accounts/%s.txt",Sname);
    SetSpawnInfo(playerid,0,SetPlayerSkin(playerid,dini_Int(Spieler,"Skin")),1766.2850,-1895.8571,13.5629,273.2245,0,0,0,0,0,0);
    SpawnPlayer(playerid);
    SetCameraBehindPlayer(playerid);

  • Bei OnPlayerRequestClass:
    new Spieler[64];
    new Sname[MAX_PLAYER_NAME];
    GetPlayerName(playerid,Sname,sizeof(Sname));
    format(Spieler,sizeof(Spieler),"/Accounts/%s.txt",Sname);
    if(fexist(Spieler))
    {
    new skin = dini_Int(Spieler,"Skin");
    SetPVarInt(playerid,"Skin",skin)
    SetSpawnInfo(playerid,0,skin,1766.2850,-1895.8571,13.5629,273.2245,0,0,0,0,0,0);
    SpawnPlayer(playerid);
    SetCameraBehindPlayer(playerid);
    }


    Die ganzen AddPlayerClass's müssen zu OnGameModeInit.

  • Dann setze dort wo du dich registrierst und dort wo du einen neuen Charakter erstellen willst den Wert auf -1:
    dini_Set(Spieler,"Skin","-1");


    Und dann:
    new Spieler[64];
    new Sname[MAX_PLAYER_NAME];
    GetPlayerName(playerid,Sname,sizeof(Sname));
    format(Spieler,sizeof(Spieler),"/Accounts/%s.txt",Sname);
    new skin = dini_Int(Spieler,"Skin");
    if(fexist(Spieler) && skin != -1)
    {
    SetPVarInt(playerid,"Skin",skin);
    SetSpawnInfo(playerid,0,skin,1766.2850,-1895.8571,13.5629,273.2245,0,0,0,0,0,0);
    SpawnPlayer(playerid);
    SetCameraBehindPlayer(playerid);
    }

    3HZXdYd.png

    Einmal editiert, zuletzt von Jeffry () aus folgendem Grund: Fehlendes Semikolon

  • Nein ich habe kein Timer.
    Die 5 Sekunden waren nur so gefühlt.
    Man joint ins Game (als unregistrierter) registriert sich und sucht dann Skin aus. 5 Sekunden (ca.) nachdem man den Skin ausgewählt hat wird der wieder zu CJ zurückgesetzt.
    Wenn du den Bug nicht verstehst connecte dich hier: server1.hostmania.eu:7816
    Dort wird der Server gehostet.

  • Beitrag von Rayuu ()

    Dieser Beitrag wurde gelöscht, Informationen über den Löschvorgang sind nicht verfügbar.
  • Nein ich habe kein Timer.
    Die 5 Sekunden waren nur so gefühlt.
    Man joint ins Game (als unregistrierter) registriert sich und sucht dann Skin aus. 5 Sekunden (ca.) nachdem man den Skin ausgewählt hat wird der wieder zu CJ zurückgesetzt.
    Wenn du den Bug nicht verstehst connecte dich hier: server1.hostmania.eu:7816
    Dort wird der Server gehostet.


    Such halt nach SetPlayerSkin in deinem Code und überleg ob es an denjenigen Stellen überhaupt Sinn ergibt anstatt hier rumzufragen warum es denn nicht geht... 8o

  • Such halt nach SetPlayerSkin in deinem Code und überleg ob es an denjenigen Stellen überhaupt Sinn ergibt anstatt hier rumzufragen warum es denn nicht geht... 8o


    Wenn man es schon an jede Stelle getan hat um zu gucken "funktioniert es - funktioniert es nicht" dann muss man halt nach rat fragen dafür ist dieser Thread, das Thema hier offen.


    Jeffry
    Hab es eingefügt.
    Leider ist der Bug immer noch nicht weg mit dem CJ Skin.
    Sollte ich ein Timer erstellen der dann nach 5 Sekunden den Skin automatisch ändert und einfach eine Abfrage machen if Skin ... Selected (nur mal als beispiel) dann SetPlayerSkin ... ?

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