Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Please dont remove these credits (For me,DArren Reeder (AKA Mowgli on forums)
- //THis is v0.2 where i added a medic pack system, pretty simple just because people sort of requested it...
- #include <a_samp>
- #include <utils>
- #define FILTERSCRIPT
- #define COLOR_LIGHTBLUE 0x33CCFFAA
- #define COLOR_RED 0xAA3333AA
- #define COLOR_LIGHTRED 0xFF6347AA
- #define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, "")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1
- forward CheckHealth(playerid);
- forward PlayerToPoint(Float:radi, playerid, Float:x, Float:y, Float:z);
- forward beingrevived(giveplayerid,playerid);
- forward reviveddone(giveplayerid,playerid);
- new FirstTime[MAX_PLAYERS];
- new OnFloor[MAX_PLAYERS];
- new revid[MAX_PLAYERS];
- new medicpack[MAX_PLAYERS];
- #if defined FILTERSCRIPT
- public OnFilterScriptInit()
- {
- print("\n--------------------------------------");
- print(" Revive System v0.2 by Darren Reeder / Mowgli");
- print("--------------------------------------\n");
- return 1;
- }
- public OnFilterScriptExit()
- {
- return 1;
- }
- #endif
- public PlayerToPoint(Float:radi, playerid, Float:x, Float:y, Float:z)
- {
- new Float:oldposx, Float:oldposy, Float:oldposz;
- new Float:tempposx, Float:tempposy, Float:tempposz;
- GetPlayerPos(playerid, oldposx, oldposy, oldposz);
- tempposx = (oldposx -x);
- tempposy = (oldposy -y);
- tempposz = (oldposz -z);
- //printf("DEBUG: X:%f Y:%f Z:%f",posx,posy,posz);
- if (((tempposx < radi) && (tempposx > -radi)) && ((tempposy < radi) && (tempposy > -radi)) && ((tempposz < radi) && (tempposz > -radi)))
- {
- return 1;
- }
- return 0;
- }
- public CheckHealth(playerid)
- {
- new Float:health;
- GetPlayerHealth(playerid,health);
- if(health >= 1 && health <= 10)
- {
- if(FirstTime[playerid] == 0)
- {
- SendClientMessage(playerid,COLOR_RED,"You are Dieing, you need to be revived or you can /suicide");
- }
- TogglePlayerControllable(playerid,0);
- FirstTime[playerid] = 1;
- OnFloor[playerid] = 1;
- ApplyAnimation(playerid,"CRACK","crckdeth2",4.0,0,0,0,1,1);
- }
- return 1;
- }
- public OnPlayerConnect(playerid)
- {
- SetTimerEx("CheckHealth",100,1,"d",playerid);
- FirstTime[playerid] = 0; OnFloor[playerid] = 0; revid[playerid] = 0; medicpack[playerid] = 1;
- return 1;
- }
- public OnPlayerDisconnect(playerid, reason)
- {
- FirstTime[playerid] = 0; OnFloor[playerid] = 0; revid[playerid] = 0;
- return 1;
- }
- public OnPlayerSpawn(playerid)
- {
- return 1;
- }
- public OnPlayerDeath(playerid, killerid, reason)
- {
- if(OnFloor[playerid] == 1)
- {
- OnFloor[playerid] = 0;
- TogglePlayerControllable(playerid,1);
- }
- return 1;
- }
- public OnVehicleSpawn(vehicleid)
- {
- return 1;
- }
- public OnVehicleDeath(vehicleid, killerid)
- {
- return 1;
- }
- public OnPlayerText(playerid, text[])
- {
- return 1;
- }
- public OnPlayerCommandText(playerid, cmdtext[])
- {
- dcmd(revive,6,cmdtext);
- if (strcmp("/revivehelp", cmdtext, true, 10) == 0)
- {
- SendClientMessage(playerid,COLOR_LIGHTBLUE,"/buymedicpack to buy a medic pack for 5,000 dollars");
- SendClientMessage(playerid,COLOR_LIGHTBLUE,"When someones Health bar has reached to 10 they then have 5 minutes");
- SendClientMessage(playerid,COLOR_LIGHTBLUE,"to either /suicide or be /revive'd by somone. If you are revived, your");
- SendClientMessage(playerid,COLOR_LIGHTBLUE,"health is set back to 50.");
- SendClientMessage(playerid,COLOR_LIGHTBLUE,"**Revive System v0.2 created by Mowgli**");
- return 1;
- }
- if (strcmp("/buymedicpack", cmdtext, true, 10) == 0)
- {
- if(GetPlayerMoney(playerid) <= 4999) return SendClientMessage(playerid,COLOR_LIGHTRED,"You cannot afford a Medic Pack (5,000)");
- else if(medicpack[playerid] == 1) return SendClientMessage(playerid,COLOR_LIGHTRED,"You already have a medic pack!! stupid...");
- else { medicpack[playerid] = 1; SendClientMessage(playerid,COLOR_LIGHTBLUE,"You have bought a medic pack for 5000Dollars.."); GivePlayerMoney(playerid,-5000); }
- return 1;
- }
- if (strcmp("/suicide", cmdtext, true, 10) == 0)
- {
- if(OnFloor[playerid] == 1)
- {
- SendClientMessage(playerid,COLOR_LIGHTRED,"You close your eyes and slowly Grab your knife and Stab your heart.");
- SetPlayerHealth(playerid,0);
- FirstTime[playerid] = 0;
- OnFloor[playerid] = 0;
- return 1;
- }
- else if(OnFloor[playerid] == 0)
- {
- SendClientMessage(playerid,COLOR_LIGHTRED,"You are not Dieing.");
- }
- return 1;
- }
- return 0;
- }
- dcmd_revive(playerid,params[])
- {
- new string[128];
- new giveplayerid;
- new idx,tmpit[256];
- tmpit = strtok(params,idx);
- giveplayerid = ReturnUser(tmpit);
- if(!strlen(tmpit))
- {
- SendClientMessage(playerid,COLOR_LIGHTRED,"Usage: /revive [playerid]");
- return true;
- }
- new playername[MAX_PLAYER_NAME];
- GetPlayerName(playerid, playername, sizeof(playername));
- new onfloorname[MAX_PLAYER_NAME];
- GetPlayerName(giveplayerid, onfloorname, sizeof(onfloorname));
- new Float:px, Float:py, Float:pz;
- GetPlayerPos(giveplayerid,px,py,pz);
- if(!IsPlayerConnected(giveplayerid)) return SendClientMessage(playerid,COLOR_RED, "That player is not connected");
- else if(medicpack[playerid] == 0) return SendClientMessage(playerid,COLOR_RED,"Sorry you do not have any medic packs..(/buymedicpack)");
- else if(giveplayerid == playerid) return SendClientMessage(playerid, COLOR_RED, "You cannot revive yourself!");
- else if(!PlayerToPoint(3.0,playerid,px,py,pz)) return SendClientMessage(playerid, COLOR_RED, "You are not close enough!");
- else if(OnFloor[giveplayerid] == 0) return SendClientMessage(playerid,COLOR_RED,"That player does not need reviveing");
- if(PlayerToPoint(3.0,playerid,px,py,pz))
- {
- if(IsPlayerConnected(giveplayerid))
- {
- format(string, sizeof(string), "you are reviving %s", onfloorname);
- SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
- format(string, sizeof(string), "you are being revived by %s", playername);
- SendClientMessage(giveplayerid, COLOR_LIGHTBLUE, string);
- revid[playerid] = giveplayerid;
- SetTimerEx("beingrevived", 10000, 0, "i", playerid);
- return 1;
- }
- SendClientMessage(playerid,COLOR_RED,"INVALID ID");
- return 1;
- }
- SendClientMessage(playerid,COLOR_RED,"You are not close enough");
- return 1;
- }
- strtok(const string[], &index)
- {
- new length = strlen(string);
- while ((index < length) && (string[index] <= ' '))
- {
- index++;
- }
- new offset = index;
- new result[20];
- while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
- {
- result[index - offset] = string[index];
- index++;
- }
- result[index - offset] = EOS;
- return result;
- }
- public beingrevived(giveplayerid,playerid)
- {
- new giveplayer = revid[playerid];
- new string[128];
- new onfloorguy[MAX_PLAYER_NAME];
- GetPlayerName(giveplayer, onfloorguy, sizeof(onfloorguy));
- new reviver[MAX_PLAYER_NAME];
- GetPlayerName(playerid, reviver, sizeof(reviver));
- format(string, sizeof(string), "you have been revived by %s", reviver);
- SendClientMessage(giveplayer, COLOR_LIGHTBLUE, string);
- format(string, sizeof(string), "you have revived %s", onfloorguy);
- SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
- SetPlayerHealth(giveplayer, 50);
- SetTimerEx("reviveddone", 1000, 0, "i", playerid);
- return 1;
- }
- public reviveddone(giveplayerid,playerid)
- {
- new giveplayer = revid[playerid];
- TogglePlayerControllable(giveplayer,1);
- FirstTime[giveplayer] = 0;
- OnFloor[giveplayer] = 0;
- ClearAnimations(giveplayer);
- revid[playerid] = 0;
- medicpack[playerid] = 0;
- return 1;
- }
- public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
- {
- return 1;
- }
- public OnPlayerExitVehicle(playerid, vehicleid)
- {
- return 1;
- }
- public OnPlayerStateChange(playerid, newstate, oldstate)
- {
- return 1;
- }
- public OnPlayerEnterCheckpoint(playerid)
- {
- return 1;
- }
- public OnPlayerLeaveCheckpoint(playerid)
- {
- return 1;
- }
- public OnPlayerEnterRaceCheckpoint(playerid)
- {
- return 1;
- }
- public OnPlayerLeaveRaceCheckpoint(playerid)
- {
- return 1;
- }
- public OnRconCommand(cmd[])
- {
- return 1;
- }
- public OnObjectMoved(objectid)
- {
- return 1;
- }
- public OnPlayerObjectMoved(playerid, objectid)
- {
- return 1;
- }
- public OnPlayerPickUpPickup(playerid, pickupid)
- {
- return 1;
- }
- public OnPlayerSelectedMenuRow(playerid, row)
- {
- return 1;
- }
- public OnPlayerExitedMenu(playerid)
- {
- return 1;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement