Schutzweste beim spawn

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
  • Ich hab mal ne Frage.
    Ich habe bei Pawno schon paar Klassen und ein paar Fahrzeuge für ein DM-Script gescriptet.
    Jetzt will ich aber, dass eine der Klassen ne Schutzweste beim spawnen kriegt.
    Wie mache ich das?


    Achtung: Ich bin noch Anfänger!!!

  • Unter OnPlayerSpawn:
    SetPlayerArmor(playerid,100);

  • Ja was ist denn immer mit playerid gemeint.
    Also, ich habe das auch mal probiert unter OnPlayerSpawn und für playerid die SkinID der Klasse genommen,
    aber das geht natürlich irgendwie nicht. Muss man die playerid irgendwie vorher festlegen oder so? ?(

  • playerid ist die ID vom Spieler. [für den Spieler]


    Wenn du den Skin verändern willst,


    SetPlayerSkin(playerid, ID);

  • Nimm das was von PRT The Gamer geschreiebn wurde und setzte es in OnPlaySpawn ein


    Also in OnPlayerSpawn einfach
    SetPlayerArmor(playerid,100);
    einfügen und fertig


    Und wie PRT TheGamer grade geschrieben hat .
    Wenn der Spieler immer mit diesem bestimmten Skin starten soll einfach unter OnPlayerSpawn
    SetPlayerSkin(playerid, ID);
    einfügen .
    ID muss gegen eine Skin Id von 0-299 ersetzt werden.


    Ein paar skins findest du hier aber es gibt noch mehr:
    Samp WIKI

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • jo danke dafür, aber so wirklich habt ihr mir das noch nicht erklärt.
    Ist das "SetPlayerSkin" jetzt dafür da, dass man einer gewissen Skin ID eine playerid zuweist und die dann
    z.B. bei "SetPlayerArmour" verwenden kann? Das wäre eine logische, nachvollziehbare Erklärung für mich.
    Vllt. kann mir einfach mal einer ein Beispiel zeigen, was ich genau machen muss (was ich bei playerid hinschreiben muss)
    wenn ich z.B. unter OnGameModeInit


    AddPlayerClass(287,2612.7756,-2401.7417,13.5131,101.2706, 22, 30, 31, 400, 16, 9); //


    habe.Dann zuerst unter OnPlayerRequestSpawn


    SetPlayerSkin( playerid[was denn jetzt?], 287)


    Dann unter OnPlayerSpawn


    SetPlayerArmour( playerid, 100.0)

  • jop stimmt das mit
    SetPlayerSkin(playerid, ID);
    gehört unter OnPlayerRequestSpawn

    Ne stimmt nicht,
    OnPlayerRequestSpawn = Wenn er den Skin auswählt [dort kann man doch nicht SetPlayerSkin machen o.O] Skins kann man in OnGameModeInit mit AddPlayerClass hinzufügen.

  • Er wollte doch nen bestimmten Skin beim spawnen haben das hätte geklappt habe nur nicht seine Frage verstanden hier:
    AddPlayerClass(0,399.8557,2543.3262,19.6311,318.4338,0,0,0,0,0,0); // 0 = Skin id dahinter kommen die Coordinaten rein wo der spieler spawnt nach dem er den Skin gewählt hat. Die Ids gibts von 0 - 299


    Das gehört dann in OnGameModeInit


    Wenn du alle Skins brauchst die es gibt mache so weiter:

    AddPlayerClass(0,399.8557,2543.3262,19.6311,318.4338,0,0,0,0,0,0); //
    AddPlayerClass(1,399.8557,2543.3262,19.6311,318.4338,0,0,0,0,0,0); //
    AddPlayerClass(2,399.8557,2543.3262,19.6311,318.4338,0,0,0,0,0,0); //
    AddPlayerClass(3,399.8557,2543.3262,19.6311,318.4338,0,0,0,0,0,0); //
    AddPlayerClass(4,399.8557,2543.3262,19.6311,318.4338,0,0,0,0,0,0); //
    AddPlayerClass(5,399.8557,2543.3262,19.6311,318.4338,0,0,0,0,0,0); //
    AddPlayerClass(6,399.8557,2543.3262,19.6311,318.4338,0,0,0,0,0,0); //
    AddPlayerClass(7,399.8557,2543.3262,19.6311,318.4338,0,0,0,0,0,0); //
    AddPlayerClass(8,399.8557,2543.3262,19.6311,318.4338,0,0,0,0,0,0); //
    AddPlayerClass(9,399.8557,2543.3262,19.6311,318.4338,0,0,0,0,0,0); //
    AddPlayerClass(10,399.8557,2543.3262,19.6311,318.4338,0,0,0,0,0,0); //
    AddPlayerClass(11,399.8557,2543.3262,19.6311,318.4338,0,0,0,0,0,0); //
    AddPlayerClass(12,399.8557,2543.3262,19.6311,318.4338,0,0,0,0,0,0); //
    AddPlayerClass(13,399.8557,2543.3262,19.6311,318.4338,0,0,0,0,0,0); //
    AddPlayerClass(14,399.8557,2543.3262,19.6311,318.4338,0,0,0,0,0,0); //
    AddPlayerClass(15,399.8557,2543.3262,19.6311,318.4338,0,0,0,0,0,0); //
    AddPlayerClass(16,399.8557,2543.3262,19.6311,318.4338,0,0,0,0,0,0); //
    AddPlayerClass(17,399.8557,2543.3262,19.6311,318.4338,0,0,0,0,0,0); //
    AddPlayerClass(18,399.8557,2543.3262,19.6311,318.4338,0,0,0,0,0,0); //
    AddPlayerClass(19,399.8557,2543.3262,19.6311,318.4338,0,0,0,0,0,0); //
    AddPlayerClass(20,399.8557,2543.3262,19.6311,318.4338,0,0,0,0,0,0); //
    AddPlayerClass(21,399.8557,2543.3262,19.6311,318.4338,0,0,0,0,0,0); //
    AddPlayerClass(22,399.8557,2543.3262,19.6311,318.4338,0,0,0,0,0,0); //
    AddPlayerClass(23,399.8557,2543.3262,19.6311,318.4338,0,0,0,0,0,0); //
    ...// immer weiter bis 299 . Es gibt mehrere Cj Skins das kommt weil es eigentlich für die bestimmte Id keinen Skin gab da hat Rocksta Games an der Stelle einfach nen Cj Skin hingemacht.


  • Ich ignoriere mal einfach alle Beiträge über mir...

    Ich hab mal ne Frage.
    Ich habe bei Pawno schon paar Klassen und ein paar Fahrzeuge für ein DM-Script gescriptet.
    Jetzt will ich aber, dass eine der Klassen ne Schutzweste beim spawnen kriegt.
    Wie mache ich das?


    Achtung: Ich bin noch Anfänger!!!



    //oben unter den includes
    new SpecialClass[MAX_PLAYERS];
    //bei OnPlayerConnect
    SpecialClass[playerid] = 0;
    //--------------
    public OnPlayerRequestClass(playerid,classid)
    {
    if(classid == 3)//oder eben welche du willst
    {
    SpecialClass[playerid] = 1;
    }
    return 1;
    }
    // um mehere Klassen zu wählen:
    if(classid == 1 || classid == 2 || classid == 3)
    //--------------
    public OnPlayerRequestSpawn(playerid)
    {
    if(SpecialClass[playerid] == 1)
    {
    SetPlayerArmour(playerid,100.0);
    }
    return 1;
    }
    //--------------
    public OnPlayerSpawn(playerid)
    {
    if(SpecialClass[playerid] == 1)
    {
    SetPlayerArmour(playerid,100.0);
    }
    return 1;
    }
    //---------------

  • Ich hab mal alles so in meinen Script reingeschrieben. Der sagt mir dann aber 4 Errors.
    Alle seien in der Zeile, wo das Untere steht in der dick-makierten Zeile (bei mir line 81):


    error 017: undefined symbol "SpecialClass"
    error 001: expected token: ";", but found "]"
    error 029: invalid expression, assumed zero
    fatal error 107::pinch: too many error messages on one line :pinch:


    public OnPlayerRequestClass(playerid, classid)
    {
    if(classid == 3)//
    {
    SpecialClass[playerid] = 1;
    }
    PS
    Den letzten Teil wo es um "OnPlayerRequestSpawn" und "SetPlayerArmour" geht, hab ich schonmal verstanden, das andere noch nit so recht.
    :) Wäre nett, wenn du mir das nochmal genauer erläuterst, weil ich im übrigen immer noch nicht weiß, was ich mit "playerid" und classid anfangen soll. :)

  • Mach oben unter den includes noch
    new SpecialClass[MAX_PLAYERS];


    Public's werden immer bei einer Bestimmten Aktion aufgerufen bzw ausgeführt z.B OnPlayerConnect,wird wann aufgerufen?
    Wenn der spieler Connected,innerhalb dieses publics gibt es einen(1) Parameter und zwar playerid,eben halt die playerid vom spieler der connected,und mit der kann man dann arbeiten. Genauso bei RequestClass,es gibt wieder den spieler der es auslöst mit playerid aber es gibt einen zweiten parameter,nämlich die Classid die er wählt.

  • Ha, ich hab es. :thumbup: . Erstmal großes Dankeschön.
    Ich hab mir vorher nochmal ein tutorial zum TDM-Script angeschaut auf dieser Seite. Dort ist mir dann erstmal klar geworden, wie die Classid zustande kommt: nach der Reihenfolge ,in der die Klassen im OnGameModeInit - Callback stehen (bei 0 angefangen). Hab dann auch erstmal Teams gebildet.


    Dann habe ich nochmal die Version von InternetInk aka Benjamin angewandt. Allerdings hatte dann jede Klasse ab dann Schutzwesten, sobald man vorher mit der Klasse gespawnt hatte, welche auch Schutzweste haben sollte 8| .
    Dann ist mir eingefallen, dass ich es einfach so machen könnte, wie es in dem bereits erwähntem TDM Tutorial mit den Farben für die Teams gemacht wurde:
    Bei OnPlayerRequestClass erstmal jeder Klasse eine SpecialClass ID zuweisen und hinterher für jede Klasse bei OnPlayerSpawn hinschreiben, wie viel Armour sie bekommt.
    These: Nachdem man die Klasse mit Schutzweste ausgewählt hatte, wurde für den jeweiligen Spieler immer die Armour beim Spawn auf hundert gesetted (eingedeutschtes Verb von "set" im Passiv). Also musste ich sagen, dass er bei jedem Spawn einer anderen Class auch eine andere (oder keine Armour mitspawnen soll) Also unter OnPlayerSpawn:
    if (SpecialClass[playerid] == 1) { SetPlayerArmour(playerid,100.0); }
    else if (SpecialClass[playerid] == 2) { SetPlayerArmour(playerid,50.0); } //kriegt auch noch halbe Schutzweste :)
    else if (SpecialClass[playerid] == 3) { SetPlayerArmour(playerid,0.0); }
    else if (SpecialClass[playerid] == 4) { SetPlayerArmour(playerid,0.0); }
    else if (SpecialClass[playerid] == 5) { SetPlayerArmour(playerid,0.0); }
    else if (SpecialClass[playerid] == 6) { SetPlayerArmour(playerid,0.0); }