Advertisement
Johurt

[SCR] Statybos sistemos pradzia for zaibaslr2

Dec 28th, 2012
566
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 2.36 KB | None | 0 0
  1. #include <a_samp>
  2.  
  3. #define MAX_STATYBOS_OBJEKTU        50
  4. #define MAX_STATYBOS_OBJEKTU_ADD    5
  5. #define MIN_DISTANCE_TARP_OBJEKTU   5.0
  6.  
  7. enum eStatybos
  8. {
  9.     bool:ObjectCreated,
  10.     ObjectModel,
  11.     Float:ObjectPos[3],
  12.     Float:ObjectRot[3],
  13.     ObjectOwnerName[21],
  14.     ObjectOwnerID,
  15.     ObjectID
  16. }
  17. new sInfo[MAX_STATYBOS_OBJEKTU][eStatybos];
  18.  
  19. public OnPlayerDisconnect(playerid, reason)
  20. {
  21.     for(new o; o < MAX_STATYBOS_OBJEKTU; o++)
  22.     {
  23.             if(sInfo[o][ObjectOwnerID] == playerid)
  24.             {
  25.             sInfo[o][ObjectOwnerID] = INVALID_PLAYER_ID;
  26.         }
  27.     }
  28.     return 1;
  29. }
  30.  
  31. public OnPlayerCommandText(playerid, cmdtext[])
  32. {
  33.     if(!strcmp("/statyti", cmdtext, true, 3))
  34.     {
  35.         for(new o; o < MAX_STATYBOS_OBJEKTU; o++)
  36.             {
  37.                 if(IsPlayerInRangeOfPoint(playerid, MIN_DISTANCE_TARP_OBJEKTU, sInfo[o][ObjectPos][0], sInfo[o][ObjectPos][1], sInfo[o][ObjectPos][2])) return SendClientMessage(playerid, -1, "Jus negalite pastatyti nauju objektu salia senu.");
  38.         }
  39.         if(KiekStatybosObjektuPastatyta() + MAX_STATYBOS_OBJEKTU_ADD >= MAX_STATYBOS_OBJEKTU) return SendClientMessage(playerid, -1, "Jus negalite pastatyti nauju objektu.");
  40.         new Float:pPos[4];
  41.         GetPlayerPos(playerid, pPos[0], pPos[1], pPos[2]);
  42.         GetPlayerFacingAngle(playerid, pPos[3]);
  43.         /*
  44.             Na ir cia apskaiciuoji kiekvieno objekto poz(kur jis turi buti). As nemoku.
  45.                 Sukuri objektus su AddStatybosObject(...);
  46.         */
  47.         return 1;
  48.     }
  49.     return 0;
  50. }
  51.  
  52. stock KiekStatybosObjektuPastatyta()
  53. {
  54.     new obj;
  55.     for(new o; o < MAX_STATYBOS_OBJEKTU; o++)
  56.     {
  57.         if(sInfo[o][ObjectCreated]) obj++;
  58.     }
  59.     return obj;
  60. }
  61.  
  62. stock AddStatybosObject(adderid, oModel, Float:posX, Float:posY, Float:posZ, Float:posrX, Float:posrY, Float:posrZ)
  63. {
  64.     new pName[21];
  65.     GetPlayerName(adderid, pName, 21);
  66.     for(new o; o < MAX_STATYBOS_OBJEKTU; o++)
  67.     {
  68.         if(!sInfo[o][ObjectCreated])
  69.             {
  70.             sInfo[o][ObjectID] = CreateObject(oModel, Float:posX, Float:posY, Float:posZ, Float:posrX, Float:posrY, Float:posrZ);
  71.             sInfo[o][ObjectModel] = oModel;
  72.             sInfo[o][ObjectCreated] = true;
  73.                     sInfo[o][ObjectPos][0] = posX;
  74.             sInfo[o][ObjectPos][1] = posY;
  75.                     sInfo[o][ObjectPos][2] = posZ;
  76.                     sInfo[o][ObjectRot][0] = posrX;
  77.             sInfo[o][ObjectRot][1] = posrY;
  78.             sInfo[o][ObjectRot][2] = posrZ;
  79.             sInfo[o][ObjectOwnerID] = adderid;
  80.             format(sInfo[o][ObjectOwnerName], 21, "%s", pName);
  81.         }
  82.     }
  83.     return 1;
  84. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement