Wie mache ich ein Befehl für zwei Fraktionen? Den Befehl:/klingeln

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
  • Wie es oben schon steht möchte ich einen Befehl für zwei Fraktionen nutzen das wenn man in der Nähe des Pointes ist was im LSPD Interior ist,das dann kommt Jemand verlangt im LSPD.....
    Und wenn man bei dem Point der nähe der Fahrschule ist Fahrlehrer.....

  • Guten Abend,
    ganz einfach du suchst dir die Koordinaten raus und machst das ganze so



    if(strcmp(cmd, "/klingel",true) == 0)
    {
    if(IsPlayerInRangeOfPoint(playerid,......))
    {
    //dein Inhalt
    }
    else if(IsPlayerInRangeOfPoint(playerid,.....))
    {
    //dein Inhalt
    }
    else
    {
    //dein Inhalt
    }
    return 1;
    }


    -----------------


    Mit freundlichen Grüßen,


    [GGR]Radio_Bot

  • Du machst das ganzeinfach so:



    ocmd:klingel(playerid,params[])
    {
    if(IsPlayerInRangeOfPoint(playerid,X,Y,Z))
    {
    SendClientMessage(playerid,BLAU,"Du hast geklinkelt"); //Was passieren soll.
    return 1;
    }
    else if(IsPlayerInRangeOfPoint(playerid,X,Y,Z))
    {
    SendClientMessage(playerid,BLAU,"Du hast geklinkelt"); //Was passieren soll.
    return 1;
    }
    return SendClientMessage(playerid,BLAU,"Du bist nicht in der Nähe einer Klingel");
    }


    Wenn du jetzt willst, dass es z.B. Cops lesen können, musst du einfach folgendes machen:

    ocmd:klingel(playerid,params[])
    {
    new text[128];
    new name = GetPlayerName(playerid);
    if(IsPlayerInRangeOfPoint(playerid,X,Y,Z))
    {
    SendClientMessage(playerid,BLAU,"Du hast geklinkelt"); //Was passieren soll.
    for(new i=0; i<getmaxplayers(); i++)
    <getmaxplayers(); i++)
    {
    if(IsPlayerConnected(i))
    {
    if(GetPVarInt(i,"Fraktion")) //Fraktionsabfrage
    {
    format(text,sizeof(text),"[KLINGELSYSTEM] %s hat geklingelt.",name) //name musst du halt z.B. nen stock machen oder Public oder wie hier
    SendClientMessage(i,BLAU,text);
    }
    }
    }
    return 1;
    }
    }




    Außerdem wäre es auch möglich ob einfach ein new klingel[Anzahl der Klingeln zu machen] und diese dann definieren.
    Dann könnte man auch sagen, dass z.B. klingel[0] für Cops ist und klingel[2] für Fahrlehrer. Dies wäre dann 1. resourcensparend und 2. weniger Scriptarbeit. (-> 1 String mit einem switch würde gehen)



    //Edit 1: else vergessen
    //Edit 2: 3. Möglichkeit hinzugefügt

  • Habe ein problem habe es mal versucht der Befehl lautet:
    also das mit dem LSPD geht ab Zeile 235(else if...)geht es nicht mehr dann kommen diese Errors:
    C:\Dokumente und Einstellungen\User\Desktop\server\gamemodes\tutorial.pwn(235) : error 029: invalid expression, assumed zero
    C:\Dokumente und Einstellungen\User\Desktop\server\gamemodes\tutorial.pwn(235) : warning 202: number of arguments does not match definition
    C:\Dokumente und Einstellungen\User\Desktop\server\gamemodes\tutorial.pwn(235) : error 001: expected token: ";", but found "return"
    C:\Dokumente und Einstellungen\User\Desktop\server\gamemodes\tutorial.pwn(236) : warning 225: unreachable code
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    2 Errors.


    Script+Zeile:
    ocmd:klingeln(playerid,params[])
    {
    #pragma unused params
    if(!IsPlayerInRangeOfPoint(playerid,1,246.5137,118.2514,1003.2188))return SendClientMessage(playerid,ROT,"Das geht nur im LSPD/SFPD");
    {
    SendClientMessage(playerid,ROT,"Du hast geklingelt.Warte einen Moment.");
    for(new i=0; i< GetMaxPlayers(); i++)
    {
    if(IsPlayerConnected(i))
    {
    if(GetPVarInt(i,"Fraktion")==1)
    {
    SendClientMessage(i,ROT,"Jemand verlangt im SFPD nach einem Beamten.");
    }
    }
    }
    }
    else if(!IsPlayerInRangeOfPoint(playerid,773.5461,-1328.0181,13.5469)) return SendClientMessage(playerid,ROT,"Du bist nicht am //Ab hier
    Klingel Point der Fahrschule!");
    {
    SendClientMessage(playerid,ROT,"Du hast geklingelt.Warte einen Moment.");
    for(new i=0; i< GetMaxPlayers(); i++)
    {
    if(IsPlayerConnected(i))
    {
    if(GetPVarInt(i,"Fraktion")==4)
    {
    SendClientMessage(i,ROT,"Jemand verlangt an der Fahrschule nach einem Fahrlehrer.Fahre bitte Sofort hin!");
    }
    }
    }
    }
    return 1;
    }

  • ocmd:klingeln(playerid,params[])
    {
    #pragma unused params
    if(!IsPlayerInRangeOfPoint(playerid,1,246.5137,118.2514,1003.2188))return SendClientMessage(playerid,ROT,"Das geht nur im LSPD/SFPD");
    {
    SendClientMessage(playerid,ROT,"Du hast geklingelt.Warte einen Moment.");
    for(new i=0; i< GetMaxPlayers(); i++)
    {
    if(IsPlayerConnected(i))
    {
    if(GetPVarInt(i,"Fraktion")==1)
    {
    SendClientMessage(i,ROT,"Jemand verlangt im SFPD nach einem Beamten.");
    }
    }
    }
    }
    else if(!IsPlayerInRangeOfPoint(playerid,773.5461,-1328.0181,13.5469)) return SendClientMessage(playerid,ROT,"Du bist nicht am Klingel Point der Fahrschule!");
    {
    SendClientMessage(playerid,ROT,"Du hast geklingelt.Warte einen Moment.");
    for(new i=0; i< GetMaxPlayers(); i++)
    {
    if(IsPlayerConnected(i))
    {
    if(GetPVarInt(i,"Fraktion")==4)
    {
    SendClientMessage(i,ROT,"Jemand verlangt an der Fahrschule nach einem Fahrlehrer.Fahre bitte Sofort hin!");
    }
    }
    }
    }
    return 1;
    }

  • Ne funzt nicht aber trotzdem danke dann kommen diese Errors:
    C:\Dokumente und Einstellungen\User\Desktop\server\gamemodes\tutorial.pwn(236) : error 029: invalid expression, assumed zero
    C:\Dokumente und Einstellungen\User\Desktop\server\gamemodes\tutorial.pwn(236) : warning 215: expression has no effect
    C:\Dokumente und Einstellungen\User\Desktop\server\gamemodes\tutorial.pwn(236) : error 001: expected token: ";", but found "if"
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    2 Errors.
    //edit ein "Error" weg neuer Compiler dazu