| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629 |
- /* ---------------------------------
- FCNPC Plugin PAWN include
- - File: FCNPC.inc
- - Author: OrMisicL
- - Contributor: ziggi
- ---------------------------------*/
- #if defined _FCNPC_included
- #endinput
- #endif
- #define _FCNPC_included
- #pragma library FCNPC
- // Version
- #define FCNPC_INCLUDE_VERSION 180
- public FCNPC_IncludeVersion = FCNPC_INCLUDE_VERSION;
- #pragma unused FCNPC_IncludeVersion
- // Definitions
- #define FCNPC_MOVE_TYPE_AUTO (-1)
- #define FCNPC_MOVE_TYPE_WALK (0)
- #define FCNPC_MOVE_TYPE_RUN (1)
- #define FCNPC_MOVE_TYPE_SPRINT (2)
- #define FCNPC_MOVE_TYPE_DRIVE (3)
- #define FCNPC_MOVE_SPEED_AUTO (-1.0)
- #define FCNPC_MOVE_SPEED_WALK (0.1552086)
- #define FCNPC_MOVE_SPEED_RUN (0.56444)
- #define FCNPC_MOVE_SPEED_SPRINT (0.926784)
- #define FCNPC_MAX_NODES (64)
- #define FCNPC_INVALID_MOVEPATH_ID (-1)
- #define FCNPC_INVALID_RECORD_ID (-1)
- // Compatibility with older versions
- #if !defined MOVE_TYPE_AUTO
- #define MOVE_TYPE_AUTO FCNPC_MOVE_TYPE_AUTO
- #endif
- #if !defined MOVE_TYPE_WALK
- #define MOVE_TYPE_WALK FCNPC_MOVE_TYPE_WALK
- #endif
- #if !defined MOVE_TYPE_RUN
- #define MOVE_TYPE_RUN FCNPC_MOVE_TYPE_RUN
- #endif
- #if !defined MOVE_TYPE_SPRINT
- #define MOVE_TYPE_SPRINT FCNPC_MOVE_TYPE_SPRINT
- #endif
- #if !defined MOVE_TYPE_DRIVE
- #define MOVE_TYPE_DRIVE FCNPC_MOVE_TYPE_DRIVE
- #endif
- #if !defined MOVE_SPEED_AUTO
- #define MOVE_SPEED_AUTO FCNPC_MOVE_SPEED_AUTO
- #endif
- #if !defined MOVE_SPEED_WALK
- #define MOVE_SPEED_WALK FCNPC_MOVE_SPEED_WALK
- #endif
- #if !defined MOVE_SPEED_RUN
- #define MOVE_SPEED_RUN FCNPC_MOVE_SPEED_RUN
- #endif
- #if !defined MOVE_SPEED_SPRINT
- #define MOVE_SPEED_SPRINT FCNPC_MOVE_SPEED_SPRINT
- #endif
- #if !defined MAX_NODES
- #define MAX_NODES FCNPC_MAX_NODES
- #endif
- #if !defined INVALID_MOVEPATH_ID
- #define INVALID_MOVEPATH_ID FCNPC_INVALID_MOVEPATH_ID
- #endif
- #if !defined INVALID_RECORD_ID
- #define INVALID_RECORD_ID FCNPC_INVALID_RECORD_ID
- #endif
- // Callbacks
- forward FCNPC_OnCreate(npcid);
- forward FCNPC_OnDestroy(npcid);
- forward FCNPC_OnSpawn(npcid);
- forward FCNPC_OnRespawn(npcid);
- forward FCNPC_OnDeath(npcid, killerid, weaponid);
- forward FCNPC_OnVehicleEntryComplete(npcid, vehicleid, seat);
- forward FCNPC_OnVehicleExitComplete(npcid);
- forward FCNPC_OnReachDestination(npcid);
- forward FCNPC_OnFinishPlayback(npcid);
- forward FCNPC_OnTakeDamage(npcid, damagerid, weaponid, bodypart, Float:health_loss);
- forward FCNPC_OnGiveDamage(npcid, damagedid, weaponid, bodypart, Float:health_loss);
- forward FCNPC_OnVehicleTakeDamage(npcid, damagerid, vehicleid, weaponid, Float:x, Float:y, Float:z);
- forward FCNPC_OnWeaponShot(npcid, weaponid, hittype, hitid, Float:x, Float:y, Float:z);
- forward FCNPC_OnWeaponStateChange(npcid, weapon_state);
- forward FCNPC_OnFinishNodePoint(npcid, point);
- forward FCNPC_OnChangeNode(npcid, nodeid);
- forward FCNPC_OnFinishNode(npcid);
- forward FCNPC_OnStreamIn(npcid, forplayerid);
- forward FCNPC_OnStreamOut(npcid, forplayerid);
- forward FCNPC_OnUpdate(npcid);
- forward FCNPC_OnFinishMovePath(npcid, pathid);
- forward FCNPC_OnFinishMovePathPoint(npcid, pathid, pointid);
- forward FCNPC_OnChangeHeightPos(npcid, Float:new_z, Float:old_z); // disabled by default, see FCNPC_SetMinHeightPosCall
- // Natives
- native FCNPC_GetPluginVersion(version[], const size = sizeof(version));
- native FCNPC_SetUpdateRate(rate);
- native FCNPC_GetUpdateRate();
- native FCNPC_SetTickRate(rate);
- native FCNPC_GetTickRate();
- native FCNPC_InitMapAndreas(address);
- native FCNPC_ToggleCrashLogCreation(bool:toggle);
- native FCNPC_GetCrashLogCreation();
- native FCNPC_Create(name[]);
- native FCNPC_Destroy(npcid);
- native FCNPC_Spawn(npcid, skinid, Float:x, Float:y, Float:z);
- native FCNPC_Respawn(npcid);
- native FCNPC_IsSpawned(npcid);
- native FCNPC_Kill(npcid);
- native FCNPC_IsDead(npcid);
- native FCNPC_IsValid(npcid);
- native FCNPC_IsStreamedIn(npcid, forplayerid);
- native FCNPC_IsStreamedForAnyone(npcid);
- native FCNPC_GetValidArray(npcs[], const size = sizeof(npcs));
- native FCNPC_SetPosition(npcid, Float:x, Float:y, Float:z);
- native FCNPC_GivePosition(npcid, Float:x, Float:y, Float:z);
- native FCNPC_GetPosition(npcid, &Float:x, &Float:y, &Float:z);
- native FCNPC_SetAngle(npcid, Float:angle);
- native Float:FCNPC_GiveAngle(npcid, Float:angle);
- native FCNPC_SetAngleToPos(npcid, Float:x, Float:y);
- native FCNPC_SetAngleToPlayer(npcid, playerid);
- native Float:FCNPC_GetAngle(npcid);
- native FCNPC_SetQuaternion(npcid, Float:w, Float:x, Float:y, Float:z);
- native FCNPC_GiveQuaternion(npcid, Float:w, Float:x, Float:y, Float:z);
- native FCNPC_GetQuaternion(npcid, &Float:w, &Float:x, &Float:y, &Float:z);
- native FCNPC_SetVelocity(npcid, Float:x, Float:y, Float:z, bool:update_pos = false);
- native FCNPC_GiveVelocity(npcid, Float:x, Float:y, Float:z, bool:update_pos = false);
- native FCNPC_GetVelocity(npcid, &Float:x, &Float:y, &Float:z);
- native FCNPC_SetSpeed(npcid, Float:speed);
- native Float:FCNPC_GetSpeed(npcid);
- native FCNPC_SetInterior(npcid, interiorid);
- native FCNPC_GetInterior(npcid);
- native FCNPC_SetVirtualWorld(npcid, worldid);
- native FCNPC_GetVirtualWorld(npcid);
- native FCNPC_SetHealth(npcid, Float:health);
- native Float:FCNPC_GiveHealth(npcid, Float:health);
- native Float:FCNPC_GetHealth(npcid);
- native FCNPC_SetArmour(npcid, Float:armour);
- native Float:FCNPC_GiveArmour(npcid, Float:armour);
- native Float:FCNPC_GetArmour(npcid);
- native FCNPC_SetInvulnerable(npcid, bool:invulnerable = true);
- native FCNPC_IsInvulnerable(npcid);
- native FCNPC_SetSkin(npcid, skinid);
- native FCNPC_GetSkin(npcid);
- native FCNPC_SetWeapon(npcid, weaponid);
- native FCNPC_GetWeapon(npcid);
- native FCNPC_SetAmmo(npcid, ammo);
- native FCNPC_GiveAmmo(npcid, ammo);
- native FCNPC_GetAmmo(npcid);
- native FCNPC_SetAmmoInClip(npcid, ammo);
- native FCNPC_GiveAmmoInClip(npcid, ammo);
- native FCNPC_GetAmmoInClip(npcid);
- native FCNPC_SetWeaponSkillLevel(npcid, skill, level);
- native FCNPC_GiveWeaponSkillLevel(npcid, skill, level);
- native FCNPC_GetWeaponSkillLevel(npcid, skill);
- native FCNPC_SetWeaponState(npcid, weaponstate);
- native FCNPC_GetWeaponState(npcid);
- native FCNPC_SetWeaponReloadTime(npcid, weaponid, time);
- native FCNPC_GetWeaponReloadTime(npcid, weaponid);
- native FCNPC_GetWeaponActualReloadTime(npcid, weaponid);
- native FCNPC_SetWeaponShootTime(npcid, weaponid, time);
- native FCNPC_GetWeaponShootTime(npcid, weaponid);
- native FCNPC_SetWeaponClipSize(npcid, weaponid, size);
- native FCNPC_GetWeaponClipSize(npcid, weaponid);
- native FCNPC_GetWeaponActualClipSize(npcid, weaponid);
- native FCNPC_SetWeaponAccuracy(npcid, weaponid, Float:accuracy);
- native Float:FCNPC_GetWeaponAccuracy(npcid, weaponid);
- native FCNPC_SetWeaponInfo(npcid, weaponid, reload_time = -1, shoot_time = -1, clip_size = -1, Float:accuracy = 1.0);
- native FCNPC_GetWeaponInfo(npcid, weaponid, &reload_time = -1, &shoot_time = -1, &clip_size = -1, &Float:accuracy = 1.0);
- native FCNPC_SetWeaponDefaultInfo(weaponid, reload_time = -1, shoot_time = -1, clip_size = -1, Float:accuracy = 1.0);
- native FCNPC_GetWeaponDefaultInfo(weaponid, &reload_time = -1, &shoot_time = -1, &clip_size = -1, &Float:accuracy = 1.0);
- native FCNPC_SetKeys(npcid, ud_analog, lr_analog, keys);
- native FCNPC_GetKeys(npcid, &ud_analog, &lr_analog, &keys);
- native FCNPC_SetSpecialAction(npcid, actionid);
- native FCNPC_GetSpecialAction(npcid);
- native FCNPC_SetAnimation(npcid, animationid, Float:fDelta = 4.1, loop = 0, lockx = 1, locky = 1, freeze = 0, time = 1);
- native FCNPC_SetAnimationByName(npcid, name[], Float:fDelta = 4.1, loop = 0, lockx = 1, locky = 1, freeze = 0, time = 1);
- native FCNPC_ResetAnimation(npcid);
- native FCNPC_GetAnimation(npcid, &animationid = 0, &Float:fDelta = 4.1, &loop = 0, &lockx = 1, &locky = 1, &freeze = 0, &time = 1);
- native FCNPC_ApplyAnimation(npcid, animlib[], animname[], Float:fDelta = 4.1, loop = 0, lockx = 1, locky = 1, freeze = 0, time = 1);
- native FCNPC_ClearAnimations(npcid);
- native FCNPC_SetFightingStyle(npcid, style);
- native FCNPC_GetFightingStyle(npcid);
- native FCNPC_ToggleReloading(npcid, bool:toggle);
- native FCNPC_ToggleInfiniteAmmo(npcid, bool:toggle);
- native FCNPC_GoTo(npcid, Float:x, Float:y, Float:z, type = FCNPC_MOVE_TYPE_AUTO, Float:speed = FCNPC_MOVE_SPEED_AUTO, bool:UseMapAndreas = false, Float:radius = 0.0, bool:setangle = true, Float:dist_offset = 0.0, stopdelay = 250);
- native FCNPC_GoToPlayer(npcid, playerid, type = FCNPC_MOVE_TYPE_AUTO, Float:speed = FCNPC_MOVE_SPEED_AUTO, bool:UseMapAndreas = false, Float:radius = 0.0, bool:setangle = true, Float:dist_offset = 0.0, Float:dist_check = 1.5, stopdelay = 250);
- native FCNPC_Stop(npcid);
- native FCNPC_IsMoving(npcid);
- native FCNPC_IsMovingAtPlayer(npcid, playerid);
- native FCNPC_GetDestinationPoint(npcid, &Float:x, &Float:y, &Float:z);
- native FCNPC_AimAt(npcid, Float:x, Float:y, Float:z, bool:shoot = false, shoot_delay = -1, bool:setangle = true, Float:offset_from_x = 0.0, Float:offset_from_y = 0.0, Float:offset_from_z = 0.0);
- native FCNPC_AimAtPlayer(npcid, playerid, bool:shoot = false, shoot_delay = -1, bool:setangle = true, Float:offset_x = 0.0, Float:offset_y = 0.0, Float:offset_z = 0.0, Float:offset_from_x = 0.0, Float:offset_from_y = 0.0, Float:offset_from_z = 0.0);
- native FCNPC_StopAim(npcid);
- native FCNPC_MeleeAttack(npcid, delay = -1, bool:fightstyle = false);
- native FCNPC_StopAttack(npcid);
- native FCNPC_IsAttacking(npcid);
- native FCNPC_IsAiming(npcid);
- native FCNPC_IsAimingAtPlayer(npcid, playerid);
- native FCNPC_GetAimingPlayer(npcid);
- native FCNPC_IsShooting(npcid);
- native FCNPC_IsReloading(npcid);
- native FCNPC_TriggerWeaponShot(npcid, weaponid, hittype, hitid, Float:x, Float:y, Float:z, bool:ishit = true, Float:offset_from_x = 0.0, Float:offset_from_y = 0.0, Float:offset_from_z = 0.0);
- native FCNPC_EnterVehicle(npcid, vehicleid, seatid, type = FCNPC_MOVE_TYPE_WALK);
- native FCNPC_ExitVehicle(npcid);
- native FCNPC_PutInVehicle(npcid, vehicleid, seatid);
- native FCNPC_RemoveFromVehicle(npcid);
- native FCNPC_GetVehicleID(npcid);
- native FCNPC_GetVehicleSeat(npcid);
- native FCNPC_SetVehicleSiren(npcid, bool:status);
- native FCNPC_IsVehicleSiren(npcid);
- native FCNPC_SetVehicleHealth(npcid, Float:health);
- native Float:FCNPC_GetVehicleHealth(npcid);
- native FCNPC_SetVehicleHydraThrusters(npcid, direction);
- native FCNPC_GetVehicleHydraThrusters(npcid);
- native FCNPC_SetVehicleGearState(npcid, gear_state);
- native FCNPC_GetVehicleGearState(npcid);
- native FCNPC_SetSurfingOffsets(npcid, Float:x, Float:y, Float:z);
- native FCNPC_GiveSurfingOffsets(npcid, Float:x, Float:y, Float:z);
- native FCNPC_GetSurfingOffsets(npcid, &Float:x, &Float:y, &Float:z);
- native FCNPC_SetSurfingVehicle(npcid, vehicleid);
- native FCNPC_GetSurfingVehicle(npcid);
- native FCNPC_SetSurfingObject(npcid, objectid);
- native FCNPC_GetSurfingObject(npcid);
- native FCNPC_SetSurfingPlayerObject(npcid, objectid);
- native FCNPC_GetSurfingPlayerObject(npcid);
- native FCNPC_StopSurfing(npcid);
- native FCNPC_StartPlayingPlayback(npcid, file[] = "", recordid = FCNPC_INVALID_RECORD_ID, bool:auto_unload = false);
- native FCNPC_StopPlayingPlayback(npcid);
- native FCNPC_PausePlayingPlayback(npcid);
- native FCNPC_ResumePlayingPlayback(npcid);
- native FCNPC_LoadPlayingPlayback(file[]);
- native FCNPC_UnloadPlayingPlayback(recordid);
- native FCNPC_SetPlayingPlaybackPath(npcid, path[]);
- native FCNPC_GetPlayingPlaybackPath(npcid, path[], const size = sizeof(path));
- native FCNPC_OpenNode(nodeid);
- native FCNPC_CloseNode(nodeid);
- native FCNPC_IsNodeOpen(nodeid);
- native FCNPC_GetNodeType(nodeid);
- native FCNPC_SetNodePoint(nodeid, point);
- native FCNPC_GetNodePointPosition(nodeid, &Float:x, &Float:y, &Float:z);
- native FCNPC_GetNodePointCount(nodeid);
- native FCNPC_GetNodeInfo(nodeid, &vehnodes, &pednodes, &navinode);
- native FCNPC_PlayNode(npcid, nodeid, move_type = FCNPC_MOVE_TYPE_AUTO, Float:speed = FCNPC_MOVE_SPEED_AUTO, bool:UseMapAndreas = false, Float:radius = 0.0, bool:setangle = true);
- native FCNPC_StopPlayingNode(npcid);
- native FCNPC_PausePlayingNode(npcid);
- native FCNPC_ResumePlayingNode(npcid);
- native FCNPC_IsPlayingNode(npcid);
- native FCNPC_IsPlayingNodePaused(npcid);
- native FCNPC_CreateMovePath();
- native FCNPC_DestroyMovePath(pathid);
- native FCNPC_IsValidMovePath(pathid);
- native FCNPC_AddPointToPath(pathid, Float:x, Float:y, Float:z);
- native FCNPC_AddPointsToPath(pathid, Float:points[][3], const size = sizeof(points));
- native FCNPC_AddPointsToPath2(pathid, Float:points_x[], Float:points_y[], Float:points_z[], const size = sizeof(points_x));
- native FCNPC_RemovePointFromPath(pathid, pointid);
- native FCNPC_IsValidMovePoint(pathid, pointid);
- native FCNPC_GetMovePoint(pathid, pointid, &Float:x, &Float:y, &Float:z);
- native FCNPC_GetNumberMovePoint(pathid);
- native FCNPC_GoByMovePath(npcid, pathid, type = FCNPC_MOVE_TYPE_AUTO, Float:speed = FCNPC_MOVE_SPEED_AUTO, bool:UseMapAndreas = false, Float:radius = 0.0, bool:setangle = true, Float:dist_offset = 0.0);
- native FCNPC_ToggleMapAndreasUsage(npcid, bool:enabled);
- native FCNPC_IsMapAndreasUsed(npcid);
- native FCNPC_SetMinHeightPosCall(npcid, Float:height);
- native Float:FCNPC_GetMinHeightPosCall(npcid);
- // ALS for some callbacks
- public OnPlayerGiveDamage(playerid, damagedid, Float:amount, weaponid, bodypart)
- {
- #if defined FCNPC_OnPlayerGiveDamage
- return FCNPC_OnPlayerGiveDamage(playerid, damagedid, amount, weaponid, bodypart);
- #else
- return 1;
- #endif
- }
- #if defined _ALS_OnPlayerGiveDamage
- #undef OnPlayerGiveDamage
- #else
- #define _ALS_OnPlayerGiveDamage
- #endif
- #define OnPlayerGiveDamage FCNPC_OnPlayerGiveDamage
- #if defined FCNPC_OnPlayerGiveDamage
- forward FCNPC_OnPlayerGiveDamage(playerid, damagedid, Float:amount, weaponid, bodypart);
- #endif
- public OnPlayerTakeDamage(playerid, issuerid, Float:amount, weaponid, bodypart)
- {
- #if defined FCNPC_OnPlayerTakeDamage
- return FCNPC_OnPlayerTakeDamage(playerid, issuerid, amount, weaponid, bodypart);
- #else
- return 1;
- #endif
- }
- #if defined _ALS_OnPlayerTakeDamage
- #undef OnPlayerTakeDamage
- #else
- #define _ALS_OnPlayerTakeDamage
- #endif
- #define OnPlayerTakeDamage FCNPC_OnPlayerTakeDamage
- #if defined FCNPC_OnPlayerTakeDamage
- forward FCNPC_OnPlayerTakeDamage(playerid, issuerid, Float:amount, weaponid, bodypart);
- #endif
- public OnPlayerWeaponShot(playerid, weaponid, hittype, hitid, Float:fX, Float:fY, Float:fZ)
- {
- #if defined FCNPC_OnPlayerWeaponShot
- return FCNPC_OnPlayerWeaponShot(playerid, weaponid, hittype, hitid, fX, fY, fZ);
- #else
- return 1;
- #endif
- }
- #if defined _ALS_OnPlayerWeaponShot
- #undef OnPlayerWeaponShot
- #else
- #define _ALS_OnPlayerWeaponShot
- #endif
- #define OnPlayerWeaponShot FCNPC_OnPlayerWeaponShot
- #if defined FCNPC_OnPlayerWeaponShot
- forward FCNPC_OnPlayerWeaponShot(playerid, weaponid, hittype, hitid, Float:fX, Float:fY, Float:fZ);
- #endif
- public OnPlayerStreamIn(playerid, forplayerid)
- {
- #if defined FCNPC_OnPlayerStreamIn
- return FCNPC_OnPlayerStreamIn(playerid, forplayerid);
- #else
- return 1;
- #endif
- }
- #if defined _ALS_OnPlayerStreamIn
- #undef OnPlayerStreamIn
- #else
- #define _ALS_OnPlayerStreamIn
- #endif
- #define OnPlayerStreamIn FCNPC_OnPlayerStreamIn
- #if defined FCNPC_OnPlayerStreamIn
- forward FCNPC_OnPlayerStreamIn(playerid, forplayerid);
- #endif
- public OnPlayerStreamOut(playerid, forplayerid)
- {
- #if defined FCNPC_OnPlayerStreamOut
- return FCNPC_OnPlayerStreamOut(playerid, forplayerid);
- #else
- return 1;
- #endif
- }
- #if defined _ALS_OnPlayerStreamOut
- #undef OnPlayerStreamOut
- #else
- #define _ALS_OnPlayerStreamOut
- #endif
- #define OnPlayerStreamOut FCNPC_OnPlayerStreamOut
- #if defined FCNPC_OnPlayerStreamOut
- forward FCNPC_OnPlayerStreamOut(playerid, forplayerid);
- #endif
- // Update checker
- #if !defined HTTP
- #tryinclude <a_http>
- #endif
- #if !defined HTTP
- #tryinclude "a_http"
- #endif
- #if defined HTTP && !defined FCNPC_DISABLE_VERSION_CHECK
- #if defined FILTERSCRIPT
- public OnFilterScriptInit()
- {
- FCNPC_SendVersionRequest();
- #if defined fcnpc0_OnFilterScriptInit
- return fcnpc0_OnFilterScriptInit();
- #else
- return 1;
- #endif
- }
- #if defined _ALS_OnFilterScriptInit
- #undef OnFilterScriptInit
- #else
- #define _ALS_OnFilterScriptInit
- #endif
- #define OnFilterScriptInit fcnpc0_OnFilterScriptInit
- #if defined fcnpc0_OnFilterScriptInit
- forward fcnpc0_OnFilterScriptInit();
- #endif
- #else
- public OnGameModeInit()
- {
- FCNPC_SendVersionRequest();
- #if defined fcnpc0_OnGameModeInit
- return fcnpc0_OnGameModeInit();
- #else
- return 1;
- #endif
- }
- #if defined _ALS_OnGameModeInit
- #undef OnGameModeInit
- #else
- #define _ALS_OnGameModeInit
- #endif
- #define OnGameModeInit fcnpc0_OnGameModeInit
- #if defined fcnpc0_OnGameModeInit
- forward fcnpc0_OnGameModeInit();
- #endif
- #endif
- static stock FCNPC_SendVersionRequest()
- {
- HTTP(0, HTTP_GET, "ziggi.org/github/lastrelease.php?owner=ziggi&repo=FCNPC&elem=tag_name", "", "FCNPC_OnRequestResponse");
- }
- forward FCNPC_OnRequestResponse(index, response_code, data[]);
- public FCNPC_OnRequestResponse(index, response_code, data[])
- {
- if (index == 0 && response_code == 200) {
- new length = strlen(data);
- if (length == 0 || length > 10) {
- return;
- }
- new version[16];
- strmid(version, data, 1, length);
- if (!('0' <= version[0] <= '9')) {
- return;
- }
- new plugin_version[16];
- FCNPC_GetPluginVersion(plugin_version);
- if (strcmp(version, plugin_version) != 0) {
- printf("\n** Please update your FCNPC plugin to %s from here: https://github.com/ziggi/FCNPC/releases.\n", version);
- }
- }
- }
- #endif
- #if defined foreach
- /*
- Iterator
- */
- new
- Iterator:FCNPC<MAX_PLAYERS>;
- /*
- Init
- */
- #if defined FILTERSCRIPT
- /*
- OnFilterScriptInit
- */
- public OnFilterScriptInit()
- {
- Iter_Clear(FCNPC);
- for (new i = 0; i != MAX_PLAYERS; ++i) {
- if (FCNPC_IsValid(i)) {
- Iter_Add(FCNPC, i);
- }
- }
- #if defined fcnpc1_OnFilterScriptInit
- return fcnpc1_OnFilterScriptInit();
- #else
- return 1;
- #endif
- }
- #if defined _ALS_OnFilterScriptInit
- #undef OnFilterScriptInit
- #else
- #define _ALS_OnFilterScriptInit
- #endif
- #define OnFilterScriptInit fcnpc1_OnFilterScriptInit
- #if defined fcnpc1_OnFilterScriptInit
- forward fcnpc1_OnFilterScriptInit();
- #endif
- #else
- /*
- OnGameModeInit
- */
- public OnGameModeInit()
- {
- Iter_Clear(FCNPC);
- for (new i = 0; i != MAX_PLAYERS; ++i) {
- if (FCNPC_IsValid(i)) {
- Iter_Add(FCNPC, i);
- }
- }
- #if defined fcnpc1_OnGameModeInit
- return fcnpc1_OnGameModeInit();
- #else
- return 1;
- #endif
- }
- #if defined _ALS_OnGameModeInit
- #undef OnGameModeInit
- #else
- #define _ALS_OnGameModeInit
- #endif
- #define OnGameModeInit fcnpc1_OnGameModeInit
- #if defined fcnpc1_OnGameModeInit
- forward fcnpc1_OnGameModeInit();
- #endif
- #endif
- /*
- FCNPC_OnCreate
- */
- public FCNPC_OnCreate(npcid)
- {
- Iter_Add(FCNPC, npcid);
- #if defined fcnpc1_FCNPC_OnCreate
- return fcnpc1_FCNPC_OnCreate(npcid);
- #else
- return 1;
- #endif
- }
- #if defined _ALS_FCNPC_OnCreate
- #undef FCNPC_OnCreate
- #else
- #define _ALS_FCNPC_OnCreate
- #endif
- #define FCNPC_OnCreate fcnpc1_FCNPC_OnCreate
- #if defined fcnpc1_FCNPC_OnCreate
- forward fcnpc1_FCNPC_OnCreate(npcid);
- #endif
- /*
- FCNPC_OnDestroy
- */
- public FCNPC_OnDestroy(npcid)
- {
- SetTimerEx("Iter_FCNPCOnDestroyInternal", 0, false, "i", npcid);
- #if defined fcnpc1_FCNPC_OnDestroy
- return fcnpc1_FCNPC_OnDestroy(npcid);
- #else
- return 1;
- #endif
- }
- #if defined _ALS_FCNPC_OnDestroy
- #undef FCNPC_OnDestroy
- #else
- #define _ALS_FCNPC_OnDestroy
- #endif
- #define FCNPC_OnDestroy fcnpc1_FCNPC_OnDestroy
- #if defined fcnpc1_FCNPC_OnDestroy
- forward fcnpc1_FCNPC_OnDestroy(npcid);
- #endif
- /*
- Iter_FCNPCOnDestroyInternal
- */
- forward Iter_FCNPCOnDestroyInternal(npcid);
- public Iter_FCNPCOnDestroyInternal(npcid)
- {
- Iter_Remove(FCNPC, npcid);
- }
- #endif
|