Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // For Actors
- /* -------------------------- Actors Function -------------------------- */
- #define DEMAGE_ACTOR_HEAL 3
- #define functionEx%0(%1) forward %0(%1); public %0(%1)
- new ActorMission[3];
- new Timer[sizeof(ActorMission)];
- new TimerShot[MAX_PLAYERS];
- /* -------------------------- Actors Function -------------------------- */
- public OnGameModeInit()
- {
- // For Actors
- /* -------------------------- Actors Function -------------------------- */
- ActorMission[0] = CreateActor(71, 1916.0565, 1284.3304, 10.8203, 270.5099);
- ActorMission[1] = CreateActor(71, 1861.8883, 1262.3375, 10.8203, 350.6823);
- ActorMission[2] = CreateActor(71, 1852.6799, 1285.5439, 10.8203, 268.8857);
- SetActorInvulnerable(ActorMission[0], false);
- SetActorHealth(ActorMission[0], 100);
- ActorMissionWeapon[0] = CreateObject(353, 1861.8883, 1262.3375, 10.8203, 0.0, 0.0, 0.0);
- AttachObjectToObject(ActorMissionWeapon[0], ActorMission[0], 1861.8883, 1262.3375, 10.8203, 0.0, 0.0, 0.0, 1);
- SetActorInvulnerable(ActorMission[1], false);
- SetActorHealth(ActorMission[1], 100);
- ActorMissionWeapon[1] = CreateObject(353, 1861.8883, 1262.3375, 10.8203, 0.0, 0.0, 0.0);
- AttachObjectToObject(ActorMissionWeapon[0], ActorMission[1], 1861.8883, 1262.3375, 10.8203, 0.0, 0.0, 0.0, 1);
- SetActorInvulnerable(ActorMission[2], false);
- SetActorHealth(ActorMission[2], 100);
- ActorMissionWeapon[2] = CreateObject(357, 1852.6799, 1285.5439, 10.8203, 0.0, 0.0, 0.0);
- AttachObjectToObject(ActorMissionWeapon[0], ActorMission[2], 1852.6799, 1285.5439, 10.8203, 0.0, 0.0, 0.0, 1);
- /* -------------------------- Actors Function -------------------------- */
- return 1;
- }
- public OnPlayerSpawn(playerid)
- {
- for(new i = 0; i < 3; i++) {
- Timer[i] = SetTimerEx("OnActorStreamInEx", 1000, true, "dd", ActorMission[i], playerid);
- }
- return 1;
- }
- public OnPlayerDeath(playerid, killerid, reason)
- {
- KillTimer(TimerShot[playerid]);
- return 1;
- }
- public OnPlayerDisconnect(playerid, reason)
- {
- KillTimer(TimerShot[playerid]);
- return 1;
- }
- // For Actors
- /* -------------------------- Actors Function -------------------------- */
- function OnActorGiveDamagePlayer(actorid, forplayerid) {
- if(IsValidActor(ActorMission[actorid])) {
- new Float:x, Float:y, Float:z;
- GetActorPos(ActorMission[actorid], x, y, z);
- if(IsActorStreamedIn(ActorMission[actorid], forplayerid) && IsPlayerInRangeOfPoint(forplayerid, 10.0, x, y, z))
- {
- new Float: heal;
- GetPlayerHealth(forplayerid, heal);
- SetPlayerHealth(forplayerid, heal-DEMAGE_ACTOR_HEAL);
- }
- }
- return 1;
- }
- function OnActorStreamInEx(actorid, forplayerid) {
- if(IsValidActor(ActorMission[actorid])) {
- new Float:x, Float:y, Float:z;
- GetActorPos(ActorMission[actorid], x, y, z);
- if(IsActorStreamedIn(ActorMission[actorid], forplayerid) && IsPlayerInRangeOfPoint(forplayerid, 10.0, x, y, z))
- {
- ApplyActorAnimation(ActorMission[actorid], "SHOP", "ROB_Loop_Threat", 4.0, 1, 0, 0, 200, 5000);
- TimerShot[forplayerid] = SetTimerEx("OnActorGiveDamagePlayer", 3000, true, "dd", actorid, forplayerid);
- KillTimer(Timer[actorid]);
- } else {
- ClearActorAnimations(ActorMission[actorid]);
- Timer[actorid] = SetTimerEx("OnActorStreamOutEx", 1000, true, "dd", actorid, forplayerid);
- }
- }
- return 1;
- }
- function OnActorStreamOutEx(actorid, forplayerid) {
- if(IsValidActor(ActorMission[actorid])) {
- new Float:x, Float:y, Float:z;
- GetActorPos(ActorMission[actorid], x, y, z);
- if(!IsActorStreamedIn(ActorMission[actorid], forplayerid) && !IsPlayerInRangeOfPoint(forplayerid, 10.0, x, y, z))
- {
- ClearActorAnimations(ActorMission[actorid]);
- DestroyObject(ActorMissionWeapon[actorid]);
- KillTimer(TimerShot[forplayerid]);
- Timer[actorid] = SetTimerEx("OnActorStreamInEx", 1000, true, "dd", actorid, forplayerid);
- }
- }
- return 1;
- }
- public OnPlayerGiveDamageActor(playerid, damaged_actorid, Float: amount, weaponid, bodypart)
- {
- new string[128], attacker[MAX_PLAYER_NAME];
- new weaponname[24];
- GetPlayerName(playerid, attacker, sizeof (attacker));
- GetWeaponName(weaponid, weaponname, sizeof (weaponname));
- format(string, sizeof(string), "%s has made %.0f damage to actor id %d, weapon: %s", attacker, amount, damaged_actorid, weaponname);
- SendClientMessage(playerid, 0xFFFFFFFF, string);
- new Float: Health;
- GetActorHealth(damaged_actorid, Health);
- SetActorHealth(damaged_actorid, Health-amount);
- printf("Actor ID %d has %.2f health.", damaged_actorid, Health);
- new Float: actheal;
- GetActorHealth(damaged_actorid, actheal);
- if(actheal <= 0) {
- ClearActorAnimations(ActorMission[damaged_actorid]);
- SetActorHealth(damaged_actorid, 0);
- KillTimer(TimerShot[playerid]);
- }
- return 1;
- }
- /* -------------------------- Actors Function -------------------------- */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement