Vuk7

Kako napraviti božićno drvo

Dec 18th, 2017
261
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 4.99 KB | None | 0 0
  1. #include <a_samp>
  2. #include <streamer>
  3. #include <zcmd>
  4. #include <YSI\y_ini>
  5.  
  6. #define MAX_DRVA 100
  7. #define DPATH "/Drva/%d.ini"
  8. #define DRVO_OBJECT 19076
  9.  
  10. enum dInfo
  11. {
  12.     Float:dX,
  13.     Float:dY,
  14.     Float:dZ,
  15.     Float:dRotX,
  16.     Float:dRotY,
  17.     Float:dRotZ,
  18.     dVW,
  19.     Text3D:dTxt,
  20.     dObj
  21. }
  22. new DrvoInfo[MAX_DRVA][dInfo];
  23. new eDrvo[MAX_PLAYERS];
  24.  
  25. DrvoPath(id)
  26. {
  27.     new str[40];
  28.     format(str,sizeof(str),DPATH,id);
  29.     return str;
  30. }
  31.  
  32. forward LoadDrvo(id,name[],value[]);
  33. public LoadDrvo(id,name[],value[])
  34. {
  35.     INI_Float("X",DrvoInfo[id][dX]);
  36.     INI_Float("Y",DrvoInfo[id][dY]);
  37.     INI_Float("Z",DrvoInfo[id][dZ]);
  38.     INI_Float("RotX",DrvoInfo[id][dRotX]);
  39.     INI_Float("RotY",DrvoInfo[id][dRotY]);
  40.     INI_Float("RotZ",DrvoInfo[id][dRotZ]);
  41.     INI_Int("VW",DrvoInfo[id][dVW]);
  42.     return 1;
  43. }
  44.  
  45. SacuvajDrvo(id)
  46. {
  47.     new INI:File = INI_Open(DrvoPath(id));
  48.     INI_SetTag(File,"drvo");
  49.     INI_WriteFloat(File,"X",DrvoInfo[id][dX]);
  50.     INI_WriteFloat(File,"Y",DrvoInfo[id][dY]);
  51.     INI_WriteFloat(File,"Z",DrvoInfo[id][dZ]);
  52.     INI_WriteFloat(File,"RotX",DrvoInfo[id][dRotX]);
  53.     INI_WriteFloat(File,"RotY",DrvoInfo[id][dRotY]);
  54.     INI_WriteFloat(File,"RotZ",DrvoInfo[id][dRotZ]);
  55.     INI_WriteInt(File,"VW",DrvoInfo[id][dVW]);
  56.     INI_Close(File);
  57.     return 1;
  58. }
  59.  
  60. UcitajDrva()
  61. {
  62.     for(new i=0;i<MAX_DRVA;i++)
  63.     {
  64.         if(fexist(DrvoPath(i)))
  65.         {
  66.             INI_ParseFile(DrvoPath(i), "LoadDrvo", .bExtra = true, .extra = i);
  67.             KreirajDrvo(i);
  68.         }
  69.     }
  70.     return 1;
  71. }
  72.  
  73. KreirajDrvo(id) {
  74.     if(fexist(DrvoPath(id)))
  75.     {
  76.         DrvoInfo[id][dObj] = CreateDynamicObject(DRVO_OBJECT,DrvoInfo[id][dX],DrvoInfo[id][dY],DrvoInfo[id][dZ],DrvoInfo[id][dRotX],DrvoInfo[id][dRotY],DrvoInfo[id][dRotZ],DrvoInfo[id][dVW]);
  77.         DrvoInfo[id][dTxt] = Create3DTextLabel("( SRETAN BOZIC )", -1,DrvoInfo[id][dX],DrvoInfo[id][dY],DrvoInfo[id][dZ],20.0,DrvoInfo[id][dVW],0);
  78.     }
  79.     return 1;
  80. }
  81.  
  82. ObrisiDrvo(id)
  83. {
  84.     if(fexist(DrvoPath(id)))
  85.     {
  86.         DestroyDynamicObject(DrvoInfo[id][dObj]);
  87.         Delete3DTextLabel(DrvoInfo[id][dTxt]);
  88.         fremove(DrvoPath(id));
  89.         DrvoInfo[id][dX] =
  90.         DrvoInfo[id][dY] =
  91.         DrvoInfo[id][dZ] =
  92.         DrvoInfo[id][dRotX] =
  93.         DrvoInfo[id][dRotY] =
  94.         DrvoInfo[id][dRotZ] = 0.0;
  95.         DrvoInfo[id][dVW] = 0;
  96.         DrvoInfo[id][dObj] = -1;
  97.     }
  98.     return 1;
  99. }
  100. main()
  101. {
  102.     print("\n----------------------------------");
  103.     print(" Bozicno drvo system");
  104.     print("----------------------------------\n");
  105. }
  106.  
  107. public OnGameModeInit()
  108. {
  109.     SetGameModeText("BD");
  110.     AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
  111.     UcitajDrva();
  112.     return 1;
  113. }
  114.  
  115. public OnGameModeExit()
  116. {
  117.     return 1;
  118. }
  119.  
  120. public OnPlayerRequestClass(playerid, classid)
  121. {
  122.     SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
  123.     SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
  124.     SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
  125.     return 1;
  126. }
  127.  
  128. public OnPlayerConnect(playerid)
  129. {
  130.     eDrvo[playerid] = -1;
  131.     return 1;
  132. }
  133.  
  134. public OnPlayerDisconnect(playerid, reason)
  135. {
  136.     return 1;
  137. }
  138.  
  139. public OnPlayerSpawn(playerid)
  140. {
  141.     return 1;
  142. }
  143.  
  144. public OnPlayerDeath(playerid, killerid, reason)
  145. {
  146.     return 1;
  147. }
  148.  
  149. CMD:kreirajdrvo(playerid,params[])
  150. {
  151.     #pragma unused params
  152.     new f;
  153.     for(new i=0;i<MAX_DRVA;i++) { if(fexist(DrvoPath(i))) { f++; } }
  154.     if(f == MAX_DRVA-1) return 1;
  155.     new y;
  156.     for(new i=0;i<MAX_DRVA;i++) { if(!fexist(DrvoPath(i))) { y = i; break; } }
  157.     new Float:x,Float:a,Float:z;
  158.     GetPlayerPos(playerid,x,a,z);
  159.     DrvoInfo[y][dX] = x+3;
  160.     DrvoInfo[y][dY] = a+1;
  161.     DrvoInfo[y][dZ] = z;
  162.     DrvoInfo[y][dRotX] = DrvoInfo[y][dRotY] = DrvoInfo[y][dRotZ] = 0.0;
  163.     DrvoInfo[y][dVW] = GetPlayerVirtualWorld(playerid);
  164.     SacuvajDrvo(y);
  165.     KreirajDrvo(y);
  166.     return 1;
  167. }
  168.  
  169. CMD:edrvo(playerid,params[])
  170. {
  171.     #pragma unused params
  172.     new id;
  173.     for(new i=0;i<MAX_DRVA;i++)
  174.     {
  175.         if(fexist(DrvoPath(i)))
  176.         {
  177.             new Float:x,Float:y,Float:z;
  178.             GetPlayerPos(playerid,x,y,z);
  179.             if(IsPlayerInRangeOfPoint(playerid,3.0,DrvoInfo[i][dX],DrvoInfo[i][dY],DrvoInfo[i][dZ])) { id = i; break; }
  180.         }
  181.     }
  182.     eDrvo[playerid] = id;
  183.     EditDynamicObject(playerid,DrvoInfo[id][dObj]);
  184.     return 1;
  185. }
  186.  
  187. CMD:obrisidrvo(playerid,params[])
  188. {
  189.     #pragma unused params
  190.     new id;
  191.     for(new i=0;i<MAX_DRVA;i++)
  192.     {
  193.         if(fexist(DrvoPath(i)))
  194.         {
  195.             new Float:x,Float:y,Float:z;
  196.             GetPlayerPos(playerid,x,y,z);
  197.             if(IsPlayerInRangeOfPoint(playerid,3.0,DrvoInfo[i][dX],DrvoInfo[i][dY],DrvoInfo[i][dZ])) { id = i; break; }
  198.         }
  199.     }
  200.     ObrisiDrvo(id);
  201.     return 1;
  202. }
  203.  
  204. public OnPlayerEditDynamicObject(playerid, objectid, response, Float:x, Float:y, Float:z, Float:rx, Float:ry, Float:rz)
  205. {
  206.     if(response == EDIT_RESPONSE_FINAL && eDrvo[playerid] != -1)
  207.     {
  208.         new id = eDrvo[playerid];
  209.         DestroyDynamicObject(DrvoInfo[id][dObj]);
  210.         Delete3DTextLabel(DrvoInfo[id][dTxt]);
  211.         DrvoInfo[id][dX] = x;
  212.         DrvoInfo[id][dY] = y;
  213.         DrvoInfo[id][dZ] = z;
  214.         DrvoInfo[id][dRotX] = rx;
  215.         DrvoInfo[id][dRotY] = ry;
  216.         DrvoInfo[id][dRotZ] = rz;
  217.         SacuvajDrvo(id);
  218.         KreirajDrvo(id);
  219.         eDrvo[playerid] = -1;
  220.     }
  221.     return 1;
  222. }
Advertisement
Add Comment
Please, Sign In to add comment