Automatische Tore für Fraktionen

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


    Ich hab schon alles durchsucht, aber nichts gefunden was auch funktioniert hat.


    Also ich möchte gerne automatische Tore scripten, die nur aufgehen, wenn man in einer bestimmten Fraktion ist.
    Ich bin gerade bei den LSPD Toren bei.


    Momentan sieht es so aus:
    public CheckGate()
    {
    new lspdgate1_status;
    for(new i;i<MAX_PLAYERS;i++)
    {
    if(!IsPlayerConnected(i)) continue;
    if(IsPlayerInRangeOfPoint(i,10.0,1549.62109375, -1628.046875, 16.296792984009))lspdgate1_status=1;
    }
    if(lspdgate1_status)MoveObject(lspdgate1,1549.9049072266, -1618.0844726563, 16.296792984009,2);
    else MoveObject(lspdgate1,1549.62109375, -1628.046875, 16.296792984009,2);

    new lspdgate2_status;
    for(new i;i<MAX_PLAYERS;i++)
    {
    if(!IsPlayerConnected(i)) continue;
    if(IsPlayerInRangeOfPoint(i,10.0,1589.341796875, -1637.9111328125, 14.639354705811))lspdgate2_status=1;
    }
    if(lspdgate2_status)MoveObject(lspdgate2,1589.341796875, -1637.9111328125, 10.01442527771,2);
    else MoveObject(lspdgate2,1589.341796875, -1637.9111328125, 14.639354705811,2);
    }


    Die sollen halt nur aufgehen, wenn man ein Cop ist.


    PS: Ich hab alles nach dem Tutorial eingefügt: http://wiki.sa-mp.com/wiki/Automatic_Gates
    Es steht halt nicht drinne wie man das für Fraktionen machen kann.


    MfG

  • Also :
    nehmen wir an das du mit: "pInfo[playerid][team]" arbeitest dan müsste es so sein
    public CheckGate()
    {
    new lspdgate1_status;
    for(new i;i<MAX_PLAYERS;i++)
    {
    if(!IsPlayerConnected(i)) continue;
    if(IsPlayerInRangeOfPoint(i,10.0,1549.62109375, -1628.046875, 16.296792984009))lspdgate1_status=1;
    if(pInfo[playerid][team] == /*....*/ )//wie du dein team oben definiert hast zB: #define TEAM_LSPD 1 dann nur TEAM_LSPD hinschreiben
    {
    }
    }
    if(lspdgate1_status)MoveObject(lspdgate1,1549.9049072266, -1618.0844726563, 16.296792984009,2);
    else MoveObject(lspdgate1,1549.62109375, -1628.046875, 16.296792984009,2);

    new lspdgate2_status;
    for(new i;i<MAX_PLAYERS;i++)
    {
    if(!IsPlayerConnected(i)) continue;
    if(IsPlayerInRangeOfPoint(i,10.0,1589.341796875, -1637.9111328125, 14.639354705811))lspdgate2_status=1;
    if(pInfo[playerid][team] == /*....*/ )//wie du dein team oben definiert hast zB: #define TEAM_LSPD 1 dann nur TEAM_LSPD hinschreiben
    {
    }
    }
    if(lspdgate2_status)MoveObject(lspdgate2,1589.341796875, -1637.9111328125, 10.01442527771,2);
    else MoveObject(lspdgate2,1589.341796875, -1637.9111328125, 14.639354705811,2);
    }


    Weiß nich genau obs geht aber denke es sollte so funzen ^^

  • Fast ganz oben:


    forward CheckGate();


    Unter public OnGamemodeInit()


    SetTimer("CheckGate",1000,true);


    lspdgate1 = CreateObject(2990, 1549.62109375, -1628.046875, 16.296792984009, 0, 0, 269.74182128906);
    lspdgate2 = CreateObject(3037, 1589.341796875, -1637.9111328125, 14.639354705811, 0, 0, 270.49987792969);


    Fast ganz unten ist das:


    public CheckGate()
    {
    new lspdgate1_status;
    for(new i;i<MAX_PLAYERS;i++)
    {
    if(!IsPlayerConnected(i)) continue;
    if(IsPlayerInRangeOfPoint(i,10.0,1549.62109375, -1628.046875, 16.296792984009))lspdgate1_status=1;
    if(pInfo[playerid][gTeam] == LSPolizei) // Zeile 1516
    {
    }
    }
    if(lspdgate1_status)MoveObject(lspdgate1,1549.9049072266, -1618.0844726563, 16.296792984009,2);
    else MoveObject(lspdgate1,1549.62109375, -1628.046875, 16.296792984009,2);

    new lspdgate2_status;
    for(new i;i<MAX_PLAYERS;i++)
    {
    if(!IsPlayerConnected(i)) continue;
    if(IsPlayerInRangeOfPoint(i,10.0,1589.341796875, -1637.9111328125, 14.639354705811))lspdgate2_status=1;
    if(pInfo[playerid][gTeam] == LSPolizei) // Zeile 1528
    {
    }
    }
    if(lspdgate2_status)MoveObject(lspdgate2,1589.341796875, -1637.9111328125, 10.01442527771,2);
    else MoveObject(lspdgate2,1589.341796875, -1637.9111328125, 14.639354705811,2);
    }


    Da kommen denn folgende Errors:


    C:\Users\Administrator\Desktop\samp03 svr\gamemodes\lsms_rl.pwn(1516) : error 017: undefined symbol "playerid"
    C:\Users\Administrator\Desktop\samp03 svr\gamemodes\lsms_rl.pwn(1528) : error 017: undefined symbol "playerid"


    Die Zeilen hab ich im Text makiert.
    Wäre schön wenn es endlich mal klappen würde. Ich sitz da schon den ganzen Nachmittag dranne. ;(;(;(


    MfG