[GodFather] Fraktionen Skins zuweisen

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
  • Nabend,


    Da ich das immer öfter lese und mich auch schon leute dannach gefragt haben, mache ich hier einfach mal ein kleines Tutorial dafür.
    Fangen wir an:
    Vorraussetzung:

    • Grundwissen in PAWN


    Als erstes öffen wir unseren GodFather und öffnen dort die Suchfunktion (STRG+F).
    In dem Fenster das sich nun öffnet geben wir folgenden begriff ein:
    new JoinPed
    Wir werden nun zu einer langen Liste weitergeleitet. Dort sind sämtliche fraktionsskins aufgelistet.
    Das sieht in etwa so aus:
    new JoinPed[58][1] = {
    {280},//POLICE_FORCE
    {281},
    {282},
    {283},
    {284},
    {285},
    {288},
    {71},
    // Und so weiter


    Um neue Skins hinzu zu fügen schreiben wir einfach unten die neuen Skins dazu, achten aber darauf für jeden skin die hier in Rot markierte Zahl ebenfalls um 1 zu erhöhen: new JoinPed[58][1].
    Wichtig ist das die Skins nach unten kommen! Wenn ihr sie oben hinmacht kommen alle Skins durcheinander!
    Desweiteren müsst ihr auf das Kommar achten:
    {114},
    {115},
    {116}
    Die letzte Zahl darf kein Kommar mehr haben! Und bitte achtet darauf beim erweitern der "ehemals letzten Zahl" ein Kommar zu verpassen!



    Weiter im Text:
    Um die Skins nun den Fraktionen zu zuweisen suchen wir wieder folgendes im Script: public OnPlayerText(playerid, text[])
    Dort finden wir dann mehrere Listen die so aus sehen: case 1: //Police Force
    {
    if(SelectCharPlace[playerid] == 1) { SetPlayerSkin(playerid, JoinPed[0][0]); SelectCharPlace[playerid] = 2; ChosenSkin[playerid] = JoinPed[0][0]; }
    else if(SelectCharPlace[playerid] == 2) { SetPlayerSkin(playerid, JoinPed[1][0]); SelectCharPlace[playerid] = 3; ChosenSkin[playerid] = JoinPed[1][0]; }
    else if(SelectCharPlace[playerid] == 3) { SetPlayerSkin(playerid, JoinPed[2][0]); SelectCharPlace[playerid] = 4; ChosenSkin[playerid] = JoinPed[2][0]; }
    else if(SelectCharPlace[playerid] == 4) { SetPlayerSkin(playerid, JoinPed[3][0]); SelectCharPlace[playerid] = 5; ChosenSkin[playerid] = JoinPed[3][0]; }
    else if(SelectCharPlace[playerid] == 5) { SetPlayerSkin(playerid, JoinPed[4][0]); SelectCharPlace[playerid] = 6; ChosenSkin[playerid] = JoinPed[4][0]; }
    else if(SelectCharPlace[playerid] == 6) { SetPlayerSkin(playerid, JoinPed[5][0]); SelectCharPlace[playerid] = 7; ChosenSkin[playerid] = JoinPed[5][0]; }
    else if(SelectCharPlace[playerid] == 7) { SetPlayerSkin(playerid, JoinPed[6][0]); SelectCharPlace[playerid] = 8; ChosenSkin[playerid] = JoinPed[6][0]; }
    //else if(SelectCharPlace[playerid] == 8) { SetPlayerSkin(playerid, JoinPed[7][0]); SelectCharPlace[playerid] = 9; ChosenSkin[playerid] = JoinPed[7][0]; }
    else if(SelectCharPlace[playerid] == 9) { SetPlayerSkin(playerid, JoinPed[8][0]); SelectCharPlace[playerid] = 10; ChosenSkin[playerid] = JoinPed[8][0]; }
    else if(SelectCharPlace[playerid] == 10) { SetPlayerSkin(playerid, JoinPed[9][0]); SelectCharPlace[playerid] = 11; ChosenSkin[playerid] = JoinPed[9][0]; }
    else if(SelectCharPlace[playerid] == 11) { SetPlayerSkin(playerid, JoinPed[10][0]); SelectCharPlace[playerid] = 1; ChosenSkin[playerid] = JoinPed[10][0]; }
    }
    Um nun die Skins zu verteilen kopieren wir die letzte spalte und fügen sie weiter unten ein.
    Wichtig hierbei ist zu beachten die Zahl bei "case <zahl>:" auf die Zahl eurer Fraktions-ID zu erhöhen.


    Um nun die richtigen Skins zuzuweisen müsst ihr die Rot markierten Stellen mit den Nummern eurer neu hinzugefügten ID´s zu ersetzen.
    Hierzu die erklärung: Bei den festgelegten Model-ID´s hat die erste ID die Nummer 0. Dann logischerweise die zweite Nummer 1 usw.
    Diese Nummern sind gefragt! NICHT die Model-ID`s!


    Weiter im Text, hier müssen die Rot markierten stellen mit den Nummern ersetzt werden:
    if(SelectCharPlace[playerid] == 1) { SetPlayerSkin(playerid, JoinPed[57][0]); SelectCharPlace[playerid] = 1; ChosenSkin[playerid] = JoinPed[57][0]; }


    Weiter hinweis:
    Wenn ihr einer Fraktion mehrere Skins geben wollt müsst ihr das "if" am anfang durch eine "else if" ersetzen und die zahl bei "SelectCharPlace" um 1 erhöhen! (Die veränderten stellen sind Grün markiert) Also so:
    else if(SelectCharPlace[playerid] == 2) { SetPlayerSkin(playerid, JoinPed[57][0]); SelectCharPlace[playerid] = 2; ChosenSkin[playerid] = JoinPed[57][0]; }



    Sollten Fragen auftauchen bin ich gerne berreit euch zu helfen!
    MfG Firer

    Einmal editiert, zuletzt von Firerfan ()

  • also bei case angebne wieviele Fraktionen?



    edit//// Verstanden aber bei den rot markierten Zahlen soll man da die Skin ID reinschreiben ja oder?

    Einmal editiert, zuletzt von milanboy38 ()

  • Nein, in die Rot markierten Zahlen kommen wie oben erwähnt die nummern von der liste.


    {280},//POLICE_FORCE
    {281},
    {282},
    {283},
    {284},
    {285},
    {288},
    {71},


    In dem fall währen:

    • Skin 281 - Nummer 0
    • Skin 282 - Nummer 1

    usw.
    Das heist die Skins in der liste haben nummern die von 0 bis zu deiner Zahl gehen. Und diese Nummer muss dort eingetragen werden^^



    MfG Firer

  • Ich weiß der Thread ist
    bisschen alt , jedoch bekomme ich errors ...


    C:\Dokumente und Einstellungen\------\Desktop\Gta San Andreas Multiplayer\Server\gamemodes\gf.pwn(1128) : error 018: initialization data exceeds declared size
    C:\Dokumente und Einstellungen\\-----\Gta San Andreas Multiplayer\Server\gamemodes\gf.pwn(1130) : error 010: invalid function or declaration
    C:\Dokumente und Einstellungen\------\Desktop\Gta San Andreas Multiplayer\Server\gamemodes\gf.pwn(26115) : error 032: array index out of bounds (variable "JoinPed")
    C:\Dokumente und Einstellungen\------\Desktop\Gta San Andreas Multiplayer\Server\gamemodes\gf.pwn(26115) : error 032: array index out of bounds (variable "JoinPed")
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase


    new JoinPed[60][1] = {
    {280},//POLICE_FORCE
    {281},
    {282},
    {283},
    {284},
    {285},
    {288},
    {71},
    {166},
    {295},
    {148},
    {286},//FBI/ATF
    {164},
    {163},
    {287},//NATIONAL_GUARD
    {285},
    {70},//FIRE/AMBULANCE
    {274},
    {275},
    {276},
    {277},
    {278},
    {279},
    {258},//LA_COSA_NOSTRA
    {127},
    {126},
    {125},
    {124},
    {113},
    {111},
    {98},
    {120},//Triaden
    {121},
    {122},
    {123},
    {169},
    {186},
    {228},
    {127},//HITMANS
    {165},
    {186},
    {93},
    {141},
    {148},//NEWS_REPORTERS
    {188},
    {187},
    {255},//TAXI_CAB_COMPANY
    {253},
    {59},//DRIVING/FLYING_SCHOOL
    {60},//DRIVING/FLYING_SCHOOL
    {76},//DRIVING/FLYING_SCHOOL
    {150},//DRIVING/FLYING_SCHOOL
    {173},
    {174},
    {175},
    {121},
    {122},
    {123},
    {105},
    {106},
    {107}
    };


    case 12: //DaNang Boys
    {
    if(SelectCharPlace[playerid] == 1) { SetPlayerSkin(playerid, JoinPed[55][0]); SelectCharPlace[playerid] = 2; ChosenSkin[playerid] = JoinPed[55][0]; }
    else if(SelectCharPlace[playerid] == 2) { SetPlayerSkin(playerid, JoinPed[56][0]); SelectCharPlace[playerid] = 3; ChosenSkin[playerid] = JoinPed[56][0]; }
    else if(SelectCharPlace[playerid] == 3) { SetPlayerSkin(playerid, JoinPed[57][0]); SelectCharPlace[playerid] = 4; ChosenSkin[playerid] = JoinPed[57][0]; }


    }
    case 15: //Grove Street
    {
    if(SelectCharPlace[playerid] == 1) { SetPlayerSkin(playerid, JoinPed[58][0]); SelectCharPlace[playerid] = 3; ChosenSkin[playerid] = JoinPed[58][0]; }
    else if(SelectCharPlace[playerid] == 2) { SetPlayerSkin(playerid, JoinPed[59][0]); SelectCharPlace[playerid] = 2; ChosenSkin[playerid] = JoinPed[59][0]; }
    else if(SelectCharPlace[playerid] == 3) { SetPlayerSkin(playerid, JoinPed[60][0]); SelectCharPlace[playerid] = 1; ChosenSkin[playerid] = JoinPed[60][0]; }


    }


    Was habe ich falsch gemacht ?
    Pls Help.


    MfG
    X-Spider

  • kann sein das case 12 und du dann case 15 geschrieben hast schreib mal case 15 auf case 12

  • wie kann man einer Fraktion die Skins entnehmen?