[Hilfe] Team probleme [pls help]

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
  • Hey


    Ich habe das mal selber probiert und geguckt ob ich heir was passendes finde, aber nur fehlgeschlagen.


    Ich brauche eine Team vergabe.


    also "/team [teamid] [playerid]"


    also ich brauche 3team's (zivi[1], privat[2], mapper[3])


    also: /team 1 16 ist spieler mit id 16 ein zive.
    /team 2 12 ist spieler mit id 12 in tem privat.
    usw.
    ich habe nur dcmd befehle bei mir im script und es währe schön wenn mir einer dieses auch als dcmd scripten könnte.(nur admin und team privat darf den befehl nutzen können)


    Und was muss ich an den anderen befehlen ändern (hinzu fügen), damit nur dieses team diesen befehl nutzen kan ?

    3 Mal editiert, zuletzt von Airwolf ()

  • jo ich habe nochmal weiter gesucht.


    das habe ich gefunden und so umgeschrieben:

    #include <a_samp>


    static gTeam[MAX_PLAYERS];


    #define TEAM_Zivi 0
    #define TEAM_Mapper 1
    #define TEAM_Scripter 2
    #define TEAM_Privat 3


    #define dcmd(%1,%2,%3) if (!strcmp((%3)[1], #%1, true, (%2)) && ((((%3)[(%2) + 1] == '\0') && (dcmd_%1(playerid, ""))) || (((%3)[(%2) + 1] == ' ') && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1


    public OnPlayerRequestClass(playerid, classid)
    {
    if(classid == 0) //wenn der Spieler den ersten Skin auswählt
    {
    gTeam[playerid] = TEAM_Zivi;
    }
    if(classid == 1) //wenn der Spieler den zweiten Skin auswählt
    {
    gTeam[playerid] = TEAM_Mapper;
    }
    if(classid == 2) //wenn der Spieler den zweiten Skin auswählt
    {
    gTeam[playerid] = TEAM_Scripter;
    }
    if(classid == 3) //wenn der Spieler den zweiten Skin auswählt
    {
    gTeam[playerid] = TEAM_Privat;
    }
    return 1;
    }


    public OnPlayerCommandText(playerid,cmdtext[])
    {
    dcmd(teamhelp,8,cmdtext);
    dcmd(job,3,cmdtext);
    return 1;
    }


    dcmd_teamhelp(playerid, params[])
    {
    #pragma unused params
    if(gTeam[playerid] == TEAM_Zivi) GameTextForPlayer(playerid,"Du bist ein Mapper!",3000,4);
    if(gTeam[playerid] == TEAM_Mapper) GameTextForPlayer(playerid,"Du bist der Scripter!",3000,4);
    if(gTeam[playerid] == TEAM_Scripter) GameTextForPlayer(playerid,"Du bist im Team Privat!",3000,4);
    if(gTeam[playerid] == TEAM_Privat) GameTextForPlayer(playerid,"Du bist ein Mapper!",3000,4);
    return 1;
    }


    dcmd_job(playerid, params[])
    {
    #pragma unused params
    if(gTeam[playerid] == TEAM_Mapper)
    {
    SetPlayerPos(playerid,123.00,456.00,22.00);
    SendClientMessage(playerid,0x00FF00FF,"Du bist nun bei der Cop-Base!");
    }
    else
    {
    SendClientMessage(playerid,0xFF0000FF,"Du bist kein Cop!");
    }
    return 1;
    }


    und alles wo ich jetzt:


    if(gTeam[playerid] == TEAM_Mapper)


    in den befehl einbaue, können nur die Mapper den befehl benutzen ? oder wie ?


    und wie kann ich jemanden zu einem team zuteilen ?
    also /team 0 12 (TEAM_Zivi [playerid 12]) da hbe ich ncihts gefunden.


    //achso und nochwas: das war in (strcmp) und ich ahbe es in (dcmd) umgeschrieben, hoffe das ist auch so richtig.

  • /clear :D


    //edit:

    dcmd_help(playerid,params[])
    {
    #pragma unused params
    if(gTeam[playerid] == TEAM_Scripter)
    {
    SendClientMessage(playerid, 0xFF0000AA, "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
    SendClientMessage(playerid, 0xFF0000AA, "~~~~~~~~~~~~~~[**************]~~~~~~~~~~~~~~");
    SendClientMessage(playerid, 0xFF0000AA, "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
    SendClientMessage(playerid, 0x33AA33AA, "******************************");
    SendClientMessage(playerid, 0x33AA33AA, "******************************");
    SendClientMessage(playerid, 0x33AA33AA, "******************************");
    SendClientMessage(playerid, 0x33AA33AA, "******************************");
    SendClientMessage(playerid, 0x33AA33AA, "******************************");
    SendClientMessage(playerid, 0x33AA33AA, "******************************");
    SendClientMessage(playerid, 0xFF0000AA, "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
    }
    return 1;
    }


    also so habe ich das jetzt eingefügt.
    Also als zivi oder so kann ich es nciht öffnen die lsite.
    Ich denke mal bei den befehlen wird das dann auch so einfach gehen.
    Ich hoffe das das so richtig ist und ich als scripter die liste öffnen kann.


    Wie kann ich nun das Team wechseln ?
    Kann ich mehrere teams so in einen befehl integrieren ? (also so das mehrere team's diesen befehl benutzen können)
    Ist das so jetzt alles koreckt oder gibt es einen fehler ?


    //edit: also andere frage: Benötigt man einen weiteren befehl für die auswahl ?
    wenn ja, wo finde ich den ? hat da einer einen link für mich ?

    5 Mal editiert, zuletzt von Airwolf ()

  • der script ist kommplet selfmade, ohne filterscrips (ausnahme rcon befehle [kick, ban])
    also /setteam [ID] [teamid] ist nciht vorhanden, deswegen frage ich ja ob da jedand was hat.
    ab besten in dcmd, aber wenn nur strcmd vorhanden ist, ist das auch ok, den schriebe ich dann um.

  • naja dann sezte ich hier morgen einen scriptteil hier rein :D


    //edit: So ich habe mal hier was gemacht. Ich habe allerdings einige error's und ein warning.
    Ich glaube da ist auch ein bischen falsch, naja könnt mir ja mal helfen die error's wegzubekommen.


    Befehl:

    dcmd_team(playerid,params[]) // Zeile: 1410
    {
    if(IsPlayerConnected(playerid))
    if(gTeam[playerid] == TEAM_Scripter)
    {
    if(!strlen) // Zeile: 1415
    {
    SendClientMessage(playerid, 0x33AA33AA, "Benutzung: /team [ID] [TeamID]");
    return 1;
    }
    new para1;
    new level;
    level = strval; // Zeile: 1422
    if (PlayerInfo[playerid][pAdmin] >= 2) // Zeile: 1423
    {
    if(IsPlayerConnected(para1))
    {
    if(para1 != INVALID_PLAYER_ID)
    {
    GetPlayerName(para1, giveplayer, sizeof(giveplayer));
    GetPlayerName(playerid, sendername, sizeof(sendername));
    PlayerInfo[para1][pTeam] = level;
    gTeam[para1] = level;
    SetPlayerWeapons(para1);
    SetPlayerSpawn(para1);
    ClearCrime(para1);
    printf("Admin: %s hat %s in Team %d eingefügt.", sendername, giveplayer, level);
    format(string, sizeof(string), "Du bist nun ein %d und nichtmehr %s.", level, sendername);
    SendClientMessage(para1, 0x33AA33AA, string);
    format(string, sizeof(string), "Du bist %s zum %d gewechselt.", giveplayer,level);
    SendClientMessage(playerid, 0x33AA33AA, string);
    }
    }
    }
    else
    {
    SendClientMessage(playerid, 0x33AA33AA, "Info: Vergiss es, du schafst es nicht!");
    }
    }
    return 1;
    }


    Error's:


    Ich habe mal die zeilen dahinter geschrieben.
    Ich hoffe ihr könnt mir da helfen.


    Mfg
    Airwolf


    //edit: ach und nur im also admin/rcon/TEAM_Scripter soll diese befehl aufgeführt werden.

    Einmal editiert, zuletzt von Airwolf ()

  • warte du sagst du hast ein selfmade script kannst aber die errors da nit korrigieren? irgendetwas stimmt da nit...
    Naja Helfen können wir dir auch sehr schlecht da wir nicht wissen wie dein adminsystem aufgebaut ist.

  • es ist ein selfmad script, ja.
    also ich suche mir sachen und editiere sie, aber ich stelle auch manche sachen selbs her.
    Ich bin erst seit kurzen dabei um scripten zu lernen, deswegen suche ich mir beispiele und
    kann deswegen noch nciht soviel.


    Ach und ein admin system ist noch nciht drin.
    also nur der rcon ist drin als fs.


    also wenn das so ist, so das es der Scripter und rcon ausführen können, reicht das erstmal für den anfang.

  • also ich ahbe jetzt schon zwei befehle.
    Erster:

    dcmd_team(playerid,params[])
    {
    if(IsPlayerConnected(playerid))
    if(gTeam[playerid] == TEAM_Scripter)
    {
    if(!strlen)
    {
    SendClientMessage(playerid, 0x33AA33AA, "Benutzung: /team [ID] [TeamID]");
    return 1;
    }
    new para1;
    new level;
    level = strval;
    {
    if(IsPlayerConnected(para1))
    {
    if(para1 != INVALID_PLAYER_ID)
    {
    GetPlayerName(para1, giveplayer, sizeof(giveplayer));
    GetPlayerName(playerid, sendername, sizeof(sendername));
    PlayerInfo[para1][pTeam] = level;
    gTeam[para1] = level;
    SetPlayerWeapons(para1);
    SetPlayerSpawn(para1);
    ClearCrime(para1);
    printf("Admin: %s hat %s in Team %d eingefügt.", sendername, giveplayer, level);
    format(string, sizeof(string), "Du bist nun ein %d und nichtmehr %s.", level, sendername);
    SendClientMessage(para1, 0x33AA33AA, string);
    format(string, sizeof(string), "Du bist %s zum %d gewechselt.", giveplayer,level);
    SendClientMessage(playerid, 0x33AA33AA, string);
    }
    }
    }
    else
    {
    SendClientMessage(playerid, 0x33AA33AA, "Info: Vergiss es, du schafst es nicht!");
    }
    }
    return 1;
    }


    Zweiter:

    dcmd_team(playerid,params[])
    {
    if(IsPlayerConnected(playerid))
    if(gTeam[playerid] == TEAM_Scripter)
    {
    SendClientMessage(playerid, 0x33AA33AA, "Benutzung: /team [ID] [TeamID]");
    return 1;
    }
    new para1;
    new level;
    {
    if(IsPlayerConnected(para1))
    {
    if(para1 != INVALID_PLAYER_ID)
    {
    GetPlayerName(para1, giveplayer, sizeof(giveplayer));
    GetPlayerName(playerid, sendername, sizeof(sendername));
    PlayerInfo[para1][pTeam] = level;
    gTeam[para1] = level;
    SetPlayerWeapons(para1);
    SetPlayerSpawn(para1);
    ClearCrime(para1);
    printf("Admin: %s hat %s in Team %d eingefügt.", sendername, giveplayer, level);
    format(string, sizeof(string), "Du bist nun ein %d und nichtmehr %s.", level, sendername);
    SendClientMessage(para1, 0x33AA33AA, string);
    format(string, sizeof(string), "Du bist %s zum %d gewechselt.", giveplayer,level);
    SendClientMessage(playerid, 0x33AA33AA, string);
    }
    }
    }
    else
    {
    SendClientMessage(playerid, 0x33AA33AA, "Info: Vergiss es, du schafst es nicht!");
    }
    return 1;
    }


    so das sind die zwei dich ich schon habe.
    Sie unterscheiden sich nur leicht, aber keiner geht.


    Also cih brauche einen befehl, wo man nur wenn man mit /rcon login ... eingelogt ist den benutzen kann oder wenn man im team TEAM_Scripter ist.
    Ich ahbe es jetzt so oft probiert und beide öffters geänder.


    der befehl soll sein: /team [playerID] [TeamID] um jemanden zu einem team zuzuteilen.


    Den befehl würde ich gerne nur einfügen müssen, ohne irgentwo noch was anderes zu änder, weil das geht sonnst in die hose.


    Ich hoffe da kann mir einer helfen und mir den script so verbessern, so das ich ihn nurnoch einfügen muss.


    Ein großen dank schonmal im vorraus.


    Mfg
    Airwolf

    Einmal editiert, zuletzt von Airwolf ()