Spieler in eine Skin Auswahl setzten nach Befehl?

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
  • Guten Tag,


    ich stehe derzeit bei meinem Script vor ein schweren und für mich unlösbaren Problem.
    Ich möchte den Spieler (pID) nach dem Befehl /makeleader in eine Skin Auswahl setzten, wo er bestimmte Skins auswählen kann.
    Wenn ich ihn z.B Fraktion 1 zuweise, soll er bestimmte Skins für Fraktion 1 auswählen können, bei Fraktion 2 halt Skins für Fraktion 2.


    Wie funktioniert das?

  • Es passiert bei meinem Code nichts, ich werde nicht in die Skin Auswahl geleitet, ich stehe auf dem Schlauch..


    ocmd:makeleader(playerid,params[])
    {
    new Rang, pID, string[128], string1[128];
    if(GetPVarInt(playerid,"Eingeloggt") == 0)return SendClientMessage(playerid,COLOR_GRAU,"Du bist nicht eingeloggt.");
    if(!isPlayerAnAdmin(playerid,3))return SendClientMessage(playerid,COLOR_GRAU,"Du bist kein Team-Mitglied von "#SERVERNAME".");
    if(sscanf(params,"ui",pID,Rang))return SendClientMessage(playerid,COLOR_GRAU,"Benutze: /makeleader [ID/Teilname] [FraktionsID]");
    if(Rang < 0 || Rang > 12) return SendClientMessage(playerid,COLOR_GRAU,"Nur Rang 0 - 12 gültig.");
    SetPVarInt(pID,"Fraktion",Rang);
    SetPVarInt(pID,"Fraktionsrang",6);
    format(string,sizeof(string),"%s hat dich zum Leader von %s ernannt.",SpielerName(playerid),FraktionsName(playerid));
    SendClientMessage(pID,COLOR_ROT,string);
    format(string1,sizeof(string1),"Du hast %s zum Leader von %s ernannt.",SpielerName(pID),FraktionsName(playerid));
    SendClientMessage(playerid,COLOR_ROT,string1);
    SpielerSpeichern(pID);
    ForceClassSelection(pID);
    SetPlayerCameraPos(pID,2204.6206,1598.2760,68.7266);
    SetPlayerCameraLookAt(pID,2193.8567,1598.5226,68.7266);
    TogglePlayerSpectating(pID, true);
    TogglePlayerSpectating(pID, false);
    if(GetPVarInt(pID,"Fraktion") == 1)
    {
    AddPlayerClass(280,2193.8567,1598.5226,68.7266,268.4489,0,0,0,0,0,0);
    AddPlayerClass(281,2193.8567,1598.5226,68.7266,268.4489,0,0,0,0,0,0);
    AddPlayerClass(282,2193.8567,1598.5226,68.7266,268.4489,0,0,0,0,0,0);
    AddPlayerClass(283,2193.8567,1598.5226,68.7266,268.4489,0,0,0,0,0,0);
    AddPlayerClass(284,2193.8567,1598.5226,68.7266,268.4489,0,0,0,0,0,0);
    AddPlayerClass(285,2193.8567,1598.5226,68.7266,268.4489,0,0,0,0,0,0);

    }
    else if(GetPVarInt(pID,"Fraktion") == 2)
    {
    AddPlayerClass(286,2193.8567,1598.5226,68.7266,268.4489,0,0,0,0,0,0);
    AddPlayerClass(285,2193.8567,1598.5226,68.7266,268.4489,0,0,0,0,0,0);
    AddPlayerClass(294,2193.8567,1598.5226,68.7266,268.4489,0,0,0,0,0,0);
    }
    return 1;
    }

  • 1. Die Skinliste erstellst du am besten im Callback "OnGameModeInit".
    2. Das ganze zeug wegen Kameraposition etc. hat nichts im CMD zu suchen
    3. Hast Du dir das Beispiel zur benutzung von "ForceClassSelection" mal im Wiki angesehen?

  • Der Code müsste gehen!
    Wird eine Nachricht ausgegeben?
    Passiert irgendwas? :P (Spectating?!)

  • 1. Die Skinliste erstellst du am besten im Callback "OnGameModeInit".
    2. Das ganze zeug wegen Kameraposition etc. hat nichts im CMD zu suchen
    3. Hast Du dir das Beispiel zur benutzung von "ForceClassSelection" mal im Wiki angesehen?

    Hast du vielleicht einen kleinen Code für mich, der mir da weiterhilft?
    Ich habe mir die Benutzung angeschaut, komme aber nicht weiter.


    -
    Es wird nur die Nachricht ausgegeben das ich als Leader ernannt wurde, spectating passiert nicht.

  • Lass dir mal vor und nach "SpielerSpeichern(pID);" was printen!


    print("Test1");
    SpielerSpeichern(pID);
    print("Test2");


    Wird beides in der Konsole angezeigt?

  • Zeig mal "OnPlayerRequestClass".
    Was anderes kann ich mir nicht erklären :P

  • Nur die 3 Zeilen mein Lieber.
    public OnPlayerRequestClass(playerid, classid)
    {
    SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
    SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
    SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
    return 1;
    }

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