nach /kill .. kein Krankenhaus, System vollständig buggy?

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
  • Folgendes Problem,
    ich habe ein Krankenhaus System gescriptet, dass eigentlich funktionierte. Heißt, man ladete nach dem Tot im Krankenhaus etc .. Nun, heute wollte ich etwas testen und habe mich zufälliger weise selber mit dem Befehl "/kill" getötet und wurde direkt wieder gespawnt. Aber eigentlich, sollte ich doch direkt im Krankenhaus landen & ich weiß nicht woran das liegt.


    Hier mal ein kleines Teil des OnPlayerDeath teils vom Krankenhaus system:


    SpielerInfo[playerid][Gestorben] += 1;
    SpielerInfo[killerid][Verbrechen] += 1;
    //////////////////////////////////////////////////////////
    GameTextForPlayer(playerid, "~r~Gestorben!", 5000, 3);
    TogglePlayerControllable(playerid, 0);
    ResetPlayerWeapons(playerid);
    SpielerInfo[playerid][Tot] = 1;
    SpielerInfo[playerid][TotZeit] = 5*60;
    SetPlayerPos(playerid,1159.8018, -1324.1633, 25.1710);
    SetPlayerCameraPos(playerid, 1214.5242, -1379.3278, 32.4827);
    SetPlayerCameraLookAt(playerid, 1165.6816, -1335.8361, 25.1710);
    SetPlayerVirtualWorld(playerid, 0);
    SetPlayerInterior(playerid, 0);
    ClearChatBox(playerid,10);
    SendClientMessage(playerid,weiß,"");
    SendClientMessage(playerid,weiß,"");
    SendClientMessage(playerid,weiß,"");
    SendClientMessage(playerid,weiß,"");
    SendClientMessage(playerid,weiß,"");
    SendClientMessage(playerid,gelb,"* Du liegst mit einer Verletzung im Krankenhaus. (/aufenthalt) *");
    if(SpielerInfo[playerid][Krankenversicherung] == 0)
    {
    new string[128];
    new randmoney = 300+ random(150);
    GivePlayerMoney(playerid,-randmoney);
    SendClientMessage(playerid,gelb,"Da du über keine Krankenversicherung verfügst,");
    format(string,sizeof string,"musst du die kompletten Behandlungskosten selbst bezahlen. Kosten: $%d.",randmoney);
    SendClientMessage(playerid,gelb,string);
    }
    else if(SpielerInfo[playerid][Krankenversicherung] == 0)
    {
    SendClientMessage(playerid,gelb,"* Deine Krankenversicherung wird alle Behandlungskosten übernehmen. *");
    }


    Danke im Vorraus:)

    | Green Day - Nickelback - Rise Against - 3 Doors Down | \m/

    Einmal editiert, zuletzt von Stylernero ()

  • dcmd_kill(playerid,params[])
    {
    if(SpielerInfo[playerid][Adminlevel] >= 3)
    {
    new string[128],pID,grund[128];
    new spieler[MAX_PLAYER_NAME],spieler2[MAX_PLAYER_NAME];
    if(sscanf(params,"us",pID,grund)) return SendClientMessage(playerid,weiß,"Verwendung: /kill [playerid] [Grund]");
    if(!IsPlayerConnected(pID)) return SendClientMessage(playerid,weiß,"Dieser Spieler ist nicht online.");
    if(SpielerInfo[pID][Adminlevel] > SpielerInfo[playerid][Adminlevel]) return SendClientMessage(playerid,weiß,"Einen höheren Admin kannst du nicht töten.");
    SetPlayerHealth(pID,0);
    GetPlayerName(playerid,spieler,sizeof spieler);
    GetPlayerName(pID,spieler2,sizeof spieler2);
    format(string,sizeof string,"AdmCmd: Du hast %s getötet. Grund: %s.",spieler2,grund);
    SendClientMessage(playerid,rot,string);
    format(string,sizeof string,"AdmCmd: %s hat dich getötet. Grund: %s.",spieler,grund);
    SendClientMessage(pID,rot,string);
    }
    else { return SendClientMessage(playerid,weiß,"Du bist nicht befugt diesen Befehl auszuführen."); }
    return 1;
    }

    | Green Day - Nickelback - Rise Against - 3 Doors Down | \m/

  • SpielerInfo[playerid][Gestorben] += 1;
    SpielerInfo[killerid][Verbrechen] += 1;

    Einer der Beiden Zeilen ist Fehlerhaft für den Fall du begehst Selbstmord.


    Die Position etc unter OnPlayerDeath zu setzen halte ich auch für falsch. Du bist doch Tod und wirst erst wieder gespawnt,sobald OnPlayerSpawn aufgerufen wird. Solltest dort die Position setzen. Um das richtig zu machen bei OnPlayerSpawn,solltest eine Variable korrekt setzen.



    Zitat

    if(SpielerInfo[playerid][Krankenversicherung] == 0)// <-- ?!
    {


    }
    else if(SpielerInfo[playerid][Krankenversicherung] == 0) //<-- ?!
    {


    }