Wie realisiere ich einen Fraktionschat?

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
  • Hallo Leute,


    ich bin noch recht neu bei GTA:N und probiere noch rum. Wo ich jetzt garnicht weiter komme, ich wollte ein Fraktionschat machen, leider schlägt das
    mit der Schleife immer fehl. Kann hier irgend jemand ein Beispiel posten? Wie ich ne Schleife mit Max_Players und so mache?


    MfG

    Nexus Reallife: ts1.gta4.me:4014
    Schaut vorbei!

  • Du musst mit einer Schleife durch alle Spieler gehen (Liste bekommst du mit API.getAllPlayers())
    Naürlich musst du dem Spieler irgendwie eine Fraktion zuweisen (EntityData, Account-Klasse, usw...)
    In der Schleife fragst du einfach die Fraktion ab und sendest die Nachricht nur den Spielern, die in der selben Fraktion sind, wie der Sender.

  • Ja das mit der Fraktionsabfrage habe ich ja verstanden. Wie genau ist das mit der Schleife, wie sieht diese aus? Als ich mal eine
    gemacht hab und der int = i war kamen nur Errors.

    Nexus Reallife: ts1.gta4.me:4014
    Schaut vorbei!

  • [Command("a",GreedyArg = true)]
    public void AdminChat(Client player, string Text)
    {
    if(API.getEntityData(player,"Administrator") >= 1)
    {
    for(var i = 0; i < API.getAllPlayers(); i++)
    {
    if(API.getEntityData(i,"Administrator") >= 1)
    {
    API.sendChatMessageToPlayer(i,"~y~[AC]: " + player.name + " " + Text);
    }
    }
    }
    else
    {
    API.sendChatMessageToPlayer(player,"~r~Du besitzt nicht die befugten Rechte.");
    }
    }


    [10:52:05] Error (CS0019) at 813: Der Operator '<' kann nicht auf Operanden vom Typ 'int' und 'System.Collections.Generic.List<GTANetworkServer.Client>' angewendet werden.
    [10:52:05] Error (CS1502) at 815: Die beste Übereinstimmung für die überladene 'GTANetworkServer.API.getEntityData(GTANetworkShared.NetHandle, string)'-Methode hat einige ungültige Argumente.
    [10:52:05] Error (CS1503) at 815: Argument '1': Konvertierung von 'int' in 'GTANetworkShared.NetHandle' nicht möglich.
    [10:52:05] Error (CS1502) at 817: Die beste Übereinstimmung für die überladene 'GTANetworkServer.API.sendChatMessageToPlayer(GTANetworkServer.Client, string)'-Methode hat einige ungültige Argumente.
    [10:52:05] Error (CS1503) at 817: Argument '1': Konvertierung von 'int' in 'GTANetworkServer.Client' nicht möglich.


    Und wenn ich statt var ein int mache kommt die gleiche scheiße.

    Nexus Reallife: ts1.gta4.me:4014
    Schaut vorbei!

  • getAllPlayers gibt auch den Wert als Liste zurück.


    Versuch mal:



    Bin aber noch recht neu darin kann auch fehlschlagen.

    „Auge um Auge - und die ganze Welt wird blind sein.“
    - Mahatma Gandhi

  • getAllPlayers gibt auch den Wert als Liste zurück.


    Versuch mal:


    Bin aber noch recht neu darin kann auch fehlschlagen.


    [12:43:41] Error (CS1502) at 834: Die beste Übereinstimmung für die überladene 'GTANetworkServer.API.getEntityData(GTANetworkShared.NetHandle, string)'-Methode hat einige ungültige Argumente.
    [12:43:41] Error (CS1503) at 834: Argument '1': Konvertierung von 'int' in 'GTANetworkShared.NetHandle' nicht möglich.
    [12:43:41] Error (CS1502) at 836: Die beste Übereinstimmung für die überladene 'GTANetworkServer.API.sendChatMessageToPlayer(GTANetworkServer.Client, string)'-Methode hat einige ungültige Argumente.
    [12:43:41] Error (CS1503) at 836: Argument '1': Konvertierung von 'int' in 'GTANetworkServer.Client' nicht möglich.

    Nexus Reallife: ts1.gta4.me:4014
    Schaut vorbei!

  • Ich weiß jetzt nicht aber ich glaube man muss das "i" in Klammern setzen und davor die Var der Liste schreiben.
    So das er dann aus der Liste den wert der "i" nimmt.
    Also statt sendChat... i,... : sendChat... Players [ i ] ... .

    „Auge um Auge - und die ganze Welt wird blind sein.“
    - Mahatma Gandhi

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen