Selbstmordabfrage

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 mach grade ein DM script aber irgendwie will das Script nicht so wie ich will :/
    Die Varibale warmup steht 100% auf 0!

    if(warmup == 0)
    {
    if((gTeam[playerid] == TEAM_T)&&(killerid == INVALID_PLAYER_ID))
    {
    SendClientMessage(playerid,Color_Red,"Selbstmord gibt Punktabzug");
    if(Tpunkte == 0)
    {
    CTpunkte ++;
    }else
    {
    Tpunkte --;
    }
    }
    if((gTeam[playerid] == TEAM_CT)&&(killerid == INVALID_PLAYER_ID))
    {
    SendClientMessage(playerid,Color_Red,"Selbstmord gibt Punktabzug");
    if(CTpunkte == 0)
    {
    Tpunkte ++;
    }else
    {
    CTpunkte --;
    }
    }
    }


    Hat einer von euch eine bessere Idee?


    mfg

  • Hi


    beim Callback "OnPlayerDeath" gibts doch die Variablen playerid (der der gestorben ist) und killerid. Killerid ist die ID die playerID gekillt hat.
    Normalerweise sollten die beiden Variablen bei einem selbstmord identisch sein, nicht?
    Dann wär das Problem doch schonmal gelöst? ^^


    MFG, Robdeflop®

  • Das ist nicht ganz richtig, wenn der Spieler selbstmord begeht, wird eine Invalid ID eingetragen, also ist er mit seiner Version schon ganz richtig ;)


    Es gibt da allerdings ein Problem, nämlich wenn der Spieler angeschossen wird, dann aber 15 sek selbstmord begeht, wird die ID vom Spieler eingetragen, der ihn als letztes angeschossen hat

    "Bevor ich mir Informationen aus der "Bild" hole,
    werde ich anfangen, Wahlergebnisse danach vorauszusagen,
    neben welchen Busch unsere Katze gepinkelt hat."

    Margarete Stokowski

  • Hey,
    ich hatte jetzt ein halbes Jahr pause gemacht bin deswegen vermutlich ein bisschen eingerostet.
    Trotzdem kann ich mir Folgendes nciht erklären:



    public OnPlayerDeath(playerid, killerid, reason)
    {
    print("OnPlayerDeathCalled");
    if(gTeam[playerid] == TEAM_SPEC)
    {
    //unwichtiger inhhalt
    }
    if(warmup ==1)
    {
    //unwichtiger inhalt
    }
    if((gTeam[killerid] == TEAM_T) && (gTeam[playerid] != TEAM_T))
    {
    Tpunkte ++;
    }
    if((gTeam[killerid] == TEAM_CT) && (gTeam[playerid] != TEAM_CT))
    {
    CTpunkte ++;
    }
    printf("Abfrage Warmup...");
    if(warmup == 0)
    {
    printf("...erfolgreich");
    printf("frage jetzt gtem ab...IsPlayerModAdmin");
    if((gTeam[playerid] == TEAM_T)&&(killerid == INVALID_PLAYER_ID))
    {
    printf("GTEAM abgefragt");
    SendClientMessage(playerid,Color_Red,"Selbstmord gibt Punktabzug");
    if(Tpunkte == 0)
    {
    CTpunkte ++;
    printf("ct punkte ausgeteilt");
    }else
    {
    Tpunkte --;
    }
    }
    if((gTeam[playerid] == TEAM_CT)&&(killerid == INVALID_PLAYER_ID))
    {
    SendClientMessage(playerid,Color_Red,"Selbstmord gibt Punktabzug");
    if(Tpunkte == 0)
    {
    CTpunkte ++;
    }else
    {
    CTpunkte --;
    printf("ct punkte ausgeteilt");
    }
    }
    }


    Ich hab das gemacht was Trooper gesgat hatte...
    OnPlayerDeath wird natürlich aufgerufen,
    ich hab in der Console auch den OutPut...
    aber mehr hab ich auch nicht...

    Einmal editiert, zuletzt von [CoS]Tom ()

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Welcher Output genau kommt denn ?
    Immerhin bin ich froh,
    dass du meine Debugging-Anweisung verstanden hast ;)


    Ich bin ja auch nicht ganz dumm :D


    Also ich sag ja ich habs drauf: Die Syntax ist richtig, das Problem
    liegt in einigen Abfragen darüber, denn da Frage ich wegen Teamkill
    ab ob Opfer und Killer vom gleichen Team sind, an dieser Abfrage
    hängt er natürlich weil der Killer(INVALID_PLAYER_ID)natürlich von
    keinem Team ist...
    Wenn ich die Selbstmordabfrage also vor die Anderen abfragen stelle
    dann gehts...


    ware also ein reiner Logicfehler...