Krankenhaus prob :<

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
  • Wenn man nach dem Tod in den Krankenhaus kommt und die 60 sek um sind, spawnt man nicht mehr und die Cam zeigt noch immer zum Krankenhaus :<


    //Krankenhaus
    #define KRANKENHAUS_ZEIT 60 //Sekunden
    forward KrankenhausTimer(playerid);
    new ErsterSpawn[MAX_PLAYERS];
    new Krankenhaus[MAX_PLAYERS];


    Onplayerconnect
    ErsterSpawn[playerid] = 0;
    Krankenhaus[playerid] = 0;


    public OnPlayerSpawn(playerid)
    {
    new newtext[41], name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, name, MAX_PLAYER_NAME);
    format(newtext, sizeof(newtext), "~w~Welcome ~b~%s", name);
    GameTextForPlayer(playerid, newtext, 1000, 1);
    if(GetPlayerTeam(playerid) == 1) SetPlayerPos( playerid, 255.1449,66.4737,1003.6406); //If player is lspd, he spawns at lspd
    if(GetPlayerTeam(playerid) == 3) SetPlayerPos( playerid, 1654.8550,-1659.3982,22.5156); //If player is civilian, he spawns at civispawn if(RegistrationStep[playerid] == 0)
    {
    SendClientMessage(playerid,LIGHTBLUE,"What's your Age?");
    SendClientMessage(playerid,WHITE,"Hint: Enter your 2 digit age");
    TogglePlayerControllable(playerid,0); //Freezing the player
    RegistrationStep[playerid] = 1; //Sets our registrationstep to 1
    }
    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;
    }



    public OnPlayerDeath(playerid, killerid, reason)
    {
    if(ErsterSpawn[playerid] == 1) //Fragt ab ob der Erste Spawn bereits war
    {//Falls ja
    for (new MSGC=0; MSGC<=100; MSGC++)//Damit wird der Chat gecleart
    SendClientMessage(playerid, LIGHTBLUE , " "); //Damit wird der Chat gecleart
    ResetPlayerWeapons(playerid);//Nimmt dem Spieler seine Waffen weg
    SendClientMessage(playerid, 0xC60000FF ," *You're in the hospital!");//Nachricht
    SendClientMessage(playerid, WHITE ,"The doctor examines you right now");
    SendClientMessage(playerid, WHITE ,"You have to wait 60 seconds");
    SendClientMessage(playerid, WHITE ,"You'll spawn later in the hospital");
    SetTimerEx("Timer",KRANKENHAUS_ZEIT*1000,0,"i",playerid);//Spieler Timer wird gestartet
    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
    Krankenhaus[playerid] = 1;//Setzt die Variable auf 0
    }
    return 1;
    }



    public KrankenhausTimer(playerid)//Erstellt ein Public für den Timer
    {
    if(IsPlayerConnected(playerid))//Fragt ab ob der Spieler online ist
    {//falls ja..
    if(Krankenhaus[playerid] == 1)//Fragt ob der Spieler im Krankenhaus ist
    {
    Krankenhaus[playerid] = 0;//Setzt die Variable auf 0
    SpawnPlayer(playerid);//spawnt den Spieler
    SendClientMessage(playerid, 0x00FF5AFF, " * Released!");//Nachricht
    SendClientMessage(playerid, WHITE, "You have to pay for the examination $250");
    GameTextForPlayer(playerid, "~r~-250~g~$", 1000, 1);
    GivePlayerMoney(playerid, -250);
    SetPlayerPos(playerid,1178.0653,-1325.5492,14.1017);
    SetPlayerFacingAngle(playerid,272.1010);
    SetCameraBehindPlayer(playerid);
    SetPlayerInterior(playerid,0);
    }


    }
    return 1;
    }

    <buqja>: brauche 3 mercs fürn 3o3

    Einmal editiert, zuletzt von JOkE ()

  • Danke für deine Hilfe. Jezt zieht der -250 ab und die Cam bleibt immer noch und man Spawnt nicht beim Zivispawn -.-


    public KrankenhausTimer(playerid)//Erstellt ein Public für den Timer
    {
    if(IsPlayerConnected(playerid))//Fragt ab ob der Spieler online ist
    {//falls ja..
    if(Krankenhaus[playerid] == 1)//Fragt ob der Spieler im Krankenhaus ist
    {
    Krankenhaus[playerid] = 0;//Setzt die Variable auf 0
    SpawnPlayer(playerid);//spawnt den Spieler
    SendClientMessage(playerid, 0x00FF5AFF, " * Released!");//Nachricht
    SendClientMessage(playerid, WHITE, "You have to pay for the examination $250");
    GameTextForPlayer(playerid, "~r~-250~g~$", 1000, 1);
    GivePlayerMoney(playerid, -250);
    SetPlayerPos(playerid,1178.0653,-1325.5492,14.1017);
    SetPlayerFacingAngle(playerid,272.1010);
    SetCameraBehindPlayer(playerid);
    SetPlayerInterior(playerid,0);
    }


    }
    return 1;
    }
    Irgendwas dort falsch? Siehe oben um mehr zu sehen

    <buqja>: brauche 3 mercs fürn 3o3

  • public KrankenhausTimer(playerid)//Erstellt ein Public für den Timer
    {
    if(IsPlayerConnected(playerid))//Fragt ab ob der Spieler online ist
    {//falls ja..
    if(Krankenhaus[playerid] == 1)//Fragt ob der Spieler im Krankenhaus ist
    {
    Krankenhaus[playerid] = 0;//Setzt die Variable auf 0
    SpawnPlayer(playerid);//spawnt den Spieler
    SendClientMessage(playerid, 0x00FF5AFF, " * Released!");//Nachricht
    SendClientMessage(playerid, WHITE, "You have to pay for the examination $250");
    GameTextForPlayer(playerid, "~r~-250~g~$", 1000, 1);
    GivePlayerMoney(playerid, -250);;
    SetCameraBehindPlayer(playerid);
    SetPlayerInterior(playerid,0);
    }


    }
    return 1;
    }

  • Edit// Habts geschafft, nun kommt ein anderer Fehler. Wenn man immer Spawnt, frag er was vom Tutorial ab (bisste männlich, weiblich, alter..)
    Wie kann ich das speichern und das es nicht mehr abgefragt wird wenn es bei anderen schon abgefragt wurde..?


    new RegistrationStep[MAX_PLAYERS];


    public OnPlayerSpawn(playerid)
    {
    new newtext[41], name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, name, MAX_PLAYER_NAME);
    format(newtext, sizeof(newtext), "~w~Welcome ~b~%s", name);
    GameTextForPlayer(playerid, newtext, 1000, 1);
    if(GetPlayerTeam(playerid) == 1) SetPlayerPos( playerid, 255.1449,66.4737,1003.6406); //If player is lspd, he spawns at lspd
    if(GetPlayerTeam(playerid) == 3) SetPlayerPos( playerid, 1654.8550,-1659.3982,22.5156); //If player is civilian, he spawns at civispawn if(RegistrationStep[playerid] == 0)
    {
    SendClientMessage(playerid,LIGHTBLUE,"What's your Age?");
    SendClientMessage(playerid,WHITE,"Hint: Enter your 2 digit age");
    TogglePlayerControllable(playerid,0); //Freezing the player
    RegistrationStep[playerid] = 1; //Sets our registrationstep to 1
    }
    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;
    }


    public OnPlayerText(playerid, text[])
    {
    if(RegistrationStep[playerid] == 1)
    {
    if(!strlen(text)) //Checks to make sure there is atleast 1 character input
    {
    SendClientMessage(playerid,LIGHTBLUE,"What's your Age?");
    SendClientMessage(playerid,WHITE,"Hint: Enter your 2 digit age");
    return 0; //Ends the commands and doesnt display in text
    }
    if(strlen(text)< 2||strlen(text) > 2)//Checks that the input is only 2 characters long
    {
    SendClientMessage(playerid,0xD70000FF,"Only a 2 digit number will work!");
    return 0;
    }
    new string[128]; //Creates a new string 128 characters long
    format(string,sizeof(string),"Ok so you are %d years old",strval(text)); //Formats the string
    SendClientMessage(playerid,LIGHTBLUE,string); //Sends new message with the string
    PlayerInfo[playerid][pAge] = strval(text);
    SendClientMessage(playerid,LIGHTBLUE,"What is your Sex?");
    SendClientMessage(playerid,WHITE,"Hint: Enter male or female");
    RegistrationStep[playerid] = 2;
    return 0;


    }
    if(RegistrationStep[playerid] == 2)
    {
    new tmp[4];
    if(!strlen(text)) //Check to make sure there is at least 1 character input
    {
    SendClientMessage(playerid,LIGHTBLUE,"What is your Sex?");
    SendClientMessage(playerid,WHITE,"Hint: Enter male or female");
    return 0;
    }
    if(!strcmp("male", tmp, true, 4))
    {//Checks to see if the input matches "male" and if it does continues
    PlayerInfo[playerid][pSex] = strval(text);
    PlayerInfo[playerid][pSex] = 1; // CHANGED TO 1
    SendClientMessage(playerid,LIGHTBLUE,"Ok, so you are a male.");
    SendClientMessage(playerid,WHITE,"Thank you for filling in the information");
    RegistrationStep[playerid] = 3;
    TogglePlayerControllable(playerid,1);//Unfreezes the player and play resumes
    return 0;
    }
    else if(!strcmp("female", tmp, true, 6))
    {//Checks to see if the input matches "female" and if it does continues
    PlayerInfo[playerid][pSex] = strval(text);
    PlayerInfo[playerid][pSex] = 2;
    SendClientMessage(playerid,LIGHTBLUE,"Ok, so you are a Female.");
    SendClientMessage(playerid,WHITE,"Thank you for filling in the information");
    RegistrationStep[playerid] = 3;
    TogglePlayerControllable(playerid,1);//Unfreezes the player and play resumes
    return 0;
    }
    else
    { SendClientMessage(playerid,WHITE,"Please answer your Gender!"); return 0; }
    }


    beim disconnecten wird es mit dini_intset gespeichert. Aber kann mir einer ein bool oderso machen, das es nicht mehr abfragt wenn man es schon hat? Der Fragt immer wieder, wenn man Spawnt oder beim Server restart

    <buqja>: brauche 3 mercs fürn 3o3