SHARE
TWEET

Untitled

a guest May 19th, 2019 62 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <a_samp>
  2. #include <DOF2>
  3. #include <zcmd>
  4. #include <dini>
  5. #include <streamer>
  6.  
  7. #define MAX_SLOTS 2000
  8. new ObjectCampfire[MAX_SLOTS][8];
  9.  
  10. stock DestroyObjectCampfire(slots) {
  11.     DestroyObject(ObjectCampfire[slots][0]);
  12.     DestroyObject(ObjectCampfire[slots][1]);
  13.     DestroyObject(ObjectCampfire[slots][2]);
  14.     DestroyObject(ObjectCampfire[slots][3]);
  15.     DestroyObject(ObjectCampfire[slots][4]);
  16.     DestroyObject(ObjectCampfire[slots][5]);
  17.     DestroyObject(ObjectCampfire[slots][6]);
  18.     DestroyObject(ObjectCampfire[slots][7]);
  19. }
  20. stock CreateObjectCampfire(slots, Float:x, Float:y, Float:z, Float:a) {
  21.     ObjectCampfire[slots][0]=CreateObject(841, x, y, z-1, 0.000, 0.000, a);
  22.     ObjectCampfire[slots][1]=CreateObject(841, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000);
  23.     ObjectCampfire[slots][2]=CreateObject(841, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000);
  24.     ObjectCampfire[slots][3]=CreateObject(18688, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000);
  25.     ObjectCampfire[slots][4]=CreateObject(18688, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000);
  26.     ObjectCampfire[slots][5]=CreateObject(18688, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000);
  27.     ObjectCampfire[slots][6]=CreateObject(18688, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000);
  28.     ObjectCampfire[slots][7]=CreateObject(18688, 0.000, 0.000, 0.000, 0.000, 0.000, 0.000);
  29.     AttachObjectToObject(ObjectCampfire[slots][1], ObjectCampfire[slots][0], 0, -0.5, 0, 0, 0, 0, 1);
  30.     AttachObjectToObject(ObjectCampfire[slots][2], ObjectCampfire[slots][0], 0, -0.5, 0, 0, 0, 90, 1);
  31.     AttachObjectToObject(ObjectCampfire[slots][3], ObjectCampfire[slots][0], 0.5, -0.5, -2, 0, 0, 0, 1);
  32.     AttachObjectToObject(ObjectCampfire[slots][4], ObjectCampfire[slots][0], -0.5, -0.5, -2, 0, 0, 0, 1);
  33.     AttachObjectToObject(ObjectCampfire[slots][5], ObjectCampfire[slots][0], 0, -0.5, -2, 0, 0, 0, 1);
  34.     AttachObjectToObject(ObjectCampfire[slots][6], ObjectCampfire[slots][0], 0, -0.5, -2, 0, 0, 0, 1);
  35.     AttachObjectToObject(ObjectCampfire[slots][7], ObjectCampfire[slots][0], 0, -0.5, -2, 0, 0, 0, 1);
  36. }
  37.  
  38. new ilosc[MAX_PLAYERS];
  39.  
  40. #define MAX_ITEMS 100
  41.  
  42. #define DIALOG_ITEM1    1001
  43. #define DIALOG_ITEM2    1002
  44. #define DIALOG_ITEM3    1003
  45. #define DIALOG_ITEM4    1004
  46.  
  47. #define ITEM_NONE           0
  48. #define ITEM_BEER           1
  49. #define ITEM_WINE           2
  50. #define ITEM_SPRUNK         3
  51. #define ITEM_CIGGY          4
  52. #define ITEM_WOOD           8
  53. #define ITEM_LIGHTER        9
  54. new bool: crouching[MAX_PLAYERS];
  55.  
  56. #define GREY "{C0C0C0}"
  57. #define ORANGE "{FF7F50}"
  58. #define GREEN "{80FF00}"
  59.  
  60. new Nick[MAX_PLAYERS][MAX_PLAYER_NAME];
  61. new String[512];
  62. new bool:mozeOtworzyc[MAX_PLAYERS];
  63.  
  64. enum item_info
  65. {
  66.     bool:item_active,
  67.     item_owner[64],
  68.     item_name[64],
  69.     item_type,
  70.     item_value1,
  71.     item_value2,
  72.     bool:item_dropped,
  73.     Float:item_pos[3],
  74.     item_vir,
  75.     item_int
  76. };
  77. new ItemInfo[MAX_ITEMS][item_info],
  78.     Item[MAX_PLAYERS][MAX_ITEMS],
  79.     ItemObject[MAX_ITEMS],
  80.     Text3D:Item3D[MAX_ITEMS];
  81.  
  82. public OnFilterScriptInit()
  83. {
  84.     UsePlayerPedAnims();
  85.     for(new i; i < MAX_PLAYERS; i++)
  86.     {
  87.         mozeOtworzyc[i] = true;
  88.     }
  89.     ////print("\n--------------------------------------");
  90.     ////print(" System przedmiotow by Finciakk");
  91.     ////print("--------------------------------------\n");
  92.  
  93.     LoadAllItems();
  94.     SetTimer("SaveAllItems", 4000, true);
  95.    
  96.     for(new i; i < 312; i++)
  97.     {
  98.         AddPlayerClass(i, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
  99.     }
  100.     return 1;
  101. }
  102.  
  103. main(){}
  104.  
  105. public OnFilterScriptExit()
  106. {
  107.     for(new nr = 0; nr < MAX_ITEMS; nr++)
  108.     {
  109.         if(ItemInfo[nr][item_active])
  110.         {
  111.             SaveItem(nr);
  112.         }
  113.     }
  114.     DOF2_Exit();
  115.     return 1;
  116. }
  117.  
  118. public OnPlayerConnect(playerid)
  119. {  
  120.     mozeOtworzyc[playerid] = true;
  121.     new files[256],Names[24];
  122.     GetPlayerName(playerid, Names, 24);
  123.     format(files, 256, "/Konta/%s.txt", Names);
  124.     return 1;
  125. }
  126.  
  127. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  128. {
  129.     if(newkeys == KEY_YES)
  130.     {
  131.         if(mozeOtworzyc[playerid] == false) return SendClientMessage(playerid, -1, "Poczekaj az podniesiesz przedmiot!");
  132.         ShowPlayerItems(playerid);
  133.         //ApplyAnimation(playerid, "BOMBER", "BOM_Plant", 4.1, 1, 1, 1, 1, 1, 1);
  134.     }
  135.     if(newkeys == KEY_NO)
  136.     {
  137.         //if(crouching[playerid])
  138.         {
  139.             if(mozeOtworzyc[playerid] == false) return SendClientMessage(playerid, -1, "Poczekaj az podniesiesz przedmiot!");
  140.             new itemstext[512], itemtext[64], items;
  141.             for(new nr = 0; nr < MAX_ITEMS; nr++)
  142.             {
  143.                 if(ItemInfo[nr][item_active]==true && ItemInfo[nr][item_dropped]==true && IsPlayerInRangeOfPoint(playerid,5.0,ItemInfo[nr][item_pos][0],ItemInfo[nr][item_pos][1],ItemInfo[nr][item_pos][2]) && GetPlayerVirtualWorld(playerid)==ItemInfo[nr][item_vir] && GetPlayerInterior(playerid)==ItemInfo[nr][item_int])
  144.                 {
  145.                     format(itemtext, sizeof(itemtext), "{C0C0C0}%s",ItemInfo[nr][item_name]);
  146.                     format(itemstext, sizeof(itemstext), "%s%s\n", itemstext, itemtext);
  147.                     Item[playerid][items]=nr;
  148.                     items++;
  149.                 }
  150.             }
  151.             if(items)
  152.             {
  153.                 ShowPlayerDialog(playerid, DIALOG_ITEM3, DIALOG_STYLE_LIST, "Przedmioty", itemstext, "Podnies", "Anuluj");
  154.                 return 1;
  155.             }
  156.             else
  157.             {
  158.                 SendClientMessage(playerid, -1, "Nie ma zadnych przedmiotow w okolicy!");
  159.             }
  160.         }
  161.     }
  162.     if(newkeys == KEY_CROUCH)
  163.     {
  164.         crouching[playerid] = true;
  165.     }
  166.     if(newkeys == KEY_SPRINT || newkeys == KEY_CROUCH && newkeys == KEY_FIRE)
  167.     {
  168.         if(crouching[playerid])
  169.         {
  170.             crouching[playerid] = false;
  171.         }
  172.     }
  173.     return 1;
  174. }
  175.  
  176. forward moozePodniesc(playerid);
  177. public moozePodniesc(playerid)
  178. {
  179.     mozeOtworzyc[playerid] = true;
  180.     return 1;
  181. }
  182.  
  183. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  184. {
  185.     if(dialogid == DIALOG_ITEM1)
  186.     {
  187.         if(!response)
  188.         {
  189.             ClearAnimations(playerid);
  190.             //ApplyAnimation(playerid, "CARRY", "crry_prtial", 1.0, 0, 0, 0, 0, 0);
  191.             return 1;
  192.         }
  193.         SetPVarInt(playerid, "SelectedItem", Item[playerid][listitem]);
  194.         ShowPlayerDialog(playerid, DIALOG_ITEM2, DIALOG_STYLE_LIST, "Przedmioty", "Uzyj\nOdloz", "Wybierz", "Wroc");
  195.         return 1;
  196.     }
  197.     else if(dialogid == DIALOG_ITEM2)
  198.     {
  199.         if(!response)
  200.         {
  201.             ShowPlayerItems(playerid);
  202.             return 1;
  203.         }
  204.         new nr=GetPVarInt(playerid, "SelectedItem");
  205.         switch(listitem)
  206.         {
  207.             case 0:
  208.             {
  209.                 UseItem(playerid, nr);
  210.                 return 1;
  211.             }
  212.             case 1:
  213.             {
  214.                 DropItem(playerid, nr);
  215.                 return 1;
  216.             }
  217.         }
  218.         return 1;
  219.     }
  220.     else if(dialogid == DIALOG_ITEM3)
  221.     {
  222.         if(!response)
  223.         {
  224.             return 1;
  225.         }
  226.         new nr=Item[playerid][listitem];
  227.         if(IsPlayerInAnyVehicle(playerid))
  228.         {
  229.             SendClientMessage(playerid, -1, "Nie mozesz podnosic przedmiotow bedac w pojezdzie!");
  230.             return 1;
  231.         }
  232.         if(ItemInfo[nr][item_active]==true && ItemInfo[nr][item_dropped]==true && IsPlayerInRangeOfPoint(playerid,5.0,ItemInfo[nr][item_pos][0],ItemInfo[nr][item_pos][1],ItemInfo[nr][item_pos][2]) && GetPlayerVirtualWorld(playerid)==ItemInfo[nr][item_vir] && GetPlayerInterior(playerid)==ItemInfo[nr][item_int])
  233.         {
  234.             mozeOtworzyc[playerid] = false;
  235.             SetTimerEx("moozePodniesc", 3000, false, "i", playerid);
  236.             PickUpItem(playerid, nr);
  237.             return 1;
  238.         }
  239.         else
  240.         {
  241.             SendClientMessage(playerid, -1, "Ktos juz podniosl wybrany przedmiot.");
  242.         }
  243.         return 1;
  244.     }
  245.     else if(dialogid == DIALOG_ITEM4)
  246.     {
  247.         if(!response)
  248.         {
  249.             ShowPlayerItems(playerid);
  250.             return 1;
  251.         }
  252.         switch(listitem)
  253.         {
  254.             case 0:
  255.             {
  256.                 AddItem(playerid, "Piwo", ITEM_BEER, 0, 0);
  257.                 return 1;
  258.             }
  259.             case 1:
  260.             {
  261.                 AddItem(playerid, "Wino", ITEM_WINE, 0, 0);
  262.                 return 1;
  263.             }
  264.             case 2:
  265.             {
  266.                 AddItem(playerid, "Sprunk", ITEM_SPRUNK, 0, 0);
  267.                 return 1;
  268.             }
  269.             case 3:
  270.             {
  271.                 AddItem(playerid, "Papieros", ITEM_CIGGY, 0, 0);
  272.                 return 1;
  273.             }
  274.             case 4:
  275.             {
  276.                 AddItem(playerid, "Drewno", ITEM_WOOD, 0, 0);
  277.                 return 1;
  278.             }
  279.             case 5:
  280.             {
  281.                 AddItem(playerid, "Zapalniczka", ITEM_LIGHTER, 0, 0);
  282.                 return 1;
  283.             }
  284.         }
  285.         return 1;
  286.     }
  287.     return 1;
  288. }
  289.  
  290. forward SaveAllItems();
  291. public SaveAllItems()
  292. {
  293.    
  294.     for(new nr = 0; nr < MAX_ITEMS; nr++)
  295.     {
  296.         if(ItemInfo[nr][item_active])
  297.         {
  298.             SaveItem(nr);
  299.         }
  300.     }
  301.     return 1;
  302. }
  303.  
  304. /*ShowText(playerid, text[])
  305. {
  306.     new Float:Pos[3], vir=GetPlayerVirtualWorld(playerid), interior=GetPlayerInterior(playerid);
  307.     GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]);
  308.     for(new i = 0; i < MAX_PLAYERS; i++)
  309.     {
  310.         if(IsPlayerInRangeOfPoint(i, 10.0, Pos[0], Pos[1], Pos[2]) && GetPlayerInterior(i)==interior && GetPlayerVirtualWorld(i)==vir)
  311.         {
  312.             SendClientMessage(i, 0xB589DDFF, text);
  313.         }
  314.     }
  315.     return 1;
  316. }*/
  317.  
  318. LoadAllItems()
  319. {
  320.     new file[64];
  321.     for(new nr = 0; nr < MAX_ITEMS; nr++)
  322.     {
  323.         format(file, sizeof(file), "Przedmioty/%d.txt", nr);
  324.         if(DOF2_FileExists(file))
  325.         {
  326.             ItemInfo[nr][item_active]=DOF2_GetBool(file, "Aktywny");
  327.             ItemInfo[nr][item_type]=DOF2_GetInt(file, "Typ");
  328.             ItemInfo[nr][item_value1]=DOF2_GetInt(file, "Wartosc1");
  329.             ItemInfo[nr][item_value2]=DOF2_GetInt(file, "Wartosc2");
  330.             ItemInfo[nr][item_dropped]=DOF2_GetBool(file, "Odlozony");
  331.             ItemInfo[nr][item_pos][0]=DOF2_GetFloat(file, "PosX");
  332.             ItemInfo[nr][item_pos][1]=DOF2_GetFloat(file, "PosY");
  333.             ItemInfo[nr][item_pos][2]=DOF2_GetFloat(file, "PosZ");
  334.             ItemInfo[nr][item_vir]=DOF2_GetInt(file, "Vir");
  335.             ItemInfo[nr][item_int]=DOF2_GetInt(file, "Int");
  336.             if(ItemInfo[nr][item_active]==false)
  337.             {
  338.                 DOF2_RemoveFile(file);
  339.             }
  340.             if(ItemInfo[nr][item_dropped]==true)
  341.             {
  342.                 CreateObjectItem(nr);
  343.             }
  344.         }
  345.     }
  346.     return 1;
  347. }
  348.  
  349. SaveItem(nr)
  350. {
  351.     //print("wykonuje zapis itemu %d", nr);
  352.     if(nr<0||nr>MAX_ITEMS) return 1;
  353.     new file[64];
  354.     format(file, sizeof(file), "Przedmioty/%d.txt", nr);
  355.     dini_Create(file);
  356.     dini_BoolSet(file, "Aktywny", ItemInfo[nr][item_active]);
  357.     dini_Set(file, "Wlasciciel", ItemInfo[nr][item_owner]);
  358.     dini_Set(file, "Nazwa", ItemInfo[nr][item_name]);
  359.     dini_IntSet(file, "Typ", ItemInfo[nr][item_type]);
  360.     dini_IntSet(file, "Wartosc1", ItemInfo[nr][item_value1]);
  361.     dini_IntSet(file, "Wartosc2", ItemInfo[nr][item_value2]);
  362.     dini_BoolSet(file, "Odlozony", ItemInfo[nr][item_dropped]);
  363.     dini_FloatSet(file, "PosX", ItemInfo[nr][item_pos][0]);
  364.     dini_FloatSet(file, "PosY", ItemInfo[nr][item_pos][1]);
  365.     dini_FloatSet(file, "PosZ", ItemInfo[nr][item_pos][2]);
  366.     dini_IntSet(file, "Vir", ItemInfo[nr][item_vir]);
  367.     dini_IntSet(file, "Int", ItemInfo[nr][item_int]);
  368.     return 1;
  369. }
  370.  
  371. AddItem(playerid, name[], type, value1, value2)
  372. {
  373.     for(new nr = 0; nr < MAX_ITEMS; nr++)
  374.     {
  375.         if(ItemInfo[nr][item_active]==false)
  376.         {
  377.             ItemInfo[nr][item_active]=true;
  378.             strmid(ItemInfo[nr][item_owner], Nick[playerid], 0, 64, 64);
  379.             strmid(ItemInfo[nr][item_name], name, 0, 64, 64);
  380.             ItemInfo[nr][item_type]=type;
  381.             ItemInfo[nr][item_value1]=value1;
  382.             ItemInfo[nr][item_value2]=value2;
  383.             ItemInfo[nr][item_dropped]=false;
  384.             ItemInfo[nr][item_pos][0]=0.0;
  385.             ItemInfo[nr][item_pos][1]=0.0;
  386.             ItemInfo[nr][item_pos][2]=0.0;
  387.             ItemInfo[nr][item_vir]=0;
  388.             ItemInfo[nr][item_int]=0;
  389.             SendClientMessage(playerid, -1, "Przedmiot zostal dodany do ekwipunku.");
  390.             return 1;
  391.         }
  392.     }
  393.     return 1;
  394. }
  395.  
  396. ShowPlayerItems(playerid)
  397. {
  398.     new itemstext[2560], itemtext[256], items, pinfo[40];
  399.     for(new nr = 0; nr < MAX_ITEMS; nr++)
  400.     {
  401.         if(ItemInfo[nr][item_active]==true && ItemInfo[nr][item_dropped]==false && !strcmp(ItemInfo[nr][item_owner], Nick[playerid], true))
  402.         {
  403.             format(itemtext, sizeof(itemtext), "{C0C0C0}%s", ItemInfo[nr][item_name]);
  404.             format(itemstext, sizeof(itemstext), "%s%s\n", itemstext, itemtext);
  405.             Item[playerid][items]=nr;
  406.             items++;
  407.         }
  408.     }
  409.     if(!items)
  410.     {
  411.         strcat(itemstext, "{FF0000}Plecak jest pusty!", 2560);
  412.     }
  413.     format(pinfo, 40, "Przedmioty", ilosc[playerid]);
  414.     ShowPlayerDialog(playerid, DIALOG_ITEM1, DIALOG_STYLE_LIST, pinfo, itemstext, "Wybierz", "Anuluj");
  415.     return 1;
  416. }
  417.  
  418. forward UsunObiekt(playerid);
  419. public UsunObiekt(playerid)
  420. {
  421.     RemovePlayerAttachedObject(playerid, 1);
  422.     TogglePlayerControllable(playerid, true);
  423.     ClearAnimations(playerid);
  424.     SetPlayerSpecialAction(playerid, SPECIAL_ACTION_DUCK);
  425.     //ApplyAnimation(playerid,"CARRY","crry_prtial",4,0,0,0,0,1);
  426.     return 1;
  427. }
  428.  
  429. UseItem(playerid, nr)
  430. {
  431.     if(ItemInfo[nr][item_active]==false)
  432.     {
  433.         SendClientMessage(playerid, -1, "Wybrany przedmiot nie jest juz aktywny!");
  434.         return 1;
  435.     }
  436.     if(strcmp(ItemInfo[nr][item_owner], Nick[playerid], true))
  437.     {
  438.         SendClientMessage(playerid, -1, "Wlasciciel przedmiotu ulegl zmianie!");
  439.         return 1;
  440.     }
  441.     if(ItemInfo[nr][item_type]==ITEM_NONE)
  442.     {
  443.         SendClientMessage(playerid, -1, "Wybrany przedmiot nie pelni zadnej funkcji.");
  444.         SendClientMessage(playerid, -1, "Zostanie to dodane w przyszlych aktualizacjach.");
  445.         return 1;
  446.     }
  447.     if(ItemInfo[nr][item_type]==ITEM_BEER)
  448.     {
  449.         //ApplyAnimation(playerid,"VENDING","VEND_Drink2_P",4.1,0,1,1,1,1,1);
  450.         SetPlayerAttachedObject(playerid, 1, 1486, 5);
  451.         SetTimerEx("UsunObiekt", 3000, false, "i", playerid);
  452.         //TogglePlayerControllable(playerid, false);
  453.         format(String, sizeof(String), "* %s otwiera butelke piwa.", Nick[playerid]);
  454.         //ShowText(playerid, String);
  455.         ItemInfo[nr][item_active]=false;
  456.         DeleteItem(nr);
  457.         return 1;
  458.     }
  459.     if(ItemInfo[nr][item_type]==ITEM_WINE)
  460.     {
  461.         //ApplyAnimation(playerid,"VENDING","VEND_Drink2_P",4.1,0,1,1,1,1,1);
  462.         SetPlayerAttachedObject(playerid, 1, 1486, 5);
  463.         SetTimerEx("UsunObiekt", 3000, false, "i", playerid);
  464.         //TogglePlayerControllable(playerid, false);
  465.         format(String, sizeof(String), "* %s otwiera butelke wina.", Nick[playerid]);
  466.         //ShowText(playerid, String);
  467.         ItemInfo[nr][item_active]=false;
  468.         DeleteItem(nr);
  469.         return 1;
  470.     }
  471.     if(ItemInfo[nr][item_type]==ITEM_SPRUNK)
  472.     {
  473.         //ApplyAnimation(playerid,"VENDING","VEND_Drink2_P",4.1,0,1,1,1,1,1);
  474.         SetPlayerAttachedObject(playerid, 1, 1546, 5);
  475.         SetTimerEx("UsunObiekt", 3000, false, "i", playerid);
  476.         //TogglePlayerControllable(playerid, false);
  477.         format(String, sizeof(String), "* %s otwiera puszke sprunka.", Nick[playerid]);
  478.         //ShowText(playerid, String);
  479.         ItemInfo[nr][item_active]=false;
  480.         DeleteItem(nr);
  481.         return 1;
  482.     }
  483.     if(ItemInfo[nr][item_type]==ITEM_CIGGY)
  484.     {
  485.         //ApplyAnimation(playerid,"VENDING","VEND_Drink2_P",4.1,0,1,1,1,1,1);
  486.         SetPlayerAttachedObject(playerid, 1, 19625, 5);
  487.         SetTimerEx("UsunObiekt", 3000, false, "i", playerid);
  488.         //TogglePlayerControllable(playerid, false);
  489.         format(String, sizeof(String), "* %s odpala papierosa.", Nick[playerid]);
  490.         //ShowText(playerid, String);
  491.         ItemInfo[nr][item_active]=false;
  492.         DeleteItem(nr);
  493.         return 1;
  494.     }
  495.     if(ItemInfo[nr][item_type]==ITEM_LIGHTER) return 1;
  496.     if(ItemInfo[nr][item_type]==ITEM_WOOD)
  497.     {
  498.         new Float:x, Float:y, Float:z, Float:a;
  499.         new bool:znalezione, Name[24];
  500.         GetPlayerName(playerid, Name, 24);
  501.         for(new i; i < MAX_ITEMS; i++)
  502.         {
  503.             if(ItemInfo[i][item_type] == ITEM_LIGHTER && !strcmp(ItemInfo[i][item_owner], Nick[playerid], true))
  504.             {
  505.                 znalezione = true;
  506.                 break;
  507.             }
  508.         }
  509.         if(!znalezione) return SendClientMessage(playerid, -1, "Nie posiadasz zapalniczki do rozpalenia ognia.");
  510.         else
  511.         ItemInfo[nr][item_active]=false;
  512.         format(String, sizeof(String), "* %s rozpala ognisko.", Nick[playerid]);
  513.         //ShowText(playerid, String);
  514.         format(ItemInfo[nr][item_owner], 256, "brak");
  515.        
  516.         ItemInfo[nr][item_pos][0] = 0;
  517.         ItemInfo[nr][item_pos][1] = 0;
  518.         ItemInfo[nr][item_pos][2] = 0;
  519.         DeleteItem(nr);
  520.         GetPlayerPos(playerid, x, y,z);
  521.         GetPlayerFacingAngle(playerid, a);
  522.         CreateObjectCampfire(nr, x, y, z, a);
  523.     }
  524.     return 1;
  525. }
  526.  
  527. DropItem(playerid, nr)
  528. {
  529.     if(ItemInfo[nr][item_active]==false)
  530.     {
  531.         SendClientMessage(playerid, -1, "Wybrany przedmiot nie jest juz aktywny!");
  532.         return 1;
  533.     }
  534.     if(strcmp(ItemInfo[nr][item_owner], Nick[playerid], true))
  535.     {
  536.         SendClientMessage(playerid, -1, "Wlasciciel przedmiotu ulegl zmianie!");
  537.         return 1;
  538.     }
  539.     strmid(ItemInfo[nr][item_owner], "brak", 0, 64, 64);
  540.     ItemInfo[nr][item_dropped]=true;
  541.     GetPlayerPos(playerid,ItemInfo[nr][item_pos][0],ItemInfo[nr][item_pos][1],ItemInfo[nr][item_pos][2]);
  542.     ItemInfo[nr][item_vir]=GetPlayerVirtualWorld(playerid);
  543.     ItemInfo[nr][item_int]=GetPlayerInterior(playerid);
  544.     CreateObjectItem(nr);
  545.     //ApplyAnimation(playerid, "BOMBER", "BOM_Plant", 4.5, 0, 0, 0, 0, 0);
  546.     format(String, sizeof(String), "* %s odklada przedmiot %s na ziemie.", Nick[playerid],ItemInfo[nr][item_name]);
  547.     //ShowText(playerid, String);
  548.     return 1;
  549. }
  550.  
  551. PickUpItem(playerid, nr)
  552. {
  553.     if(ItemInfo[nr][item_active]==false)
  554.     {
  555.         SendClientMessage(playerid, -1, "Wybrany przedmiot nie jest juz aktywny!");
  556.         return 1;
  557.     }
  558.     if(strcmp(ItemInfo[nr][item_owner], "brak", true))
  559.     {
  560.         SendClientMessage(playerid, -1, "Wlasciciel przedmiotu ulegl zmianie!");
  561.         return 1;
  562.     }
  563.     strmid(ItemInfo[nr][item_owner], Nick[playerid], 0, 64, 64);
  564.     ItemInfo[nr][item_dropped]=false;
  565.     //ApplyAnimation(playerid, "BOMBER", "BOM_Plant", 4.5, 0, 0, 0, 0, 0);
  566.     DestroyDynamicObject(ItemObject[nr]);
  567.     DestroyDynamic3DTextLabel(Item3D[nr]);
  568.     format(String, sizeof(String), "* %s podnosi z ziemi %s.", Nick[playerid],ItemInfo[nr][item_name]);
  569.     //ShowText(playerid, String);
  570.     return 1;
  571. }
  572.  
  573. DeleteItem(nr)
  574. {
  575.     ItemInfo[nr][item_active] = false;
  576.     ItemInfo[nr][item_dropped] = false;
  577.     ItemInfo[nr][item_int] = -1;
  578.     format(ItemInfo[nr][item_name], 256, "");
  579.     format(ItemInfo[nr][item_owner], 256, "");
  580.     ItemInfo[nr][item_pos][0] = -1;
  581.     ItemInfo[nr][item_pos][1] = -1;
  582.     ItemInfo[nr][item_pos][2] = -1;
  583.     ItemInfo[nr][item_type] = ITEM_NONE;
  584.     ItemInfo[nr][item_value1] = -1;
  585.     ItemInfo[nr][item_value2] = -1;
  586.     ItemInfo[nr][item_vir] = -1;
  587.     //print("wykonuje usuwanie itemu %d", nr);
  588.     if(nr<0||nr>MAX_ITEMS) return 1;
  589.     new file[64];
  590.     format(file, sizeof(file), "Przedmioty/%d.txt", nr);
  591.     dini_Create(file);
  592.     dini_BoolSet(file, "Aktywny", false);
  593.     dini_Set(file, "Wlasciciel", "");
  594.     dini_Set(file, "Nazwa", "");
  595.     dini_IntSet(file, "Typ", 0);
  596.     dini_IntSet(file, "Wartosc1", 0);
  597.     dini_IntSet(file, "Wartosc2", ItemInfo[nr][item_value2]);
  598.     dini_BoolSet(file, "Odlozony", false);
  599.     dini_FloatSet(file, "PosX", ItemInfo[nr][item_pos][0]);
  600.     dini_FloatSet(file, "PosY", ItemInfo[nr][item_pos][1]);
  601.     dini_FloatSet(file, "PosZ", ItemInfo[nr][item_pos][2]);
  602.     dini_IntSet(file, "Vir", ItemInfo[nr][item_vir]);
  603.     dini_IntSet(file, "Int", ItemInfo[nr][item_int]);
  604.     //print("przedmiot %d usuniety", nr);
  605.     return 1;
  606. }
  607.  
  608. CreateObjectItem(nr)
  609. {
  610.     new liczba = random(13) / 5;
  611.     ////print("tworzenie %d", ItemInfo[nr][item_type]);
  612.     if(ItemInfo[nr][item_type]==ITEM_BEER)
  613.     {
  614.         ItemObject[nr]=CreateDynamicObject(1486,ItemInfo[nr][item_pos][0] + liczba,ItemInfo[nr][item_pos][1] + liczba,ItemInfo[nr][item_pos][2]-1.0,0,0,0,ItemInfo[nr][item_vir],ItemInfo[nr][item_int]);
  615.         Item3D[nr]=CreateDynamic3DTextLabel("{FFFF00}---------Piwo{FFFF00}---------\nAby podniesc nacisnij {FF0000}N",  0xFFFFFFFF, ItemInfo[nr][item_pos][0] + liczba ,ItemInfo[nr][item_pos][1] + liczba,ItemInfo[nr][item_pos][2]-0.8, 10);
  616.         return 1;
  617.     }
  618.     if(ItemInfo[nr][item_type]==ITEM_WINE)
  619.     {
  620.         ItemObject[nr]=CreateDynamicObject(1487,ItemInfo[nr][item_pos][0] + liczba,ItemInfo[nr][item_pos][1] + liczba,ItemInfo[nr][item_pos][2]-1.0,0,0,0,ItemInfo[nr][item_vir],ItemInfo[nr][item_int]);
  621.         Item3D[nr]=CreateDynamic3DTextLabel("{FFFF00}---------Wino{FFFF00}---------\nAby podniesc nacisnij {FF0000}N",  0xFFFFFFFF, ItemInfo[nr][item_pos][0] + liczba ,ItemInfo[nr][item_pos][1] + liczba,ItemInfo[nr][item_pos][2]-0.8, 10);
  622.         return 1;
  623.     }
  624.     if(ItemInfo[nr][item_type]==ITEM_SPRUNK)
  625.     {
  626.         ItemObject[nr]=CreateDynamicObject(1546,ItemInfo[nr][item_pos][0] + liczba,ItemInfo[nr][item_pos][1] + liczba,ItemInfo[nr][item_pos][2]-1.0,0,0,0,ItemInfo[nr][item_vir],ItemInfo[nr][item_int]);
  627.         Item3D[nr]=CreateDynamic3DTextLabel("{FFFF00}---------Sprunk{FFFF00}---------\nAby podniesc nacisnij {FF0000}N",  0xFFFFFFFF, ItemInfo[nr][item_pos][0] + liczba ,ItemInfo[nr][item_pos][1] + liczba,ItemInfo[nr][item_pos][2]-0.8, 10);
  628.         return 1;
  629.     }
  630.     if(ItemInfo[nr][item_type]==ITEM_CIGGY)
  631.     {
  632.         ItemObject[nr]=CreateDynamicObject(19625,ItemInfo[nr][item_pos][0] + liczba,ItemInfo[nr][item_pos][1] + liczba,ItemInfo[nr][item_pos][2]-1.0,0,0,0,ItemInfo[nr][item_vir],ItemInfo[nr][item_int]);
  633.         Item3D[nr]=CreateDynamic3DTextLabel("{FFFF00}---------Papieros{FFFF00}---------\nAby podniesc nacisnij {FF0000}N", 0xFFFFFFFF, ItemInfo[nr][item_pos][0] + liczba ,ItemInfo[nr][item_pos][1] + liczba,ItemInfo[nr][item_pos][2]-0.8, 10);
  634.         return 1;
  635.     }
  636.     if(ItemInfo[nr][item_type]==ITEM_WOOD)
  637.     {
  638.         ItemObject[nr]=CreateDynamicObject(1463,ItemInfo[nr][item_pos][0] + liczba,ItemInfo[nr][item_pos][1] + liczba,ItemInfo[nr][item_pos][2]-1.0,0,0,0,ItemInfo[nr][item_vir],ItemInfo[nr][item_int]);
  639.         Item3D[nr]=CreateDynamic3DTextLabel("{FFFF00}---------Drewno{FFFF00}---------\nAby podniesc nacisnij {FF0000}N",  0xFFFFFFFF, ItemInfo[nr][item_pos][0] + liczba ,ItemInfo[nr][item_pos][1] + liczba,ItemInfo[nr][item_pos][2]-0.8, 10);
  640.         return 1;
  641.     }
  642.     if(ItemInfo[nr][item_type]==ITEM_LIGHTER)
  643.     {
  644.         ItemObject[nr]=CreateDynamicObject(19998,ItemInfo[nr][item_pos][0] + liczba,ItemInfo[nr][item_pos][1] + liczba,ItemInfo[nr][item_pos][2]-1.0,0,0,0,ItemInfo[nr][item_vir],ItemInfo[nr][item_int]);
  645.         Item3D[nr]=CreateDynamic3DTextLabel("{FFFF00}---------Zapalniczka{FFFF00}---------\nAby podniesc nacisnij {FF0000}N",  0xFFFFFFFF, ItemInfo[nr][item_pos][0] + liczba ,ItemInfo[nr][item_pos][1] + liczba,ItemInfo[nr][item_pos][2]-0.8, 10);
  646.         return 1;
  647.     }
  648.     return 1;
  649. }
  650.  
  651. CMD:dodajprzedmiot(playerid, cmdtext[])
  652. {
  653.     if(!IsPlayerAdmin(playerid)) return 1;
  654.     ShowPlayerDialog(playerid, DIALOG_ITEM4, DIALOG_STYLE_LIST, "Przedmioty", "Piwo\nWino\nSprunk\nPapieros\nDrewno\nZapalniczka", "Dodaj", "Anuluj");
  655.     return 1;
  656. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top