Leute in Fraktionen einladen..

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,
    Ich komme an einer Stelle nicht weiter...
    Ich möchte gerne ein RL script erstellen und bin gerade an den Fraktionen.
    Ich habe in der enum erstellt:enum spieler_daten
    {


    ...
    skin,
    team, //= Fraktion
    rang, //= Fraktions rang
    ...


    }

    dann hab ich bei OnPlayerSpawn einfach mal gesagt das wenn der Spieler in der Fraktion so und so ist, dann bekommt er diese waffe ...
    guckt hier:
    ...
    if(Spieler[playerid][team] == 1) // SEK


    {
    GivePlayerWeapon(playerid,24,100);
    GivePlayerWeapon(playerid,29,300);
    GivePlayerWeapon(playerid,31,300);
    GivePlayerWeapon(playerid,34,30);
    }


    if(Spieler[playerid][team] == 0) //Penner
    {
    SendClientMessage(playerid, Gelb, "Du bist ein Penner.");
    SendClientMessage(playerid, Gelb, "Such dir eine Fraktion.");
    }...

    Jetzt zu meiner Frage..
    Wie kann ich das machen, dass man einen rang hat, den dann noch per Befehl sehen kann...
    ..und dass man jemanden mit z.B. rang 10 (Leader fraktionsrang) in die fraktion einladen kann?
    Vielen dank
    Sart

  • if(strcmp(cmd, "/invite", true) == 0)
    {
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, 0xBFC0C2FF, "BENUTZUNG: /invite [playerid/Name]");
    return 1;
    }
    new leader = spieler[playerid][Leader];
    new para1 = ReturnUser(tmp);
    if(Spieler[playerid][team] >= 10)
    {
    if(IsPlayerConnected(para1))
    {
    if(para1 != INVALID_PLAYER_ID)
    {
    if (Team[para1]==TEAM_GREEN && spieler[para1][team] == 0)
    {
    format(string, sizeof(string), " Du wurdest in die Fraktion %s von Leader %s eingeladen.",Fracs[leader-1], sendername);
    SendClientMessage(para1, 0x33CCFFAA, string);
    SendClientMessage(para1, 0xBFC0C2FF, " Um die Einladung anzunehmen: /einladung annehmen");
    format(string, sizeof(string), " Du hast %s in die Fraktion %s eingeladen.", giveplayer,Fracs[leader-1]);
    SendClientMessage(playerid, 0x33CCFFAA, string);
    SendClientMessage(playerid, 0xBFC0C2FF, " Der Spieler muss nun deine Einladung annehmen oder ablehnen.");
    Eingeladen[para1] = leader;
    }
    else
    {
    SendClientMessage(playerid, 0xBFC0C2FF, " Dieser Spieler hat eine Fraktions-Sperre");
    return 1;
    }
    else
    {
    SendClientMessage(playerid, 0xBFC0C2FF, " Dieser Spieler ist in einer anderen Fraktion oder bereits ein Fraktionsmitglied.");
    return 1;
    }
    }
    } // Nicht verbunden
    }
    else // nicht die nötigen Zugriffsrechte
    {
    SendClientMessage(playerid, 0xBFC0C2FF, " Nur der Leader kann diesen Befehl nutzen!");
    }
    return 1;
    }

    Zweiter Streich!

    if(strcmp(cmd,"/einladung",true) == 0)
    {
    tmp = strtok(cmdtext,idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, 0xBFC0C2FF, "BENUTZUNG: /einladung [annehmen/ablehnen]");
    return 1;
    }
    if(Eingeladen[playerid] == 0)
    {
    SendClientMessage(playerid, 0xBFC0C2FF, "Du wurdest in keine Fraktion eingeladen!");
    return 1;
    }
    if(strcmp(tmp,"annehmen",true) == 0)
    {
    if(Eingeladen[playerid] == 1) { spieler[playerid][Team] = 1; SetPlayerSkin(playerid, SKINID); }
    else if(Eingeladen[playerid] == 2) { spieler[playerid][Team] = 2; SetPlayerSkin(playerid, SKINID); } // und so weiter nach dem Schema


    GetPlayerName(playerid,sendername,sizeof(sendername));
    Spieler[playerid][Member] = Eingeladen[playerid];
    Spieler[playerid][Rang] = 1;
    format(string,sizeof(string)," %s hat die Einladung in die Fraktion %s angenommen!",sendername,Fracs[Eingeladen[playerid]-1]);
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    if(PlayerInfo[i][pLeader] == Eingeladen[playerid])
    {
    SendClientMessage(i,COLOR_LIGHTBLUE,string);
    }
    }
    }
    SetPlayerInterior(playerid,0);
    SpawnPlayer(playerid);
    SendClientMessage(playerid, 0xBFC0C2FF, " Du kannst mit /help deine neuen Fraktionsbefehle betrachten");
    }
    else if(strcmp(tmp,"ablehnen",true) == 0)
    {
    format(string,sizeof(string)," %s hat die Einladung in die Fraktion %s abgelehnt!",sendername,Fracs[Eingeladen[playerid]-1]);
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    if(Spieler[i][Rang] == Eingeladen[playerid])
    {
    SendClientMessage(i,0xBFC0C2FF,string);
    }
    }
    }
    Eingeladen[playerid] = 0;
    }
    else
    {
    SendClientMessage(playerid, 0xBFC0C2FF, "BENUTZUNG: /einladung [annehmen/ablehnen]");
    }
    return 1;
    }


    Ich hoffe es funktioniert.

  • Erstmal danke für die schnelle Antwort.
    Leider habe ich ein paar errors erhalten die ch nicht mehr wegbekommen:...
    error 017: undefined symbol "cmd"
    error 017: undefined symbol "tmp"
    error 017: undefined symbol "idx"
    error 017: undefined symbol "tmp"
    warning 219: local variable "Leader" shadows a variable at a preceding level
    error 017: undefined symbol "ReturnUser"
    warning 217: loose indentation
    error 028: invalid subscript (not an array or too many subscripts): "team"
    warning 215: expression has no effect
    error 001: expected token: ";", but found "]"
    error 029: invalid expression, assumed zero
    fatal error 107: too many error messages on one line
    Ich hoffe ich bekomme die noch weg ;)
    Danke
    //edit kann mir bitte jemand helfen komme immer noch nicht weiter und ich weiß nicht wofür diese ganzen idx... stehen danke

    Einmal editiert, zuletzt von Sart ()