Guest User

Untitled

a guest
Jul 22nd, 2018
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 14.80 KB | None | 0 0
  1. //Medicsystem - Unter OnPlayerDeath
  2. new Medic=0;
  3. for(new i; i<MAX_PLAYERS; i++)
  4. {
  5.     if(PlayerInfo[i][pMember] == 4 || PlayerInfo[i][pLeader] ==4)
  6.     {
  7.         Medic++;
  8.     }
  9. }
  10. if(Medic>0)
  11. {  
  12.     new totentext[256];
  13.     //GetPlayerName(playerid,totname,sizeof totname);
  14.     GetPlayerPos(playerid, deadx[playerid], deady[playerid], deadz[playerid]);
  15.     JustDied[playerid]=1;
  16.     IstTot[playerid]=1;
  17.     DeadInt[playerid]=GetPlayerInterior(playerid);
  18.     DeadWorld[playerid]=GetPlayerVirtualWorld(playerid);
  19.     format(totentext,256,"Dieser Spieler lebt noch %i Sekunden!",DeadTimer[playerid]);
  20.     TotenZeit[playerid]=Create3DTextLabel(totentext,Info_Color,30.0,40.0,50.0,40.0,0);
  21.     Attach3DTextLabelToPlayer(TotenZeit[playerid], playerid, 0.0, 0.0, 0.7);
  22.    
  23.     if(IsPlayerInArea(playerid,-13.310,-2976.570,2982.276,-639.797))
  24.     {
  25.         DeadTimer[playerid]=240;
  26.     }
  27.     else if(IsPlayerInArea(playerid,-3000.897,515.831,2982.276,3017.319))
  28.     {
  29.         DeadTimer[playerid]=420;
  30.     }
  31.     else
  32.     {
  33.         DeadTimer[playerid]=360;
  34.     }
  35.    
  36.     ShowPlayerDialog(playerid,DIALOG_TOT,DIALOG_STYLE_LIST,"Wähle eine Option","Normal Spawnen {FF1400}[Kostet $8.000!]\n{FFFFFF}Auf den Notarzt warten","Nehmen","");
  37. }
  38.  
  39. //Medicsystem - Unter OnDialogResponse
  40. if(dialogid == DIALOG_TOT)
  41. {
  42.     switch(listitem)
  43.     {
  44.         case 0:
  45.         {
  46.             KillTimer(deadt[playerid]);
  47.             KillTimer(FallPlayert[playerid]);
  48.             JustDied[playerid]=0;
  49.             IstTot[playerid]=0;
  50.             DeadTimer[playerid]=240;
  51.             Delete3DTextLabel(TotenZeit[playerid]);
  52.             SetPlayerSpawn(playerid);
  53.             SetCameraBehindPlayer(playerid);
  54.             TogglePlayerControllable(playerid,true);
  55.             ConsumingMoney[playerid] = 1;
  56.             GivePlayerMoney(playerid, -8000);
  57.             ConsumingMoney[playerid] = 0;
  58.             SendClientMessage(playerid,COLOR,"Wer wollte den da nicht warten.... Naja -8k... PS: Schlechte Entscheidung!");
  59.         }
  60.         case 1:
  61.         {
  62.             new totname[MAX_PLAYER_NAME];
  63.             GetPlayerName(playerid,totname,sizeof totname);
  64.             new string[256];
  65.             for(new si;si<sizeof(DeadInfo);si++)
  66.             {
  67.                 if(DeadInfo[si][md_ID] == -1)
  68.                 {
  69.                     DeadInfo[si][md_ID]=playerid;
  70.                     break;
  71.                 }
  72.             }
  73.             for(new i = 0; i < MAX_PLAYERS; i++)
  74.             {
  75.                 if(PlayerInfo[i][pLeader] == 4 || PlayerInfo[i][pMember] == 4)
  76.                 {
  77.                     format(string, sizeof(string), "Leitstelle: Alle Einheiten: Ein Augenzeuge hat gemeldet, das %s schwerverletzt ist.",totname);
  78.                     SendClientMessage(i, TEAM_BLUE_COLOR, string);
  79.                     format(string, sizeof(string), "Leitstelle: Bitte fahren sie sofort zu ihm [/calls]");
  80.                     SendClientMessage(i, TEAM_BLUE_COLOR, string);
  81.                 }
  82.             }
  83.             new stringg[256];
  84.             format(stringg,256,"Du lebst noch genau %i Sekunden",DeadTimer[playerid]);
  85.             SendClientMessage(playerid, Info_Color,stringg);
  86.             //DeadTimer[playerid]=240;
  87.             TextDrawShowForPlayer(playerid,TTL[playerid]);
  88.             SendClientMessage(playerid,COLOR,"Der Notarzt wurde verständigt. Halte durch. PS: Gute Entscheidung =)");
  89.         }
  90.     }
  91. }
  92. if(dialogid == DIALOG_CALLS)
  93. {
  94.     if(response==0)
  95.     {
  96.         return 1;
  97.     }
  98.     if(response==1)
  99.     {
  100.         //if(DeadInfo[listitem][md_bearbeitet]==1) return SendClientMessage(playerid,COLOR,"Diese Meldung wird bereits von einem Sanitäter bearbeitet!");
  101.         new Float:x,Float:y,Float:z,text[256],medicname[MAX_PLAYER_NAME],totname[MAX_PLAYER_NAME];
  102.         GetPlayerPos(DeadInfo[listitem][md_ID],x,y,z);
  103.         DeadInfo[listitem][md_bearbeitet]=1;
  104.         SetPlayerCheckpoint(playerid,x,y,z,4.0);
  105.         TextDrawShowForPlayer(playerid,TTL[DeadInfo[listitem][md_ID]]);
  106.         SetPVarInt(playerid,"Retter",DeadInfo[listitem][md_ID]);
  107.         SendClientMessage(playerid,COLOR,"Der Verletzte wurde auf deiner Karte makiert! Los Los!");
  108.         GetPlayerName(playerid,medicname,sizeof medicname);
  109.         GetPlayerName(DeadInfo[listitem][md_ID],totname,sizeof totname);
  110.         format(text,256,"Leitstelle: Sanitäter %s übernimmt den Fall %i von %s",medicname,listitem,totname);
  111.         SendRadioMessage(4,COLOR,text);
  112.     }
  113. }
  114.  
  115. //Medicsystem - Der CMD /calls
  116. if(strcmp(cmdtext,"/calls",true)==0)
  117. {
  118.     if(PlayerInfo[playerid][pLeader] != 4 && PlayerInfo[playerid][pMember] != 4) return SendClientMessage(playerid,COLOR_RED,"Du bist kein Sanitäter!");
  119.     new string2[1400],name[MAX_PLAYER_NAME];
  120.     string2[0] = '\0';
  121.     new notrufe=0;
  122.     for(new i=0; i<sizeof(DeadInfo); i++)
  123.     {
  124.         if(DeadInfo[i][md_ID]!=-1)
  125.         {
  126.             if(IsPlayerConnected(DeadInfo[i][md_ID]))
  127.             {
  128.                 GetPlayerName(DeadInfo[i][md_ID],name,sizeof name);
  129.                 if(DeadInfo[i][md_bearbeitet]==1)
  130.                 {
  131.                     format(string2,sizeof(string2),"%s{FFF000}%s    TTL: %i Sekunden{FFFFFF}\n",string2,name,DeadTimer[DeadInfo[i][md_ID]]);
  132.                 }
  133.                 else if(DeadInfo[i][md_bearbeitet]==0)
  134.                 {
  135.                     format(string2,sizeof(string2),"%s%s    {FF0A00}TTL: %i Sekunden{FFFFFF}\n",string2,name,DeadTimer[DeadInfo[i][md_ID]]);
  136.                 }
  137.                 notrufe++;
  138.                 //print("string2 ='%s'",string2);
  139.             }
  140.         }
  141.     }
  142.     if(notrufe>0)
  143.     {
  144.         ShowPlayerDialog(playerid, DIALOG_CALLS, DIALOG_STYLE_LIST, "Spieler Liste - Verletzte", string2, "Suchen", "Beenden");
  145.     }
  146.     else
  147.     {
  148.         SendClientMessage(playerid,COLOR,"Keine Notrufe da...");
  149.     }
  150.     r1
  151. }
  152.  
  153. //Medicsystem - Unter OnPlayerSpawn
  154. if(JustDied[playerid] == 1)
  155. {
  156.     SendClientMessage(playerid, Info_Color, "Du bist gestorben.");
  157.     TogglePlayerControllable(playerid, 0);
  158.     ApplyAnimation(playerid,"PED","KO_skid_front",4.1,0,0,0,1,0);
  159.     SetPlayerPos(playerid, deadx[playerid], deady[playerid], deadz[playerid]);
  160.     SetPlayerInterior(playerid, DeadInt[playerid]);
  161.     SetPlayerVirtualWorld(playerid, DeadWorld[playerid]);
  162.     ApplyAnimation(playerid,"PED","KO_skid_front",4.1,0,1,1,1,0);
  163.     SetPlayerCameraPos(playerid, deadx[playerid], deady[playerid], deadz[playerid]+5);
  164.     SetPlayerCameraLookAt(playerid, deadx[playerid], deady[playerid], deadz[playerid]);
  165.     FallPlayert[playerid] = SetTimerEx("FallPlayer", 5000, 0, "d", playerid);
  166.     SetPlayerHealth(playerid,99999999999);
  167.     //DeadTimer[playerid] = 240;
  168.     deadt[playerid] = SetTimerEx("DeadCountdown", 1000, 1, "d", playerid);
  169.     r1
  170. }
  171.  
  172. //Medic System - Ganz unten im Script
  173. forward DeadCountdown(playerid);
  174. public DeadCountdown(playerid)
  175. {
  176.     if(DeadTimer[playerid] == 0)
  177.     {
  178.         KillTimer(deadt[playerid]);
  179.         KillTimer(FallPlayert[playerid]);
  180.         JustDied[playerid]=0;
  181.         IstTot[playerid]=0;
  182.         for(new a=0; a<sizeof(DeadInfo); a++)
  183.         {
  184.             if(DeadInfo[a][md_ID]==playerid)
  185.             {
  186.                 DeadInfo[a][md_ID]=-1;
  187.                 DeadInfo[a][md_bearbeitet]=0;
  188.                 DeadInfo[a][md_rescue]=0;
  189.             }
  190.         }
  191.         SendClientMessage(playerid,COLOR_RED,"Für dich kam leider jede Hilfe zu spät....");
  192.         DeadTimer[playerid]=240;
  193.         Delete3DTextLabel(TotenZeit[playerid]);
  194.         SetPlayerSpawn(playerid);
  195.         SetCameraBehindPlayer(playerid);
  196.         TogglePlayerControllable(playerid, 1);
  197.         return 1;
  198.     }
  199.     DeadTimer[playerid]--;
  200.     new string[128],totentext[256];
  201.     format(string, sizeof(string), "TTL: %d", DeadTimer[playerid]);
  202.     format(totentext,256,"Dieser Spieler lebt noch %i Sekunden!",DeadTimer[playerid]);
  203.     Update3DTextLabelText(TotenZeit[playerid],Info_Color,totentext);
  204.    
  205.     TextDrawHideForPlayer(playerid,TTL[playerid]);
  206.     TextDrawSetString(TTL[playerid],string);
  207.     TextDrawShowForPlayer(playerid,TTL[playerid]);
  208.    
  209.     for(new i=0; i<MAX_PLAYERS; i++)
  210.     {
  211.         if(GetPVarInt(i,"Retter")==playerid)
  212.         {
  213.             TextDrawHideForPlayer(i,TTL[playerid]);
  214.             TextDrawShowForPlayer(i,TTL[playerid]);
  215.         }
  216.     }
  217.     return 1;
  218. }
  219.  
  220. forward FallPlayer(playerid);
  221. public FallPlayer(playerid)
  222. {
  223.     SetPlayerPos(playerid, deadx[playerid], deady[playerid], deadz[playerid]);
  224.     SetPlayerInterior(playerid, DeadInt[playerid]);
  225.     SetPlayerVirtualWorld(playerid, DeadWorld[playerid]);
  226.     ApplyAnimation(playerid,"PED","KO_skid_front",4.1,0,1,1,1,0);
  227. }
  228.  
  229. UC-revive(pp-)
  230. {
  231.     new pID,Float:x,Float:y,Float:z,string[256],medicname[MAX_PLAYER_NAME],totenname[MAX_PLAYER_NAME];
  232.     if(sscanf(params,"i",pID)) return SendClientMessage(playerid, COLOR_GRAD1, "Benutzung: /revive [ID]");
  233.     if(PlayerInfo[playerid][pLeader] != 4 && PlayerInfo[playerid][pMember] != 4) return SendClientMessage(playerid, COLOR_GRAD1, "Du bist kein Sanitäter!");
  234.     if(IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid,COLOR_RED,"Das geht in einem Fahrzeug nicht!");
  235.     if(!IsPlayerConnected(pID)) return SendClientMessage(playerid, COLOR_GRAD1, "Dieser Spieler ist Offline!");
  236.     GetPlayerPos(pID,x,y,z);
  237.     if(IsPlayerInRangeOfPoint(playerid,5.0,x,y,z))
  238.     {
  239.         if(JustDied[pID]==0) return SendClientMessage(playerid, COLOR_GRAD1, "Dieser Spieler ist nicht tot!");
  240.         if(GetPVarInt(playerid,"Revive")==1) return SendClientMessage(playerid, COLOR_GRAD1, "Du kannst nur alle 9 Sekunden wiederbeleben!");
  241.         SetTimerEx("MedicTimerr",9000,0,"i",playerid);
  242.         SetPVarInt(playerid,"Revive",1);
  243.         DeadTimer[pID]=DeadTimer[pID]+12;
  244.         GetPlayerName(playerid,medicname,sizeof medicname);
  245.         GetPlayerName(pID,totenname,sizeof totenname);
  246.         format(string, sizeof(string), "* %s verarztet %s...", medicname, totenname);
  247.         ApplyAnimation(playerid,"MEDIC","CPR",11.0,0,0,0,0,0);
  248.         ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
  249.     }
  250.     else return SendClientMessage(playerid, COLOR_GRAD1, "Du bist nicht in der Nähe des Verletzten!");
  251.     r1
  252. }
  253.  
  254. forward MedicTimerr(playerid);
  255. public MedicTimerr(playerid)
  256. {
  257.     SetPVarInt(playerid,"Revive",0);
  258.     r1
  259. }
  260. UC-rescue(pp-)
  261. {
  262.     new pID,Float:x,Float:y,Float:z,medicname[MAX_PLAYER_NAME],totenname[MAX_PLAYER_NAME],string[256];
  263.     if(sscanf(params,"i",pID)) return SendClientMessage(playerid, COLOR_GRAD1, "Benutzung: /rescue [ID]");
  264.     if(IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid,COLOR_RED,"Das geht in einem Fahrzeug nicht!");
  265.     if(PlayerInfo[playerid][pLeader] != 4 && PlayerInfo[playerid][pMember] != 4) return SendClientMessage(playerid, COLOR_GRAD1, "Du bist kein Sanitäter!");
  266.     if(!IsPlayerConnected(pID)) return SendClientMessage(playerid, COLOR_GRAD1, "Dieser Spieler ist Offline!");
  267.     GetPlayerPos(pID,x,y,z);
  268.     if(IsPlayerInRangeOfPoint(playerid,5.0,x,y,z))
  269.     {
  270.         if(JustDied[pID]==0) return SendClientMessage(playerid, COLOR_GRAD1, "Dieser Spieler ist nicht tot!");
  271.         for(new i=0; i<MAX_VEHICLES; i++)
  272.         {
  273.             if(GetVehicleModel(i)==416)
  274.             {
  275.                 new Float:cx,Float:cy,Float:cz;
  276.                 GetVehiclePos(i,cx,cy,cz);
  277.                 if(IsPlayerInRangeOfPoint(playerid,10.0,cx,cy,cz))
  278.                 {
  279.                     PutPlayerInVehicle(pID,i,2);
  280.                     TogglePlayerControllable(pID,false);
  281.                     KillTimer(deadt[pID]);
  282.                     KillTimer(FallPlayert[pID]);
  283.                     Delete3DTextLabel(TotenZeit[pID]);
  284.                     DeadTimer[pID]=240;
  285.                     SetPlayerCheckpoint(playerid,1143.2092,-1334.5123,13.6135,4.0);
  286.                     for(new a=0; a<sizeof(DeadInfo); a++)
  287.                     {
  288.                         if(DeadInfo[a][md_ID]==pID)
  289.                         {
  290.                             DeadInfo[a][md_rescue]=1;
  291.                         }
  292.                     }
  293.                     TextDrawHideForPlayer(playerid,TTL[pID]);
  294.                     TextDrawHideForPlayer(pID,TTL[pID]);
  295.                     SetPVarInt(playerid,"Deliver",pID);
  296.                     SendClientMessage(playerid, COLOR_GREEN, "Liefer deinen Patienten ins Krankenhaus ein!");
  297.                     GetPlayerName(playerid,medicname,sizeof medicname);
  298.                     GetPlayerName(pID,totenname,sizeof totenname);
  299.                     format(string, sizeof(string), "* %s trägt %s in den Rettungswagen...", medicname, totenname);
  300.                     ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
  301.                     break;
  302.                 }
  303.             }
  304.             if(GetVehicleModel(i)==563)
  305.             {
  306.                 new Float:cx,Float:cy,Float:cz;
  307.                 GetVehiclePos(i,cx,cy,cz);
  308.                 if(IsPlayerInRangeOfPoint(playerid,10.0,cx,cy,cz))
  309.                 {
  310.                     PutPlayerInVehicle(pID,i,1);
  311.                     TogglePlayerControllable(pID,false);
  312.                     KillTimer(deadt[pID]);
  313.                     KillTimer(FallPlayert[pID]);
  314.                     Delete3DTextLabel(TotenZeit[pID]);
  315.                     DeadTimer[pID]=240;
  316.                     SetPlayerCheckpoint(playerid,1160.0460,-1362.6731,27.3474,5.0);
  317.                     for(new a=0; a<sizeof(DeadInfo); a++)
  318.                     {
  319.                         if(DeadInfo[a][md_ID]==pID)
  320.                         {
  321.                             DeadInfo[a][md_rescue]=1;
  322.                         }
  323.                     }
  324.                     TextDrawHideForPlayer(playerid,TTL[pID]);
  325.                     TextDrawHideForPlayer(pID,TTL[pID]);
  326.                     SetPVarInt(playerid,"Deliver",pID);
  327.                     SendClientMessage(playerid, COLOR_GREEN, "Liefer deinen Patienten ins Krankenhaus ein!");
  328.                     GetPlayerName(playerid,medicname,sizeof medicname);
  329.                     GetPlayerName(pID,totenname,sizeof totenname);
  330.                     format(string, sizeof(string), "* %s trägt %s in den Rettungshelikopter...", medicname, totenname);
  331.                     ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
  332.                     break;
  333.                 }
  334.             }
  335.         }
  336.     }
  337.     else return SendClientMessage(playerid, COLOR_GRAD1, "Du bist nicht in der Nähe des Verletzten!");
  338.     r1
  339. }
  340.  
  341. //Medicsystem - Unter OnPlayerDisconnect
  342. new totname[MAX_PLAYER_NAME];
  343. for(new a=0; a<sizeof(DeadInfo); a++)
  344. {
  345.     new string[256];
  346.     if(DeadInfo[a][md_ID]==playerid)
  347.     {
  348.         for(new i = 0; i < MAX_PLAYERS; i++)
  349.         {
  350.             if(PlayerInfo[i][pLeader] == 4 || PlayerInfo[i][pMember] == 4)
  351.             {
  352.                 GetPlayerName(playerid,totname,sizeof totname);
  353.                 format(string, sizeof(string), "Leitstelle: Der Schwerverletzte %s ist offline gegangen.",totname);
  354.                 SendClientMessage(i, TEAM_BLUE_COLOR, string);
  355.             }
  356.             if(GetPVarInt(i,"Deliver")==playerid)
  357.             {
  358.                 SetPVarInt(i,"Deliver",-1);
  359.             }
  360.             if(GetPVarInt(i,"Retter")==playerid)
  361.             {
  362.                 TextDrawHideForPlayer(i,TTL[GetPVarInt(i,"Retter")]);
  363.                 SetPVarInt(i,"Retter",-1);
  364.             }
  365.         }
  366.         DeadInfo[a][md_ID]=-1;
  367.         DeadInfo[a][md_bearbeitet]=0;
  368.         DeadInfo[a][md_rescue]=0;
  369.     }
  370. }
  371. if(JustDied[playerid]==1)
  372. {
  373.     SendClientMessage(playerid,COLOR,"Wer will den da der Wartezeit entgehen ? .... -8k!");
  374.     ConsumingMoney[playerid] = 1;
  375.     GivePlayerMoney(playerid, -8000);
  376.     ConsumingMoney[playerid] = 0;
  377.     KillTimer(deadt[playerid]);
  378.     KillTimer(FallPlayert[playerid]);
  379.     JustDied[playerid]=0;
  380.     IstTot[playerid]=0;
  381.     DeadTimer[playerid]=240;
  382.     Delete3DTextLabel(TotenZeit[playerid]);
  383.     TextDrawHideForPlayer(playerid,TTL[playerid]);
  384. }
  385.  
  386. //Medicsystem - Unter OnPlayerEnterCheckpoint
  387. new ppID=GetPVarInt(playerid,"Deliver");
  388. new vehicle2 = GetPlayerVehicleID(ppID);
  389. if(ppID>-1)
  390. {
  391.     if(vehicle == vehicle2 && (IsPlayerInRangeOfPoint(playerid ,6.0,1160.0460,-1362.6731,27.3474) || IsPlayerInRangeOfPoint(playerid ,6.0,1143.2092,-1334.5123,13.6135)))
  392.     {
  393.         KillTimer(deadt[ppID]);
  394.         KillTimer(FallPlayert[ppID]);
  395.         JustDied[ppID]=0;
  396.         IstTot[ppID]=0;
  397.         DeadTimer[ppID]=240;
  398.         Delete3DTextLabel(TotenZeit[ppID]);
  399.         SetPlayerSpawn(ppID);
  400.         SetCameraBehindPlayer(ppID);
  401.         TogglePlayerControllable(ppID,true);
  402.         DisablePlayerCheckpoint(playerid);
  403.         FraktionsKasse[3] += 5000;
  404.         SendClientMessage(playerid,COLOR_LIGHTBLUE, "*Du hast deinen Patienten erfolgreich eingeliefert. Er wird überleben! Als Belohnung bekommst du $10.000.");
  405.         SendClientMessage(ppID,COLOR_LIGHTBLUE, "*Ein Sanitäter hat dir das Leben gerettet. Nach kurzem Krankenhausaufenthalt kannst du wieder gehen.");
  406.         ConsumingMoney[playerid] = 1;
  407.         GivePlayerMoney(playerid,10000);
  408.         ConsumingMoney[playerid] = 0;
  409.         for(new a=0; a<sizeof(DeadInfo); a++)
  410.         {
  411.             if(DeadInfo[a][md_ID]==ppID)
  412.             {
  413.                 DeadInfo[a][md_ID]=-1;
  414.                 DeadInfo[a][md_bearbeitet]=0;
  415.                 DeadInfo[a][md_rescue]=0;
  416.             }
  417.         }
  418.         SetPVarInt(playerid,"Deliver",-1);
  419.     }
  420. }
Add Comment
Please, Sign In to add comment