Frage zu Skin System

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 habe gerade mal Lust mein Skin System aufzuwerten.


    Es soll nach Zivilisten und Fraktionsspezifischen Skins unterschieden werden.
    Momentan so :


    switch(classid)
    {
    case 0.. 2:
    {
    GameTextForPlayer(playerid,"~b~SAPD",1000,3);
    }
    case 3.. 5:
    {
    GameTextForPlayer(playerid,"~b~FBI",1000,3);
    }
    }


    Aber wie mache ich es das dann auch nur die Fraktionen das wählen dürfen ?
    Hier meine Fraktionsabfrage :


    uInfo[playerid][Fraktion] // so oder :
    IsPlayerInFraktion(playerid,frakid) // ...


    Wäre sehr nett wenn ihr mir einen Denkanstoß geben könntet...
    MfG


    /edit Rechtschreibung

  • Das ist doch Schwachsinn....
    Dann kommt immer wenn man zwischen Den Skins wechselt und zufällig auf einen Frak Skin kommt "Du bist nicht in der Fraktion: ?"
    ich will es aber so das man die zwar ansehen kann aber nicht wählen kann.... noch weitere Denkanstöße ?


    MfG

  • Ist gelöscht. Also versteh ich dass richtig jetzt: Du möchtest, dass man "Zivilisten" Skins auswählen kann, aber Fraktionsskins nicht auswählen kann, also praktisch der "Spawn" Button nicht bei diesem Skin anklickbar ist?
    Wenn ja, kannste doch mit

    GetPlayerSkin(playerid) == ID || GetPlayerSkin(playerid) == ID)
    //Danach kannse doch returnen und ne Message ausgeben?

    Oder nicht?


    lg

    RTL - Das N steht für Niveau!
    MfG,
    StreetS


    Jegliche Freundesanfragen, die für mich keinen Sinn ergeben, werden professionell Ignoriert. (Gleiche mit Skype!)
    Wer es nicht kapiert wird in Breadfish & Skype blockiert.


    - Stolzer PAWN Scripter der Klasse Beherrscht

  • Also müsstest du praktisch eine Abfrage machen, wenn er auf den Spawn Button drückt, dass er überprüft welche Fraktion er ist usw. Also dass habe ich schonmal verstanden.
    Antwort: Ich kenne keine Abfrage, die überprüft ob man auf "Spawn" geklickt hat.
    Evtl. Lösungsweg: Du machst dir dein eigenes Skin System. Sprich: Anklickbare Textdraws, dort ist es vieel einfacher, anstatt es mit dem Standart Skin System zu machen.


    lg

    RTL - Das N steht für Niveau!
    MfG,
    StreetS


    Jegliche Freundesanfragen, die für mich keinen Sinn ergeben, werden professionell Ignoriert. (Gleiche mit Skype!)
    Wer es nicht kapiert wird in Breadfish & Skype blockiert.


    - Stolzer PAWN Scripter der Klasse Beherrscht

  • Du kannst doch unter OnPlayerSpawn ( passiert, wenn man auf 'Spawn' drückt ) prüfen ob GetPlayerSkin z.B. der CopSkin ist & man NICHT in der Fraktion ist, wenn ja, wird man wieder zur Skinauswahl geschickt.

    20€ geschenkt - bei Fragen gerne PN an mich


    Mehr über reCyclix
    reCyclix - more than recycling
    reyCyclix ist ein polnisches Recyclingunternehmen, welches jedem die Möglichkeit bietet, sich an ihrem Geschäftsmodell gewinnbringend zu beteiligen. Normalerweise passiert das, in dem man eine beliebige Summe in Kunststoffmüll investiert, allerdings schenkt reCyclix zur Zeit noch jedem neuem Nutzer 20€, die zur Investition genutzt werden können.

  • Also die Spawnmenulösung geht nur über OnPlayerRequestClass und return true; (zum Spawnen) und return false; (zum nicht Spawnen).


    Natürlich kannst du dir auch einen eigenen Skinshop bauen.


    Hierfür packst du alle deine Skins in ein Array und nimmst einen Spieler bezogenen Counter, der Skin für Skin durchgeht.


    Ferner musst du dir dann noch OnPlayerKeyStateChange anschauen, wahlweise kannst du es auch via "klickbare" Textdraws lösen (Dann wäre der Callback OnPlayerClickTextDraw).


    edit:


    Du musst dann nach OnPlayerSpawn den Spieler in die Auswahl senden...

    nanosMalte


    Zitat

    Zitat von Goldkiller




    Obwohl MiniYoda das Wörtchen "Dynamisch" in der Deutschen SA-MP szene mit durchaus fatalen Folgen verbreitete, so hat er dennoch bewiesen, dass er das Handwerk PAWN hervorragend beherrscht. Er gehört definitiv zu den kompetentesten Scriptern die man bei SA-MP.DE finden kann.

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Sorry, habe gerade total gepennt, viel zu früh für einen Studenten.


    public OnPlayerRequestSpawn(playerid)


    das ist der richtige Callback.


    Hier return false; wenn der Spieler nicht spawnen soll, returnt true; wenn er spawnen soll.


    Guten Morgen -.-

    nanosMalte


    Zitat

    Zitat von Goldkiller




    Obwohl MiniYoda das Wörtchen "Dynamisch" in der Deutschen SA-MP szene mit durchaus fatalen Folgen verbreitete, so hat er dennoch bewiesen, dass er das Handwerk PAWN hervorragend beherrscht. Er gehört definitiv zu den kompetentesten Scriptern die man bei SA-MP.DE finden kann.

  • Moin,


    Jetzt bin ich völlig durcheinander....
    Also hier mein Code :


    public OnPlayerRequestClass(playerid, classid)
    {
    SetupPlayerForClassSelection(playerid);
    SwitchClassID(playerid,classid);
    return 1;
    }
    Function SetupPlayerForClassSelection(playerid)
    {
    SetPlayerInterior(playerid,14);
    SetPlayerPos(playerid,258.4893,-41.4008,1002.0234);
    SetPlayerFacingAngle(playerid, 270.0);
    SetPlayerCameraPos(playerid,256.0815,-43.0475,1004.0234);
    SetPlayerCameraLookAt(playerid,258.4893,-41.4008,1002.0234);
    }
    Function SwitchClassID(playerid,classid)
    {
    switch(classid)
    {
    case 0.. 12:
    {
    GameTextForPlayer(playerid,"~w~Zivilist",1000,3);
    }
    case 13.. 23:
    {
    GameTextForPlayer(playerid,"~b~SAPD",1000,3);
    }
    case 24.. 29:
    {
    GameTextForPlayer(playerid,"~b~FBI",1000,3);
    }
    }
    return 1;
    }


    wie mache ich das nun ?


    MfG


    /edit Rechtschreibung

  • Es gibt noch einen weiteren Callback, der


    OnPlayerRequestSpawn(playerid) heißt


    Schau mal in deinem Script, wenn nicht füge ihn hinzu. Dieser Callback wird aufgerufen, wenn der Spieler auf "Spawn" drückt oder die Spawntaste betätigt.


    Returnst du false oder 0 in diesem Callback spawnt die Person nicht,
    returnt du true oder 1 spawnt sie.

    nanosMalte


    Zitat

    Zitat von Goldkiller




    Obwohl MiniYoda das Wörtchen "Dynamisch" in der Deutschen SA-MP szene mit durchaus fatalen Folgen verbreitete, so hat er dennoch bewiesen, dass er das Handwerk PAWN hervorragend beherrscht. Er gehört definitiv zu den kompetentesten Scriptern die man bei SA-MP.DE finden kann.