Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Doors.inc
- Jelly23
- */
- /*Config*/
- #define DD_USAR_STREAMER (true)
- #define DD_MAX_DOORS (300)
- /*Sentidos*/
- #define SENTIDO_HORARIO (0)
- #define SENTIDO_ANTIHORARIO (1)
- /*Enumerador*/
- enum DD_ENUM_J23
- {
- ID,
- Trancada,
- Aberta,
- Sentido,
- Float:dX,
- Float:dY,
- Float:dZ,
- Float:drX,
- Float:drY,
- Float:drZ
- };
- static ddInfo[DD_MAX_DOORS][DD_ENUM_J23];
- /*Funções*/
- stock CreateDoor(model, Float:X, Float:Y, Float:Z, Float:rX, Float:rY, Float:rZ, trancada = 0, sentido = SENTIDO_HORARIO)
- {
- for(new i = 0; i < DD_MAX_DOORS; i++)
- {
- #if DD_USAR_STREAMER true
- if(!IsValidDynamicObject(ddInfo[i][ID]))
- {
- ddInfo[i][ID] = CreateDynamicObject(model, X, Y, Z, rX, rY, rZ);
- ddInfo[i][Trancada] = trancada;
- ddInfo[i][Sentido] = sentido;
- ddInfo[i][Aberta] = 0;
- ddInfo[i][dX] = X;
- ddInfo[i][dY] = Y;
- ddInfo[i][dZ] = Z;
- ddInfo[i][drX] = rX;
- ddInfo[i][drY] = rY;
- ddInfo[i][drZ] = rZ;
- return i;
- }
- #else
- if(!IsValidObject(ddInfo[i][ID]))
- {
- ddInfo[i][ID] = CreateObject(model, X, Y, Z, rX, rY, rZ);
- ddInfo[i][Trancada] = trancada;
- ddInfo[i][Sentido] = sentido;
- ddInfo[i][Aberta] = 0;
- ddInfo[i][dX] = X;
- ddInfo[i][dY] = Y;
- ddInfo[i][dZ] = Z;
- ddInfo[i][drX] = rX;
- ddInfo[i][drY] = rY;
- ddInfo[i][drZ] = rZ;
- return i;
- }
- #endif
- }
- return -1;
- }
- stock DestroyDoor(doorid)
- {
- #if DD_USAR_STREAMER true
- if(IsValidDynamicObject(ddInfo[doorid][ID]))
- {
- DestroyDynamicObject(ddInfo[doorid][ID]);
- }
- #else
- if(!IsValidObject(ddInfo[doorid][ID]))
- {
- DestroyObject(ddInfo[doorid][ID]);
- }
- #endif
- }
- stock DestroyAllDoors()
- {
- for(new i = 0; i < DD_MAX_DOORS; i++)
- {
- #if DD_USAR_STREAMER true
- if(IsValidDynamicObject(ddInfo[i][ID]))
- {
- DestroyDynamicObject(ddInfo[i][ID]);
- }
- #else
- if(IsValidObject(ddInfo[i][ID]))
- {
- DestroyObject(ddInfo[i][ID]);
- }
- #endif
- }
- }
- stock IsValidDoor(doorid)
- {
- #if DD_USAR_STREAMER true
- if(IsValidDynamicObject(ddInfo[doorid][ID]))
- #else
- if(IsValidObject(ddInfo[doorid][ID]))
- #endif
- {
- return 1;
- }
- return 0;
- }
- stock OpenDoor(doorid, sentido = -1)
- {
- #if DD_USAR_STREAMER true
- if(IsValidDynamicObject(ddInfo[doorid][ID]))
- {
- if(ddInfo[doorid][Aberta] == 1) return 0;
- if(sentido == -1) sentido = ddInfo[doorid][Sentido];
- ddInfo[doorid][Aberta] = 1;
- if(sentido == SENTIDO_HORARIO)
- {
- MoveDynamicObject(ddInfo[doorid][ID], ddInfo[doorid][dX], ddInfo[doorid][dY], ddInfo[doorid][dZ]+0.002, 0.005, ddInfo[doorid][drX], ddInfo[doorid][drY], ddInfo[doorid][drZ]-100.0);
- }
- else
- {
- MoveDynamicObject(ddInfo[doorid][ID], ddInfo[doorid][dX], ddInfo[doorid][dY], ddInfo[doorid][dZ]+0.002, 0.005, ddInfo[doorid][drX], ddInfo[doorid][drY], ddInfo[doorid][drZ]+100.0);
- }
- }
- #else
- if(IsValidObject(ddInfo[doorid][ID]))
- {
- if(ddInfo[doorid][Aberta] == 1) return 0;
- ddInfo[doorid][Aberta] = 1;
- if(sentido == SENTIDO_HORARIO)
- {
- MoveObject(ddInfo[doorid][ID], ddInfo[doorid][dX], ddInfo[doorid][dY], ddInfo[doorid][dZ]+0.002, 0.005, ddInfo[doorid][drX], ddInfo[doorid][drY], ddInfo[doorid][drZ]-100.0);
- }
- else
- {
- MoveObject(ddInfo[doorid][ID], ddInfo[doorid][dX], ddInfo[doorid][dY], ddInfo[doorid][dZ]+0.002, 0.005, ddInfo[doorid][drX], ddInfo[doorid][drY], ddInfo[doorid][drZ]+100.0);
- }
- }
- #endif
- return 1;
- }
- stock CloseDoor(doorid)
- {
- #if DD_USAR_STREAMER true
- if(IsValidDynamicObject(ddInfo[doorid][ID]))
- {
- if(ddInfo[doorid][Aberta] == 0) return 0;
- ddInfo[doorid][Aberta] = 0;
- MoveDynamicObject(ddInfo[doorid][ID], ddInfo[doorid][dX], ddInfo[doorid][dY], ddInfo[doorid][dZ]-0.002, 0.005, ddInfo[doorid][drX], ddInfo[doorid][drY], ddInfo[doorid][drZ]);
- }
- #else
- if(IsValidObject(ddInfo[doorid][ID]))
- {
- if(ddInfo[doorid][Aberta] == 0) return 0;
- ddInfo[doorid][Aberta] = 0;
- MoveObject(ddInfo[doorid][ID], ddInfo[doorid][dX], ddInfo[doorid][dY], ddInfo[doorid][dZ]-0.002, 0.005, ddInfo[doorid][drX], ddInfo[doorid][drY], ddInfo[doorid][drZ]);
- }
- #endif
- return 1;
- }
- stock UnlockDoor(doorid)
- {
- #if DD_USAR_STREAMER true
- if(IsValidDynamicObject(ddInfo[doorid][ID]))
- {
- ddInfo[doorid][Trancada] = 0;
- }
- #else
- if(IsValidObject(ddInfo[doorid][ID]))
- {
- ddInfo[doorid][Trancada] = 0;
- }
- #endif
- }
- stock LockDoor(doorid)
- {
- #if DD_USAR_STREAMER true
- if(IsValidDynamicObject(ddInfo[doorid][ID]))
- {
- ddInfo[doorid][Trancada] = 1;
- }
- #else
- if(IsValidObject(ddInfo[doorid][ID]))
- {
- ddInfo[doorid][Trancada] = 1;
- }
- #endif
- }
- stock GetClosestDoor(playerid, Float:dDistance)
- {
- for(new i = 0; i < DD_MAX_DOORS; i++)
- {
- #if DD_USAR_STREAMER true
- if(IsValidDynamicObject(ddInfo[i][ID]))
- #else
- if(IsValidObject(ddInfo[i][ID]))
- #endif
- {
- if(IsPlayerInRangeOfPoint(playerid, dDistance, ddInfo[i][dX], ddInfo[i][dY], ddInfo[i][dZ]))
- {
- return i;
- }
- }
- }
- return -1;
- }
- stock IsDoorLocked(doorid) return ddInfo[doorid][Trancada];
- stock IsDoorOpen(doorid) return ddInfo[doorid][Aberta];
- stock TotalDoors()
- {
- new DD_MD;
- for(new i = 0; i < DD_MAX_DOORS; i++)
- {
- #if DD_USAR_STREAMER true
- if(IsValidDynamicObject(ddInfo[i][ID]))
- #else
- if(IsValidObject(ddInfo[i][ID]))
- #endif
- {
- DD_MD++;
- }
- }
- return DD_MD;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement