Wantedvergabe (brauche hilfe)

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
  • Also ich wollte für die Fraktion Polizei eine Wantedvergabe machen,doch mein Problem ist das, dass ich nicht weiß wie ich die Nachricht nur an die Fraktion Polizei und den der Wanteds bekommt gebe.
    Ich habe das so:(ich mache das mit ocmd)
    Der ganze Befehl:
    ocmd:su(playerid,params[])
    {
    new pID, grund[128], wanteds, string[128];
    if(sscanf(params,"usi",pID,wanteds,grund))return SendClientMessage(playerid,COLOR_LIGHTGREEN,"INFO: /su [ID][WANTEDs(1-6)] [GRUND]");
    if(pInfo[playerid][gTeam] == 2 || pInfo[playerid][gLeader] == 2)return SendClientMessage(playerid,COLOR_RED,"Du bist kein Mitglied von der Polizei");
    if(pInfo[playerid][duty] == 1)return SendClientMessage(playerid,COLOR_RED,"Du musst On-Duty sein um Wanteds zu vergeben");
    if(IsPlayerConnected(pID))return SendClientMessage(playerid,COLOR_RED,"Die SpielerID ist nicht online");
    format(string,sizeof(string),"%s hat von %s, %s Wanteds bekommen. GRUND: %s",pID,playerid,wanteds,grund); //EDIT Nachricht verändert
    SendClientMessage(gTeam(2),COLOR_ORANGE,string); //Hier sind die Fehler
    SendClientMessage(gLeader(2),COLOR_ORANGE,string);
    SendClientMessage(pID,COLOR_ORANGE,"Dein Wantedlevel hat sich erhöt");
    if(wanteds == 1)
    SetPlayerWantedLevel(playerid,1)
    if(wanteds == 2)
    SetPlayerWantedLevel(playerid,2)
    if(wanteds == 3)
    SetPlayerWantedLevel(playerid,3)
    if(wanteds == 4)
    SetPlayerWantedLevel(playerid,4)
    if(wanteds == 5)
    SetPlayerWantedLevel(playerid,5)
    if(wanteds == 6)
    SetPlayerWantedLevel(playerid,6)


    }


    Ich bin noch Anfänger. Und nochwas
    Stimmt der Befehl überhaupt weil ich hab das einfach so gemacht ohne tutorial o.ä.


    //edit Hier meine Fehlermeldung:
    C:\Users\Michael\Desktop\Server\gamemodes\Reallife.pwn(333) : error 012: invalid function call, not a valid address
    C:\Users\Michael\Desktop\Server\gamemodes\Reallife.pwn(333) : warning 215: expression has no effect
    C:\Users\Michael\Desktop\Server\gamemodes\Reallife.pwn(333) : error 001: expected token: ";", but found ")"
    C:\Users\Michael\Desktop\Server\gamemodes\Reallife.pwn(333) : error 029: invalid expression, assumed zero
    C:\Users\Michael\Desktop\Server\gamemodes\Reallife.pwn(333) : fatal error 107: too many error messages on one line

  • ocmd:su(playerid,params[])
    {
    new pID, grund[128], wanteds, string[128];
    if(sscanf(params,"usi",pID,wanteds,grund))return SendClientMessage(playerid,COLOR_LIGHTGREEN,"INFO: /su [ID][WANTEDs(1-6)] [GRUND]");
    if(pInfo[playerid][gTeam] == 2 || pInfo[playerid][gLeader] == 2)return SendClientMessage(playerid,COLOR_RED,"Du bist kein Mitglied von der Polizei");
    if(pInfo[playerid][duty] == 1)return SendClientMessage(playerid,COLOR_RED,"Du musst On-Duty sein um Wanteds zu vergeben");
    if(IsPlayerConnected(pID))return SendClientMessage(playerid,COLOR_RED,"Die SpielerID ist nicht online");
    format(string,sizeof(string),"%s hat von %s, %s Wanteds bekommen. GRUND: %s",pID,playerid,wanteds,grund); //EDIT Nachricht verändert
    SendClientMessage(gTeam(2),COLOR_ORANGE,string); //Hier sind die Fehler
    SendClientMessage(gLeader(2),COLOR_ORANGE,string);
    SendClientMessage(pID,COLOR_ORANGE,"Dein Wantedlevel hat sich erhöt");
    if(wanteds == 1){
    SetPlayerWantedLevel(playerid,1)}
    else if(wanteds == 2){
    SetPlayerWantedLevel(playerid,2)}
    else if(wanteds == 3){
    SetPlayerWantedLevel(playerid,3)}
    else if(wanteds == 4){
    SetPlayerWantedLevel(playerid,4)}
    else if(wanteds == 5){
    SetPlayerWantedLevel(playerid,5)}
    else if(wanteds == 6){
    SetPlayerWantedLevel(playerid,6)}


    }


    versuche es mal so

  • Hey,


    if(sscanf(params,"usi",pID,wanteds,grund))return SendClientMessage(playerid,COLOR_LIGHTGREEN,"INFO: /su [ID][WANTEDs(1-6)] [GRUND]");


    Das hier kann erstmal so nicht klappen, der Grund ist kein Integer, da hast du was vertauscht.


    if(wanteds == 1){
    SetPlayerWantedLevel(playerid,1)}
    else if(wanteds == 2){
    SetPlayerWantedLevel(playerid,2)}
    else if(wanteds == 3){
    SetPlayerWantedLevel(playerid,3)}
    else if(wanteds == 4){
    SetPlayerWantedLevel(playerid,4)}
    else if(wanteds == 5){
    SetPlayerWantedLevel(playerid,5)}
    else if(wanteds == 6){
    SetPlayerWantedLevel(playerid,6)}


    Wieso nicht kürzer? Setze das WantedLevel gleich auf den Parameter, der angegeben wurde.


    Zum Hauptproblem:


    Du musst die Nachricht erstmal an "pID" schicken und dann mit einer Schleife alle Spieler abfragen, die in Team X sind.
    An diese sendest du dann ebenfalls die Nachricht.


    Grüße,
    tonyalva

  • Trotzdem bleiben die Fehler gleich, bei SendClientMessage


    //EDIT
    Fehler bleiben gleich das heir hab ich jetzt geändert;
    if(sscanf(params,"usi",pID,grund,wanteds))return SendClientMessage(playerid,COLOR_LIGHTGREEN,"INFO: /su [ID][WANTEDs(1-6)] [GRUND]");
    SendClientMessage(pID,COLOR_ORANGE,"Dein Wantedlevel hat sich erhöt");
    SendClientMessage(gTeam(2),COLOR_ORANGE,string); //Hier sind die Fehler
    SendClientMessage(gLeader(2),COLOR_ORANGE,string); //Reihenfolge geändert


    Trozdem Fehler gleich.

  • Hast du dir meinen Post überhaubt angeschaut?
    Wenn nicht, würde ich dies nachholen und mal diesen Lösungsweg versuchen.


    Du musst die Spieler immer noch mit einer Schleife durchgehen und ggf. die Nachricht versenden..


    Grüße,
    tonyalva

  • Hast du dir meinen Post überhaubt angeschaut?
    Wenn nicht, würde ich dies nachholen und mal diesen Lösungsweg versuchen.


    Du musst die Spieler immer noch mit einer Schleife durchgehen und ggf. die Nachricht versenden..


    Grüße,
    tonyalva

    Hab ich, Hier hab ich das geändert:
    if(sscanf(params,"usi",pID,grund,wanteds))return SendClientMessage(playerid,COLOR_LIGHTGREEN,"INFO: /su [ID][WANTEDs(1-6)] [GRUND]");


    Dann noch das hier:
    if(wanteds == 1){
    SetPlayerWantedLevel(playerid,1)}
    else if(wanteds == 2){
    SetPlayerWantedLevel(playerid,2)}
    else if(wanteds == 3){
    SetPlayerWantedLevel(playerid,3)}
    else if(wanteds == 4){
    SetPlayerWantedLevel(playerid,4)}
    else if(wanteds == 5){
    SetPlayerWantedLevel(playerid,5)}
    else if(wanteds == 6){
    SetPlayerWantedLevel(playerid,6)}


    Und das hier
    SendClientMessage(playerid,COLOR_LIGHTBLUE,string);
    SendClientMessage(pID,COLOR_ORANGE,string);
    SendClientMessage(gTeam(2),COLOR_ORANGE,string);
    SendClientMessage(gLeader(2),COLOR_ORANGE,string);

  • SetPlayerWantedLevel(playerid,wert des Parameters)


    Damit sparst du dir die ganzen Zeilen..


    Du kannst die Nachrichten nicht so an das ganze Team versenden lassen.
    SendClientMessage(gTeam(2),COLOR_ORANGE,string);


    Du musst immer noch alle Spieler mit einer Schleife durchgehen und wenn sie Team-ID X haben, die Nachricht versenden.


    Grüße,
    tony

  • Ok, ich hab jetzt die Warnings:
    C:\Users\Michael\Desktop\Server\gamemodes\Reallife.pwn(337) : warning 209: function "ocmd_su" should return a value



    Habe mein Befehl jetzt so:
    ocmd:su(playerid,params[])
    {
    new pID, grund[128], wanteds, string[128];
    if(sscanf(params,"usi",pID,grund,wanteds))return SendClientMessage(playerid,COLOR_LIGHTGREEN,"INFO: /su [ID][WANTEDs(1-6)] [GRUND]");
    if(pInfo[playerid][gTeam] == 2 || pInfo[playerid][gLeader] == 2)return SendClientMessage(playerid,COLOR_RED,"Du bist kein Mitglied von der Polizei");
    if(pInfo[playerid][duty] == 1)return SendClientMessage(playerid,COLOR_RED,"Du musst On-Duty sein um Wanteds zu vergeben");
    if(IsPlayerConnected(pID))return SendClientMessage(playerid,COLOR_RED,"Die SpielerID ist nicht online");
    format(string,sizeof(string),"%s hat von %s, %s Wanteds bekommen. GRUND: %s",pID,playerid,wanteds,grund);
    SendClientMessage(playerid,COLOR_LIGHTBLUE,string);
    SendClientMessage(pID,COLOR_ORANGE,string);
    SetPlayerWantedLevel(playerid,wanteds);
    }//hier ist der Fehler

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