Krankenhaus bug?

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,
    Wenn ich sterbe und mit der Kamera Positioniert bin Sterb ich immer wieder
    und werde dazu noch zum normal spawnpunkt teleportiert bis ein sa-mp crash kommt.
    Was ist dran falsch?



    public OnPlayerRequestClass(playerid, classid)
    {
    if(GetPVarInt(playerid,"Tutorial") == 0)
    {//Falls ja
    SetSpawnInfo(playerid,0,GetPVarInt(playerid,"SSkin"),330.6825, 163.6688, 1014.1875,280,GetPVarInt(playerid,"SWaffe"),GetPVarInt(playerid,"SWaffeAmmo"),GetPVarInt(playerid,"SWaffe2"),GetPVarInt(playerid,"SWaffeAmmo2"),GetPVarInt(playerid,"SWaffe3"),GetPVarInt(playerid,"SWaffeAmmo3"));
    SpawnPlayer(playerid);//Spawnt spieler sofort ohne spawn button
    SetPlayerInterior(playerid, 3);//Setzt den interior
    TogglePlayerControllable(playerid,0);//schaltet tastatur aus
    ShowPlayerDialog(playerid,DIALOG_TUT_GESCHLECHT,DIALOG_STYLE_MSGBOX,"Frage","Was bist du?\n Wähle dein Geschlecht aus","Männlich","Weiblich");
    }
    SetSpawnInfo(playerid,0,GetPVarInt(playerid,"SSkin"),1178.824829, -1325.804077, 13.284119,280,GetPVarInt(playerid,"SWaffe"),GetPVarInt(playerid,"SWaffeAmmo"),GetPVarInt(playerid,"SWaffe2"),GetPVarInt(playerid,"SWaffeAmmo2"),GetPVarInt(playerid,"SWaffe3"),GetPVarInt(playerid,"SWaffeAmmo3"));
    SpawnPlayer(playerid);
    return 1;
    }


    public OnPlayerSpawn(playerid)
    {
    if(IsPlayerNPC(playerid)) return 1;
    if(Krankenhaus[playerid] == 1)
    {
    SetPlayerHealth(playerid,20);
    SpawnPlayer(playerid);
    TogglePlayerControllable(playerid, 0);//Freezet den Spieler
    SetPlayerPos(playerid,1162.871704, -1339.109619, 14.297291);//Portet den Spieler unter das Krankenhaus
    SetPlayerCameraPos(playerid, 1223.379028, -1333.354126, 33.809105);//Setzt die Camera Position
    SetPlayerCameraLookAt(playerid, 1178.824829, -1325.804077, 13.284119);//Setzt die Camera Position
    SetPlayerInterior(playerid, 0);//Setzt den Interior vom Spieler auf 0 damit er was sehen kann
    }
    if(ErsterSpawn[playerid] == 0)//Falls der Spieler noch nicht seinen ersten Spawn hatte => Kein Krankenhaus...
    {//Falls ja...
    ErsterSpawn[playerid]=1;//Setzt die Spieler Variable auf 1 => Erster Spawn gehabt
    return 1;
    }
    LoadWeapon(playerid);
    return 1;
    }


    public OnPlayerDeath(playerid, killerid, reason)
    {
    if(ErsterSpawn[playerid] == 1)//Fragt ab ob der Erste Spawn bereits war.
    {//Falls ja...
    KillTimer(healtimerkiller[playerid]);
    SendClientMessage(playerid, HELLGRÜN ," ");//Damit wird der Chat gecleart
    // ResetPlayerWeapons(playerid);//Nimmt dem Spieler seine Waffen weg
    SendClientMessage(playerid, HELLROT ," * Du bist im Krankenhaus!");//Nachricht
    SetTimerEx("KrankenhausTimer",60000,0,"i",playerid);//Spieler Timer wird gestartet
    healtimerkiller[playerid] = SetTimerEx("HealTimer",1000,1,"i",playerid);
    Krankenhaus[playerid] = 1;//Setzt die Variable auf 0
    return 1;
    }
    return 1;
    }


    MFG Martinez

  • So wie es aussieht alles! Du machst unter OnPlayerDeath
    1. Wo der Spieler sein soll wenn er Tot ist! Soll er gefreezt sein etc. und den TimerEx wie lange...
    2. den "funcname" Des timers machst du zu einen Public, dort stellst du alles ein was passieren soll wenn er wieder entlassen wird!


    //Edit:

    //Das unter OnPlayerDeath(Anpassen nicht vergessen!!!)
    TogglePlayerControllable(playerid,0);
    SetPlayerPos(playerid,199,200,90);
    SetPlayerFacingAngle(playerid,65);
    SendClientMessage(playerid,Weiß,"");
    SendClientMessage(playerid,Weiß,"");
    SendClientMessage(playerid,Weiß,"");
    SendClientMessage(playerid,Weiß,"");
    SendClientMessage(playerid,Rot,"|__________Krankenhaus__________|");
    SetTimerEx("TotKH",60000,false,"i",playerid);


    forward TotKH(playerid);
    public TotKH(playerid)//Anpassen nicht vergessen"
    {
    SetPlayerHealth(playerid,100);
    SendClientMessage(playerid,Weiß,"");
    SendClientMessage(playerid,Weiß,"");
    SendClientMessage(playerid,Weiß,"");
    SendClientMessage(playerid,Weiß,"");
    SendClientMessage(playerid,Weiß,"");
    SendClientMessage(playerid,Weiß,"Du wurdest entlassen...");
    TogglePlayerControllable(playerid,1);
    SetPlayerPos(playerid,10,30,5);
    SetCameraBehindPlayer(playerid);
    return 1;
    }


    So würde es funktionieren! Was du da unter OnPlayerSpawn hast weiss ich auch nicht.... das ist dann so wie ich das jetzt gesehen habe und noch im kopf habe wie eine endlose schleife oder was weiss ich^^ du brauchst nur onplayerdeath und ein eigenen public/timer der diesen aufruft :!: