Teamkill

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 hab immoment ein System, das wenn man 3x teamkill gemacht hat, wird man automatisch gekickt.
    Aber ich finds besser wenn man kein teamkill machen kann, also wenn man auf einem im team schießt, verliert der keine hp

  • Doch, genau das bewirkt das... O:
    Hört sich nicht so an ist aber so. Dachte früher auch, was sollte das bringen aber scheint zu klappen. :)


    EDIT: Aber macht das mit jedem Team, sonst geht das vielleicht nicht.

  • Super, danke :D
    /E: geht irgendwie doch nicht
    public OnPlayerSpawn(playerid)
    {
    if(gTeam[playerid] == TEAM_GROVE) {
    SetPlayerColor(playerid,COLOR_GREEN);
    return 1;
    }
    if(gTeam[playerid] == TEAM_COPS) {
    SetPlayerColor(playerid,COLOR_BLUE);
    return 1;
    }
    if(gTeam[playerid] == TEAM_BALLAS) {
    SetPlayerColor(playerid,COLOR_PURPLE);
    return 1;
    }
    if(gTeam[playerid] == TEAM_ZIVIS) {
    SetPlayerColor(playerid,COLOR_WHITE);
    return 1;
    }
    if(gTeam[playerid] == TEAM_MAFIA) {
    SetPlayerColor(playerid,COLOR_OLIVE);
    return 1;
    }
    if(gTeam[playerid] == TEAM_PARA) {
    SetPlayerColor(playerid,COLOR_ORANGE);
    return 1;
    }
    GivePlayerMoney(playerid,5000);
    if(GetPlayerTeam(playerid) == TEAM_GROVE) {
    SetPlayerTeam(playerid, TEAM_GROVE);
    }
    if(GetPlayerTeam(playerid) == TEAM_BALLAS) {
    SetPlayerTeam(playerid, TEAM_BALLAS);
    }
    if(GetPlayerTeam(playerid) == TEAM_COPS) {
    SetPlayerTeam(playerid, TEAM_COPS);
    }
    if(GetPlayerTeam(playerid) == TEAM_ZIVIS) {
    SetPlayerTeam(playerid, TEAM_ZIVIS);
    }
    if(GetPlayerTeam(playerid) == TEAM_MAFIA) {
    SetPlayerTeam(playerid, TEAM_MAFIA);
    }
    if(GetPlayerTeam(playerid) == TEAM_PARA) {
    SetPlayerTeam(playerid, TEAM_PARA);
    }
    return 0;
    }

  • Dann versuch das mal so:


    public OnPlayerSpawn(playerid)
    {
    if(gTeam[playerid] == TEAM_GROVE) {
    SetPlayerColor(playerid,COLOR_GREEN);
    SetPlayerTeam(playerid, TEAM_GROVE);
    return 1;
    }
    if(gTeam[playerid] == TEAM_COPS) {
    SetPlayerColor(playerid,COLOR_BLUE);
    SetPlayerTeam(playerid, TEAM_BALLAS);
    return 1;
    }
    if(gTeam[playerid] == TEAM_BALLAS) {
    SetPlayerColor(playerid,COLOR_PURPLE);
    SetPlayerTeam(playerid, TEAM_COPS);
    return 1;
    }
    if(gTeam[playerid] == TEAM_ZIVIS) {
    SetPlayerColor(playerid,COLOR_WHITE);
    SetPlayerTeam(playerid, TEAM_ZIVIS);
    return 1;
    }
    if(gTeam[playerid] == TEAM_MAFIA) {
    SetPlayerColor(playerid,COLOR_OLIVE);
    SetPlayerTeam(playerid, TEAM_MAFIA);
    return 1;
    }
    if(gTeam[playerid] == TEAM_PARA) {
    SetPlayerColor(playerid,COLOR_ORANGE);
    SetPlayerTeam(playerid, TEAM_PARA);
    return 1;
    }
    return 0;
    }


    Und ich glaube die return 1; Dinger sind nicht nötig in dem Fall.


    EDIT: Du hast bestimmt die Teams auch mit Zahlen definiert z.B. #define TEAM_GROVE 1 oder so, wenn das auch nicht klappen sollte, versuchs mit den Zahlen...

  • Mhm funktioniert noch immer nicht. Nicht wie du es geschrieben hast, auch nicht mit den Zahlen
    public OnPlayerSpawn(playerid)
    {
    if(gTeam[playerid] == TEAM_GROVE) {
    SetPlayerColor(playerid,COLOR_GREEN);
    return 1;
    }
    if(gTeam[playerid] == TEAM_COPS) {
    SetPlayerColor(playerid,COLOR_BLUE);
    return 1;
    }
    if(gTeam[playerid] == TEAM_BALLAS) {
    SetPlayerColor(playerid,COLOR_PURPLE);
    return 1;
    }
    if(gTeam[playerid] == TEAM_ZIVIS) {
    SetPlayerColor(playerid,COLOR_WHITE);
    return 1;
    }
    if(gTeam[playerid] == TEAM_MAFIA) {
    SetPlayerColor(playerid,COLOR_OLIVE);
    return 1;
    }
    if(gTeam[playerid] == TEAM_PARA) {
    SetPlayerColor(playerid,COLOR_ORANGE);
    return 1;
    }
    GivePlayerMoney(playerid,5000);
    if(GetPlayerTeam(playerid) == 1) {
    SetPlayerTeam(playerid, 1);
    }
    if(GetPlayerTeam(playerid) == 2) {
    SetPlayerTeam(playerid, 2);
    }
    if(GetPlayerTeam(playerid) == 0) {
    SetPlayerTeam(playerid, 0);
    }
    if(GetPlayerTeam(playerid) == 4) {
    SetPlayerTeam(playerid, 4);
    }
    if(GetPlayerTeam(playerid) == 3) {
    SetPlayerTeam(playerid, 3);
    }
    if(GetPlayerTeam(playerid) == 5) {
    SetPlayerTeam(playerid, 5);
    }
    return 0;
    }

  • Das ganze kann man auch mit Switch/Case optimierter lösen...


    switch(...)
    {
    case 1: // Team 1
    {
    // Aktionen
    }
    case 2: // Team 2...
    {
    // Aktionen...
    }
    }


    Zum anderen solltest du lernen was Makros sind & was der Präprozessor damit macht bzw. wie er dies verwendet....


    #define TEAM_TEST 1 // Bezeichner der die Zahl enthält zudem ist er Konstant & eine Direkte Variable die Später ersetzt wird gegen die Zahl 1 sprich beim verarbeiten / kompilieren.

    Mfg. BlackFoX_UD_ alias [BFX]Explosion