Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //made by lokii
- #if defined _AutoMove_included
- #endinput
- #define _AutoMove_included
- #endif
- /*
- native CreateAutoObject(id, modelid, Float:x, Float:y, Float:z, Float:rx, Float:ry, Float:rz, Float:stream_distance, Float:move_distance, Float:tox, Float:toy, Float:toz, Float:move_speed);
- native DestroyAutoObject(id);
- native DestroyAllAutoObjects();
- */
- #include <streamer> //credits to incognito
- #include <YSI\y_hooks> //credits to y_less
- #define AutoMoveVersion "1.0"
- #define MAX_AUTO_OBJECTS 1000
- enum I_AutoMoveX
- {
- Float:am_posx,
- Float:am_posy,
- Float:am_posz,
- Float:am_postox,
- Float:am_postoy,
- Float:am_postoz,
- Float:am_speed,
- am_areaid,
- am_objectid,
- bool:am_used,
- bool:am_exist,
- am_count
- }
- new I_AutoMove[MAX_AUTO_OBJECTS][I_AutoMoveX];
- stock CreateAutoObject(id, modelid, Float:x, Float:y, Float:z, Float:rx, Float:ry, Float:rz, Float:stream_distance, Float:move_distance, Float:tox, Float:toy, Float:toz, Float:move_speed)
- {
- I_AutoMove[id][am_posx] = x;
- I_AutoMove[id][am_posy] = y;
- I_AutoMove[id][am_posz] = z;
- I_AutoMove[id][am_postox] = tox;
- I_AutoMove[id][am_postoy] = toy;
- I_AutoMove[id][am_postoz] = toz;
- I_AutoMove[id][am_speed] = move_speed;
- I_AutoMove[id][am_objectid] = CreateDynamicObject(modelid, x, y, z, rx, ry, rz, 0, -1, -1, stream_distance);
- I_AutoMove[id][am_areaid] = CreateDynamicSphere(x, y, z, move_distance);
- I_AutoMove[id][am_count] = 0;
- I_AutoMove[id][am_exist] = true;
- return 1;
- }
- stock DestroyAutoObject(id)
- {
- DestroyDynamicObject(I_AutoMove[id][am_objectid]);
- DestroyDynamicArea(I_AutoMove[id][am_areaid]);
- I_AutoMove[id][am_count] = 0;
- I_AutoMove[id][am_exist] = false;
- return 1;
- }
- stock DestroyAllAutoObjects()
- {
- for(new lll_i = 0; lll_i < MAX_AUTO_OBJECTS; lll_i ++)
- {
- if(!I_AutoMove[lll_i][am_exist]) continue;
- DestroyAutoObject(lll_i);
- }
- return 1;
- }
- hook OnPlayerEnterDynamicArea(playerid, areaid)
- {
- if(playerid != INVALID_PLAYER_ID && !IsPlayerNPC(playerid))
- {
- for(new j = 0; j < MAX_AUTO_OBJECTS;j++)
- if(areaid == I_AutoMove[j][am_areaid])
- {
- if(!I_AutoMove[j][am_used])
- {
- I_AutoMove[j][am_count] ++;
- if(I_AutoMove[j][am_count] < 2)
- {
- MoveDynamicObject(I_AutoMove[j][am_objectid], I_AutoMove[j][am_postox], I_AutoMove[j][am_postoy], I_AutoMove[j][am_postoz], I_AutoMove[j][am_speed]);
- I_AutoMove[j][am_used] = true;
- break;
- }
- }
- }
- }
- return 1;
- }
- hook OnPlayerLeaveDynamicArea(playerid, areaid)
- {
- if(playerid != INVALID_PLAYER_ID && !IsPlayerNPC(playerid))
- {
- for(new j = 0; j < MAX_AUTO_OBJECTS;j++)
- if(areaid == I_AutoMove[j][am_areaid])
- {
- if(I_AutoMove[j][am_used])
- {
- I_AutoMove[j][am_count] --;
- if(I_AutoMove[j][am_count] < 1)
- {
- MoveDynamicObject(I_AutoMove[j][am_objectid], I_AutoMove[j][am_posx], I_AutoMove[j][am_posy], I_AutoMove[j][am_posz], I_AutoMove[j][am_speed]);
- I_AutoMove[j][am_used] = false;
- break;
- }
- }
- }
- }
- return 1;
- }
- #if defined FILTERSCRIPT
- hook OnFilterScriptExit()
- {
- DestroyAllAutoObjects();
- return 1;
- }
- #else
- hook OnGameModeExit()
- {
- DestroyAllAutoObjects();
- return 1;
- }
- #endif
- //EOF.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement