Sanitäter System

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
  • Tag Scripter.


    Ich will mir gerne ein kleines Medicsystem zusammenscripten.
    Ich hab es mir so vorgestellt dann wenn ein Spieler auf 1 hp kommt, Cracked auf dem Boden liegt. ( Ab dann ist er am besten Gefreezt, hat wieder 100 hp und kann auch keine HP mehr verlieren. )


    Ab dann kann er ein Medic rufen mit /call medic wenn er will.
    Dann werden die Medics informiert und können zu ihn fahren. ( Am besten mit /auftrag annehmen oder so.., und mit Roten Marker auf der Karte wo sich der Spieler befindet. )
    Dann kann der Medic ihn danach wiederbeleben mit /wiederbeleben, und der Spieler kann dann wieder Laufen. Also einfach Unfreeze.
    Aber wenn der Medic es nicht innerhalb 3 Minuten schafft, stirbt der Spieler und liegt dann halt 5 Minuten im Krankenhaus bis er wieder wiederbelebt wird.


    Wer mir bei so einer Sache helfen würde dann währe ich echt Sehr Dankbar !


    Was ich eigendlich noch wissen müsste :
    Ob es sowas wie OnPlayerhp, oder ähnliches gibt. Das mann bestimmen kann das der Spieler dann halt auf dem Boden liegt. ( vllt. mit Anim )
    Wie das geht das der Medic jemanden finden könnte ( Mit Marker nach auftragannehmen )


    Mfg. Slexout


    //edit : Hab was gefunden !! Es Klappt bis jetzt alles gut, nur bei 1 Command klappt was nicht. Bitte schaut es euch an :


    if(strcmp(cmd, "/acceptcall", true) == 0 || strcmp(cmd, "/acall", true) == 0) //Commandfail...
    {
    if(IsPlayerConnected(playerid))
    {
    if(BrauchtArzt[playerid] == 1);
    {


    }
    else
    {
    SendClientMessage(playerid, COLOR_GRAD1, "Niemand brauch einen Arzt im moment!");
    return 1;
    }
    }
    return 1;
    }*/


    C:\Users\Paulius\Desktop\Reallife\gamemodes\gfl.pwn(37675) : error 017: undefined symbol "BrauchtArzt"
    C:\Users\Paulius\Desktop\Reallife\gamemodes\gfl.pwn(37675) : warning 215: expression has no effect
    C:\Users\Paulius\Desktop\Reallife\gamemodes\gfl.pwn(37675) : error 001: expected token: ";", but found "]"
    C:\Users\Paulius\Desktop\Reallife\gamemodes\gfl.pwn(37675) : error 029: invalid expression, assumed zero
    C:\Users\Paulius\Desktop\Reallife\gamemodes\gfl.pwn(37675) : fatal error 107: too many error messages on one line


    Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    4 Errors.

    Einmal editiert, zuletzt von Slexout ()

  • Am Ende musste das
    /* wegmachen dann geht es eigentlich

  • Ja aber ist nicht der Fehler. Muss zwar weg aber das muss noch ausgebessert werden:


    1) Du darfst hinter keiner Abfrage ein ; setzten!
    2) Die Variable "BrauchtArzt" ist nicht definiert.


    MfG

  • new ID = strval(cmdtext[6]);
    new strv[170];


    new BrauchArtzt[MAX_PLAYER_NAME];


    //edit geändert

  • Danke für eure Antworten. Ich hab es nun so gemacht. Wenn jemand einen Medic ruft dann wird der Marker sofort bei den Sanitätern angezeigt.
    Nur leider ist der Marker Rot. Und mein Problem ist nun das mein LSPD eingang auch ein Roter Marker ist. Und wenn jemand einen Medic ruft kommt man garnicht mehr ins LSPD rein.
    Kann mann es nicht irgendwie ändern das es ein anderer Marker ist?
    Hier ist der Code für den Marker :
    SetPlayerCheckpoint(i,PlayerInfo[playerid][pTx],PlayerInfo[playerid][pTy],PlayerInfo[playerid][pTz],5.0);



    Oder mann macht es halt doch das mann es mit /accept medic annehmen muss. Was ich eigendlich viel besser finde.
    Nur wenn ich /accept medic mache steht da : "Niemand hat einen Notartzt gerufen", obwohl ihn jemand gerufen hat.


    Hier mal das /needmedic :


    if(strcmp(cmd, "/needmedic", true) == 0)
    {
    if(GetPlayerInterior(playerid) == 0)
    {
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    if(PlayerInfo[i][pMember] == 4 || PlayerInfo[i][pLeader] == 4)
    {
    SendClientMessage(i,COLOR_LIGHTBLUE,"[Funk:]Eine Person wurde als schwerverletzt gemeldet!(/Accept Medic)");


    Und hier das /accept medic :


    else if(strcmp(x_job,"medic",true) == 0)
    {
    if(PlayerInfo[playerid][pMember] == 4 || PlayerInfo[playerid][pLeader] == 4)
    {
    if(MedicCallTime[playerid] > 0)
    {
    SendClientMessage(playerid, COLOR_GREY, " Du hast schon einen Notruf abgesetzt !");
    return 1;
    }
    if(MedicCall < 999)
    {
    if(IsPlayerConnected(MedicCall))
    {
    GetPlayerName(playerid, sendername, sizeof(sendername));
    GetPlayerName(MedicCall, giveplayer, sizeof(giveplayer));
    format(string, sizeof(string), "* Du hast den Notruf von %s angenommen, fahre zu der roten Markierung.",giveplayer);
    SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
    SendClientMessage(playerid, COLOR_LIGHTBLUE, "* Benutze /rmarker um die Markierung zu löschen.");
    format(string, sizeof(string), "* Notarzt %s hat deinen Notruf angenommen. Warte an deiner momentanen Position.",sendername);
    SendClientMessage(MedicCall, COLOR_LIGHTBLUE, string);
    new Float:X,Float:Y,Float:Z;
    GetPlayerPos(MedicCall, X, Y, Z);
    SetPlayerCheckpoint(playerid, X, Y, Z, 5);
    GameTextForPlayer(playerid, "~w~Sanitäter~n~~r~Fahr zur Markierung", 5000, 1);
    MedicCallTime[playerid] = 1;
    MedicCall = 999;
    return 1;
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, " Niemand hat einen Notarzt gerufen!");
    return 1;
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, " Du bist kein Notarzt !");
    return 1;
    }
    }

    Was müsste man hier ändern? Bitte helft.