Team abfragen [Skinauswahl] -> letzter Beitrag

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
  • Hey, ihr Scripter!
    Ich hab ein Problem, ich möchte bei der Skinauswahl abfragen, zu welchem Team playerid gehört und dann
    dementprechend den Spawn zulassen oder verhindern.
    Also playerid ist im gTeam Ballas und versucht beispielsweise als Zivilist oder Grove zu spawnen, aber dies wird verhindert, da playerid nicht
    zu diesem gTeam gehört.
    Hab schon ne Menge versucht, wollte aber nicht klappen.
    Hier mal meine Zeilen:
    enum Info
    {
    AdminLevel,
    Leader,
    Fraktion,
    sex,
    age,
    logged,
    }
    public OnPlayerRequestClass(playerid, classid)
    {
    SetPlayerPos(playerid,1738.9098,-1948.2825,14.1172);
    SetPlayerFacingAngle(playerid,177.2759);
    SetPlayerCameraPos(playerid,1738.9277,-1951.4822,14.1172);
    SetPlayerCameraLookAt(playerid,1738.9098,-1948.2825,14.1172);


    switch(classid)
    {
    case 0,1,2,3,4,5: gTeam[playerid] = TEAM_GROVE, GameTextForPlayer(playerid,"~g~Grove Street Families",500,3);
    case 6,7,8: gTeam[playerid] = TEAM_BALLAS, GameTextForPlayer(playerid,"~p~Jefferson 82 Ballas",500,3);
    case 9,10,11: gTeam[playerid] = TEAM_VAGOS, GameTextForPlayer(playerid,"~y~Los Santos Vagos",500,3);
    case 12,13,14,15,16,17,18,19: gTeam[playerid] = TEAM_COPS, GameTextForPlayer(playerid,"~w~Cops",500,3);
    case 20,21,22: gTeam[playerid] = TEAM_AZTECAS, GameTextForPlayer(playerid,"~b~Varrios Los Aztecas",500,3);
    case 23,24,25,26,27: gTeam[playerid] = TEAM_TRIADEN, GameTextForPlayer(playerid,"~r~Triaden",500,3);
    default: gTeam[playerid] = TEAM_ZIVILISTEN, GameTextForPlayer(playerid,"~w~Zivilisten",500,3);
    }
    return 1;
    }
    public OnPlayerSpawn(playerid)
    {
    clock();


    if(gTeam[playerid] == TEAM_COPS)
    {
    SetPlayerPos(playerid,1568.7911,-1691.0333,5.8906);
    }
    else if(gTeam[playerid] == TEAM_GROVE )
    {
    SetPlayerPos(playerid,2496.0425,-1694.8163,1014.7422);
    SetPlayerInterior(playerid,3);
    SetPlayerVirtualWorld(playerid,39);
    SetPlayerFacingAngle(playerid,0.9302);
    }
    else if(gTeam[playerid] == TEAM_BALLAS )
    {
    SetPlayerPos(playerid,318.564971,1118.209960,1083.882812);
    SetPlayerInterior(playerid,5);
    SetPlayerVirtualWorld(playerid,40);
    }
    else if(gTeam[playerid] == TEAM_VAGOS )
    {
    SetPlayerPos(playerid,244.7236,305.0915,999.1484);
    SetPlayerInterior(playerid,1);
    SetPlayerVirtualWorld(playerid,41);
    SetPlayerFacingAngle(playerid,89.1031);
    }
    else if(gTeam[playerid] == TEAM_AZTECAS)
    {
    SetPlayerPos(playerid,2466.2881,-1698.2965,1013.5078);
    SetPlayerInterior(playerid,2);
    SetPlayerVirtualWorld(playerid,42);
    SetPlayerFacingAngle(playerid,271.8825);
    }
    else if(gTeam[playerid] == TEAM_TRIADEN)
    {
    SetPlayerPos(playerid,1271.7618,-781.2479,1089.9375);
    SetPlayerInterior(playerid,5);
    SetPlayerVirtualWorld(playerid,43);
    SetPlayerFacingAngle(playerid,91.5889);
    }
    return 1;
    }
    Hab jetzt mal die betroffenen Zeilen gepostet, jedenfalls denke ich das. :D
    Wäre schön, wenn mir einer einen Tipp geben kann.
    Hab alles mögliche versucht, Fraktion mit dini_Int vorher geladen und alle AddPlayerClass Zeilen bei OnPlayerRequestClass eingefügt und vorher das
    geladene gTeam [dini_Int] abgefragt etc.
    Wollte alles nicht funktionieren.
    Die Skinauswal war dann einfach verbuggt..vielleicht ist hier ja ein erfahrener Scripter, der helfen kann.
    mfG
    Walker

  • Hallo Walker


    Das könnte daran liegen weil du bei der Skinauswahl den jeweiligen Spieler ins richtige Team für den Skin setzt ...


    switch(classid)
    {
    case 0,1,2,3,4,5: GameTextForPlayer(playerid,"~g~Grove Street Families",500,3);
    case 6,7,8: GameTextForPlayer(playerid,"~p~Jefferson 82 Ballas",500,3);
    case 9,10,11: GameTextForPlayer(playerid,"~y~Los Santos Vagos",500,3);
    case 12,13,14,15,16,17,18,19: GameTextForPlayer(playerid,"~w~Cops",500,3);
    case 20,21,22: GameTextForPlayer(playerid,"~b~Varrios Los Aztecas",500,3);
    case 23,24,25,26,27: GameTextForPlayer(playerid,"~r~Triaden",500,3);
    default: GameTextForPlayer(playerid,"~w~Zivilisten",500,3);
    }


    so müsste es gehen.
    Ich bin mir aber nicht ganz sicher.


    Mit freundlichen Grüßen
    Darkness321

  • Ich komm doch nicht klar mit dem return X(
    Weiß nicht, wo das rein soll. Also in welcher public ich abfragen muss, ob derjenige in dem team ist,
    damit er, falls es nicht stimmt, nicht spawnt. Eig. hab ich gedacht, das kommt zu OnPlayerSpawn, aber da kamen Errors..
    mfG
    Walker


    //editiert
    //2
    Habs jetzt bei OnPlayerSpawn richtig am Ende, aber irgendwie funkt das nicht. DIe Fraktion wird jedoch beim login geladen, da
    ich als Ballas Member trotz Triadenskin in der Ballas Base spawne.


    Weiß nicht, wo ich das sonst einfügen soll..
    //3
    Hab jetzt soweit das ganze Script vom alten gTeam befreit, suche aber immernoch eine Möglichkeit, die Skins anderer Fraktionen zu sperren.
    Wäre schön, wenn mir jemand hilft. :)


    //4
    Hier nochmal meine jetzigen Zeilen!
    public OnPlayerRequestClass(playerid, classid)
    {
    SetPlayerPos(playerid,1738.9098,-1948.2825,14.1172);
    SetPlayerFacingAngle(playerid,177.2759);
    SetPlayerCameraPos(playerid,1738.9277,-1951.4822,14.1172);
    SetPlayerCameraLookAt(playerid,1738.9098,-1948.2825,14.1172);


    switch(classid)
    {
    case 0,1,2,3,4,5: GameTextForPlayer(playerid,"~g~Grove Street Families",500,3);
    case 6,7,8: GameTextForPlayer(playerid,"~p~Jefferson 82 Ballas",500,3);
    case 9,10,11: GameTextForPlayer(playerid,"~y~Los Santos Vagos",500,3);
    case 12,13,14,15,16,17,18,19: GameTextForPlayer(playerid,"~w~Cops",500,3);
    case 20,21,22: GameTextForPlayer(playerid,"~b~Varrios Los Aztecas",500,3);
    case 23,24,25,26,27: GameTextForPlayer(playerid,"~r~Triaden",500,3);
    default: GameTextForPlayer(playerid,"~w~Zivilisten",500,3);
    }
    return 1;
    }

    public OnPlayerSpawn(playerid)
    {
    clock();


    if(pInfo[playerid][Fraktion] == 4)
    {
    SetPlayerPos(playerid,1568.7911,-1691.0333,5.8906);
    }
    else if(pInfo[playerid][Fraktion] == 1)
    {
    SetPlayerPos(playerid,2496.0425,-1694.8163,1014.7422);
    SetPlayerInterior(playerid,3);
    SetPlayerVirtualWorld(playerid,39);
    SetPlayerFacingAngle(playerid,0.9302);
    }
    else if(pInfo[playerid][Fraktion] == 2)
    {
    SetPlayerPos(playerid,318.564971,1118.209960,1083.882812);
    SetPlayerInterior(playerid,5);
    SetPlayerVirtualWorld(playerid,40);
    }
    else if(pInfo[playerid][Fraktion] == 3)
    {
    SetPlayerPos(playerid,244.7236,305.0915,999.1484);
    SetPlayerInterior(playerid,1);
    SetPlayerVirtualWorld(playerid,41);
    SetPlayerFacingAngle(playerid,89.1031);
    }
    else if(pInfo[playerid][Fraktion] == 5)
    {
    SetPlayerPos(playerid,2466.2881,-1698.2965,1013.5078);
    SetPlayerInterior(playerid,2);
    SetPlayerVirtualWorld(playerid,42);
    SetPlayerFacingAngle(playerid,271.8825);
    }
    else if(pInfo[playerid][Fraktion] == 6)
    {
    SetPlayerPos(playerid,1271.7618,-781.2479,1089.9375);
    SetPlayerInterior(playerid,5);
    SetPlayerVirtualWorld(playerid,43);
    SetPlayerFacingAngle(playerid,91.5889);
    }
    else return SendClientMessage(playerid,0xC8C8C8FF,"Dieser Skin gehört einer andere Fraktion an, wähle einen Anderen!");
    return 1;
    }


    Eig. sollte jetzt dort stehen, dass man den Skin nicht wählen kann, aber es funktioniert immernoch nicht..
    Verstehe nicht warum, denn beim Spawn ist die Fraktion bereits geladen, da man ja auch am zugehörigen Ganghaus spawnt.


    //4
    Hab eine Abfrage bei OnPlayerRquestClass eingefügt und dann gemerkt, dass man sobald man return 0; bei OnPlayerRequestClass benutzt dort immer nur
    der CJ SKin erscheint. Kann mir keiner helfen? Jetzt hat es bei keiner public funktioniert.. -.-