Facebook
From Cobalt Meerkat, 5 Years ago, written in Plain Text.
Embed
Download Paste or View Raw
Hits: 404
  1. #include <a_samp>
  2. #include <streamer>
  3. #include <sscanf2>
  4. #include <dfile>
  5. #include <pawn.cmd>
  6.  
  7. main(){}
  8.  
  9. #define FOLDER_USERS "/Users/"
  10. #define FOLDER_ZONES "/Zones/"
  11. #define FOLDER_DOORS "/Doors/"
  12. #define FOLDER_ITEMS "/Items/"
  13. #define FOLDER_GROUPS "/Groups/"
  14. #define FOLDER_CONTACTS "/Contacts/"
  15. #define FOLDER_MESSAGES "/Messages/"
  16. #define FOLDER_OBJECTS "/Objects/"
  17. #define FOLDER_TEXTURES "/Textures/"
  18. #define FOLDER_VEHICLES "/Vehicles/"
  19. #define FOLDER_ACTORS "/Actors/"
  20. #define UID_FILE "/UID.ini"
  21.  
  22. #undef MAX_PLAYERS
  23. #define MAX_PLAYERS 20
  24.  
  25. #define MAX_USERS 10000
  26.  
  27. #define D_LOGIN 0
  28. #define D_NOTFOUND 1
  29. #define D_CREATE 2
  30. #define D_FIND 3
  31. #define D_AMMO 4
  32. #define D_PASS 5
  33. #define D_ADMINS 6
  34. #define D_INFO 7
  35. #define D_CREATEDOOR 8
  36. #define D_ITEMS 9
  37. #define D_ITEM_OPTIONS 10
  38. #define D_NEARBY_ITEMS 11
  39. #define D_USE_WEAP 12
  40. #define D_PHONE 13
  41. #define D_SMS 14
  42. #define D_MESSAGES 15
  43. #define D_CALL 16
  44. #define D_ANSWER 17
  45. #define D_CONTACTS 18
  46. #define D_FRIENDS 19
  47. #define D_ADD_CONTACT 20
  48. #define D_REMOVE_CONTACT 21
  49. #define D_911_NUMBERS 22
  50. #define D_VCARD 23
  51. #define D_VCARD_ACCEPT 24
  52. #define D_STATS 25
  53. #define D_ZONE 26
  54. #define D_SERVICES 27
  55. #define D_CREATE_GROUP 28
  56. #define D_USERS 29
  57. #define D_SETTINGS 30
  58. #define D_CHANGE_PASS 31
  59. #define D_ANIMS 32
  60. #define D_DOOR_SETTINGS 33
  61. #define D_BOOMBOX 34
  62. #define D_CHANGE_URL 35
  63. #define D_CHANGE_DOOR_NAME 36
  64. #define D_HELP 37
  65. #define D_COMMANDS 38
  66. #define D_CMDS_OBJECT 39
  67. #define D_DOOR_GROUP 40
  68. #define D_DOOR_COST 41
  69. #define D_CHANGE_GROUP_NAME 42
  70. #define D_GROUP_PANEL 43
  71. #define D_GROUP_KICK 44
  72. #define D_CHANGE_PERMS 45
  73. #define D_CHANGEPERMS 46
  74. #define D_JOIN_GROUP 47
  75. #define D_CHANGE_GROUP_COLOR 48
  76. #define D_VEHICLES 49
  77. #define D_WITHDRAW 50
  78. #define D_DEPOSIT 51
  79. #define D_ATM 52
  80. #define D_ADMIN_DOOR 53
  81. #define D_V_OPTIONS 54
  82. #define D_TRADE 55
  83. #define D_TRADE_2 56
  84. #define D_TRADE_3 57
  85. #define D_NEAR_PLAYERS 58
  86. #define D_GOVERMENT 59
  87. #define D_BANK 60
  88. #define D_DOCUMENTS 61
  89. #define D_VEHICLE_GROUP 62
  90. #define D_BAG 63
  91. #define D_BAGS 64
  92. #define D_CONNECT 65
  93. #define D_BUY_REGISTER 66
  94. #define D_MEDIC 67
  95.  
  96.  
  97. #define UNRANKED 0
  98. #define SP_1 1
  99. #define SP_2 2
  100. #define SP_3 3
  101. #define GM 4
  102. #define SGM 5
  103. #define ADMIN 6
  104. #define ADMINISTRATION 7
  105. #define DEVELOPER 8
  106.  
  107. #define PARTY 0
  108. #define LSPD 1
  109. #define LSMC 2
  110. #define RESTAURANT 3
  111. #define GANG 4
  112. #define MOTO_GANG 5
  113. #define SAN_NEWS 6
  114. #define SHOP_24_7 7
  115. #define BANK 8
  116. #define GOVERMENT 9
  117. #define WORKSHOP 10
  118. #define FUNITURE_SHOP 11
  119. #define CLOTCHES_SHOP 12
  120. #define HOTEL 13
  121. #define CARS_SALOON 14
  122. #define STRANGE_GROUP 15
  123. #define EVENT_TEAM 16
  124.  
  125. #define HEX_WHITE "{FFFFFF}"
  126. #define HEX_BLUE "{AAB0FF}"
  127. #define HEX_RED "{FFA29C}"
  128. #define HEX_GRAY "{CCCACC}"
  129. #define HEX_YELLOW "{FFBE5E}"
  130. #define HEX_BLACK "{000000}"
  131. #define HEX_GREEN "{9FD18B}"
  132. #define HEX_PURPLE "{8671C0}"
  133. #define HEX_DARKRED "{FF3C3A}"
  134.  
  135. #define COLOR_RED 0xFFA29CFF
  136. #define COLOR_BLUE 0xAAB0FFFF
  137. #define COLOR_WHITE 0xF7F7F8FF
  138. #define COLOR_GRAY 0xA6A4A7FF
  139. #define COLOR_ORANGE 0xFFA138FF
  140. #define COLOR_PINK 0xFFC3FFFF
  141. #define COLOR_YELLOW 0xEED642FF
  142. #define COLOR_GREEN 0x77C772FF
  143. #define COLOR_BLACK 0x00000000
  144. #define COLOR_DARKRED 0xD72D32FF
  145.  
  146. #define CHAT_SHADE_1 0xEEEEEEFF
  147. #define CHAT_SHADE_2 0xC8C8C8FF
  148. #define CHAT_SHADE_3 0xB4B4B4FF
  149. #define CHAT_SHADE_4 0x8C8C8CFF
  150. #define CHAT_SHADE_5 0x514F56FF
  151. #define CHAT_SHADE_6 0x302D33FF
  152.  
  153. #define ME_SHADE_1 0xC5A9D2FF
  154. #define ME_SHADE_2 0xB097CAFF
  155. #define ME_SHADE_3 0xB08DC2FF
  156. #define ME_SHADE_4 0xB08DB8FF
  157. #define ME_SHADE_5 0xA184B0FF
  158. #define ME_SHADE_6 0xA184A9FF
  159.  
  160. #define DO_SHADE_1 0xB39CEDFF
  161. #define DO_SHADE_2 0xA292D6FF
  162. #define DO_SHADE_3 0xA292CAFF
  163. #define DO_SHADE_4 0x9892C5FF
  164. #define DO_SHADE_5 0x9883C5FF
  165. #define DO_SHADE_6 0xA697D4FF
  166.  
  167. // Spawn states
  168.  
  169. #define SPAWN_OR_HOUSE 0
  170. #define LAST_POSITION 1
  171. #define ADMINJAIL 2
  172.  
  173. #define FIRST_MALE_SKIN 7
  174. #define FIRST_FEMALE_SKIN 12
  175.  
  176. #define LAST_MALE_SKIN 300
  177. #define LAST_FEMALE_SKIN 212
  178.  
  179. #define PLAYER_NORMAL_COLOR 0xFFFFFF88
  180. #define LOGGED_COLOR 0xB4B4B400
  181. #define UNLOGGED_COLOR 0x00000000
  182.  
  183. #define DAMAGE_COLOR 0xED444788
  184. #define DESC_COLOR 0xB992C388
  185.  
  186. #define MAX_ZONES 600
  187. #define ZONE_SIZE 100
  188. #define MAX_DOORS 10000
  189. #define MAX_ITEMS 10000
  190. #define MAX_MESSAGES 10000
  191. #define MAX_CONTACTS 10000
  192. #define MAX_GROUPS 10000
  193. #define MAX_TEXTURES 50000
  194. #undef MAX_OBJECTS
  195. #define MAX_OBJECTS 50000
  196. #undef MAX_VEHICLES
  197. #define MAX_VEHICLES 50000
  198. #undef MAX_ACTORS
  199. #define MAX_ACTORS 1000
  200.  
  201. enum E_NICK
  202. {
  203.         Text3D:nID,
  204.         nStr[525],
  205.         nColor
  206. };
  207.  
  208. new pNick[MAX_PLAYERS][E_NICK];
  209.  
  210. enum E_DESC
  211. {
  212.         Text3D:dID,
  213.         bool:dIsDescOnPlayer
  214. };
  215.  
  216. new pDesc[MAX_PLAYERS][E_DESC];
  217.  
  218. new PlayerText:TextDrawDoorInfo[MAX_PLAYERS];
  219.  
  220. new LastUID;
  221.  
  222. new PlayerText:BWTextDraw[MAX_PLAYERS];
  223.  
  224. enum E_USER
  225. {
  226.         uPass[32],
  227.         uName[MAX_PLAYER_NAME],
  228.         uSex,
  229.         uUID,
  230.         uSkin,
  231.         Float:uHealth,
  232.         uCash,
  233.         uTutorial,
  234.         uStrenght,
  235.         uRank,
  236.         uBW,
  237.         uBWReason,
  238.         uAJ,
  239.         uGroup,
  240.         uGroup2,
  241.         uGroup3,
  242.         bool:uGroupMapper,
  243.         bool:uGroupMapper2,
  244.         bool:uGroupMapper3,
  245.         uGroupDuty,
  246.         uGroupDuty2,
  247.         uGroupDuty3,
  248.         uMin,
  249.         uH,
  250.         uSP,
  251.         uHouseSpawn,
  252.         uBank,
  253.         bool:uMapper,
  254.         uBornDate,
  255.         uSpawnState,
  256.         uSpawnVW,
  257.         Float:uSpawnX,
  258.         Float:uSpawnY,
  259.         Float:uSpawnZ,
  260.         uID,
  261.         uDrivingLicense,
  262.         uBankAccount,
  263.         bool:uBelts,
  264.         bool:uAFK,
  265.         uBan,
  266.         uBanHour,
  267.         uBanMin,
  268.         uBanReason[128],
  269.         uBanDate,
  270.         uBanYear,
  271.         uBanMonth,
  272.         uBanDay,
  273.         bool:uOnline,
  274.         uLastLogin,
  275.         bool:uFreeze,
  276.         bool:uOOC,
  277.         bool:uAchievementManDown
  278. };
  279.  
  280. new UserCache[MAX_USERS][E_USER];
  281.  
  282. enum E_REGISTER
  283. {
  284.         rSex,
  285.         rName[MAX_PLAYER_NAME],
  286.         rBornDate
  287. };
  288.  
  289. new RegisterCache[MAX_PLAYERS][E_REGISTER];
  290.  
  291. new pUID[MAX_PLAYERS];
  292.  
  293. new PlayerText:BottomTextDraw[MAX_PLAYERS];
  294. new PlayerText:RadarTextDraw[MAX_PLAYERS];
  295. new RadarTextDrawTimer[MAX_PLAYERS];
  296. new DoorInfoTextTimer[MAX_PLAYERS];
  297.  
  298. new ChooseSkinTimer[MAX_PLAYERS];
  299.  
  300. new JaneSmith[MAX_PLAYERS];
  301. new Text3D:JaneSmithLabel[MAX_PLAYERS];
  302. new Text:GlobalLogo;
  303. new Text:RadioTextDraw;
  304. new ClearNicknameColorTimer[MAX_PLAYERS];
  305. new Text:PenalityTextDraw;
  306. new PlayerText:AJTextDraw[MAX_PLAYERS];
  307.  
  308. enum E_ZONE
  309. {
  310.         Float:zMinX,
  311.         Float:zMinY,
  312.         Float:zMaxX,
  313.         Float:zMaxY,
  314.         zID,
  315.         zYard,
  316.         zCostH,
  317.         zCostB,
  318.         zName[64]
  319. };
  320.  
  321. new ZoneData[MAX_ZONES][E_ZONE];
  322.  
  323. new LastdUID;
  324.  
  325. enum E_DOOR
  326. {
  327.         dUID,
  328.         dName[32],
  329.         dType,
  330.         Float:dInsX,
  331.         Float:dInsY,
  332.         Float:dInsZ,
  333.         Float:dOutX,
  334.         Float:dOutY,
  335.         Float:dOutZ,
  336.         dInsVW,
  337.         dOutVW,
  338.         dPlayerUID,
  339.         dGroupUID,
  340.         dDestroyed,
  341.         dOpen,
  342.         dUrl[256],
  343.         dEnterCost,
  344.         dVehicle
  345. };
  346.  
  347. new DoorCache[MAX_DOORS][E_DOOR];
  348.  
  349. new DoorPickupID[MAX_PICKUPS];
  350.  
  351. new PlayerMessageUID[MAX_PLAYERS];
  352.  
  353. enum E_ITEM
  354. {
  355.         iUID,
  356.         iType,
  357.         iVal,
  358.         iVal2,
  359.         iVal3,
  360.         iName[128],
  361.         iState,
  362.         Float:iX,
  363.         Float:iY,
  364.         Float:iZ,
  365.         iVW,
  366.         iOwner,
  367.         iActive,
  368.         Float:iAttachX,
  369.         Float:iAttachY,
  370.         Float:iAttachZ,
  371.         Float:iAttachrX,
  372.         Float:iAttachrY,
  373.         Float:iAttachrZ,
  374.         Float:iSizeX,
  375.         Float:iSizeY,
  376.         Float:iSizeZ
  377. };
  378. new ItemCache[MAX_ITEMS][E_ITEM];
  379.  
  380. new LastiUID;
  381.  
  382. enum E_MESSAGE
  383. {
  384.         mUID,
  385.         mText[128],
  386.         mReceiver,
  387.         mSender
  388. };
  389. new MsgCache[MAX_MESSAGES][E_MESSAGE];
  390.  
  391. new LastMsgUID;
  392.  
  393. enum E_CALL
  394. {
  395.         cCaller,
  396.         cCalling
  397. };
  398. new CallData[MAX_PLAYERS][E_CALL];
  399.  
  400. new LastContactUID;
  401.  
  402. enum E_CONTACT
  403. {
  404.         cNum,
  405.         cOwner,
  406.         cName[128],
  407.         cState
  408. };
  409.  
  410. new ContactCache[MAX_CONTACTS][E_CONTACT];
  411.  
  412. new VCardSender[MAX_PLAYERS];
  413.  
  414. new ghour, gmin, gsec, gmsg[128];
  415.  
  416. new PlayerText:Group[MAX_PLAYERS];
  417. new PlayerText:Group2[MAX_PLAYERS];
  418. new PlayerText:Group3[MAX_PLAYERS];
  419. new PlayerText:GroupLabel[MAX_PLAYERS];
  420.  
  421. enum E_GROUP
  422. {
  423.         gUID,
  424.         gType,
  425.         gName[32],
  426.         gBank,
  427.         bool:gChatIC,
  428.         bool:gChatOOC,
  429.         gColor[16],
  430.         gState
  431. };
  432.  
  433. new GroupCache[MAX_GROUPS][E_GROUP];
  434.  
  435. new LastgUID;
  436.  
  437. new pChoosingTxd[MAX_PLAYERS];
  438.  
  439. new pDuty[MAX_PLAYERS];
  440.  
  441. new PlayerText:DutyTxd[MAX_PLAYERS];
  442.  
  443. enum E_OBJECT
  444. {
  445.         oUID,
  446.         oID,
  447.         Float:oX,
  448.         Float:oY,
  449.         Float:oZ,
  450.         Float:orX,
  451.         Float:orY,
  452.         Float:orZ,
  453.         oVW,
  454.         oState,
  455.         oModel,
  456.         oTimer,
  457.         oPlayer,
  458.         oGate,
  459.         Float:oGateX,
  460.         Float:oGateY,
  461.         Float:oGateZ,
  462.         Float:oGaterX,
  463.         Float:oGaterY,
  464.         Float:oGaterZ,
  465.         oOwner,
  466.         oOwnerType
  467. };
  468.  
  469. new ObjectCache[MAX_OBJECTS][E_OBJECT];
  470.  
  471. new PlayerText:ObjectInfo[MAX_PLAYERS];
  472.  
  473. new LastoUID;
  474.  
  475. new pLast[MAX_PLAYERS];
  476.  
  477. new LasttUID;
  478.  
  479. enum E_TEXTURE
  480. {
  481.         tTexturename[128],
  482.         tTxdname[128],
  483.         tColor,
  484.         tModelid,
  485.         tObjectUID,
  486.         tIndex,
  487.         tMaterialsize,
  488.         tFontsize,
  489.         tBold,
  490.         tBackcolor,
  491.         tAlignment,
  492.         tType
  493. };
  494.  
  495. new TextureCache[MAX_TEXTURES][E_TEXTURE];
  496.  
  497. new LoginAttempt[MAX_PLAYERS];
  498.  
  499. new PlayerText:VehicleInfo[MAX_PLAYERS];
  500.  
  501. new LastvUID;
  502.  
  503. enum E_VEHICLE
  504. {
  505.         vUID,
  506.         vID,
  507.         vColor,
  508.         vColor2,
  509.         vOwner,
  510.         vState,
  511.         Float:vPosX,
  512.         Float:vPosY,
  513.         Float:vPosZ,
  514.         Float:vAngle,
  515.         vVW,
  516.         vFuel,
  517.         vModel,
  518.         Float:vHP,
  519.         vTimer,
  520.         vEngine,
  521.         vLights,
  522.         vDoors,
  523.         vBoot,
  524.         vBonnet,
  525.         vAlarm,
  526.         vOpen,
  527.         vObjective,
  528.         bool:vRegister
  529. }
  530.  
  531. new VehicleCache[MAX_VEHICLES][E_VEHICLE];
  532.  
  533. new MapIcon[MAX_PLAYERS];
  534. new MapIconTimer[MAX_PLAYERS];
  535.  
  536. new ObjectInfoTimer[MAX_PLAYERS];
  537.  
  538. enum E_TRADE
  539. {
  540.         tType,
  541.         tSender,
  542.         tReceiver,
  543.         tPrice,
  544.         tVal
  545. };
  546. new TradeData[MAX_PLAYERS][E_TRADE];
  547.  
  548. new bool:VehicleAttackedByCheater[MAX_VEHICLES];
  549.  
  550. new aduty[MAX_PLAYERS];
  551.  
  552. new LastaUID;
  553.  
  554. enum E_ACTOR
  555. {
  556.         aUID,
  557.         aID,
  558.         aSkin,
  559.         aAnimLib[32],
  560.         aAnimName[32],
  561.         aType,
  562.         aName[64],
  563.         Float:aPosX,
  564.         Float:aPosY,
  565.         Float:aPosZ,
  566.         aVW,
  567.         Float:aAng,
  568.         Text3D:aLabel,
  569.         aRepeat
  570. };
  571.  
  572. new ActorCache[MAX_ACTORS][E_ACTOR];
  573.  
  574. enum E_ACTION
  575. {
  576.         aType
  577. };
  578.  
  579. new ActionData[MAX_PLAYERS][E_ACTION];
  580.  
  581. enum E_DIALOG
  582. {
  583.         dialogVal,
  584.         dialogVal2,
  585.         dialogVal3
  586. }
  587.  
  588. new pVal[MAX_PLAYERS];
  589. new pVal2[MAX_PLAYERS];
  590. new pVal3[MAX_PLAYERS];
  591.  
  592. enum E_REPAIR
  593. {
  594.         repairTimer,
  595.         repairTime,
  596.         repairVehicleUID
  597. }
  598.  
  599. new PlayerRepairingVehicle[MAX_PLAYERS][E_REPAIR];
  600.  
  601. new PlayerTick[MAX_PLAYERS];
  602.  
  603. new gyear, gmonth, gday;
  604.  
  605. new LastCar[MAX_PLAYERS];
  606.  
  607. new bool:ac[MAX_PLAYERS];
  608.  
  609. new bool:pChangeInterior[MAX_PLAYERS];
  610.  
  611. new godmodecount[MAX_PLAYERS];
  612.  
  613. new Attacker[MAX_PLAYERS];
  614.  
  615. new bool:pEnteringCar[MAX_PLAYERS];
  616.  
  617. public OnGameModeInit()
  618. {
  619.         if(!dfile_FileExists(FOLDER_USERS) || !dfile_FileExists(FOLDER_ZONES) || !dfile_FileExists(FOLDER_DOORS) || !dfile_FileExists(FOLDER_ITEMS)
  620.         || !dfile_FileExists(FOLDER_MESSAGES) || !dfile_FileExists(FOLDER_CONTACTS) || !dfile_FileExists(FOLDER_GROUPS) || !dfile_FileExists(FOLDER_OBJECTS) || !dfile_FileExists(FOLDER_TEXTURES)
  621.         || !dfile_FileExists(FOLDER_VEHICLES) || !dfile_FileExists(FOLDER_ACTORS))
  622.         {
  623.                 print("> Make sure all folders exist in scriptfiles: Users, Zones, Doors, Messages, Contacts, Groups, Objects, Textures, Vehicles, Actors. If not - create them and restart server.");
  624.                 return 0;
  625.         }
  626.         if(!dfile_FileExists(UID_FILE))
  627.         {
  628.                 print("> Creating missing UID.ini file..");
  629.                 dfile_Create(UID_FILE);
  630.                 dfile_Open(UID_FILE);
  631.                 dfile_WriteInt("UID", 1);
  632.                 dfile_WriteInt("dUID", 1);
  633.                 dfile_WriteInt("iUID", 1);
  634.                 dfile_WriteInt("MsgUID", 1);
  635.                 dfile_WriteInt("ContactUID", 1);
  636.                 dfile_WriteInt("gUID", 1);
  637.                 dfile_WriteInt("oUID", 1);
  638.                 dfile_WriteInt("rUID", 1);
  639.                 dfile_WriteInt("vUID", 1);
  640.                 dfile_WriteInt("aUID", 1);
  641.                 dfile_SaveFile();
  642.                 dfile_CloseFile();
  643.                 print("> Succefully created missing UID.ini file in scriptfiles folder!");
  644.         }
  645.         SendRconCommand("hostname [przygotowania] Epizd Fort Carson");
  646.         SendRconCommand("gamemodetext Projekt RP");
  647.         SendRconCommand("mapname Fort Carson");
  648.         gettime(ghour, gmin, gsec);
  649.         SetWorldTime(ghour);
  650.         LoadUIDs();
  651.         LoadAccounts();
  652.         LoadGroups();
  653.         LoadDoors();
  654.         LoadItems();
  655.         LoadMessages();
  656.         LoadContacts();
  657.         LoadObjects();
  658.         LoadTextures();
  659.         LoadVehicles();
  660.         LoadActors();
  661.         print("Loaded everything");
  662.         SetGameModeText("Szkodnik-RP");
  663.         EnableStuntBonusForAll(0);
  664.         DisableInteriorEnterExits();
  665.         ManualVehicleEngineAndLights();
  666.         ShowNameTags(0);
  667.         CreateTextDraws();
  668.         SetTimer("min_timer", 1000*60, true);
  669.         SetTimer("sec_timer", 1000, true);
  670.         SetTimer("auto_save", 5000*60, true);
  671.         CreateZones();
  672.         return 1;
  673. }
  674.  
  675. stock ActorPath(actoruid)
  676. {
  677.         new path[128];
  678.         format(path, sizeof(path), FOLDER_ACTORS"%d.ini", actoruid);
  679.         return path;
  680. }
  681.  
  682. forward auto_save();
  683. public auto_save()
  684. {
  685.         SaveUIDs();
  686.         SaveAccounts();
  687.         SaveZones();
  688.         SaveDoors();
  689.         SaveItems();
  690.         SaveMessages();
  691.         SaveContacts();
  692.         SaveGroups();
  693.         SaveObjects();
  694.         SaveTextures();
  695.         SaveVehicles();
  696.         SaveActors();
  697. }
  698.  
  699. stock GetVehicleSpeed(vehicleid)
  700. {
  701.         new speed;
  702.         new Float:X, Float:Y, Float:Z;
  703.         GetVehicleVelocity(vehicleid, X, Y, Z);
  704.         X = X*X*100;
  705.         Y = Y*Y*100;
  706.         Z = Z*Z*100;
  707.         speed = floatround(X+Y+Z);
  708.         return speed;
  709. }
  710.  
  711. stock GetPlayerSpeed(playerid)
  712. {
  713.         new speed;
  714.         new Float:X, Float:Y, Float:Z;
  715.         GetPlayerVelocity(playerid, X, Y, Z);
  716.         X = X*X*100;
  717.         Y = Y*Y*100;
  718.         Z = Z*Z*100;
  719.         speed = floatround(X+Y+Z);
  720.         return speed;
  721. }
  722.  
  723. stock GetPlayerGroundSpeed(playerid)
  724. {
  725.         new speed;
  726.         new Float:X, Float:Y, Float:Z;
  727.         GetPlayerVelocity(playerid, X, Y, Z);
  728.         X = X*X*100;
  729.         Y = Y*Y*100;
  730.         speed = floatround(X+Y);
  731.         return speed;
  732. }
  733.  
  734. stock GetPlayerHighSpeed(playerid)
  735. {
  736.         new speed;
  737.         new Float:X, Float:Y, Float:Z;
  738.         GetPlayerVelocity(playerid, X, Y, Z);
  739.         Z = Z*Z*100;
  740.         speed = floatround(Z);
  741.         return speed;
  742. }
  743.  
  744. stock GetPlayerVehicleInRange(playerid)
  745. {
  746.         new Float:vX, Float:vY, Float:vZ;
  747.         for(new i=1; i<=GetVehiclePoolSize(); i++)
  748.         {
  749.                 GetVehiclePos(i, vX, vY, vZ);
  750.                 if(IsPlayerInRangeOfPoint(playerid, 5.0, vX, vY, vZ) && VehicleCache[GetVehicleUID(i)][vOwner] == pUID[playerid])
  751.                 return 1;
  752.         }
  753.         return 0;
  754. }
  755.  
  756. forward sec_timer();
  757. public sec_timer()
  758. {
  759.         new vid, vuid, vinfo[128];
  760.         for(new i; i<=GetPlayerPoolSize(); i++)
  761.         {
  762.                 if(IsPlayerConnected(i))
  763.                 {
  764.                         if(pUID[i])
  765.                         {
  766.                                 if(IsPlayerInAnyVehicle(i))
  767.                                 {
  768.                                         if(GetPlayerVehicleSeat(i) == 0)
  769.                                         {
  770.                                                 vid = GetPlayerVehicleID(i), vuid = GetVehicleUID(vid);
  771.                                                 if(VehicleCache[vuid][vEngine])
  772.                                                 {
  773.                                                         if(GetVehicleModel(i) == 481 || GetVehicleModel(i) == 509 || GetVehicleModel(i) == 510)
  774.                                                         continue;
  775.                                                         new vspeed = GetVehicleSpeed(vid);
  776.                                                         format(vinfo, sizeof(vinfo), "~b~~h~~h~~h~Licznik: ~w~%d km/h~n~~b~~h~~h~~h~Paliwo: ~w~%d/100", vspeed, VehicleCache[vuid][vFuel]);
  777.                                                         PlayerTextDrawSetString(i, VehicleInfo[i], vinfo);
  778.                                                         PlayerTextDrawShow(i, VehicleInfo[i]);
  779.                                                 }
  780.                                         }
  781.                                 }
  782.                                 else
  783.                                 {
  784.                                         if(GetPlayerGroundSpeed(i) > 7)
  785.                                         {
  786.                                                 if(LastCar[i])
  787.                                                 continue;
  788.                                                 AJPlayer(i, "System", "Player speedhack (A)", 30);
  789.                                         }
  790.                                 }
  791.                                 if(GetPlayerSpecialAction(i) == SPECIAL_ACTION_USEJETPACK)
  792.                                 {
  793.                                         KickPlayer(i, "System", "Jetpack spawn");
  794.                                 }
  795.                                 if(GetPlayerWeapon(i) != 0)
  796.                                 {
  797.                                         for(new j=1;j<LastiUID;j++)
  798.                                         {
  799.                                                 if(ItemCache[j][iActive])
  800.                                                 {
  801.                                                         if(ItemCache[j][iOwner] == pUID[i])
  802.                                                         {
  803.                                                                 if(ItemCache[j][iType] == 1)
  804.                                                                 {
  805.                                                                         if(GetPlayerWeapon(i) == ItemCache[j][iVal] || GetPlayerWeapon(i) != 0)
  806.                                                                         {
  807.                                                                                 return 1;
  808.                                                                         }
  809.                                                                 }
  810.                                                         }
  811.                                                 }
  812.                                         }
  813.                                         new str[64]; format(str, sizeof(str), "Weapon Cheat (B) weaponid: %d", GetPlayerWeapon(i));
  814.                                         KickPlayer(i, "System", str);
  815.                                 }
  816.                         }
  817.                 }
  818.         }
  819.         return 1;
  820. }
  821.  
  822.  
  823. stock ObjPath(id)
  824. {
  825.         new path[64];
  826.         format(path, sizeof(path), FOLDER_OBJECTS"%d.ini", id);
  827.         return path;
  828. }
  829.  
  830. stock TexturePath(textureid)
  831. {
  832.         new path[64]; format(path, sizeof(path), FOLDER_TEXTURES"%d.ini", textureid);
  833.         return path;
  834. }
  835.  
  836. stock LoadTextures()
  837. {
  838.         new texturename[128], txdname[128];
  839.         for(new i=1; i<LasttUID; i++)
  840.         {
  841.                 if(dfile_FileExists(TexturePath(i)))
  842.                 {
  843.                         dfile_Open(TexturePath(i));
  844.                         format(texturename, sizeof(texturename), dfile_ReadString("Texturename"));
  845.                         format(txdname, sizeof(txdname), dfile_ReadString("Txdname"));
  846.                         TextureCache[i][tTexturename] = texturename;
  847.                         TextureCache[i][tTxdname] = txdname;
  848.                         TextureCache[i][tObjectUID] = dfile_ReadInt("ObjectUID");
  849.                         TextureCache[i][tModelid] = dfile_ReadInt("Modelid");
  850.                         TextureCache[i][tColor] = dfile_ReadInt("Color");
  851.                         TextureCache[i][tIndex] = dfile_ReadInt("Index");
  852.                         TextureCache[i][tType] = dfile_ReadInt("Type");
  853.                         TextureCache[i][tFontsize] = dfile_ReadInt("Fontsize");
  854.                         TextureCache[i][tBold] = dfile_ReadInt("Bold");
  855.                         TextureCache[i][tBackcolor] = dfile_ReadInt("Backcolor");
  856.                         TextureCache[i][tAlignment] = dfile_ReadInt("Alignment");
  857.                         TextureCache[i][tMaterialsize] = dfile_ReadInt("Materialsize");
  858.                         dfile_CloseFile();
  859.                         if(ObjectCache[TextureCache[i][tObjectUID]][oState] == 0)
  860.                         {
  861.                                 if(TextureCache[i][tType] == 0)
  862.                                 {
  863.                                         SetDynamicObjectMaterial(ObjectCache[TextureCache[i][tObjectUID]][oID],TextureCache[i][tIndex], TextureCache[i][tModelid], txdname, texturename,TextureCache[i][tColor]);
  864.                                 }
  865.                                 else
  866.                                 {
  867.                                         SetDynamicObjectMaterialText(ObjectCache[TextureCache[i][tObjectUID]][oID], TextureCache[i][tIndex], TextureCache[i][tTexturename], TextureCache[i][tMaterialsize], TextureCache[i][tTxdname], TextureCache[i][tFontsize], TextureCache[i][tBold], TextureCache[i][tColor], TextureCache[i][tBackcolor], TextureCache[i][tAlignment]);
  868.                                 }
  869.                         }
  870.                 }
  871.         }
  872. }
  873.  
  874. stock SaveTextures()
  875. {
  876.         for(new i=1; i<LasttUID; i++)
  877.         {
  878.                 if(TextureCache[i][tObjectUID] == 0 && ObjectCache[TextureCache[i][tObjectUID]][oState] == 0)
  879.                 {
  880.                         continue;
  881.                 }
  882.                 if(!dfile_FileExists(TexturePath(i)))
  883.                 dfile_Create(TexturePath(i));
  884.                 dfile_Open(TexturePath(i));
  885.                 dfile_WriteInt("Color", TextureCache[i][tColor]);
  886.                 dfile_WriteInt("Modelid", TextureCache[i][tModelid]);
  887.                 dfile_WriteInt("ObjectUID", TextureCache[i][tObjectUID]);
  888.                 dfile_WriteString("Txdname", TextureCache[i][tTxdname]);
  889.                 dfile_WriteString("Texturename", TextureCache[i][tTexturename]);
  890.                 dfile_WriteInt("Index", TextureCache[i][tIndex]);
  891.                 dfile_WriteInt("Materialsize", TextureCache[i][tMaterialsize]);
  892.                 dfile_WriteInt("Fontsize", TextureCache[i][tFontsize]);
  893.                 dfile_WriteInt("Type", TextureCache[i][tType]);
  894.                 dfile_WriteInt("Backcolor", TextureCache[i][tBackcolor]);
  895.                 dfile_WriteInt("Alignment", TextureCache[i][tAlignment]);
  896.                 dfile_SaveFile();
  897.                 dfile_CloseFile();
  898.         }
  899.         return 1;
  900. }
  901.  
  902. stock SaveObjects()
  903. {
  904.         for(new i=1; i<LastoUID; i++)
  905.         {
  906.                 if(ObjectCache[i][oUID] == 0)
  907.                 return printf("ERROR: Invalid saving object UID. Saving canceled.");
  908.                 if(!dfile_FileExists(ObjPath(i)))
  909.                 dfile_Create(ObjPath(i));
  910.                 dfile_Open(ObjPath(i));
  911.                 dfile_WriteInt("UID", ObjectCache[i][oUID]);
  912.                 dfile_WriteInt("State", ObjectCache[i][oState]);
  913.                 dfile_WriteFloat("X", ObjectCache[i][oX]);
  914.                 dfile_WriteFloat("Y", ObjectCache[i][oY]);
  915.                 dfile_WriteFloat("Z", ObjectCache[i][oZ]);
  916.                 dfile_WriteFloat("rX", ObjectCache[i][orX]);
  917.                 dfile_WriteFloat("rY", ObjectCache[i][orY]);
  918.                 dfile_WriteFloat("rZ", ObjectCache[i][orZ]);
  919.                 dfile_WriteInt("Model", ObjectCache[i][oModel]);
  920.                 dfile_WriteInt("VW", ObjectCache[i][oVW]);
  921.                 dfile_WriteInt("Gate", ObjectCache[i][oGate]);
  922.                 dfile_WriteFloat("GateX", ObjectCache[i][oGateX]);
  923.                 dfile_WriteFloat("GateY", ObjectCache[i][oGateY]);
  924.                 dfile_WriteFloat("GateZ", ObjectCache[i][oGateZ]);
  925.                 dfile_WriteFloat("GaterX", ObjectCache[i][oGaterX]);
  926.                 dfile_WriteFloat("GaterY", ObjectCache[i][oGaterY]);
  927.                 dfile_WriteFloat("GaterZ", ObjectCache[i][oGaterZ]);
  928.                 dfile_WriteInt("Owner", ObjectCache[i][oOwner]);
  929.                 dfile_WriteInt("OwnerType", ObjectCache[i][oOwnerType]);
  930.                 dfile_SaveFile();
  931.                 dfile_CloseFile();
  932.         }
  933.         return 1;
  934. }
  935.  
  936. stock LoadObjects()
  937. {
  938.         for(new i=1; i<LastoUID; i++)
  939.         {
  940.                 if(!dfile_FileExists(ObjPath(i)))
  941.                 continue;
  942.                 dfile_Open(ObjPath(i));
  943.                 ObjectCache[i][oPlayer] = -1;
  944.                 ObjectCache[i][oUID] = dfile_ReadInt("UID");
  945.                 ObjectCache[i][oModel] = dfile_ReadInt("Model");
  946.                 ObjectCache[i][oX] = dfile_ReadFloat("X");
  947.                 ObjectCache[i][oY] = dfile_ReadFloat("Y");
  948.                 ObjectCache[i][oZ] = dfile_ReadFloat("Z");
  949.                 ObjectCache[i][orX] = dfile_ReadFloat("rX");
  950.                 ObjectCache[i][orY] = dfile_ReadFloat("rY");
  951.                 ObjectCache[i][orZ] = dfile_ReadFloat("rZ");
  952.                 ObjectCache[i][oVW] = dfile_ReadInt("VW");
  953.                 ObjectCache[i][oState] = dfile_ReadInt("State");
  954.                 ObjectCache[i][oGate] = dfile_ReadInt("Gate");
  955.                 ObjectCache[i][oGateX] = dfile_ReadFloat("GateX");
  956.                 ObjectCache[i][oGateY] = dfile_ReadFloat("GateY");
  957.                 ObjectCache[i][oGateZ] = dfile_ReadFloat("GateZ");
  958.                 ObjectCache[i][oGaterX] = dfile_ReadFloat("GaterX");
  959.                 ObjectCache[i][oGaterY] = dfile_ReadFloat("GaterY");
  960.                 ObjectCache[i][oGaterZ] = dfile_ReadFloat("GaterZ");
  961.                 ObjectCache[i][oOwner] = dfile_ReadInt("Owner");
  962.                 ObjectCache[i][oOwnerType] = dfile_ReadInt("OwnerType");
  963.                 dfile_CloseFile();
  964.                 if(ObjectCache[i][oState]==0)
  965.                 {
  966.                         ObjectCache[i][oID] = CreateDynamicObject(ObjectCache[i][oModel], ObjectCache[i][oX], ObjectCache[i][oY], ObjectCache[i][oZ], ObjectCache[i][orX],
  967.                         ObjectCache[i][orY], ObjectCache[i][orZ], ObjectCache[i][oVW], 0, -1);
  968.                 }
  969.         }
  970. }
  971.  
  972. stock LoadDoors()
  973. {
  974.         new str[32], count, url[256];
  975.         for(new i=1; i<LastdUID; i++)
  976.         {
  977.                 if(!dfile_FileExists(DoorPath(i)))
  978.                 continue;
  979.                 dfile_Open(DoorPath(i));
  980.                 DoorCache[i][dUID] = dfile_ReadInt("UID");
  981.                 DoorCache[i][dOutVW] = dfile_ReadInt("OutVW");
  982.                 DoorCache[i][dInsVW] = dfile_ReadInt("InsVW");
  983.                 DoorCache[i][dOutX] = dfile_ReadFloat("OutX");
  984.                 DoorCache[i][dOutY] = dfile_ReadFloat("OutY");
  985.                 DoorCache[i][dOutZ] = dfile_ReadFloat("OutZ");
  986.                 DoorCache[i][dInsX] = dfile_ReadFloat("InsX");
  987.                 DoorCache[i][dInsY] = dfile_ReadFloat("InsY");
  988.                 DoorCache[i][dInsZ] = dfile_ReadFloat("InsZ");
  989.                 format(str, sizeof(str), dfile_ReadString("Name"));
  990.                 DoorCache[i][dName] = str;
  991.                 DoorCache[i][dPlayerUID] = dfile_ReadInt("PlayerUID");
  992.                 DoorCache[i][dGroupUID] = dfile_ReadInt("GroupUID");
  993.                 DoorCache[i][dDestroyed] = dfile_ReadInt("Destroyed");
  994.                 DoorCache[i][dOpen] = dfile_ReadInt("Open");
  995.                 DoorCache[i][dType] = dfile_ReadInt("Type");
  996.                 format(url, sizeof(url), dfile_ReadString("Url"));
  997.                 DoorCache[i][dEnterCost] = dfile_ReadInt("EnterCost");
  998.                 DoorCache[i][dVehicle] = dfile_ReadInt("Vehicle");
  999.                 DoorCache[i][dUrl] = url;
  1000.                 dfile_CloseFile();
  1001.                 if(!DoorCache[i][dDestroyed])
  1002.                 {
  1003.                         count++;
  1004.                         if(DoorCache[i][dGroupUID] != 0)
  1005.                         {
  1006.                                 DoorPickupID[DoorCache[i][dUID]] = CreateDynamicPickup(GetPickupModelFromGroupType(GroupCache[DoorCache[i][dGroupUID]][gType]), 2, DoorCache[i][dOutX],DoorCache[i][dOutY], DoorCache[i][dOutZ], DoorCache[i][dOutVW], 0, -1);
  1007.                         }
  1008.                         else
  1009.                         {
  1010.                                 DoorPickupID[DoorCache[i][dUID]] = CreateDynamicPickup(1273, 2, DoorCache[i][dOutX],DoorCache[i][dOutY], DoorCache[i][dOutZ], DoorCache[i][dOutVW], 0, -1);
  1011.                         }
  1012.                 }
  1013.         }
  1014.         printf("[SYSTEM] Loaded %d doors.", count);
  1015. }
  1016.  
  1017. stock ZonePath(zoneid)
  1018. {
  1019.         new path[64];
  1020.         format(path, sizeof(path), FOLDER_ZONES"%d.ini", zoneid);
  1021.         return path;
  1022. }
  1023.  
  1024. stock CreateZoneFile(zoneid)
  1025. {
  1026.         dfile_Create(ZonePath(zoneid));
  1027.         dfile_Open(ZonePath(zoneid));
  1028.         dfile_WriteInt("ID", zoneid);
  1029.         dfile_WriteFloat("MinX", ZoneData[zoneid][zMinX]);
  1030.         dfile_WriteFloat("MinY", ZoneData[zoneid][zMinY]);
  1031.         dfile_WriteFloat("MaxX", ZoneData[zoneid][zMaxX]);
  1032.         dfile_WriteFloat("MaxY", ZoneData[zoneid][zMaxY]);
  1033.         dfile_WriteInt("Yard", 0);
  1034.         dfile_WriteInt("CostH", 0);
  1035.         dfile_WriteInt("CostB", 0);
  1036.         dfile_WriteString("Name", "Niezdefiniowana nazwa strefy");
  1037.         dfile_SaveFile();
  1038.         dfile_CloseFile();
  1039. }
  1040.  
  1041. stock LoadZoneFile(zoneid)
  1042. {
  1043.         new str[64];
  1044.         dfile_Open(ZonePath(zoneid));
  1045.         ZoneData[zoneid][zYard] = dfile_ReadInt("Yard");
  1046.         ZoneData[zoneid][zCostH] = dfile_ReadInt("CostH");
  1047.         ZoneData[zoneid][zCostB] = dfile_ReadInt("CostB");
  1048.         format(str, sizeof(str), dfile_ReadString("Name"));
  1049.         ZoneData[zoneid][zName] = str;
  1050.         dfile_CloseFile();
  1051. }
  1052.  
  1053. stock CreateZones()
  1054. {      
  1055.         new str[64] = "Niezdefiniowana nazwa strefy";
  1056.         ZoneData[0][zName] = str;
  1057.         ZoneData[0][zYard] = 0;
  1058.         ZoneData[0][zCostH] = 0;
  1059.         ZoneData[0][zCostB] = 0;
  1060.         ZoneData[0][zMinX] = 2944.0;
  1061.         ZoneData[0][zMinY] = -2958.0;
  1062.         ZoneData[0][zMaxX] = 2944.0+250;
  1063.         ZoneData[0][zMaxY] = -2958.0+250;
  1064.         ZoneData[0][zID] = CreateDynamicRectangle(ZoneData[0][zMinX], ZoneData[0][zMinY], ZoneData[0][zMaxX], ZoneData[0][zMaxY], -1, -1, -1);
  1065.         if(!dfile_FileExists(ZonePath(0)))
  1066.         CreateZoneFile(0);
  1067.         else
  1068.         LoadZoneFile(0);
  1069.         for(new i=1; i<=MAX_ZONES; i++)
  1070.         {
  1071.                 if(i > 575)
  1072.                 {
  1073.                         GoRight(i); continue;
  1074.                 }
  1075.                 if(i == 575)
  1076.                 {
  1077.                         GoUp(i); continue;
  1078.                 }
  1079.                 if(i > 550)
  1080.                 {
  1081.                         GoLeft(i); continue;
  1082.                 }
  1083.                 if(i == 550)
  1084.                 {
  1085.                         GoUp(i); continue;
  1086.                 }
  1087.                 if(i > 525)
  1088.                 {
  1089.                         GoRight(i);continue;
  1090.                 }
  1091.                 if(i == 525)
  1092.                 {
  1093.                         GoUp(i); continue;
  1094.                 }
  1095.                 if(i>500)
  1096.                 {
  1097.                         GoLeft(i);
  1098.                         continue;
  1099.                 }
  1100.                 if(i == 500)
  1101.                 {
  1102.                         GoUp(i); continue;
  1103.                 }
  1104.                 if(i > 475)
  1105.                 {
  1106.                         GoRight(i); continue;
  1107.                 }
  1108.                 if(i == 475)
  1109.                 {
  1110.                         GoUp(i); continue;
  1111.                 }
  1112.                 if(i > 450)
  1113.                 {
  1114.                         GoLeft(i); continue;
  1115.                 }
  1116.                 if(i == 450)
  1117.                 {
  1118.                         GoUp(i); continue;
  1119.                 }
  1120.                 if(i > 425)
  1121.                 {
  1122.                         GoRight(i);continue;
  1123.                 }
  1124.                 if(i == 425)
  1125.                 {
  1126.                         GoUp(i); continue;
  1127.                 }
  1128.                 if(i>400)
  1129.                 {
  1130.                         GoLeft(i);
  1131.                         continue;
  1132.                 }
  1133.                 if(i == 400)
  1134.                 {
  1135.                         GoUp(i); continue;
  1136.                 }
  1137.                 if(i > 375)
  1138.                 {
  1139.                         GoRight(i); continue;
  1140.                 }
  1141.                 if(i == 375)
  1142.                 {
  1143.                         GoUp(i); continue;
  1144.                 }
  1145.                 if(i > 350)
  1146.                 {
  1147.                         GoLeft(i); continue;
  1148.                 }
  1149.                 if(i == 350)
  1150.                 {
  1151.                         GoUp(i); continue;
  1152.                 }
  1153.                 if(i > 325)
  1154.                 {
  1155.                         GoRight(i); continue;
  1156.                 }
  1157.                 if(i == 325)
  1158.                 {
  1159.                         GoUp(i); continue;
  1160.                 }
  1161.                 if(i> 300)
  1162.                 {
  1163.                         GoLeft(i); continue;
  1164.                 }
  1165.                 if(i == 300)
  1166.                 {
  1167.                         GoUp(i); continue;
  1168.                 }
  1169.                 if(i > 275)
  1170.                 {
  1171.                         GoRight(i); continue;
  1172.                 }
  1173.                 if(i == 275)
  1174.                 {
  1175.                         GoUp(i);
  1176.                         continue;
  1177.                 }
  1178.                 if(i > 250)
  1179.                 {
  1180.                         GoLeft(i);
  1181.                         continue;
  1182.                 }
  1183.                 if(i == 250)
  1184.                 {
  1185.                         GoUp(i);
  1186.                         continue;
  1187.                 }
  1188.                 if(i > 225)
  1189.                 {
  1190.                         GoRight(i);
  1191.                         continue;
  1192.                 }
  1193.                 if(i == 225)
  1194.                 {
  1195.                         GoUp(i);
  1196.                         continue;
  1197.                 }
  1198.                 if(i > 200)
  1199.                 {
  1200.                         GoLeft(i); continue;
  1201.                 }
  1202.                 if(i == 200)
  1203.                 {
  1204.                         GoUp(i); continue;
  1205.                 }
  1206.                 if(i > 175)
  1207.                 {
  1208.                         GoRight(i); continue;
  1209.                 }
  1210.                 if(i == 175)
  1211.                 {
  1212.                         GoUp(i); continue;
  1213.                 }
  1214.                 if(i > 150)
  1215.                 {
  1216.                         GoLeft(i); continue;
  1217.                 }
  1218.                 if(i == 150)
  1219.                 {
  1220.                         GoUp(i); continue;
  1221.                 }
  1222.                 if(i > 125)
  1223.                 {
  1224.                         GoRight(i); continue;
  1225.                 }
  1226.                 if(i == 125)
  1227.                 {
  1228.                         GoUp(i); continue;
  1229.                 }
  1230.                 if(i > 100)
  1231.                 {
  1232.                         GoLeft(i); continue;
  1233.                 }
  1234.                 if(i == 100)
  1235.                 {
  1236.                         GoUp(i);
  1237.                         continue;
  1238.                 }
  1239.                 if(i > 75)
  1240.                 {
  1241.                         GoRight(i);  continue;
  1242.                 }
  1243.                 if(i == 75)
  1244.                 {
  1245.                         GoUp(i);
  1246.                         continue;
  1247.                 }
  1248.                 if(i > 50)
  1249.                 {
  1250.                         GoLeft(i);
  1251.                         continue;
  1252.                 }
  1253.                 if(i == 50)
  1254.                 {
  1255.                         GoUp(i);
  1256.                         continue;
  1257.                 }
  1258.                 if(i > 25)
  1259.                 {
  1260.                         GoRight(i);
  1261.                         continue;
  1262.                 }
  1263.                 if(i == 25)
  1264.                 {
  1265.                         GoUp(i); continue;
  1266.                 }
  1267.                 GoLeft(i);
  1268.         }
  1269. }
  1270.  
  1271. stock GoUp(i)
  1272. {
  1273.         ZoneData[i][zMinX] = ZoneData[i-1][zMinX];
  1274.         ZoneData[i][zMinY] = ZoneData[i-1][zMinY]+250;
  1275.         ZoneData[i][zMaxX] = ZoneData[i-1][zMaxX];
  1276.         ZoneData[i][zMaxY] = ZoneData[i-1][zMaxY]+250;
  1277.         ZoneData[i][zID] = CreateDynamicRectangle(ZoneData[i][zMinX], ZoneData[i][zMinY], ZoneData[i][zMaxX], ZoneData[i][zMaxY], -1, -1, -1);
  1278.         if(!dfile_FileExists(ZonePath(i)))
  1279.         CreateZoneFile(i);
  1280.         else
  1281.         LoadZoneFile(i);
  1282. }
  1283.  
  1284. stock GoRight(i)
  1285. {
  1286.         ZoneData[i][zMinX] = ZoneData[i-1][zMinX]+250;
  1287.         ZoneData[i][zMinY] = ZoneData[i-1][zMinY];
  1288.         ZoneData[i][zMaxX] = ZoneData[i-1][zMaxX]+250;
  1289.         ZoneData[i][zMaxY] = ZoneData[i-1][zMaxY];
  1290.         ZoneData[i][zID] = CreateDynamicRectangle(ZoneData[i][zMinX], ZoneData[i][zMinY], ZoneData[i][zMaxX], ZoneData[i][zMaxY], -1, -1, -1);
  1291.         if(!dfile_FileExists(ZonePath(i)))
  1292.         CreateZoneFile(i);
  1293.         else
  1294.         LoadZoneFile(i);
  1295. }
  1296.  
  1297. stock GoLeft(i)
  1298. {
  1299.         ZoneData[i][zMinX] = ZoneData[i-1][zMinX]-250;
  1300.         ZoneData[i][zMinY] = ZoneData[i-1][zMinY];
  1301.         ZoneData[i][zMaxX] = ZoneData[i-1][zMaxX]-250;
  1302.         ZoneData[i][zMaxY] = ZoneData[i-1][zMaxY];
  1303.         ZoneData[i][zID] = CreateDynamicRectangle(ZoneData[i][zMinX], ZoneData[i][zMinY], ZoneData[i][zMaxX], ZoneData[i][zMaxY], -1, -1, -1);
  1304.         if(!dfile_FileExists(ZonePath(i)))
  1305.         CreateZoneFile(i);
  1306.         else
  1307.         LoadZoneFile(i);
  1308. }
  1309.  
  1310. stock CreateTextDraws()
  1311. {
  1312.         getdate(gyear, gmonth, gday);
  1313.         new str[64];
  1314.         format(str, sizeof(str), "Projekt-RP: %02d.%02d.%02d", gyear-2000, gmonth, gday);
  1315.         GlobalLogo = TextDrawCreate(73.075904, 424.104705, str);
  1316.         TextDrawLetterSize(GlobalLogo,0.261680, 1.216563);
  1317.         TextDrawAlignment(GlobalLogo, 2);
  1318.         TextDrawColor(GlobalLogo, -1);
  1319.         TextDrawSetShadow(GlobalLogo, 0);
  1320.         TextDrawSetOutline(GlobalLogo, 1);
  1321.         TextDrawBackgroundColor(GlobalLogo, 25);
  1322.         TextDrawFont(GlobalLogo, 1);
  1323.         TextDrawSetProportional(GlobalLogo, 1);
  1324.         TextDrawSetShadow(GlobalLogo, 0);
  1325.  
  1326.         RadioTextDraw = TextDrawCreate(1.697080, 437.926574, "~b~~h~~h~~h~San News~w~ Radio aktualnie nic nie nadaje..");
  1327.         TextDrawLetterSize(RadioTextDraw,   0.175534, 0.999134);
  1328.         TextDrawTextSize(RadioTextDraw,1052.000000, 0.000000);
  1329.         TextDrawAlignment(RadioTextDraw, 1);
  1330.         TextDrawColor(RadioTextDraw, -1);
  1331.         TextDrawUseBox(RadioTextDraw, 1);
  1332.         TextDrawBoxColor(RadioTextDraw,  5);
  1333.         TextDrawSetShadow(RadioTextDraw, 0);
  1334.         TextDrawSetOutline(RadioTextDraw, 1);
  1335.         TextDrawBackgroundColor(RadioTextDraw, 89);
  1336.         TextDrawFont(RadioTextDraw, 1);
  1337.         TextDrawSetProportional(RadioTextDraw, 1);
  1338.         TextDrawSetShadow(RadioTextDraw, 0);
  1339.  
  1340.         PenalityTextDraw = TextDrawCreate(7.481735, 272.249847, "~r~Kara~w~~n~Gracz: Hype~n~Nadawca: Hype~n~~y~Masowy DM w centrum");
  1341.         TextDrawLetterSize(PenalityTextDraw, 0.200876, 1.004995);
  1342.         TextDrawAlignment(PenalityTextDraw, 1);
  1343.         TextDrawColor(PenalityTextDraw, -1);
  1344.         TextDrawSetShadow(PenalityTextDraw, 0);
  1345.         TextDrawSetOutline(PenalityTextDraw, 1);
  1346.         TextDrawBackgroundColor(PenalityTextDraw, 83);
  1347.         TextDrawFont(PenalityTextDraw, 1);
  1348.         TextDrawSetProportional(PenalityTextDraw, 1);
  1349.         TextDrawSetShadow(PenalityTextDraw, 0);
  1350.  
  1351. }
  1352.  
  1353. public OnGameModeExit()
  1354. {
  1355.         SaveUIDs();
  1356.         SaveAccounts();
  1357.         SaveZones();
  1358.         SaveDoors();
  1359.         SaveItems();
  1360.         SaveMessages();
  1361.         SaveContacts();
  1362.         SaveGroups();
  1363.         SaveObjects();
  1364.         SaveTextures();
  1365.         SaveVehicles();
  1366.         SaveActors();
  1367.         return 1;
  1368. }
  1369.  
  1370.  
  1371. stock ContactPath(contactid)
  1372. {
  1373.         new path[64]; format(path, sizeof(path), FOLDER_CONTACTS"%d.ini", contactid);
  1374.         return path;
  1375. }
  1376.  
  1377. stock LoadContacts()
  1378. {
  1379.         new str[128];
  1380.         for(new i=1; i<LastContactUID; i++)
  1381.         {
  1382.                 if(!dfile_FileExists(ContactPath(i)))
  1383.                 continue;
  1384.                 dfile_Open(ContactPath(i));
  1385.                 format(str, sizeof(str), dfile_ReadString("Name"));
  1386.                 ContactCache[i][cName] = str;
  1387.                 ContactCache[i][cOwner] = dfile_ReadInt("Owner");
  1388.                 ContactCache[i][cNum] = dfile_ReadInt("Num");
  1389.                 ContactCache[i][cState] = dfile_ReadInt("State");
  1390.                 dfile_CloseFile();
  1391.         }
  1392. }
  1393.  
  1394. stock SaveContacts()
  1395. {
  1396.         for(new i=1; i<LastContactUID; i++)
  1397.         {
  1398.                 if(!dfile_FileExists(ContactPath(i)))
  1399.                 dfile_Create(ContactPath(i));
  1400.                 dfile_Open(ContactPath(i));
  1401.                 dfile_WriteInt("Owner", ContactCache[i][cOwner]);
  1402.                 dfile_WriteString("Name", ContactCache[i][cName]);
  1403.                 dfile_WriteInt("Num", ContactCache[i][cNum]);
  1404.                 dfile_WriteInt("State", ContactCache[i][cState]);
  1405.                 dfile_SaveFile();
  1406.                 dfile_CloseFile();
  1407.         }
  1408. }
  1409.  
  1410.  
  1411. stock LoadActors()
  1412. {
  1413.         new name[64], lib[32], anim[32];
  1414.         for(new i=1; i<LastaUID; i++)
  1415.         {
  1416.                 if(dfile_FileExists(ActorPath(i)))
  1417.                 {
  1418.                         dfile_Open(ActorPath(i));
  1419.                         ActorCache[i][aUID] = dfile_ReadInt("UID");
  1420.                         ActorCache[i][aType] = dfile_ReadInt("Type");
  1421.                         format(name, sizeof(name), dfile_ReadString("Name"));
  1422.                         ActorCache[i][aName] = name;
  1423.                         format(lib, sizeof(lib), dfile_ReadString("Lib"));
  1424.                         ActorCache[i][aAnimLib] = lib;
  1425.                         format(anim, sizeof(anim), dfile_ReadString("Anim"));
  1426.                         ActorCache[i][aAnimName] = anim;
  1427.                         ActorCache[i][aPosX] = dfile_ReadFloat("PosX");
  1428.                         ActorCache[i][aPosY] = dfile_ReadFloat("PosY");
  1429.                         ActorCache[i][aPosZ] = dfile_ReadFloat("PosZ");
  1430.                         ActorCache[i][aAng] = dfile_ReadFloat("Ang");
  1431.                         ActorCache[i][aVW] = dfile_ReadInt("VW");
  1432.                         ActorCache[i][aSkin] = dfile_ReadInt("Skin");
  1433.                         ActorCache[i][aRepeat] = dfile_ReadInt("Repeat");
  1434.                         dfile_CloseFile();
  1435.                         if(ActorCache[i][aType])
  1436.                         {
  1437.                                 ActorCache[i][aID] = CreateDynamicActor(ActorCache[i][aSkin],ActorCache[i][aPosX], ActorCache[i][aPosY], ActorCache[i][aPosZ], ActorCache[i][aAng],
  1438.                                 1, 100.0, ActorCache[i][aVW], 0, -1);
  1439.                                 new str[64];
  1440.                                 format(str, sizeof(str), "%s\n(aktor)", strreplace(name, '_', ' '));
  1441.                                 ActorCache[i][aLabel] = CreateDynamic3DTextLabel(str, PLAYER_NORMAL_COLOR, ActorCache[i][aPosX],ActorCache[i][aPosY] ,ActorCache[i][aPosZ]+1.1, 8.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 1, ActorCache[i][aVW], 0,-1);
  1442.                                 if(!Isnull(lib))
  1443.                                 {
  1444.                                         if(ActorCache[i][aRepeat])
  1445.                                         ApplyDynamicActorAnimation(ActorCache[i][aID], lib, anim, 4.1, 1, 0, 0, 0, 0);
  1446.                                         else
  1447.                                         ApplyDynamicActorAnimation(ActorCache[i][aID], lib, anim, 4.1, 0, 0, 0, 1, 0);
  1448.                                 }
  1449.                         }
  1450.                 }
  1451.         }
  1452. }
  1453.  
  1454. stock SaveActors()
  1455. {
  1456.         for(new i=1; i<LastaUID; i++)
  1457.         {
  1458.                 if(!dfile_FileExists(ActorPath(i)))
  1459.                 dfile_Create(ActorPath(i));
  1460.                 dfile_Open(ActorPath(i));
  1461.  
  1462.                 dfile_WriteInt("UID", ActorCache[i][aUID]);
  1463.                 dfile_WriteInt("Type", ActorCache[i][aType]);
  1464.                 dfile_WriteInt("VW", ActorCache[i][aVW]);
  1465.                 dfile_WriteInt("Skin", ActorCache[i][aSkin]);
  1466.                 dfile_WriteFloat("PosX", ActorCache[i][aPosX]);
  1467.                 dfile_WriteFloat("PosY", ActorCache[i][aPosY]);
  1468.                 dfile_WriteFloat("PosZ", ActorCache[i][aPosZ]);
  1469.                 dfile_WriteFloat("Ang", ActorCache[i][aAng]);
  1470.                 dfile_WriteString("Name", ActorCache[i][aName]);
  1471.                 dfile_WriteString("Anim", ActorCache[i][aAnimName]);
  1472.                 dfile_WriteString("Lib", ActorCache[i][aAnimLib]);
  1473.                 dfile_WriteInt("Repeat", ActorCache[i][aRepeat]);
  1474.  
  1475.                 dfile_SaveFile();
  1476.                 dfile_CloseFile();
  1477.         }
  1478.         return 1;
  1479. }
  1480. stock ShowDialogKickGroup(playerid)
  1481. {
  1482.         new guid = GetPVarInt(playerid, "iUID");
  1483.         new str[256], info[128];
  1484.         for(new i=1; i<LastUID; i++)
  1485.         {
  1486.                 if(UserCache[i][uGroup] == guid || UserCache[i][uGroup2] == guid || UserCache[i][uGroup3] == guid)
  1487.                 {
  1488.                         format(info, sizeof(info), ""HEX_WHITE"%d %s\n", UserCache[i][uUID], UserCache[i][uName]);
  1489.                         strins(str, info, strlen(str));
  1490.                 }
  1491.         }
  1492.         return ShowPlayerDialog(playerid, D_GROUP_KICK, DIALOG_STYLE_LIST, "Wyrzuć członka grupy", str, "Wyrzuć", "Anuluj");
  1493. }
  1494.  
  1495. stock MsgPath(msguid)
  1496. {
  1497.         new path[64];
  1498.         format(path, sizeof(path), FOLDER_MESSAGES"%d.ini", msguid);
  1499.         return path;
  1500. }
  1501.  
  1502. stock LoadMessages()
  1503. {
  1504.         new str[128];
  1505.         for(new i=1; i<LastMsgUID; i++)
  1506.         {
  1507.                 if(!dfile_FileExists(MsgPath(i)))
  1508.                 continue;
  1509.                 dfile_Open(MsgPath(i));
  1510.                 MsgCache[i][mReceiver] = dfile_ReadInt("Receiver");
  1511.                 MsgCache[i][mSender] = dfile_ReadInt("Sender");
  1512.                 format(str, sizeof(str), dfile_ReadString("Text"));
  1513.                 MsgCache[i][mText] = str;
  1514.                 dfile_CloseFile();
  1515.         }
  1516. }
  1517.  
  1518. stock SaveMessages()
  1519. {
  1520.         for(new i=1; i<LastMsgUID; i++)
  1521.         {
  1522.                 if(!dfile_FileExists(MsgPath(i)))
  1523.                 dfile_Create(MsgPath(i));
  1524.                 dfile_Open(MsgPath(i));
  1525.                 dfile_WriteInt("Receiver", MsgCache[i][mReceiver]);
  1526.                 dfile_WriteInt("Sender", MsgCache[i][mSender]);
  1527.                 dfile_WriteString("Text", MsgCache[i][mText]);
  1528.                 dfile_SaveFile();
  1529.                 dfile_CloseFile();
  1530.         }
  1531. }
  1532.  
  1533. stock DoorPath(doorid)
  1534. {
  1535.         new path[64];
  1536.         format(path, sizeof(path), FOLDER_DOORS"%d.ini", doorid);
  1537.         return path;
  1538. }
  1539.  
  1540. stock SaveDoors()
  1541. {
  1542.         for(new i=1; i<LastdUID; i++)
  1543.         {
  1544.                 if(!dfile_FileExists(DoorPath(i)))
  1545.                 dfile_Create(DoorPath(i));
  1546.                 dfile_Open(DoorPath(i));
  1547.                 dfile_WriteInt("UID", DoorCache[i][dUID]);
  1548.                 dfile_WriteInt("PlayerUID", DoorCache[i][dPlayerUID]);
  1549.                 dfile_WriteInt("GroupUID", DoorCache[i][dGroupUID]);
  1550.                 dfile_WriteFloat("InsX", DoorCache[i][dInsX]);
  1551.                 dfile_WriteFloat("InsY", DoorCache[i][dInsY]);
  1552.                 dfile_WriteFloat("InsZ", DoorCache[i][dInsZ]);
  1553.                 dfile_WriteFloat("OutX", DoorCache[i][dOutX]);
  1554.                 dfile_WriteFloat("OutY", DoorCache[i][dOutY]);
  1555.                 dfile_WriteFloat("OutZ", DoorCache[i][dOutZ]);
  1556.                 dfile_WriteInt("InsVW", DoorCache[i][dInsVW]);
  1557.                 dfile_WriteInt("OutVW", DoorCache[i][dOutVW]);
  1558.                 dfile_WriteString("Name", DoorCache[i][dName]);
  1559.                 dfile_WriteInt("Destroyed", DoorCache[i][dDestroyed]);
  1560.                 dfile_WriteInt("Open", DoorCache[i][dOpen]);
  1561.                 dfile_WriteInt("Type", DoorCache[i][dType]);
  1562.                 dfile_WriteString("Url", DoorCache[i][dUrl]);
  1563.                 dfile_WriteInt("EnterCost", DoorCache[i][dEnterCost]);
  1564.                 dfile_WriteInt("Vehicle", DoorCache[i][dVehicle]);
  1565.                 dfile_SaveFile();
  1566.                 dfile_CloseFile();
  1567.         }
  1568. }
  1569.  
  1570. stock SaveZones()
  1571. {
  1572.         for(new i; i<MAX_ZONES; i++)
  1573.         {
  1574.                 dfile_Open(ZonePath(i));
  1575.                 dfile_WriteFloat("MinX", ZoneData[i][zMinX]);
  1576.                 dfile_WriteFloat("MinY", ZoneData[i][zMinY]);
  1577.                 dfile_WriteFloat("MaxY", ZoneData[i][zMaxX]);
  1578.                 dfile_WriteFloat("MaxZ", ZoneData[i][zMaxY]);
  1579.                 dfile_WriteInt("Yard", ZoneData[i][zYard]);
  1580.                 dfile_WriteInt("CostH", ZoneData[i][zCostH]);
  1581.                 dfile_WriteInt("CostB", ZoneData[i][zCostB]);
  1582.                 dfile_WriteString("Name", ZoneData[i][zName]);
  1583.                 dfile_SaveFile();
  1584.                 dfile_CloseFile();
  1585.         }
  1586. }
  1587.  
  1588. forward RandomAgain(playerid);
  1589. public RandomAgain(playerid)
  1590. {
  1591.         RandomCamera(playerid);
  1592. }
  1593.  
  1594. stock RandomCamera(playerid)
  1595. {
  1596.         if(pUID[playerid])
  1597.         return 1;
  1598.         new num = random(6);
  1599.         while(num == pLast[playerid])
  1600.         num = random(7);
  1601.         pLast[playerid] = num;
  1602.         switch(num)
  1603.         {
  1604.                 case 0:
  1605.                 {
  1606.                         InterpolateCameraPos(playerid, 1346.177734, -1144.530883, 26.984342, 1216.184326, -1144.878906, 25.081375, 10000);
  1607.                         InterpolateCameraLookAt(playerid, 1341.189208, -1144.524536, 26.645969, 1211.190917, -1144.872558, 24.824888, 1000);
  1608.                 }
  1609.                 case 1:
  1610.                 {
  1611.                         InterpolateCameraPos(playerid, 605.103576, -1879.486694, 9.096667, 481.130676, -1868.522583, 8.461681, 10000);
  1612.                         InterpolateCameraLookAt(playerid, 600.287658, -1880.774169, 8.710333, 476.416473, -1870.149658, 8.102615, 1000);
  1613.                 }
  1614.                 case 2:
  1615.                 {
  1616.                         InterpolateCameraPos(playerid, 1009.995361, -697.430725, 164.013320, 1077.205444, -825.822265, 129.347351, 10000);
  1617.                         InterpolateCameraLookAt(playerid, 1012.742919, -701.554931, 163.348541, 1079.897583, -829.911499, 128.332229, 1000);
  1618.                 }
  1619.                 case 3:
  1620.                 {
  1621.                         InterpolateCameraPos(playerid, 1528.313354, -932.075988, 119.118019, 1414.034057, -773.713684, 112.730422, 10000);
  1622.                         InterpolateCameraLookAt(playerid, 1525.075561, -928.271118, 118.919174, 1410.611694, -770.071350, 112.586227, 1000);
  1623.                 }
  1624.                 case 4:
  1625.                 {
  1626.                         InterpolateCameraPos(playerid, 1498.185546, -1347.921020, 346.940399, 1629.692382, -1299.682983, 254.350875, 10000);
  1627.                         InterpolateCameraLookAt(playerid, 1502.130371, -1345.656005, 344.864868, 1632.065429, -1296.667846, 251.144989, 1000);
  1628.                 }
  1629.                 case 5:
  1630.                 {
  1631.                         InterpolateCameraPos(playerid, 2343.572509, -1563.174560, 25.125074, 2341.632568, -1493.650024, 30.020772, 10000);
  1632.                         InterpolateCameraLookAt(playerid, 2339.617675, -1560.115844, 25.066486, 2338.710449, -1497.593383, 29.065744, 100);
  1633.                 }
  1634.                 case 6:
  1635.                 {
  1636.                         InterpolateCameraPos(playerid, 1855.076293, -1343.783813, 21.310773, 1947.959716, -1435.867553, 20.173160, 10000);
  1637.                         InterpolateCameraLookAt(playerid, 1858.568603, -1347.356445, 21.108913, 1951.307739, -1439.565673, 19.834785, 1000);
  1638.                 }
  1639.         }
  1640.         return SetTimerEx("RandomAgain", 12000, false, "i", playerid);
  1641. }
  1642.  
  1643. stock UseItemOption(playerid, option, uid)
  1644. {
  1645.         if(ItemCache[uid][iActive])
  1646.         return GameTextForPlayer(playerid, "~b~~h~~h~~h~schowaj przedmiot", 3000, 4);
  1647.         switch(option)
  1648.         {
  1649.                 case 1:
  1650.                 {
  1651.                         if(IsPlayerInAnyVehicle(playerid))
  1652.                         {
  1653.                                 ItemCache[uid][iState] = 2;
  1654.                                 ItemCache[uid][iOwner] = GetVehicleUID(GetPlayerVehicleID(playerid));
  1655.                                 return SendPlayerMe(playerid, "odkłada jakiś przedmiot w pojeździe.");
  1656.                         }
  1657.                         GetPlayerPos(playerid, ItemCache[uid][iX], ItemCache[uid][iY], ItemCache[uid][iZ]);
  1658.                         ItemCache[uid][iVW] = GetPlayerVirtualWorld(playerid);
  1659.                         ItemCache[uid][iState] = 1;
  1660.                         new msg[128]; format(msg, sizeof(msg), "odkłada jakiś przedmiot.");
  1661.                         SendPlayerMe(playerid, msg);
  1662.                         ApplyAnimation(playerid, "bomber", "bom_plant", 4.1, 0, 0, 0, 0, 0, 0);
  1663.                 }
  1664.                 case 2:
  1665.                 {
  1666.                         TradeData[playerid][tType] = 1;
  1667.                         return ShowDialogNearPlayers(playerid);
  1668.                 }
  1669.                 case 3:
  1670.                 {
  1671.                         if(ItemCache[uid][iType] == 12)
  1672.                         {
  1673.                                 ItemCache[uid][iAttachX] = 0;
  1674.                                 ItemCache[uid][iAttachY] = 0;
  1675.                                 ItemCache[uid][iAttachZ] = 0;
  1676.                                 ItemCache[uid][iSizeX] = 1;
  1677.                                 ItemCache[uid][iSizeY] = 1;
  1678.                                 ItemCache[uid][iSizeZ] = 1;
  1679.                                 ItemCache[uid][iAttachrX] = 0;
  1680.                                 ItemCache[uid][iAttachrY] = 0;
  1681.                                 ItemCache[uid][iAttachrZ] = 0;
  1682.                                 return ShowDialogInfo(playerid, "Akcesorium doczepiane zostało pomyślnie zresetowane!");
  1683.                         }
  1684.                         return ShowDialogInfo(playerid, "Ten przedmiot nie jest doczepianym akcesorium, więc nie możesz go zresetować.");
  1685.                 }
  1686.                 case 4:
  1687.                 {
  1688.                         if(ItemCache[uid][iType] == 13)
  1689.                         return ShowDialogInfo(playerid, "Nie możesz schować tego przedmiotu.");
  1690.                         new list[525], info[128];
  1691.                         for(new i=1; i<LastiUID; i++)
  1692.                         {
  1693.                                 if(ItemCache[i][iState] == 0)
  1694.                                 {
  1695.                                         if(ItemCache[i][iType] == 13)
  1696.                                         {
  1697.                                                 if(ItemCache[i][iOwner] == pUID[playerid])
  1698.                                                 {
  1699.                                                         format(info, sizeof(info), "%d\t%s\n", ItemCache[i][iUID], ItemCache[i][iName]);
  1700.                                                         strins(list, info, strlen(list));
  1701.                                                 }
  1702.                                         }
  1703.                                 }
  1704.                         }
  1705.                         if(Isnull(list))
  1706.                         return ShowDialogInfo(playerid, "Nie posiadasz żadnego przedmiotu przechowawczego.");
  1707.                         return ShowPlayerDialog(playerid, D_BAGS, DIALOG_STYLE_LIST, "Schowaj przedmiot", list, "Schowaj", "Anuluj");
  1708.                 }
  1709.         }
  1710.         return 1;
  1711. }
  1712.  
  1713. stock ShowDialogNearPlayers(playerid)
  1714. {
  1715.         new pvw = GetPlayerVirtualWorld(playerid);
  1716.         new Float:X, Float:Y, Float:Z;
  1717.         new list[256], pinfo[64];
  1718.         for(new i; i<=GetPlayerPoolSize(); i++)
  1719.         {
  1720.                 if(IsPlayerConnected(i))
  1721.                 {
  1722.                         if(i != playerid)
  1723.                         {
  1724.                                 if(pvw == GetPlayerVirtualWorld(i))
  1725.                                 {
  1726.                                         GetPlayerPos(i, X, Y, Z);
  1727.                                         if(IsPlayerInRangeOfPoint(playerid, 5.0, X, Y, Z))
  1728.                                         {
  1729.                                                 format(pinfo, sizeof(pinfo), "%d\t%s\n", pUID[i], RPName(i));
  1730.                                                 strins(list, pinfo, strlen(list));
  1731.                                         }
  1732.                                 }
  1733.                         }
  1734.                 }
  1735.         }
  1736.         if(strlen(list) == 0)
  1737.         return ShowDialogInfo(playerid, "Nie znaleziono graczy w pobliżu.");
  1738.         TradeData[playerid][tType] = 1;
  1739.         return ShowPlayerDialog(playerid, D_NEAR_PLAYERS, DIALOG_STYLE_LIST, "Pobliscy gracze", list, "Wybierz", "Anuluj");
  1740. }
  1741.  
  1742. stock RemoveMapBuildings(playerid)
  1743. {
  1744.         RemoveBuildingForPlayer(playerid, 1412, 0.0, 0.0, 0.0, 6000.0);
  1745.         RemoveBuildingForPlayer(playerid, 1676, 0.0, 0.0, 0.0, 6000.0);
  1746.         RemoveBuildingForPlayer(playerid, 1438, 0.0, 0.0, 0.0, 6000.0);
  1747.         RemoveBuildingForPlayer(playerid, 1283, 0.0, 0.0, 0.0, 6000.0);
  1748.         RemoveBuildingForPlayer(playerid, 1284, 0.0, 0.0, 0.0, 6000.0);
  1749.         RemoveBuildingForPlayer(playerid, 1315, 0.0, 0.0, 0.0, 6000.0);
  1750.         RemoveBuildingForPlayer(playerid, 16778, 0.0, 0.0, 0.0, 6000.0);
  1751.         RemoveBuildingForPlayer(playerid, 3221, 0.0, 0.0, 0.0, 6000.0);
  1752.         RemoveBuildingForPlayer(playerid, 16000, 0.0, 0.0, 0.0, 6000.0);
  1753. }
  1754.  
  1755. public OnPlayerConnect(playerid)
  1756. {
  1757.         Attacker[playerid] = -1;
  1758.         pUID[playerid] = 0;
  1759.         RemoveMapBuildings(playerid);
  1760.         EnablePlayerCameraTarget(playerid, 1);
  1761.         for(new i; i<=GetPlayerPoolSize(); i++)
  1762.         {
  1763.                 if(IsPlayerConnected(i))
  1764.                 {
  1765.                         if(i != playerid)
  1766.                         {
  1767.                                 if(!strcmp(PlayerIP(i), PlayerIP(playerid), true))
  1768.                                 {
  1769.                                         if(!pUID[i])
  1770.                                         Kick(i);
  1771.                                         else
  1772.                                         KickPlayer(i, "System", "IP Filtler");
  1773.                                         Kick(playerid);
  1774.                                         break;
  1775.                                 }
  1776.                         }
  1777.                 }
  1778.         }
  1779.  
  1780.         PlayAudioStreamForPlayer(playerid, "http://k003.kiwi6.com/hotlink/ict12m0ifu/Legendary_Official_Audio_-_Welshly_Arms.mp3");
  1781.  
  1782.         ClearChat(playerid);
  1783.         TogglePlayerSpectating(playerid, 1);
  1784.         SetPlayerVirtualWorld(playerid, -1);
  1785.         SetPlayerColor(playerid, COLOR_BLACK);
  1786.         TextDrawShowForPlayer(playerid, GlobalLogo);
  1787.         RandomCamera(playerid);
  1788.  
  1789.         if(UserExists(PlayerName(playerid)))
  1790.         {
  1791.                 return ShowDialogLogin(playerid);
  1792.         }
  1793.         else
  1794.         {
  1795.                 return ShowDialogNotFound(playerid);
  1796.         }
  1797. }
  1798.  
  1799. stock ShowDialogChangeDoorName(playerid)
  1800. return ShowPlayerDialog(playerid, D_CHANGE_DOOR_NAME, DIALOG_STYLE_INPUT, "Zmień nazwę drzwi", ""HEX_WHITE"Wpisz poniżej nową nazwę drzwi:", "Zatwierdź", "Anuluj");
  1801.  
  1802.  
  1803. stock ShowDialogChangeUrl(playerid)
  1804. return ShowPlayerDialog(playerid, D_CHANGE_URL, DIALOG_STYLE_INPUT, "Zmień URL", ""HEX_WHITE"Wprowadź link do stacji internetowej:\n", "Gotowe", "Anuluj");
  1805.  
  1806. stock ShowDialogDoorGroup(playerid)
  1807. return ShowPlayerDialog(playerid, D_DOOR_GROUP, DIALOG_STYLE_INPUT, "Podpisz budynek", ""HEX_WHITE"Podaj slot grupowy:\n\n(slot grupy możesz sprawdzić poprzez komendę /g)", "Podpisz", "Anuluj");
  1808.  
  1809. stock ShowDialogDoorCost(playerid)
  1810. return ShowPlayerDialog(playerid, D_DOOR_COST, DIALOG_STYLE_INPUT, "Zmień opłatę za przejście przez drzwi", ""HEX_WHITE"Wpisz poniżej wartość:\nNp: 1", "Zmień", "Anuluj");
  1811.  
  1812. stock ShowDialogChangeGroupName(playerid)
  1813. return ShowPlayerDialog(playerid, D_CHANGE_GROUP_NAME, DIALOG_STYLE_INPUT, "Zmień nazwę grupy", ""HEX_WHITE"Wpisz poniżej nową nazwę grupy:\n", "Zatwierdź", "Anuluj");
  1814.  
  1815. stock PermsToStr(perms)
  1816. {
  1817.         new str[128];
  1818.         if(perms == 1)
  1819.         str = "+A";
  1820.         if(perms == 0)
  1821.         str = "-A";
  1822.         return str;
  1823. }
  1824.  
  1825. stock GetActorInRange(playerid)
  1826. {
  1827.         new Float:x, Float:y, Float:z;
  1828.         for(new i=1; i<LastaUID; i++)
  1829.         {
  1830.                 if(ActorCache[i][aType])
  1831.                 {
  1832.                         GetDynamicActorPos(ActorCache[i][aID], x, y, z);
  1833.                         if(IsPlayerInRangeOfPoint(playerid, 5.0, x, y, z))
  1834.                         {
  1835.                                 if(GetPlayerVirtualWorld(playerid) == ActorCache[i][aVW])
  1836.                                 {
  1837.                                         return ActorCache[i][aUID];
  1838.                                 }
  1839.                         }
  1840.                 }
  1841.         }
  1842.         return 0;
  1843. }
  1844.  
  1845. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  1846. {
  1847.         switch(dialogid)
  1848.         {
  1849.                 case D_MEDIC:
  1850.                 {
  1851.                         if(response)
  1852.                         {
  1853.                                 switch(listitem)
  1854.                                 {
  1855.                                         case 0:
  1856.                                         {
  1857.                                                 if(UserCache[pUID[playerid]][uHealth] >= 10)
  1858.                                                 return ShowDialogInfo(playerid, "Twój stan zdrowia jest dobry, nie potrzebujesz leku.");
  1859.                                                 if(UserCache[pUID[playerid]][uCash] < 50)
  1860.                                                 return TextDrawForPlayerEx(playerid, 1, "Nie posiadasz przy sobie tylu pieniedzy.", 3000);
  1861.                                                 UserCache[pUID[playerid]][uCash] -= 50;
  1862.                                                 GivePlayerMoney(playerid, -50);
  1863.                                                 ShowDialogInfo(playerid, "Zakupiono lek.\nLek pojawił się w Twoim ekwipunku.");
  1864.                                                 return CreateItem(playerid, 4, 10, 0, 1, "Lek");
  1865.                                         }
  1866.                                 }
  1867.                         }
  1868.                 }
  1869.                 case D_BUY_REGISTER:
  1870.                 {
  1871.                         if(response)
  1872.                         {
  1873.                                 if(UserCache[pUID[playerid]][uCash] >= 300)
  1874.                                 {
  1875.                                         UserCache[pUID[playerid]][uCash] -= 300;
  1876.                                         GivePlayerMoney(playerid, -300);
  1877.                                         CreateItem(playerid, 14, 0, 0, 0, "Rejestracja pojazdu");
  1878.                                         return ShowDialogInfo(playerid, "Zakupiono nowy przedmiot! Rejestracja pojazdu pojawiła się w Twoim ekwipunku.");
  1879.                                 }
  1880.                                 return TextDrawForPlayerEx(playerid, 1, "Nie posiadasz przy sobie az tylu pieniedzy by zakupic ten przedmiot.", 3000);
  1881.                         }
  1882.                 }
  1883.                 case D_BAGS:
  1884.                 {
  1885.                         if(response)
  1886.                         {
  1887.                                 new baguid = strval(inputtext);
  1888.                                 new count;
  1889.                                 for(new i=1; i<LastiUID; i++)
  1890.                                 {
  1891.                                         if(ItemCache[i][iState] == 4)
  1892.                                         {
  1893.                                                 if(ItemCache[i][iOwner] == baguid)
  1894.                                                 {
  1895.                                                         count++;
  1896.                                                 }
  1897.                                         }
  1898.                                 }
  1899.                                 if(count >= 20)
  1900.                                 return ShowDialogInfo(playerid, "W tej torbie nie zmieści się aż tyle przedmiotów.");
  1901.                                 new choosenuid = GetPVarInt(playerid, "iUID");
  1902.                                 ItemCache[choosenuid][iState] = 4;
  1903.                                 ItemCache[choosenuid][iOwner] = baguid;
  1904.                                 return TextDrawForPlayerEx(playerid, 1, "~b~~h~~h~~h~Schowano przedmiot", 3000);
  1905.                         }
  1906.                         return 1;
  1907.                 }
  1908.                 case D_BAG:
  1909.                 {
  1910.                         if(response)
  1911.                         {
  1912.                                 new choosenuid = strval(inputtext);
  1913.                                 ItemCache[choosenuid][iOwner] = pUID[playerid];
  1914.                                 ItemCache[choosenuid][iState] = 0;
  1915.                                 return TextDrawForPlayerEx(playerid, 1, "~b~~h~~h~~h~Wyjeto przedmiot", 3000);
  1916.                         }
  1917.                         return 1;
  1918.                 }
  1919.                 case D_DOCUMENTS:
  1920.                 {
  1921.                         if(response)
  1922.                         {
  1923.                                 switch(listitem)
  1924.                                 {
  1925.                                         case 0:
  1926.                                         {
  1927.                                                 new uid = strval(inputtext);
  1928.                                                 new info[256]; format(info, sizeof(info), "Dowód osobisty:\n\nImię i nazwisko: %s\nPłeć: %s\nData urodzenia: %d",
  1929.                                                 strreplace(UserCache[uid][uName], '_', ' '), (UserCache[uid][uSex]) ? ("Kobieta")  : ("Mężczyzna"), UserCache[uid][uBornDate]);
  1930.                                                 ShowDialogInfo(playerid, info);
  1931.                                         }
  1932.                                 }
  1933.                         }
  1934.                 }
  1935.                 case D_TRADE_3:
  1936.                 {
  1937.                         if(response)
  1938.                         {
  1939.                                 if(ActionData[playerid][aType] == 2)
  1940.                                 {
  1941.                                         if(UserCache[pUID[playerid]][uCash] < 100)
  1942.                                         return TextDrawForPlayerEx(playerid, 1, "Nie posiadasz przy sobie tyle gotowki.", 5000);
  1943.                                         UserCache[pUID[playerid]][uCash] -=100;
  1944.                                         GivePlayerMoney(playerid, -100);
  1945.                                         UserCache[pUID[playerid]][uID] = 1;
  1946.                                         ActionData[playerid][aType] = 0;
  1947.                                         return ShowDialogInfo(playerid, "Super! Zdobyłeś/aś dokumenty osobisty postaci.\nMożesz skorzystać z komendy: /pokaz dowod [ID/Część nazwy gracza]\nby pokazać komuś swój dokument.");
  1948.                                 }
  1949.                         }
  1950.                         return 1;
  1951.                 }
  1952.                 case D_GOVERMENT:
  1953.                 {
  1954.                         new msg[128];
  1955.                         new actoruid = GetActorInRange(playerid);
  1956.                         if(response)
  1957.                         {
  1958.                                 new option = strval(inputtext);
  1959.  
  1960.                                 switch(option)
  1961.                                 {
  1962.                                         case 1:
  1963.                                         {
  1964.                                                 if(UserCache[pUID[playerid]][uID])
  1965.                                                 return ShowDialogInfo(playerid, "Posiadasz już dokument osobisty.");
  1966.                                                 ActionData[playerid][aType] = 2;
  1967.                                                 return TextDrawForPlayerEx(playerid, 1, "Odegraj przekazanie dokumentu urzednikowi.~n~/me wyjmuje z teczki swoj akt urodzenia i kladzie go na ladzie.", 15000);
  1968.                                         }
  1969.                                         case 3:
  1970.                                         {
  1971.                                                 format(msg, sizeof(msg), "%s mówi: Poproszę o Pański dowód osobisty oraz dowód przynależności pojazdu.", strreplace(ActorCache[actoruid][aName], '_', ' '));
  1972.                                                 SendClientMessage(playerid, COLOR_GRAY, msg);
  1973.                                                 pVal[playerid] = 1;
  1974.                                                 pVal2[playerid] = actoruid;
  1975.                                                 PlayerTextDrawSetString(playerid, RadarTextDraw[playerid], "Odegraj przekazanie urzednikowi wymaganych dokumentow~n~za pomoca komendy /me.");
  1976.                                                 return PlayerTextDrawShow(playerid, RadarTextDraw[playerid]);
  1977.                                         }
  1978.                                         default: ShowDialogInfo(playerid, "Ta funkcja nie jest jeszcze dostępna.");
  1979.  
  1980.                                 }
  1981.                         }
  1982.                         else
  1983.                         {
  1984.                                 format(msg, sizeof(msg), "%s mówi: Do widzenia!", strreplace(ActorCache[actoruid][aName], '_', ' '));
  1985.                                 return SendClientMessage(playerid, COLOR_GRAY, msg);
  1986.                         }
  1987.                 }
  1988.                 case D_BANK:
  1989.                 {
  1990.                         new auid = GetActorInRange(playerid);
  1991.                         new msg[128];
  1992.                         if(response)
  1993.                         {
  1994.                                 new option = strval(inputtext);
  1995.                                 switch(option)
  1996.                                 {
  1997.                                         case 1:
  1998.                                         {
  1999.                                                 if(UserCache[pUID[playerid]][uBankAccount])
  2000.                                                 {
  2001.                                                         format(msg, sizeof(msg), "%s mówi: Konto bankowe jest już zarejestrowane w systemie.", strreplace(ActorCache[auid][aName], '_', ' '));
  2002.                                                         ShowDialogInfo(playerid, "Posiadasz już konto bankowe.");
  2003.                                                 }
  2004.                                                 else if(!UserCache[pUID[playerid]][uID])
  2005.                                                 {
  2006.                                                         format(msg, sizeof(msg), "%s mówi: Aby otworzyć konto w naszym banku, potrzebny jest dowód osobisty.",strreplace(ActorCache[auid][aName], '_', ' '));
  2007.                                                         ShowDialogInfo(playerid, "Aby otworzyć konto bankowe musisz mieć wyrobiony dokument osobisty postaci.\nUdaj się do urzędu.");
  2008.                                                 }
  2009.                                                 else
  2010.                                                 {
  2011.                                                         format(msg, sizeof(msg), "%s mówi: Proszę podać swój dowód osobisty.", strreplace(ActorCache[auid][aName], '_', ' '));
  2012.                                                         ActionData[playerid][aType] = 1;
  2013.                                                         return TextDrawForPlayerEx(playerid, 1, "Odegraj przekazanie dokumentu urzednikowi.~n~/me wyjmuje z teczki swoj dowod osobisty i kladzie go na lade.", 15000);
  2014.                                                 }
  2015.                                                 return SendClientMessage(playerid, CHAT_SHADE_2, msg);
  2016.                                         }
  2017.                                         default: return ShowDialogInfo(playerid, "Ta funkcja będzie dostępna już wkrótce!");
  2018.                                 }
  2019.                         }
  2020.                         format(msg, sizeof(msg), "%s mówi: Do widzenia!", strreplace(ActorCache[auid][aName], '_', ' '));
  2021.                         return  SendClientMessage(playerid, CHAT_SHADE_2, msg);
  2022.                 }
  2023.                 case D_TRADE_2:
  2024.                 {
  2025.                         new sentuid = TradeData[playerid][tSender];
  2026.                         for(new i; i<=GetPlayerPoolSize(); i++)
  2027.                         {
  2028.                                 if(IsPlayerConnected(i))
  2029.                                 {
  2030.                                         if(pUID[i] == sentuid)
  2031.                                         {
  2032.                                                 new Float:X, Float:Y, Float:Z;
  2033.                                                 GetPlayerPos(i, X, Y, Z);
  2034.                                                 if(IsPlayerInRangeOfPoint(playerid, 5.0, X, Y, Z))
  2035.                                                 {
  2036.                                                         new pvw = GetPlayerVirtualWorld(playerid);
  2037.                                                         if(pvw == GetPlayerVirtualWorld(i))
  2038.                                                         {
  2039.                                                                 new vuid = TradeData[playerid][tVal];
  2040.                                                                 new price = TradeData[playerid][tPrice];
  2041.                                                                 if(response)
  2042.                                                                 {
  2043.                                                                         if(TradeData[playerid][tType] == 1)
  2044.                                                                         {
  2045.                                                                                 if(GetPlayerItemsCount(playerid) >= 20)
  2046.                                                                                 return ShowDialogInfo(playerid, "Twój ekwipunek jest przepełniony!\nMożesz schować przedmioty do torby, pojazdu, szafy, oddać czy sprzedać innemu graczowi lub odłożyć je na ziemię.");
  2047.                                                                                 TextDrawForPlayerEx(i, 1, "Oferta ~g~~h~zaakceptowana.", 3000);
  2048.                                                                                 TextDrawForPlayerEx(playerid, 1, "Zaakceptowano ~g~~h~oferte", 3000);
  2049.                                                                                 new iuid = TradeData[playerid][tVal];
  2050.                                                                                 ItemCache[iuid][iOwner] = pUID[playerid];
  2051.                                                                                 new msg[128];
  2052.                                                                                 format(msg, sizeof(msg), "podaje jakiś przedmiot %s.", RPName(playerid));
  2053.                                                                                 SendPlayerMe(i, msg);
  2054.                                                                                 return ApplyAnimation(i, "dealer", "dealer_deal", 4.1, 0, 0, 0, 0, 0, 0);
  2055.                                                                         }
  2056.                                                                         else if(TradeData[playerid][tType] == 0)
  2057.                                                                         {
  2058.                                                                                 if(Isnull(inputtext))
  2059.                                                                                 return TextDrawForPlayerEx(i, 1, "Oferta zostala ~r~~h~~h~~h~odrzucona.", 3000);
  2060.                                                                                 if(!strcmp(inputtext, "potwierdzam", true))
  2061.                                                                                 {
  2062.                                                                                         if(UserCache[pUID[playerid]][uCash] < price)
  2063.                                                                                         {
  2064.                                                                                                 SendClientMessage(playerid, COLOR_GRAY, "Nie posiadasz przy sobie tyle gotówki.");
  2065.                                                                                                 return TextDrawForPlayerEx(i, 1, "Oferta zostala ~r~~h~~h~~h~odrzucona.", 3000);
  2066.                                                                                         }
  2067.                                                                                         UserCache[pUID[playerid]][uCash] -= price;
  2068.                                                                                         GivePlayerMoney(playerid, -price);
  2069.                                                                                         UserCache[sentuid][uCash] += price;
  2070.                                                                                         GivePlayerMoney(i, price);
  2071.                                                                                         new str[32]; format(str, sizeof(str), "~g~~h~~h~~h~+$%d", price);
  2072.                                                                                         GameTextForPlayer(i, str, 3000, 4);
  2073.                                                                                         format(str, sizeof(str), "~r~~h~~h~~h~-$%d", price);
  2074.                                                                                         GameTextForPlayer(playerid, str, 3000, 4);
  2075.                                                                                         RemovePlayerFromVehicle(i);
  2076.                                                                                         VehicleCache[vuid][vOwner] = pUID[playerid];
  2077.                                                                                         return 1;
  2078.                                                                                 }
  2079.                                                                         }
  2080.                                                                 }
  2081.                                                                 else
  2082.                                                                 {
  2083.                                                                         return TextDrawForPlayerEx(i, 1, "Oferta zostala ~r~~h~~h~~h~odrzucona.", 3000);
  2084.                                                                 }
  2085.                                                         }
  2086.                                                 }
  2087.                                         }
  2088.                                 }
  2089.                         }
  2090.                         return SendClientMessage(playerid, COLOR_GRAY, "Gracz nie jest w Twoim pobliżu.");
  2091.                 }
  2092.                 case D_TRADE:
  2093.                 {
  2094.                         if(response)
  2095.                         {
  2096.                                 new tradetype = TradeData[playerid][tType];
  2097.                                 if(tradetype == 1)
  2098.                                 {
  2099.                                         new vid = GetPlayerVehicleID(playerid);
  2100.                                         new vuid = GetVehicleUID(vid);
  2101.                                         new price = strval(inputtext);
  2102.                                         if(Isnull(inputtext) || price < 1)
  2103.                                         {
  2104.                                                 new str[128]; format(str, sizeof(str), ""HEX_RED"Nieprawidłowe dane! Minimalna cena sprzedaży: $1\n\nInformacje o pojeździe:\n\nMarka: %s\nPaliwo: %d/100\n"HEX_WHITE"Wpisz poniżej cenę pojazdu, którą musi zapłacić inny gracz za Twój pojazd.",
  2105.                                                 GetVehicleName(GetVehicleModel(vid)), VehicleCache[vuid][vFuel]);
  2106.                                                 return ShowPlayerDialog(playerid, D_TRADE, DIALOG_STYLE_INPUT, "Sprzedaż pojazdu", str, "Gotowe", "Anuluj");
  2107.                                         }
  2108.                                         new targetuid = TradeData[playerid][tReceiver];
  2109.                                         for(new i; i<=GetPlayerPoolSize(); i++)
  2110.                                         {
  2111.                                                 if(IsPlayerConnected(i))
  2112.                                                 {
  2113.                                                         if(pUID[i] == targetuid)
  2114.                                                         {
  2115.                                                                 new Float:X, Float:Y, Float:Z;
  2116.                                                                 GetPlayerPos(i, X, Y, Z);
  2117.                                                                 if(IsPlayerInRangeOfPoint(playerid, 5.0, X, Y, Z))
  2118.                                                                 {
  2119.                                                                         new pvw = GetPlayerVirtualWorld(playerid);
  2120.                                                                         if(pvw == GetPlayerVirtualWorld(i))
  2121.                                                                         {
  2122.                                                                                 if(TradeData[playerid][tType] == 1)
  2123.                                                                                 {
  2124.                                                                                         TradeData[i][tType] = 1;
  2125.                                                                                         TradeData[i][tSender] = pUID[playerid];
  2126.                                                                                         TradeData[i][tPrice] = price;
  2127.                                                                                         TradeData[i][tVal] = vuid;
  2128.                                                                                         new str[256]; format(str, sizeof(str), ""HEX_WHITE"Informacje o pojeździe:\n\nMarka: %s\nStan techniczny: %dHP\nPaliwo: %d/100\n\nKoszt kupna: "HEX_GREEN"$%d"HEX_RED"\nWpisz poniżej: POTWIERDZAM by zaakceptować ofertę w jej obecnym stanie.",
  2129.                                                                                         GetVehicleName(GetVehicleModel(vid)), floatround(VehicleCache[vuid][vHP]), VehicleCache[vuid][vFuel], price);
  2130.                                                                                         new header[64]; format(header, sizeof(header), "Oferta od %s", RPName(playerid));
  2131.                                                                                         return ShowPlayerDialog(i, D_TRADE_2, DIALOG_STYLE_INPUT, header, str, "Gotowe", "Anuluj");
  2132.                                                                                 }
  2133.                                                                         }
  2134.                                                                 }
  2135.                                                         }
  2136.                                                 }
  2137.                                         }
  2138.                                         return SendClientMessage(playerid, COLOR_GRAY, "Gracz nie znajduje się w pobliżu.");
  2139.                                 }
  2140.                         }
  2141.                         return 1;
  2142.                 }
  2143.                 case D_NEAR_PLAYERS:
  2144.                 {
  2145.                         if(response)
  2146.                         {
  2147.                                 new targetuid = strval(inputtext);
  2148.                                 for(new i; i<=GetPlayerPoolSize(); i++)
  2149.                                 {
  2150.                                         if(IsPlayerConnected(i))
  2151.                                         {
  2152.                                                 if(pUID[i] == targetuid)
  2153.                                                 {
  2154.                                                         new Float:X, Float:Y, Float:Z;
  2155.                                                         GetPlayerPos(i, X, Y, Z);
  2156.                                                         if(IsPlayerInRangeOfPoint(playerid, 5.0, X, Y, Z))
  2157.                                                         {
  2158.                                                                 if(GetPlayerVirtualWorld(playerid) == GetPlayerVirtualWorld(i))
  2159.                                                                 {
  2160.                                                                         if(TradeData[playerid][tType] == 0)
  2161.                                                                         {
  2162.                                                                                 new vid = GetPlayerVehicleID(playerid);
  2163.                                                                                 new vuid = GetVehicleUID(vid);
  2164.                                                                                 new str[256]; format(str, sizeof(str), ""HEX_RED"Informacje o pojeździe:\n\nMarka: %s\nPaliwo: %d/100\n"HEX_WHITE"Wpisz poniżej cenę pojazdu, którą musi zapłacić inny gracz za Twój pojazd",
  2165.                                                                                 GetVehicleName(GetVehicleModel(vid)), VehicleCache[vuid][vFuel]);
  2166.                                                                                 TradeData[playerid][tReceiver] = targetuid;
  2167.                                                                                 return ShowPlayerDialog(playerid, D_TRADE, DIALOG_STYLE_INPUT, "Sprzedaż pojazdu", str, "Gotowe", "Anuluj");
  2168.                                                                         }
  2169.                                                                         else if(TradeData[playerid][tType] == 1)
  2170.                                                                         {
  2171.                                                                                 new iuid = GetPVarInt(playerid, "iUID");
  2172.                                                                                 TradeData[i][tType]=1;
  2173.                                                                                 TradeData[i][tSender] = pUID[playerid];
  2174.                                                                                 TradeData[i][tVal] = iuid;
  2175.                                                                                 new header[64], info[256];
  2176.                                                                                 format(header, sizeof(header), "Oferta od %s", RPName(playerid));
  2177.                                                                                 format(info, sizeof(info), ""HEX_WHITE"Gracz %s chce oddać Tobie %s za darmo.\n\nMożesz zaakceptować lub odrzucić tę ofertę.", RPName(playerid), ItemCache[iuid][iName]);
  2178.                                                                                 ShowPlayerDialog(i, D_TRADE_2, DIALOG_STYLE_MSGBOX, header, info, "Akceptuj", "Odrzuć");
  2179.                                                                                 return TextDrawForPlayerEx(playerid, 1, "Oferta ~g~~h~wyslana.", 3000);
  2180.                                                                         }
  2181.                                                                 }
  2182.                                                         }
  2183.                                                 }
  2184.                                         }
  2185.                                 }
  2186.                                 return SendClientMessage(playerid, COLOR_GRAY, "Gracz nie znajduje się w pobliżu.");
  2187.                         }
  2188.                         return 1;
  2189.                 }
  2190.                 case D_AMMO:
  2191.                 {
  2192.                         if(response)
  2193.                         {
  2194.                                 new lastuid = GetPVarInt(playerid, "iUID");
  2195.                                 if(ItemCache[lastuid][iActive])
  2196.                                 return GameTextForPlayer(playerid, "~b~~h~~h~~h~schowaj przedmiot!", 3000, 4);
  2197.                                 new choosenuid = strval(inputtext), ammotoload = ItemCache[lastuid][iVal2];
  2198.                                 ItemCache[choosenuid][iVal2] += ammotoload;
  2199.                                 ItemCache[lastuid][iState] = 3;
  2200.                                 SendPlayerMe(playerid, "uzupełnia amunicję do swojej broni.");
  2201.                                 return ApplyAnimation(playerid, "buddy", "buddy_reload ", 4.1, 0, 0, 0, 0, 0, 0);
  2202.                         }
  2203.                         return 1;
  2204.                 }
  2205.                 case D_V_OPTIONS:
  2206.                 {
  2207.                         new vid = GetPlayerVehicleID(playerid), vuid = GetVehicleUID(vid), option = strval(inputtext);
  2208.                         if(response)
  2209.                         {
  2210.                                 switch(option)
  2211.                                 {
  2212.                                         case 1:
  2213.                                         {
  2214.                                                 if(VehicleCache[vuid][vBonnet])
  2215.                                                 return SetVehicleParamsEx(vid, VehicleCache[vuid][vEngine], VehicleCache[vuid][vLights], VehicleCache[vuid][vAlarm], VehicleCache[vuid][vDoors], VehicleCache[vuid][vBonnet]=0, VehicleCache[vuid][vBoot], VehicleCache[vuid][vObjective]);
  2216.                                                 return SetVehicleParamsEx(vid, VehicleCache[vuid][vEngine], VehicleCache[vuid][vLights], VehicleCache[vuid][vAlarm], VehicleCache[vuid][vDoors], VehicleCache[vuid][vBonnet]=1, VehicleCache[vuid][vBoot], VehicleCache[vuid][vObjective]);
  2217.                                         }
  2218.                                         case 2:
  2219.                                         {
  2220.                                                 if(VehicleCache[vuid][vBoot])
  2221.                                                 return SetVehicleParamsEx(vid, VehicleCache[vuid][vEngine], VehicleCache[vuid][vLights], VehicleCache[vuid][vAlarm], VehicleCache[vuid][vDoors], VehicleCache[vuid][vBonnet], VehicleCache[vuid][vBoot]=0, VehicleCache[vuid][vObjective]);
  2222.                                                 return SetVehicleParamsEx(vid, VehicleCache[vuid][vEngine], VehicleCache[vuid][vLights], VehicleCache[vuid][vAlarm], VehicleCache[vuid][vDoors], VehicleCache[vuid][vBonnet], VehicleCache[vuid][vBoot]=1, VehicleCache[vuid][vObjective]);
  2223.                                         }
  2224.                                         case 3:
  2225.                                         {
  2226.                                                 PlayerPlaySound(playerid, 24600, 0.0, 0.0, 0.0);
  2227.                                                 new driver, passenger, bl, br;
  2228.                                                 GetVehicleParamsCarWindows(vid, driver, passenger, bl, br);
  2229.                                                 if(!driver)
  2230.                                                 return SetVehicleParamsCarWindows(vid, 1, 1, 1, 1);
  2231.                                                 return SetVehicleParamsCarWindows(vid, 0, 0, 0, 0);
  2232.                                         }
  2233.                                         case 4:
  2234.                                         {
  2235.                                                 return ShowDialogVehicleGroup(playerid);
  2236.                                         }
  2237.                                         case 5:
  2238.                                         {
  2239.                                                 return ShowDialogNearPlayers(playerid);
  2240.                                         }
  2241.                                 }
  2242.                         }
  2243.                         return 1;
  2244.                 }
  2245.                 case D_ADMIN_DOOR:
  2246.                 {
  2247.                         if(response)
  2248.                         {
  2249.                                 new option = strval(inputtext);
  2250.                                 new dooruid;
  2251.                                 new pvw = GetPlayerVirtualWorld(playerid);
  2252.                                 for(new i=1; i<LastdUID; i++)
  2253.                                 {
  2254.                                         if(!DoorCache[i][dDestroyed])
  2255.                                         {
  2256.                                                 if(pvw == DoorCache[i][dInsVW])
  2257.                                                 {
  2258.                                                         if(IsPlayerInRangeOfPoint(playerid, 1.5, DoorCache[i][dInsX], DoorCache[i][dInsY], DoorCache[i][dInsZ]))
  2259.                                                         {
  2260.                                                                 dooruid = DoorCache[i][dUID];
  2261.                                                                 break;
  2262.                                                         }
  2263.                                                 }
  2264.                                                 else if(pvw == DoorCache[i][dOutVW])
  2265.                                                 {
  2266.                                                         if(IsPlayerInRangeOfPoint(playerid, 1.5, DoorCache[i][dOutX], DoorCache[i][dOutY], DoorCache[i][dOutZ]))
  2267.                                                         {
  2268.                                                                 dooruid = DoorCache[i][dUID];
  2269.                                                                 break;
  2270.                                                         }
  2271.                                                 }
  2272.                                         }
  2273.                                 }
  2274.                                 switch(option)
  2275.                                 {
  2276.                                         case 1:
  2277.                                         {
  2278.                                                 for(new i=1; i<LastoUID; i++)
  2279.                                                 {
  2280.                                                         if(ObjectCache[i][oState] == 0)
  2281.                                                         {
  2282.                                                                 if(ObjectCache[i][oVW] == DoorCache[dooruid][dInsVW])
  2283.                                                                 {
  2284.                                                                         ObjectCache[i][oState]=1;
  2285.                                                                         DestroyDynamicObject(ObjectCache[i][oID]);
  2286.                                                                         if(ObjectCache[i][oPlayer] != -1)
  2287.                                                                         {
  2288.                                                                                 ObjectCache[i][oPlayer] = -1;
  2289.                                                                                 new editorid = ObjectCache[i][oPlayer];
  2290.                                                                                 ClearAnimations(editorid);
  2291.                                                                                 TextDrawForPlayerEx(editorid, 1, "Anulowano edycję obiektu.", 3000);
  2292.                                                                         }
  2293.                                                                 }
  2294.                                                         }
  2295.                                                 }
  2296.                                                 for(new i; i<=GetPlayerPoolSize(); i++)
  2297.                                                 {
  2298.                                                         if(IsPlayerConnected(i))
  2299.                                                         {
  2300.                                                                 if(pUID[i])
  2301.                                                                 {
  2302.                                                                         if(GetPlayerVirtualWorld(i == DoorCache[dooruid][dInsVW]))
  2303.                                                                         {
  2304.                                                                                 SetPlayerPos(i, DoorCache[dooruid][dOutX], DoorCache[dooruid][dOutY], DoorCache[dooruid][dOutZ]);
  2305.                                                                                 SetPlayerVirtualWorld(i, DoorCache[dooruid][dOutVW]);
  2306.                                                                                 TextDrawForPlayerEx(i, 1, "Drzwi zostaly usuniete.~n~Przywrocono do pozycji wyjsciowej.", 5000);
  2307.                                                                         }
  2308.                                                                 }
  2309.                                                         }
  2310.                                                 }
  2311.                                                 DestroyDynamicPickup(DoorPickupID[dooruid]);
  2312.                                                 DoorCache[dooruid][dDestroyed]=1;
  2313.                                                 for(new i=1; i<LastUID; i++)
  2314.                                                 {
  2315.                                                         if(UserCache[i][uHouseSpawn] == dooruid)
  2316.                                                         {
  2317.                                                                 UserCache[i][uHouseSpawn] = 0;
  2318.                                                         }
  2319.                                                 }
  2320.                                         }
  2321.                                 }
  2322.                         }
  2323.                         return 1;
  2324.                 }
  2325.                 case D_DEPOSIT:
  2326.                 {
  2327.                         if(response)
  2328.                         {
  2329.                                 if(Isnull(inputtext))
  2330.                                 return ShowPlayerDialog(playerid, D_DEPOSIT, DIALOG_STYLE_INPUT, "Wpłać kwotę", ""HEX_RED"Błąd: Nieprawidłowa wartość."HEX_WHITE"\nWpisz poniżej kwotę jaką chcesz wpłacić do banku:", "Wpłać", "Wróć");
  2331.                                 if(strval(inputtext) < 1 || strval(inputtext) > 5000)
  2332.                                 return ShowPlayerDialog(playerid, D_DEPOSIT, DIALOG_STYLE_INPUT, "Wpłać kwotę", ""HEX_RED"Za jednym razem możesz wyłacić tylko 5000$ oraz minimalne wpłacić 1$."HEX_WHITE"\nWpisz poniżej kwotę jaką chcesz wyłacić do banku:", "Wpłać", "Wróć");
  2333.                                 new val = strval(inputtext);
  2334.                                 if(UserCache[pUID[playerid]][uCash] < val)
  2335.                                 return ShowPlayerDialog(playerid, D_DEPOSIT, DIALOG_STYLE_INPUT, "Wpłać kwotę", ""HEX_RED"Nie posiadasz tylu pieniędzy przy sobie.\n"HEX_WHITE"Wpisz poniżej kwotę jaką chcesz wpłacić do banku", "Wpłać", "Wróć");
  2336.                                 UserCache[pUID[playerid]][uCash] -= val;
  2337.                                 GivePlayerMoney(playerid, -val);
  2338.                                 UserCache[pUID[playerid]][uBank] += val;
  2339.                                 ApplyAnimation(playerid, "DEALER", "shop_pay", 4.1, 0, 0, 0, 0, 0, 0);
  2340.                                 return SendPlayerMe(playerid, "wpłaca pieniądze do bankomatu");
  2341.                         }
  2342.                         return ShowDialogATM(playerid);
  2343.                 }
  2344.                 case D_WITHDRAW:
  2345.                 {
  2346.                         if(response)
  2347.                         {
  2348.                                 if(Isnull(inputtext))
  2349.                                 return ShowPlayerDialog(playerid, D_WITHDRAW, DIALOG_STYLE_INPUT, "Wypłać kwotę", ""HEX_RED"Błąd: Nieprawidłowa wartość."HEX_WHITE"\nWpisz poniżej kwotę jaką chcesz wypłacić z banku:", "Wypłać", "Anuluj");
  2350.                                 if(strval(inputtext) < 1 || strval(inputtext) > 5000)
  2351.                                 return ShowPlayerDialog(playerid, D_WITHDRAW, DIALOG_STYLE_INPUT, "Wypłać kwotę", ""HEX_RED"Za jednym razem możesz wypłacić tylko 5000$ oraz minimalne wypłacić 1$."HEX_WHITE"\nWpisz poniżej kwotę jaką chcesz wypłacić z banku:", "Wypłać", "Anuluj");
  2352.                                 new val = strval(inputtext);
  2353.                                 if(UserCache[pUID[playerid]][uBank] < val)
  2354.                                 return ShowPlayerDialog(playerid, D_WITHDRAW, DIALOG_STYLE_INPUT, "Wypłać kwotę", ""HEX_RED"Nie posiadasz tylu pieniędzy w banku.\n"HEX_WHITE"Wpisz poniżej kwotę jaką chcesz wypłacić z banku:", "Wypłać", "Anuluj");
  2355.                                 UserCache[pUID[playerid]][uCash] += val;
  2356.                                 GivePlayerMoney(playerid, val);
  2357.                                 UserCache[pUID[playerid]][uBank] -= val;
  2358.                                 ApplyAnimation(playerid, "DEALER", "shop_pay", 4.1, 0, 0, 0, 0, 0, 0);
  2359.                                 return SendPlayerMe(playerid, "wypłaca pieniądze z bankomatu");
  2360.                         }
  2361.                         return ShowDialogATM(playerid);
  2362.                 }
  2363.                 case D_ATM:
  2364.                 {
  2365.                         if(response)
  2366.                         {
  2367.                                 new option = strval(inputtext);
  2368.                                 switch(option)
  2369.                                 {
  2370.                                         case 1: ShowPlayerDialog(playerid, D_WITHDRAW, DIALOG_STYLE_INPUT, "Wypłać kwotę", ""HEX_WHITE"Wpisz poniżej kwotę jaką chcesz wypłacić z banku:", "Wypłać", "Anuluj");
  2371.                                         case 2: ShowPlayerDialog(playerid, D_DEPOSIT, DIALOG_STYLE_INPUT, "Wpłać kwotę", ""HEX_WHITE"Wpisz poniżej kwotę jaką chcesz wpłacić do banku:", "Wpłać", "Anuluj");
  2372.                                 }
  2373.                         }
  2374.                 }
  2375.                 case D_VEHICLES:
  2376.                 {
  2377.                         if(response)
  2378.                         {
  2379.                                 new vuid = strval(inputtext);
  2380.                                 if(VehicleCache[vuid][vID] != 0)
  2381.                                 {
  2382.                                         if(VehicleCache[vuid][vEngine])
  2383.                                         VehicleCache[vuid][vEngine] = 0;
  2384.                                         DestroyVehicle(VehicleCache[vuid][vID]);
  2385.                                         VehicleCache[vuid][vID]=0;
  2386.                                         TextDrawForPlayerEx(playerid, 1, "Odspawnowano pojazd.", 3000);
  2387.                                         DestroyDynamicMapIcon(MapIcon[playerid]);
  2388.                                         KillTimer(MapIconTimer[playerid]);
  2389.                                         return 1;
  2390.                                 }
  2391.                                 SpawnVehicle(vuid);
  2392.                                 TextDrawForPlayerEx(playerid, 1, "Zespawnowano pojazd.~n~Miejsce pojazdu zostalo oznaczone na mapie.", 5000);
  2393.                                 DestroyDynamicMapIcon(MapIcon[playerid]);
  2394.                                 KillTimer(MapIconTimer[playerid]);
  2395.                                 MapIcon[playerid] = CreateDynamicMapIcon(VehicleCache[vuid][vPosX], VehicleCache[vuid][vPosY], VehicleCache[vuid][vPosZ], 55,-1,  VehicleCache[vuid][vVW], 0, playerid,-1, 3);
  2396.                                 MapIconTimer[playerid] = SetTimerEx("DestroyIcon", 5000*60, false, "i", playerid);
  2397.                         }
  2398.                         else
  2399.                         {
  2400.                                 return 1;
  2401.                         }
  2402.                 }
  2403.                 case D_CHANGE_GROUP_COLOR:
  2404.                 {
  2405.                         if(response)
  2406.                         {
  2407.                                 if(Isnull(inputtext))
  2408.                                 return ShowDialogChangeGroupColor(playerid);
  2409.                                 if(strlen(inputtext) > 6)
  2410.                                 return ShowDialogChangeGroupColor(playerid);
  2411.                                 TextDrawForPlayerEx(playerid, 1, "Kolor grupy zostal pomyslnie zmieniony.", 3000);
  2412.                                 new guid=GetPVarInt(playerid, "iUID"), gcolor[16];
  2413.                                 format(gcolor, sizeof(gcolor), "%s", inputtext);
  2414.                                 GroupCache[guid][gColor] = gcolor;
  2415.                                 for(new i; i<=GetPlayerPoolSize(); i++)
  2416.                                 {
  2417.                                         if(IsPlayerConnected(i))
  2418.                                         {
  2419.                                                 if(pDuty[i] == guid)
  2420.                                                 {
  2421.                                                         UpdatePlayerName(i);
  2422.                                                 }
  2423.                                         }
  2424.                                 }
  2425.                         }
  2426.                         return ShowDialogGroupPanel(playerid);
  2427.                 }
  2428.                 case D_JOIN_GROUP:
  2429.                 {
  2430.                         new senderuid = pVal[playerid];
  2431.                         new senderid;
  2432.                         for(new i; i<=GetPlayerPoolSize(); i++)
  2433.                         {
  2434.                                 if(IsPlayerConnected(i))
  2435.                                 {
  2436.                                         if(pUID[i] == senderuid)
  2437.                                         {
  2438.                                                 senderid = i;
  2439.                                         }
  2440.                                 }
  2441.                         }
  2442.                         if(!senderid)
  2443.                         return SendClientMessage(playerid, COLOR_GRAY, "Gracz wylogował się lub wyszedł z gry.");
  2444.                         new groupuid = pVal2[playerid];
  2445.                         if(response)
  2446.                         {
  2447.                                 if(UserCache[pUID[playerid]][uGroup] == 0)
  2448.                                 UserCache[pUID[playerid]][uGroup] = groupuid;
  2449.                                 else if(UserCache[pUID[playerid]][uGroup2] == 0)
  2450.                                 UserCache[pUID[playerid]][uGroup2] = groupuid;
  2451.                                 else if(UserCache[pUID[playerid]][uGroup3] == 0)
  2452.                                 UserCache[pUID[playerid]][uGroup3] = groupuid;
  2453.                                 else return SendClientMessage(playerid, COLOR_GRAY, "Osiągnięto limit grup pod /g. Jeśli chcesz dołączyć do grupy musisz opuścić jedną ze swoich grup (/g [slot] opusc).");
  2454.  
  2455.                                 TextDrawForPlayerEx(senderid, 1, "Oferta ~g~~h~zaakceptowana.", 3000);
  2456.                                 TextDrawForPlayerEx(playerid, 1, "Oferta ~g~~h~zaakceptowana.", 3000);
  2457.                                 return ShowDialogInfo(playerid, "Dołączono do grupy.\nGrupę możesz zobaczyć pod komendą /g.");
  2458.                         }
  2459.                         else
  2460.                         {
  2461.                                 TextDrawForPlayerEx(senderid, 1, "Oferta ~r~anulowana.", 3000);
  2462.                                 return TextDrawForPlayerEx(playerid, 1, "Oferta ~r~anulowana.", 3000);
  2463.                         }
  2464.                 }
  2465.                 case D_CHANGE_PERMS:
  2466.                 {
  2467.                         if(response)
  2468.                         {
  2469.                                 return SetPVarInt(playerid, "pUID", strval(inputtext));
  2470.                         }
  2471.                         return ShowDialogGroupPanel(playerid);
  2472.                 }
  2473.                 case D_CHANGE_GROUP_NAME:
  2474.                 {
  2475.                         if(response)
  2476.                         {
  2477.                                 if(!strlen(inputtext) || strlen(inputtext) > 32)
  2478.                                 {
  2479.                                         SendClientMessage(playerid, COLOR_GRAY, "Nazwa grupy jest zbyt krótka lub zbyt długa!");
  2480.                                         return ShowDialogChangeGroupName(playerid);
  2481.                                 }
  2482.                                 new guid = GetPVarInt(playerid, "iUID");
  2483.                                 new newname[32]; format(newname, sizeof(newname), inputtext);
  2484.                                 GroupCache[guid][gName] = newname;
  2485.                                 for(new i; i<=GetPlayerPoolSize(); i++)
  2486.                                 {
  2487.                                         if(IsPlayerConnected(i))
  2488.                                         {
  2489.                                                 if(pUID[i])
  2490.                                                 {
  2491.                                                         if(pDuty[i] == guid)
  2492.                                                         {
  2493.                                                                 UpdatePlayerName(i);
  2494.                                                                 format(newname, sizeof(newname), "Sluzba: ~y~%s", newname);
  2495.                                                                 PlayerTextDrawSetString(playerid, DutyTxd[playerid], newname);
  2496.                                                                 PlayerTextDrawShow(playerid, DutyTxd[playerid]);
  2497.                                                                 SendClientMessage(i, COLOR_WHITE, "> Lider twojej grupy na, której służbie jesteś zmienił jej nazwę, twój nick został zaktualizowany.");
  2498.                                                         }
  2499.                                                 }
  2500.                                         }
  2501.                                 }
  2502.                         }
  2503.                         return 1;
  2504.                 }
  2505.                 case D_GROUP_PANEL:
  2506.                 {
  2507.                         if(response)
  2508.                         {
  2509.                                 new option = strval(inputtext), guid = GetPVarInt(playerid, "iUID");
  2510.                                 switch(option)
  2511.                                 {
  2512.                                         case 1: return ShowDialogChangeGroupName(playerid);
  2513.                                         case 2: return ShowDialogKickGroup(playerid);
  2514.                                         case 3:
  2515.                                         {
  2516.                                                 if(GroupCache[guid][gChatOOC] == true)
  2517.                                                 {
  2518.                                                         GroupCache[guid][gChatOOC] = false;
  2519.                                                         TextDrawForPlayerEx(playerid, 1, "~r~Wylaczono ~w~czat OOC grupy.", 1500);
  2520.                                                 }
  2521.                                                 else
  2522.                                                 {
  2523.                                                         GroupCache[guid][gChatOOC] = true;
  2524.                                                         TextDrawForPlayerEx(playerid, 1, "~g~~h~Wlaczono ~w~czat OOC grupy.", 1500);
  2525.                                                 }
  2526.                                         }
  2527.                                         case 4:
  2528.                                         {
  2529.                                                 if(GroupCache[guid][gChatIC] == true)
  2530.                                                 {
  2531.                                                         GroupCache[guid][gChatIC] = false;
  2532.                                                         TextDrawForPlayerEx(playerid, 1, "~r~Wylaczono ~w~sluchawke grupy.", 1500);
  2533.                                                 }
  2534.                                                 else
  2535.                                                 {
  2536.                                                         GroupCache[guid][gChatIC] = true;
  2537.                                                         TextDrawForPlayerEx(playerid, 1, "~g~~h~Wlaczono ~w~sluchawke grupy.", 1500);
  2538.                                                 }
  2539.                                         }
  2540.                                         case 5:
  2541.                                         {
  2542.                                                 new str[256], info[128];
  2543.                                                 for(new i=1; i<LastUID; i++)
  2544.                                                 {
  2545.                                                         if(UserCache[i][uGroup] == guid || UserCache[i][uGroup2] == guid || UserCache[i][uGroup3] == guid)
  2546.                                                         {
  2547.                                                                 format(info, sizeof(info), ""HEX_WHITE"%d %s\n", UserCache[i][uUID], UserCache[i][uName]);
  2548.                                                                 strins(str, info, strlen(str));
  2549.                                                         }
  2550.                                                 }
  2551.                                                 return ShowPlayerDialog(playerid, D_CHANGE_PERMS, DIALOG_STYLE_LIST, "Zmień uprawnienia", str, "Wybierz", "Anuluj");
  2552.                                         }
  2553.                                         case 6:
  2554.                                         {
  2555.                                                 new str[128];
  2556.                                                 format(str, sizeof(str), "Usunięto grupę %s.", GroupCache[guid][gName]);
  2557.                                                 SendClientMessage(playerid, COLOR_GRAY, str);
  2558.                                                 return DestroyGroup(guid);
  2559.                                         }
  2560.                                         case 7:
  2561.                                         {
  2562.                                                 if(response)
  2563.                                                 return ShowDialogChangeGroupColor(playerid);
  2564.                                                 return ShowDialogGroupPanel(playerid);
  2565.                                         }
  2566.                                 }
  2567.                                 return 1;
  2568.                         }
  2569.                         return 1;
  2570.                 }
  2571.                 case D_DOOR_COST:
  2572.                 {
  2573.                         if(response)
  2574.                         {
  2575.                                 new str[128];
  2576.                                 format(str, sizeof(str), " %s", inputtext);
  2577.                                 new cost;
  2578.                                 if(sscanf(str, "i", cost))
  2579.                                 return ShowDialogDoorCost(playerid);
  2580.                                 if(cost < 0 || cost > 1000)
  2581.                                 {
  2582.                                         SendClientMessage(playerid, COLOR_WHITE, "Zakres opłaty za przejście mieści się pomiędzy 0 -1000$");
  2583.                                         return ShowDialogDoorCost(playerid);
  2584.                                 }
  2585.                                 DoorCache[GetPlayerDoorUID(playerid)][dEnterCost] = cost;
  2586.                         }
  2587.                         return ShowDialogGroupPanel(playerid);
  2588.                 }
  2589.                 case D_DOOR_GROUP:
  2590.                 {
  2591.                         if(response)
  2592.                         {
  2593.                                 if(Isnull(inputtext))
  2594.                                 return ShowDialogDoorGroup(playerid);
  2595.                                 new text[128]; format(text, sizeof(text), " %s", inputtext);
  2596.                                 new slot;
  2597.                                 new uid = GetPlayerDoorUID(playerid);
  2598.                                 if(sscanf(text, "i", slot) || slot > 3 || slot < 1)
  2599.                                 return SendClientMessage(playerid, COLOR_GRAY, "Nieprawidłowy slot grupy.");
  2600.                                 switch(slot)
  2601.                                 {
  2602.                                         case 1:
  2603.                                         {
  2604.                                                 if(UserCache[pUID[playerid]][uGroup] == 0)
  2605.                                                 return SendClientMessage(playerid, COLOR_GRAY, "Pod tym slotem nie znajduje się żadna grupa.");
  2606.                                                 DoorCache[uid][dGroupUID] = UserCache[pUID[playerid]][uGroup];
  2607.                                         }
  2608.                                         case 2:
  2609.                                         {
  2610.                                                 if(UserCache[pUID[playerid]][uGroup2] == 0)
  2611.                                                 return SendClientMessage(playerid, COLOR_GRAY, "Pod tym slotem nie znajduje się żadna grupa.");
  2612.                                                 DoorCache[uid][dGroupUID] = UserCache[pUID[playerid]][uGroup2];
  2613.                                         }
  2614.                                         case 3:
  2615.                                         {
  2616.                                                 if(UserCache[pUID[playerid]][uGroup3] == 0)
  2617.                                                 return SendClientMessage(playerid, COLOR_GRAY, "Pod tym slotem nie znajduje się żadna grupa.");
  2618.                                                 DoorCache[uid][dGroupUID] = UserCache[pUID[playerid]][uGroup3];
  2619.                                         }
  2620.                                 }
  2621.                                 DestroyDynamicPickup(DoorPickupID[uid]);
  2622.                                 DoorPickupID[uid] = CreateDynamicPickup(GetPickupModelFromGroupType(GroupCache[DoorCache[uid][dGroupUID]][gType]), 2, DoorCache[uid][dOutX],DoorCache[uid][dOutY], DoorCache[uid][dOutZ], DoorCache[uid][dOutVW], 0, -1);
  2623.                                 format(text, sizeof(text), "> Drzwi został pomyślnie podpisane pod grupę %s (UID: %d). Użyj /drzwi [opcje] by ustawić opłatę za przejście!", GroupCache[DoorCache[uid][dGroupUID]][gName], DoorCache[uid][dGroupUID]);
  2624.                                 return SendClientMessage(playerid, COLOR_WHITE, text);
  2625.                         }
  2626.                         return 1;
  2627.                 }
  2628.                 case D_COMMANDS:
  2629.                 {
  2630.                         if(response)
  2631.                         {
  2632.                                 switch(listitem)
  2633.                                 {
  2634.                                         case 0: return ShowPlayerDialog(playerid, D_CMDS_OBJECT, DIALOG_STYLE_MSGBOX, "Pomoc > Przydatne komendy > Obiekty", ""HEX_WHITE"/mc "HEX_BLUE"[id obiektu]"HEX_WHITE" by utworzyć obiekt.\n/msel "HEX_BLUE"[opcjonalna wartość]"HEX_WHITE" by edytować obiekt w pobliżu.\n\
  2635.                                         "HEX_RED"/md"HEX_WHITE" by usunąć aktualnie edytowany obiekt.\n/mmat by nałożyć texturę na aktualnie edytowany obiekt\n\nRotacja obiektu:\n/rx [wartość]\n/ry [wartość]\n/rz [wartość]", "Ok", "");
  2636.                                 }
  2637.                         }
  2638.                 }
  2639.                 case D_HELP:
  2640.                 {
  2641.                         if(response)
  2642.                         {
  2643.                                 switch(listitem)
  2644.                                 {
  2645.                                         case 0: return ShowDialogCommands(playerid);
  2646.                                         case 1: return ShowDialogStats(playerid);
  2647.                                         case 2: return ShowDialogAnim(playerid);
  2648.                                 }
  2649.                         }
  2650.                         return 1;
  2651.                 }
  2652.                 case D_CHANGE_DOOR_NAME:
  2653.                 {
  2654.                         if(response)
  2655.                         {
  2656.                                 if(Isnull(inputtext))
  2657.                                 return ShowDialogChangeDoorName(playerid);
  2658.                                 if(UserCache[pUID[playerid]][uCash] < 2000)
  2659.                                 return ShowPlayerDialog(playerid, D_CHANGE_DOOR_NAME, DIALOG_STYLE_INPUT, "Zmień nazwę drzwi", ""HEX_RED"Nie posiadasz 2000$ na zmianę nazwy drzwi!\n"HEX_WHITE"Wpisz poniżej nową nazwę drzwi:", "Zatwierdź", "Anuluj");
  2660.                                 if(strlen(inputtext) > 32)
  2661.                                 return ShowPlayerDialog(playerid, D_CHANGE_DOOR_NAME, DIALOG_STYLE_INPUT, "Zmień nazwę drzwi", ""HEX_RED"Wybrana nazwa jest zbyt długa!\n"HEX_WHITE"Wpisz poniżej nową nazwę drzwi:", "Zatwierdź", "Anuluj");
  2662.                                 UserCache[pUID[playerid]][uCash] -= 2000;
  2663.                                 GivePlayerMoney(playerid, -2000);
  2664.                                 new name[32]; format(name, sizeof(name), inputtext);
  2665.                                 DoorCache[GetPlayerDoorUID(playerid)][dName] = name;
  2666.                                 return SendClientMessage(playerid, COLOR_GRAY, "Nazwa drzwi została zmieniona pomyślnie.");
  2667.                         }
  2668.                         return 1;
  2669.                 }
  2670.                 case D_CHANGE_URL:
  2671.                 {
  2672.                         if(response)
  2673.                         {
  2674.                                 if(Isnull(inputtext))
  2675.                                 return ShowDialogChangeUrl(playerid);
  2676.                                 new pvw = GetPlayerVirtualWorld(playerid);
  2677.                                 for(new i; i<=GetPlayerPoolSize(); i++)
  2678.                                 {
  2679.                                         if(IsPlayerConnected(i))
  2680.                                         {
  2681.                                                 if(GetPlayerVirtualWorld(i) == pvw)
  2682.                                                 {
  2683.                                                         PlayAudioStreamForPlayer(i, inputtext);
  2684.                                                 }
  2685.                                         }
  2686.                                 }
  2687.                                 new url[256]; format(url, sizeof(url), inputtext);
  2688.                                 DoorCache[GetPlayerDoorUID(playerid)][dUrl] = url;
  2689.                                 new msg[128];
  2690.                                 format(msg, sizeof(msg), "* %s zmienia płytę w systemie nagłaśniającym audio.", strreplace(PlayerName(playerid), '_', ' '));
  2691.                                 SendPlayerMe(playerid, msg);
  2692.                         }
  2693.                         return 1;
  2694.                 }
  2695.                 case D_BOOMBOX:
  2696.                 {
  2697.                         if(response)
  2698.                         {
  2699.                                 if(Isnull(inputtext))
  2700.                                 return ShowDialogBoomBox(playerid);
  2701.                                 new uid = GetPVarInt(playerid, "iUID");
  2702.                                 new Float:X, Float:Y, Float:Z; GetPlayerPos(playerid, X, Y, Z);
  2703.                                 ItemCache[uid][iVal] =  CreateDynamicObject(2226, X, Y, Z-1.0, 0.0, 0.0, 0.0, GetPlayerVirtualWorld(playerid), -1, -1);
  2704.                                 ApplyAnimation(playerid, "bomber", "bom_plant", 4.1, 0, 0, 0, 0, 0, 0);
  2705.                                 new str[128]; format(str, sizeof(str), "* %s kładzie %s na ziemie oraz wybiera stację radiową.", strreplace(PlayerName(playerid), '_', ' '), ItemCache[uid][iName]);
  2706.                                 SendPlayerMe(playerid, str);
  2707.                                 new vw = GetPlayerVirtualWorld(playerid);
  2708.                                 for(new i; i<=GetPlayerPoolSize(); i++)
  2709.                                 {
  2710.                                         if(IsPlayerConnected(i))
  2711.                                         {
  2712.                                                 if(IsPlayerInRangeOfPoint(i, 30.0, X, Y, Z))
  2713.                                                 {
  2714.                                                         if(GetPlayerVirtualWorld(i) == vw)
  2715.                                                         {
  2716.                                                                 StopAudioStreamForPlayer(i);
  2717.                                                                 PlayAudioStreamForPlayer(i, inputtext, X, Y, Z, 50.0, 1);
  2718.                                                         }
  2719.                                                 }
  2720.                                         }
  2721.                                 }
  2722.                                 ItemCache[uid][iActive]=1;
  2723.                         }
  2724.                         return 1;
  2725.                 }
  2726.                 case D_DOOR_SETTINGS:
  2727.                 {
  2728.                         if(response)
  2729.                         {
  2730.                                 new option=strval(inputtext);
  2731.                                 new uid = GetPlayerDoorUID(playerid);
  2732.                                 switch(option)
  2733.                                 {
  2734.                                         case 1:
  2735.                                         {
  2736.                                                 GetPlayerPos(playerid, DoorCache[uid][dInsX], DoorCache[uid][dInsY], DoorCache[uid][dInsZ]);
  2737.                                                 TextDrawForPlayerEx(playerid, 1, "Pozycja wejsciowa zostala zmieniona pomyslnie.", 3000);
  2738.                                         }
  2739.                                         case 2:
  2740.                                         {
  2741.                                                 if(DoorCache[uid][dType])
  2742.                                                 return ShowDialogInfo(playerid, "Nie możesz wybrać spawnu w tym budynku.");
  2743.                                                 if(UserCache[pUID[playerid]][uHouseSpawn] == uid)
  2744.                                                 {
  2745.                                                         UserCache[pUID[playerid]][uHouseSpawn] = 0;
  2746.                                                         return SendClientMessage(playerid, COLOR_GRAY, "Wymeldowano.");
  2747.                                                 }
  2748.                                                 UserCache[pUID[playerid]][uHouseSpawn] = uid;
  2749.                                                 return SendClientMessage(playerid, COLOR_GRAY, "Od teraz będzie się tu spawnował.");
  2750.                                         }
  2751.                                         case 3:
  2752.                                         {
  2753.                                                 if(!Isnull(DoorCache[uid][dUrl]))
  2754.                                                 {
  2755.                                                         return ShowDialogChangeUrl(playerid);
  2756.                                                 }
  2757.                                                 else
  2758.                                                 {
  2759.                                                         if(UserCache[pUID[playerid]][uCash] < 1200)
  2760.                                                         return SendClientMessage(playerid, COLOR_GRAY, "Nie posiadasz przy sobie 1200$ na ten zakup.");
  2761.                                                 }
  2762.                                                 new str[256]; str = " ";
  2763.                                                 DoorCache[uid][dUrl] = str;
  2764.                                                 UserCache[pUID[playerid]][uCash] -= 1200;
  2765.                                                 GivePlayerMoney(playerid, -1200);
  2766.                                                 SendClientMessage(playerid, COLOR_GRAY, "Zakupiono system nagłaśniający!");
  2767.                                         }
  2768.                                         case 4:
  2769.                                         {
  2770.                                                 SetPlayerPos(playerid, DoorCache[uid][dInsX], DoorCache[uid][dInsY], DoorCache[uid][dInsZ]);
  2771.                                                 return TextDrawForPlayerEx(playerid, 1, "Przeteleportowano do pozycji wyjsciowej.", 3000);
  2772.                                         }
  2773.                                         case 5:
  2774.                                         {
  2775.                                                 if(UserCache[pUID[playerid]][uCash] < 2000)
  2776.                                                 return SendClientMessage(playerid, COLOR_GRAY, "Nie posiadasz przy sobie 2000$ do zmiany nazwy drzwi.");
  2777.                                                 return ShowDialogChangeDoorName(playerid);
  2778.                                         }
  2779.                                         case 6:
  2780.                                         {
  2781.                                                 if(DoorCache[uid][dGroupUID] != 0)
  2782.                                                 return ShowDialogInfo(playerid, ""HEX_WHITE"Ten budynek jest już podpisany pod jakiś biznes");
  2783.                                                 if(DoorCache[uid][dType])
  2784.                                                 return ShowDialogDoorGroup(playerid);
  2785.                                                 return ShowDialogInfo(playerid, ""HEX_WHITE"Nie możesz podpisać tego budynku pod grupę.");
  2786.                                         }
  2787.                                         case 7:
  2788.                                         {
  2789.                                                 if(DoorCache[uid][dType])
  2790.                                                 {
  2791.                                                         if(DoorCache[uid][dGroupUID] == 0)
  2792.                                                         return ShowDialogInfo(playerid, ""HEX_WHITE"Ten budynek nie jest podpisany pod żaden biznes.");
  2793.                                                         return ShowDialogDoorCost(playerid);
  2794.                                                 }
  2795.                                                 return ShowDialogInfo(playerid, ""HEX_WHITE"Ten budynek jest domem - nie możesz ustawić opłaty za przejście.");
  2796.                                         }
  2797.                                         case 8:
  2798.                                         {
  2799.                                                 if(DoorCache[uid][dVehicle])
  2800.                                                 {
  2801.                                                         DoorCache[uid][dVehicle]=0;
  2802.                                                         TextDrawForPlayerEx(playerid, 1, "Przejazd pojazdami zostal ~r~~h~~h~wylaczony~w~.", 3000);
  2803.                                                 }
  2804.                                                 else
  2805.                                                 {
  2806.                                                         DoorCache[uid][dVehicle]=1;
  2807.                                                         TextDrawForPlayerEx(playerid, 1, "Przejazd pojazdami zostal ~g~~h~~h~wlaczony~w~.", 3000);
  2808.                                                 }
  2809.                                                 return ShowDialogDoorSettings(playerid);
  2810.                                         }
  2811.                                 }
  2812.                         }
  2813.                 }
  2814.                 case D_FIND:
  2815.                 {
  2816.                         if(response)
  2817.                         {
  2818.                                 if(Isnull(inputtext))
  2819.                                 return ShowDialogFind(playerid);
  2820.                                 if(UserExists(inputtext))
  2821.                                 {
  2822.                                         SetPlayerName(playerid, inputtext);
  2823.                                         return  ShowDialogLogin(playerid);
  2824.                                 }
  2825.                                 ShowDialogNotFound(playerid);
  2826.                                 return 1;
  2827.                         }
  2828.                         else
  2829.                         {
  2830.                                 return ShowDialogCreate(playerid);
  2831.                         }
  2832.                 }
  2833.                 case D_NOTFOUND:
  2834.                 {
  2835.                         if(response)
  2836.                         {
  2837.                                 return ShowDialogCreate(playerid);
  2838.                         }
  2839.                         else
  2840.                         {
  2841.                                 return ShowDialogFind(playerid);
  2842.                         }
  2843.                 }
  2844.                 case D_CREATE:
  2845.                 {
  2846.                         if(response)
  2847.                         {
  2848.                                 if(Isnull(inputtext))
  2849.                                 return ShowDialogCreate(playerid);
  2850.                                 new pname[MAX_PLAYER_NAME], pborndate, sex[2];
  2851.                                 new text[128]; format(text, sizeof(text), " %s", inputtext);
  2852.                                 if(sscanf(text, "s[24]is[2]", pname, pborndate, sex))
  2853.                                 return ShowDialogCreate(playerid);
  2854.                                 if(strlen(pname) > 24 || strlen(pname) < 6)
  2855.                                 {      
  2856.                                         SendClientMessage(playerid, COLOR_WHITE, "> Wybrana nazwa jest "HEX_RED"zbyt długa"HEX_WHITE" lub "HEX_RED"zbyt krótka"HEX_WHITE".");
  2857.                                         ShowDialogCreate(playerid);
  2858.                                         return 1;
  2859.                                 }
  2860.                                 if(pborndate < 1910 || pborndate > 2005)
  2861.                                 {
  2862.                                         SendClientMessage(playerid, COLOR_WHITE, "> Data narodzin Twojej postaci musi mieścić się w zakresie 1910 - 2005.");
  2863.                                         return ShowDialogCreate(playerid);
  2864.                                 }
  2865.                                 if(sex[0] == 'm' || sex[0] == 'k')
  2866.                                 {
  2867.                                         if(UserExists(pname))
  2868.                                         {
  2869.                                                 SendClientMessage(playerid, COLOR_WHITE, "> Taka postać już istnieje :( Spróbuj użyć innej nazwy.");
  2870.                                                 ShowDialogCreate(playerid);
  2871.                                                 return 1;
  2872.                                         }
  2873.                                         new count;
  2874.                                         for(new j = 0; j < strlen(pname); j++)
  2875.                                         {
  2876.                                                 if(text[j] == '_')
  2877.                                                 count++;
  2878.                                         }
  2879.                                         if(count != 1)
  2880.                                         {
  2881.                                                 ShowDialogCreate(playerid);
  2882.                                                 new msg[128];
  2883.                                                 format(msg, sizeof(msg), "> Twoje "HEX_BLUE"imię"HEX_WHITE" oraz "HEX_BLUE"nazwisko"HEX_WHITE" musi być oddzielone tylko jednym znakiem: "HEX_BLUE"_");
  2884.                                                 SendClientMessage(playerid, COLOR_WHITE, msg);
  2885.                                                 return 1;
  2886.                                         }
  2887.                                         new pos = strfind(text, "_", true);
  2888.                                         if(pos == 0 || pos == strlen(pname)-1)
  2889.                                         {
  2890.                                                 ShowDialogCreate(playerid);
  2891.                                                 SendClientMessage(playerid, COLOR_WHITE, "> "HEX_BLUE"imię"HEX_WHITE" lub "HEX_BLUE"nazwisko"HEX_WHITE" Twojej postaci jest za krótkie!");
  2892.                                                 return 1;
  2893.                                         }
  2894.                                         for(new i = 0; i < strlen(pname); i++)
  2895.                                         {
  2896.                                                 if(pname[i] == 'q' || pname[i] == 'w' || pname[i] == 'e' || pname[i] == 'r' || pname[i] == 't' ||
  2897.                                                 pname[i] == 'y' || pname[i] == 'u' || pname[i] == 'i' || pname[i] =='o' || pname[i] == 'p' ||
  2898.                                                 pname[i] == 'a' || pname[i] == 's' || pname[i]== 'd' || pname[i]== 'f' || pname[i] =='g' ||
  2899.                                                 pname[i] =='z' || pname[i] == 'l' || pname[i] == 'k' || pname[i]== 'j' || pname[i] =='h' ||
  2900.                                                 pname[i] =='x' || inputtext[i]== 'c' || inputtext[i] == 'v' || inputtext[i] =='b' || inputtext[i] =='n' ||
  2901.                                                 pname[i] == 'm' ||
  2902.                                                 pname[i] == 'Q' || pname[i] == 'W' || pname[i] == 'E' || pname[i] == 'R' ||pname[i] == 'T' ||
  2903.                                                 pname[i] == 'Y' || pname[i] == 'U' || pname[i] == 'I' || pname[i] =='O' || pname[i] == 'P' ||
  2904.                                                 pname[i] == 'A' || pname[i] == 'S' || pname[i]== 'D' ||  pname[i]== 'F' || pname[i] =='G' ||
  2905.                                                 pname[i] =='Z' || pname[i] == 'L' ||  pname[i] == 'K' || pname[i]== 'J' || pname[i] =='H' ||
  2906.                                                 pname[i] =='X' || pname[i]== 'C' ||   pname[i] == 'V' || pname[i] =='B' || pname[i] =='N' ||
  2907.                                                 pname[i] == 'M' || pname[i] == '_')
  2908.                                                 {
  2909.                                                         continue;
  2910.                                                 }
  2911.                                                 else
  2912.                                                 {
  2913.                                                         new msg[128];
  2914.                                                         format(msg, sizeof(msg), "> Wprowadzono niedozwolony znak: "HEX_BLUE"%c", pname[i]);
  2915.                                                         SendClientMessage(playerid, COLOR_WHITE, msg);
  2916.                                                         ShowDialogCreate(playerid);
  2917.                                                         return 1;
  2918.                                                 }
  2919.                                         }
  2920.                                         new name[MAX_PLAYER_NAME];
  2921.                                         format(name, sizeof(name), pname);
  2922.                                         RegisterCache[playerid][rName] = name;
  2923.                                         if(sex[0] == 'm')
  2924.                                         RegisterCache[playerid][rSex] = 0; else RegisterCache[playerid][rSex] = 1;
  2925.                                         RegisterCache[playerid][rBornDate] = pborndate;
  2926.                                         ShowDialogPassword(playerid);
  2927.                                         return 1;
  2928.                                 }
  2929.                                 else
  2930.                                 return ShowDialogCreate(playerid);
  2931.                         }
  2932.                         else
  2933.                         {
  2934.                                 BackToMenu(playerid);
  2935.                         }
  2936.                 }
  2937.                 case D_PASS:
  2938.                 {
  2939.                         if(response)
  2940.                         {
  2941.                                 if(strlen(inputtext) < 8 || strlen(inputtext) > 32)
  2942.                                 return ShowPlayerDialog(playerid, D_PASS, DIALOG_STYLE_PASSWORD, "Wybór hasła", ""HEX_WHITE"Poniżej wprowadź hasło za pomocą którego będziesz logować się do swojej postaci.\n\n"HEX_RED"Hasło musi mieć przynajmniej 8 oraz maksymalnie 32 znaki.\n\n"HEX_PURPLE"Prosimy nie wpisywać haseł zawierających polskie znaki, gdyż logowanie potem będzie nie możliwe.", "Stwórz", "Anuluj");
  2943.                                 if(RegisterCache[playerid][rSex])
  2944.                                 CreateUser(RegisterCache[playerid][rName], inputtext, "k", RegisterCache[playerid][rBornDate]);
  2945.                                 else
  2946.                                 CreateUser(RegisterCache[playerid][rName], inputtext, "m", RegisterCache[playerid][rBornDate]);
  2947.                                 SetPlayerName(playerid, RegisterCache[playerid][rName]);
  2948.                                 ShowDialogLogin(playerid);
  2949.                         }
  2950.                         else
  2951.                         {
  2952.                                 BackToMenu(playerid);
  2953.                         }
  2954.                 }
  2955.                 case D_LOGIN:
  2956.                 {
  2957.                         if(response)
  2958.                         {
  2959.                                 if(Isnull(inputtext))
  2960.                                 {
  2961.                                         return ShowDialogLogin(playerid);
  2962.                                 }
  2963.                                 for(new i = 1; i < LastUID; i++)
  2964.                                 {
  2965.                                         if(!strcmp(PlayerName(playerid), UserCache[i][uName], true))
  2966.                                         {
  2967.                                                 if(!strcmp(inputtext, UserCache[i][uPass], false))
  2968.                                                 {
  2969.                                                         if(UserCache[i][uBan])
  2970.                                                         {
  2971.                                                                 new str[128];
  2972.                                                                 if(UserCache[i][uBan] == 999)
  2973.                                                                 format(str, sizeof(str), "Twoja postać została stale zablokowana.");
  2974.                                                                 if(UserCache[i][uBan] != 999)
  2975.                                                                 format(str, sizeof(str), "Twoja postać posiada aktywną blokadę do %02d:%02d:%02d", UserCache[i][uBanYear], UserCache[i][uBanDay], UserCache[i][uBanMin]);
  2976.                                                                 SendClientMessage(playerid, COLOR_RED, str);
  2977.                                                                 SendClientMessage(playerid, COLOR_ORANGE, UserCache[i][uBanReason]);
  2978.                                                                 return ShowDialogLogin(playerid);
  2979.                                                         }
  2980.                                                         return LoginPlayer(playerid, UserCache[i][uUID]);
  2981.                                                 }
  2982.                                                 else
  2983.                                                 {
  2984.                                                         if(LoginAttempt[playerid] == 3)
  2985.                                                         return Kick(playerid);
  2986.                                                         new str[256];
  2987.                                                         format(str, sizeof(str), ""HEX_PURPLE"Witaj na serwerze Szkodnik RolePlay!"HEX_WHITE"\n\n"HEX_RED"Nieprawidłowe dane logowania!\n\nPostać "HEX_RED"%s"HEX_WHITE" została odnaleziona.\n\nZaloguj się podając poprawne hasło lub wybierz 'Zmień' jeśli chcesz zalogować się na inną postać.", PlayerName(playerid));
  2988.                                                         ShowPlayerDialog(playerid, D_LOGIN, DIALOG_STYLE_PASSWORD, "Logowanie", str, "Zaloguj", "Zmień");
  2989.                                                         LoginAttempt[playerid]++;
  2990.                                                         return 1;
  2991.                                                 }
  2992.                                         }
  2993.                                 }
  2994.                         }
  2995.                         else
  2996.                         {
  2997.                                 ShowDialogFind(playerid);
  2998.                         }
  2999.                 }
  3000.                 case D_INFO:
  3001.                 {
  3002.                         if(response)
  3003.                         {
  3004.                                 return 1;
  3005.                         }
  3006.                         else
  3007.                         {
  3008.                                 return 1;
  3009.                         }
  3010.                 }
  3011.                 case D_CREATEDOOR:
  3012.                 {
  3013.                         if(response)
  3014.                         {
  3015.                                 new zone = GetPlayerZone(playerid);
  3016.                                 if(!strlen(inputtext))
  3017.                                 {
  3018.                                         ShowDialogDoorCreate(playerid,ZoneData[zone][zYard]);
  3019.                                         return 1;
  3020.                                 }
  3021.                                 new input[128];
  3022.                                 format(input, sizeof(input), " %s", inputtext);
  3023.                                 new type[2], yard;
  3024.                                 if(sscanf(input, "s[2]i", type, yard))
  3025.                                 {
  3026.                                         ShowDialogDoorCreate(playerid, ZoneData[zone][zYard]);
  3027.                                         return 1;
  3028.                                 }
  3029.                                 if(yard < ZoneData[zone][zYard])
  3030.                                 {
  3031.                                         ShowDialogDoorCreate(playerid,ZoneData[zone][zYard]);
  3032.                                         return 1;
  3033.                                 }
  3034.                                 new Float:X, Float:Y, Float:Z;
  3035.                                 GetPlayerPos(playerid, X, Y, Z);
  3036.                                 if(!strcmp(type, "d", true))
  3037.                                 {
  3038.                                         new price = ZoneData[zone][zCostH] * yard;
  3039.                                         if(UserCache[pUID[playerid]][uCash] < price)
  3040.                                         {
  3041.                                                 ShowDialogDoorCreate(playerid, ZoneData[zone][zYard]);
  3042.                                                 new msg[64];
  3043.                                                 format(msg, sizeof(msg), "~g~nie posiadasz %d$ na stworzenie drzwi", price);
  3044.                                                 GameTextForPlayer(playerid, msg, 5000, 4);
  3045.                                                 return 1;
  3046.                                         }
  3047.                                         CreateDoor(playerid, GetPlayerVirtualWorld(playerid), 0, X, Y, Z);
  3048.                                         SetPlayerCash(playerid, -price);
  3049.                                         return 1;
  3050.                                 }
  3051.                                 else if(!strcmp(type, "b", true))
  3052.                                 {
  3053.                                         new price = ZoneData[zone][zCostB] * yard;
  3054.                                         if(UserCache[pUID[playerid]][uCash] < price)
  3055.                                         {
  3056.                                                 ShowDialogDoorCreate(playerid, ZoneData[zone][zYard]);
  3057.                                                 new msg[64];
  3058.                                                 format(msg, sizeof(msg), "~g~nie posiadasz %d$ na stworzenie drzwi", price);
  3059.                                                 GameTextForPlayer(playerid, msg, 5000, 4);
  3060.                                                 return 1;
  3061.                                         }
  3062.                                         CreateDoor(playerid, GetPlayerVirtualWorld(playerid), 1, X, Y, Z);
  3063.                                         SetPlayerCash(playerid, -price);
  3064.                                         return 1;
  3065.                                 }
  3066.                                 else
  3067.                                 {
  3068.                                         ShowDialogDoorCreate(playerid, ZoneData[zone][zYard]);
  3069.                                         return 1;
  3070.                                 }
  3071.                         }
  3072.                         else
  3073.                         {
  3074.                                 return 1;
  3075.                         }
  3076.                 }
  3077.                 case D_ITEMS:
  3078.                 {
  3079.                         new uid = strval(inputtext);
  3080.                         if(response)
  3081.                         {
  3082.                                 UseItem(playerid, uid);
  3083.                                 return 1;
  3084.                         }
  3085.                         else
  3086.                         {
  3087.                                 SetPVarInt(playerid, "iUID", uid);
  3088.                                 return ShowPlayerDialog(playerid, D_ITEM_OPTIONS, DIALOG_STYLE_LIST, "Zarządzaj przedmiotem", "1\tOdłóż przedmiot na ziemię\n2\tOddaj przedmiot za darmo graczowi\n"HEX_BLUE"3\tResetuj akcesorium doczepiane\n4\tSchowaj przedmiot do torby", "Wybierz", "Zamknij");
  3089.                         }
  3090.                 }
  3091.                 case D_ITEM_OPTIONS:
  3092.                 {
  3093.                         if(response)
  3094.                         {
  3095.                                 return UseItemOption(playerid, strval(inputtext), GetPVarInt(playerid, "iUID"));
  3096.                         }
  3097.                         return 1;
  3098.                 }
  3099.                 case D_NEARBY_ITEMS:
  3100.                 {
  3101.                         if(response)
  3102.                         {
  3103.                                 new uid = strval(inputtext);
  3104.                                 if(ItemCache[uid][iState] == 0)
  3105.                                 {
  3106.                                         new Float:targetX, Float:targetY, Float:targetZ;
  3107.                                         for(new i=1; i<LastiUID; i++)
  3108.                                         {
  3109.                                                 if(ItemCache[i][iUID] == uid)
  3110.                                                 {
  3111.                                                         for(new j; j<=GetPlayerPoolSize(); j++)
  3112.                                                         {
  3113.                                                                 if(IsPlayerConnected(j))
  3114.                                                                 {
  3115.                                                                         if(GetPlayerItemsCount(playerid) >= 20)
  3116.                                                                         return ShowDialogInfo(playerid, "Twój ekwipunek jest przepełniony!\nMożesz schować przedmioty do torby, pojazdu, szafy, oddać czy sprzedać innemu graczowi lub odłożyć je na ziemię.");
  3117.                                                                         GetPlayerPos(j, targetX, targetY, targetZ);
  3118.                                                                         if(GetPlayerVirtualWorld(playerid) != GetPlayerVirtualWorld(j) || !IsPlayerInRangeOfPoint(playerid, 5.0, targetX, targetY, targetZ))
  3119.                                                                         return SendClientMessage(playerid, COLOR_GRAY, "Gracz oddalił się.");
  3120.                                                                         if(ItemCache[uid][iActive])
  3121.                                                                         return GameTextForPlayer(playerid, "~b~~h~~h~~h~uzywany", 3000, 4);
  3122.                                                                         ItemCache[uid][iOwner] = pUID[playerid];
  3123.                                                                         new msg[128];
  3124.                                                                         format(msg, sizeof(msg), "zabiera jakiś przedmiot %s", RPName(j));
  3125.                                                                         return SendPlayerMe(playerid, msg);
  3126.                                                                 }
  3127.                                                         }
  3128.                                                 }
  3129.                                         }
  3130.                                         return 1;
  3131.                                 }
  3132.                                 if(GetPlayerItemsCount(playerid) >= 20)
  3133.                                 return ShowDialogInfo(playerid, "Twój ekwipunek jest przepełniony!\nMożesz schować przedmioty do torby, pojazdu, szafy, oddać czy sprzedać innemu graczowi lub odłożyć je na ziemię.");
  3134.                                 ItemCache[uid][iState] = 0;
  3135.                                 ItemCache[uid][iOwner] = pUID[playerid];
  3136.                                 new msg[128]; format(msg, sizeof(msg), "podnosi %s.",ItemCache[uid][iName]);
  3137.                                 if(IsPlayerInAnyVehicle(playerid))
  3138.                                 format(msg, sizeof(msg), "podnosi %s z pojazdu.",ItemCache[uid][iName]);
  3139.                                 SendPlayerMe(playerid, msg);
  3140.                                 ApplyAnimation(playerid, "bomber", "bom_plant", 4.1, 0, 0, 0, 0, 0, 0);
  3141.                         }
  3142.                         return 1;
  3143.                 }
  3144.                 case D_USE_WEAP:
  3145.                 {
  3146.                         if(response)
  3147.                         {
  3148.                                 if(Isnull(inputtext))
  3149.                                 return ShowDialogUseWeap(playerid);
  3150.                                 new uid=GetPVarInt(playerid, "iUID");
  3151.                                 new msg[128];
  3152.                                 if(ItemCache[uid][iActive])
  3153.                                 {
  3154.                                         format(msg, sizeof(msg), "chowa %s %s.", ItemCache[uid][iName], inputtext);
  3155.                                         SendPlayerMe(playerid, msg); ItemCache[uid][iActive] = 1;
  3156.                                         ResetPlayerWeapons(playerid);
  3157.                                         SetTimerEx("HideWeapon", 50, false, "ii", uid, playerid);
  3158.                                         return 1;
  3159.                                 }
  3160.                                 format(msg, sizeof(msg), "wyciąga %s %s.", ItemCache[uid][iName], inputtext);
  3161.                                 SendPlayerMe(playerid, msg); ItemCache[uid][iActive] = 1;
  3162.                                 ItemCache[uid][iActive]=1;
  3163.                                 return SetTimerEx("GiveWeapon", 50, false, "iii", playerid, ItemCache[uid][iVal], ItemCache[uid][iVal2]);
  3164.                         }
  3165.                 }
  3166.                 case D_PHONE:
  3167.                 {
  3168.                         if(response)
  3169.                         {
  3170.                                 new option=strval(inputtext), uid=GetPVarInt(playerid, "iUID");
  3171.                                 switch(option)
  3172.                                 {
  3173.                                         case 1:
  3174.                                         {
  3175.                                                 return ShowDialogContacts(playerid);
  3176.                                         }
  3177.                                         case 3:
  3178.                                         {
  3179.                                                 return ShowDialogCall(playerid);
  3180.                                         }
  3181.                                         case 2:
  3182.                                         {
  3183.                                                 return ShowDialogMessages(playerid);
  3184.                                         }
  3185.                                         case 4:
  3186.                                         {
  3187.                                                 return ShowDialogSMS(playerid);
  3188.                                         }
  3189.                                         case 5:
  3190.                                         {
  3191.                                                 ItemCache[uid][iActive]=0;
  3192.                                                 GameTextForPlayer(playerid, "~b~~h~telefon ~w~wylaczony", 3000, 4);
  3193.                                                 return PlayerPlaySound(playerid, 4202, 0.0, 0.0, 0.0);
  3194.                                         }
  3195.                                 }
  3196.                         }
  3197.                         return 1;
  3198.                 }
  3199.                 case D_SMS:
  3200.                 {
  3201.                         if(response)
  3202.                         {
  3203.                                 if(Isnull(inputtext))
  3204.                                 return ShowDialogSMS(playerid);
  3205.                                 new str[256], num, text[128]; format(str, sizeof(str), " %s", inputtext);
  3206.                                 if(sscanf(str, "is[128]", num, text))
  3207.                                 return ShowDialogSMS(playerid);
  3208.                                 new uid = GetPVarInt(playerid, "iUID");
  3209.                                 MsgCache[LastMsgUID][mReceiver] = num;
  3210.                                 MsgCache[LastMsgUID][mSender] = ItemCache[uid][iVal];
  3211.                                 MsgCache[LastMsgUID][mText] = text;
  3212.                                 MsgCache[LastMsgUID][mUID] = LastMsgUID;
  3213.                                 LastMsgUID++;
  3214.                                 ShowDialogPhone(playerid);
  3215.                                 for(new i=1; i<LastiUID; i++)
  3216.                                 {
  3217.                                         if(ItemCache[i][iActive])
  3218.                                         {
  3219.                                                 if(ItemCache[i][iType]==2)
  3220.                                                 {
  3221.                                                         if(ItemCache[i][iVal]==num)
  3222.                                                         {
  3223.                                                                 for(new j=0; j<=GetPlayerPoolSize(); j++)
  3224.                                                                 {
  3225.                                                                         if(IsPlayerConnected(j))
  3226.                                                                         {
  3227.                                                                                 if(pUID[j] == ItemCache[i][iOwner])
  3228.                                                                                 {
  3229.                                                                                         new msg[128];
  3230.                                                                                         format(msg, sizeof(msg), "#%d"HEX_WHITE": %s", ItemCache[uid][iVal], text);
  3231.                                                                                         SendClientMessage(j, COLOR_GREEN, msg);
  3232.                                                                                         format(msg, sizeof(msg), "* %s otrzymał wiadomość SMS.", strreplace(PlayerName(j), '_', ' '));
  3233.                                                                                         SendPlayerMe(j, msg);
  3234.                                                                                         break;
  3235.                                                                                 }
  3236.                                                                         }
  3237.                                                                 }
  3238.                                                         }
  3239.                                                 }
  3240.                                         }
  3241.                                 }
  3242.                                 ApplyAnimation(playerid, "BD_FIRE", "wash_up", 4.1, 0, 0, 0, 0, 0, 0);
  3243.                                 new msg[128];
  3244.                                 format(msg, sizeof(msg), "* %s robi coś na telefonie.", strreplace(PlayerName(playerid), '_', ' '));
  3245.                                 SendPlayerMe(playerid, msg);
  3246.                                 return GameTextForPlayer(playerid, "~w~wiadomosc ~b~wyslana", 3000, 4);
  3247.                         }
  3248.                 }
  3249.                 case D_MESSAGES:
  3250.                 {
  3251.                         if(response)
  3252.                         return ShowDialogMessages(playerid);
  3253.                         return ShowDialogPhone(playerid);
  3254.                 }
  3255.                 case D_CALL:
  3256.                 {
  3257.                         if(response)
  3258.                         {
  3259.                                 if(Isnull(inputtext))
  3260.                                 return ShowDialogCall(playerid);
  3261.                                 new str[128], num; format(str, sizeof(str), " %s", inputtext);
  3262.                                 if(sscanf(str, "i", num))
  3263.                                 return ShowDialogPhone(playerid);
  3264.                                 new uid = GetPVarInt(playerid, "iUID");
  3265.                                 if(num == ItemCache[uid][iVal])
  3266.                                 {
  3267.                                         return GameTextForPlayer(playerid, "~w~nie mozesz zadzwonic do samego siebie", 3000, 4);
  3268.                                 }
  3269.                                 for(new i=1; i<LastiUID; i++)
  3270.                                 {
  3271.                                         if(ItemCache[i][iType] == 2)
  3272.                                         {
  3273.                                                 if(ItemCache[i][iVal] == num)
  3274.                                                 {
  3275.                                                         if(!ItemCache[i][iActive])
  3276.                                                         {
  3277.                                                                 SetPlayerSpecialAction(playerid, 13);
  3278.                                                                 return SendClientMessage(playerid, COLOR_YELLOW, "Telefon(poczta głosowa): Telefon osoby do, której dzwonisz jest wyłączony.");
  3279.                                                         }
  3280.                                                         for(new j; j<=GetPlayerPoolSize(); j++)
  3281.                                                         {
  3282.                                                                 if(IsPlayerConnected(j))
  3283.                                                                 {
  3284.                                                                         if(pUID[j] == ItemCache[i][iOwner])
  3285.                                                                         {
  3286.                                                                                 if(CallData[j][cCaller] >= 0)
  3287.                                                                                 {
  3288.                                                                                         SetPlayerSpecialAction(playerid, 13);
  3289.                                                                                         return SendClientMessage(playerid, COLOR_YELLOW, "Telefon(poczta głosowa): Wybrany numer jest zajęty.");
  3290.                                                                                 }
  3291.                                                                                 PlayerPlaySound(playerid, 3600, 0.0 ,0.0 ,0.0);
  3292.                                                                                 new msg[128]; format(msg, sizeof(msg), "* Dzwoni telefon %s.", strreplace(PlayerName(j), '_', ' '));
  3293.                                                                                 SendPlayerMe(j, msg);
  3294.                                                                                 CallData[j][cCalling] = 3;
  3295.                                                                                 CallData[j][cCaller] = playerid;
  3296.                                                                                 SetPlayerSpecialAction(playerid, 11);
  3297.                                                                                 PlayerPlaySound(playerid, 3600, 0.0, 0.0, 0.0);
  3298.                                                                                 SetTimerEx("Calling", 3000, false, "i", j);
  3299.                                                                                 PlayerPlaySoundInRange(j, 23000, 12.0);
  3300.                                                                                 return 1;
  3301.                                                                         }
  3302.                                                                 }
  3303.                                                         }
  3304.                                                 }
  3305.                                         }
  3306.                                 }
  3307.                                 return GameTextForPlayer(playerid, "~w~wybrany numer jest nieosiagalny", 3000, 4);
  3308.                         }
  3309.                         else
  3310.                         return ShowDialogPhone(playerid);
  3311.                 }
  3312.                 case D_ANSWER:
  3313.                 {
  3314.                         if(response)
  3315.                         {
  3316.                                 new option = strval(inputtext);
  3317.                                 switch(option)
  3318.                                 {
  3319.                                         case 1:
  3320.                                         {
  3321.                                                 CallData[playerid][cCalling] = 0;
  3322.                                                 new senderid = CallData[playerid][cCaller];
  3323.                                                 CallData[senderid][cCaller] = playerid;
  3324.                                                 GameTextForPlayer(senderid, "~w~rozmowca ~g~odebral ~w~polaczenie", 3000, 4);
  3325.                                                 GameTextForPlayer(playerid, "~g~~h~odebrano ~w~telefon", 3000, 4);
  3326.                                                 SetPlayerSpecialAction(playerid, 11);
  3327.                                         }
  3328.                                         case 2:
  3329.                                         {
  3330.                                                 new senderid = CallData[playerid][cCaller];
  3331.                                                 CallData[playerid][cCaller] = -1;
  3332.                                                 CallData[senderid][cCaller] = -1;
  3333.                                                 CallData[playerid][cCalling] = 0;
  3334.                                                 CallData[senderid][cCalling] = 0;
  3335.                                                 GameTextForPlayer(senderid, "~w~Rozmowca rozlaczyl sie", 3000, 4);
  3336.                                                 SetPlayerSpecialAction(senderid, 13);
  3337.                                                 SetPlayerSpecialAction(playerid, 13);
  3338.                                         }
  3339.                                 }
  3340.                         }
  3341.                         return 1;
  3342.                 }
  3343.                 case D_CONTACTS:
  3344.                 {
  3345.                         new option = strval(inputtext);
  3346.                         if(response)
  3347.                         {
  3348.                                 new uid = GetPVarInt(playerid, "iUID"), info[256],  list[256], count;
  3349.                                 format(list, sizeof(list), "Numer telefonu\tNazwa kontaktu\n");
  3350.                                 switch(option)
  3351.                                 {
  3352.                                         case 1:
  3353.                                         {
  3354.                                                 for(new i=1; i<LastContactUID; i++)
  3355.                                                 {
  3356.                                                         if(ContactCache[i][cOwner] == ItemCache[uid][iVal])
  3357.                                                         {
  3358.                                                                 if(ContactCache[i][cState] == 0)
  3359.                                                                 {
  3360.                                                                         count++;
  3361.                                                                         format(info, sizeof(info), "%d\t%s\n", ContactCache[i][cNum], ContactCache[i][cName]);
  3362.                                                                         strins(list, info, strlen(list));
  3363.                                                                 }
  3364.                                                         }
  3365.                                                 }
  3366.                                                 if(count)
  3367.                                                 return ShowPlayerDialog(playerid, D_FRIENDS, DIALOG_STYLE_TABLIST_HEADERS, "Telefon > Kontakty > Zadzwoń do kontaktu", list, "Wybierz", "Anuluj");
  3368.                                                 else
  3369.                                                 {
  3370.                                                         GameTextForPlayer(playerid, "~w~nie posiadasz zadnych kontaktow", 3000, 4);
  3371.                                                         return ShowDialogContacts(playerid);
  3372.                                                 }
  3373.                                         }
  3374.                                         case 2:
  3375.                                         {
  3376.                                                 return ShowDialogInfo(playerid, "Ta funkcja będzie gotowa później.");
  3377.                                         }
  3378.                                         case 3:
  3379.                                         {
  3380.                                                 return ShowDialogAddContact(playerid);
  3381.                                         }
  3382.                                         case 4:
  3383.                                         {
  3384.                                                 return ShowDialogVCard(playerid);
  3385.                                         }
  3386.                                         case 5:
  3387.                                         {
  3388.                                                 return ShowDialogRemoveContact(playerid);
  3389.                                         }
  3390.                                 }
  3391.                         }
  3392.                 }
  3393.                 case D_FRIENDS:
  3394.                 {
  3395.                         new num = strval(inputtext);
  3396.                         if(response)
  3397.                         {
  3398.                                 for(new i=1; i<LastiUID; i++)
  3399.                                 {
  3400.                                         if(ItemCache[i][iType] == 2)
  3401.                                         {
  3402.                                                 if(ItemCache[i][iVal] == num)
  3403.                                                 {
  3404.                                                         if(ItemCache[i][iActive])
  3405.                                                         {
  3406.                                                                 for(new j; j<=GetPlayerPoolSize(); j++)
  3407.                                                                 {
  3408.                                                                         if(IsPlayerConnected(j))
  3409.                                                                         {
  3410.                                                                                 if(pUID[j])
  3411.                                                                                 {
  3412.                                                                                         if(pUID[j] == ItemCache[i][iOwner])
  3413.                                                                                         {
  3414.                                                                                                 PlayerPlaySound(playerid, 3600, 0.0 ,0.0 ,0.0);
  3415.                                                                                                 new msg[128]; format(msg, sizeof(msg), "* Dzwoni telefon %s.", strreplace(PlayerName(j), '_', ' '));
  3416.                                                                                                 SendPlayerMe(j, msg);
  3417.                                                                                                 CallData[j][cCalling] = 3;
  3418.                                                                                                 CallData[j][cCaller] = playerid;
  3419.                                                                                                 SetPlayerSpecialAction(playerid, 11);
  3420.                                                                                                 PlayerPlaySound(playerid, 3600, 0.0, 0.0, 0.0);
  3421.                                                                                                 SetTimerEx("Calling", 3000, false, "i", j);
  3422.                                                                                                 PlayerPlaySoundInRange(j, 23000, 12.0);
  3423.                                                                                                 return 1;
  3424.                                                                                         }
  3425.                                                                                 }
  3426.                                                                         }
  3427.                                                                 }
  3428.                                                                 return SendClientMessage(playerid, COLOR_YELLOW, "Telefon: Wybrana osoba jest niedostępna.");
  3429.                                                         }
  3430.                                                         else
  3431.                                                         {
  3432.                                                                 return SendClientMessage(playerid, COLOR_YELLOW, "Telefon: Osoba do, której dzwonisz ma wyłączony telefon.");
  3433.                                                         }
  3434.                                                 }
  3435.                                         }
  3436.                                 }
  3437.                                 return GameTextForPlayer(playerid, "~w~wybrany numer jest nieosiagalny", 3000, 4);
  3438.                         }
  3439.                         return 1;
  3440.                 }
  3441.                 case D_ADD_CONTACT:
  3442.                 {
  3443.                         if(response)
  3444.                         {
  3445.                                 if(Isnull(inputtext))
  3446.                                 return ShowDialogAddContact(playerid);
  3447.                                 new str[256]; format(str, sizeof(str), " %s", inputtext);
  3448.                                 new num, name[128];
  3449.                                 if(sscanf(str, "is[128]", num, name))
  3450.                                 return ShowDialogAddContact(playerid);
  3451.                                 new uid = GetPVarInt(playerid, "iUID");
  3452.                                 for(new i=1; i<LastContactUID; i++)
  3453.                                 {
  3454.                                         if(ContactCache[i][cOwner] == ItemCache[uid][iVal])
  3455.                                         {
  3456.                                                 if(ContactCache[i][cState] == 0)
  3457.                                                 {
  3458.                                                         if(ContactCache[i][cNum] == num)
  3459.                                                         {
  3460.                                                                 GameTextForPlayer(playerid, "~w~juz masz ten numer w kontaktach", 1500, 4);
  3461.                                                                 return ShowDialogAddContact(playerid);
  3462.                                                         }
  3463.                                                 }
  3464.                                         }
  3465.                                 }
  3466.                                 AddContact(ItemCache[uid][iVal], num, name);
  3467.                                 ShowDialogContacts(playerid);
  3468.                                 return GameTextForPlayer(playerid, "~g~kontakt dodany!", 1500, 4);
  3469.                         }
  3470.                         return 1;
  3471.                 }
  3472.                 case D_REMOVE_CONTACT:
  3473.                 {
  3474.                         if(response)
  3475.                         {
  3476.                                 new num = strval(inputtext), uid = GetPVarInt(playerid, "iUID");
  3477.                                 for(new i=1; i < LastContactUID; i++)
  3478.                                 {
  3479.                                         if(ContactCache[i][cState] == 0)
  3480.                                         {
  3481.                                                 if(ContactCache[i][cOwner] == ItemCache[uid][iVal])
  3482.                                                 {
  3483.                                                         if(ContactCache[i][cNum] == num)
  3484.                                                         {
  3485.                                                                 ContactCache[i][cState] = 1;
  3486.                                                                 GameTextForPlayer(playerid, "~w~usunieto kontakt", 1500, 4);
  3487.                                                                 return ShowDialogContacts(playerid);
  3488.                                                         }
  3489.                                                 }
  3490.                                         }
  3491.                                 }
  3492.                         }
  3493.                         return ShowDialogContacts(playerid);
  3494.                 }
  3495.                 case D_VCARD:
  3496.                 {
  3497.                         if(response)
  3498.                         {
  3499.                                 new pid = strval(inputtext);
  3500.                                 for(new i=1; i<LastiUID; i++)
  3501.                                 {
  3502.                                         if(ItemCache[i][iOwner] == pUID[pid])
  3503.                                         {
  3504.                                                 if(ItemCache[i][iType] == 2)
  3505.                                                 {
  3506.                                                         if(ItemCache[i][iActive])
  3507.                                                         {
  3508.                                                                 VCardSender[pid] = playerid;
  3509.                                                                 TextDrawForPlayerEx(playerid, 1, "Wyslano oferte", 5000);
  3510.                                                                 return ShowDialogVCardAccept(pid);
  3511.                                                         }
  3512.                                                 }
  3513.                                         }
  3514.                                 }
  3515.                                 TextDrawForPlayerEx(playerid, 1, "Ta osoba nie ma telefonu lub jest wylaczony.", 5000);
  3516.                                 return ShowDialogVCard(playerid);
  3517.                         }
  3518.                 }
  3519.                 case D_VCARD_ACCEPT:
  3520.                 {
  3521.                         new senderid = VCardSender[playerid];
  3522.                         if(response)
  3523.                         {
  3524.                                 new ownernum;
  3525.                                 for(new i=1; i<LastiUID; i++)
  3526.                                 {
  3527.                                         if(ItemCache[i][iActive])
  3528.                                         {
  3529.                                                 if(ItemCache[i][iType] == 2)
  3530.                                                 {
  3531.                                                         if(ItemCache[i][iOwner] == pUID[senderid])
  3532.                                                         {
  3533.                                                                 ownernum = ItemCache[i][iVal];
  3534.                                                                 break;
  3535.                                                         }
  3536.                                                 }
  3537.                                         }
  3538.                                 }
  3539.                                 new pnum;
  3540.                                 for(new i=1; i<LastiUID; i++)
  3541.                                 {
  3542.                                         if(ItemCache[i][iActive])
  3543.                                         {
  3544.                                                 if(ItemCache[i][iType] == 2)
  3545.                                                 {
  3546.                                                         if(ItemCache[i][iOwner] == pUID[playerid])
  3547.                                                         {
  3548.                                                                 pnum = ItemCache[i][iVal];
  3549.                                                                 break;
  3550.                                                         }
  3551.                                                 }
  3552.                                         }
  3553.                                 }
  3554.                                 AddContact(ownernum, pnum, strreplace(PlayerName(playerid), '_', ' '));
  3555.                                 TextDrawForPlayerEx(senderid, 1, "~g~Oferta zaakceptowana.", 5000);
  3556.                                 return TextDrawForPlayerEx(playerid, 1, "~g~Oferta zaakceptowana.", 5000);
  3557.                         }
  3558.                         else
  3559.                         {
  3560.                                 TextDrawForPlayerEx(senderid, 1, "~r~Oferta anulowana.", 5000);
  3561.                                 return TextDrawForPlayerEx(playerid, 1, "~g~Oferta anulowana.", 5000);
  3562.                         }
  3563.                 }
  3564.                 case D_ZONE:
  3565.                 {
  3566.                         if(response)
  3567.                         {
  3568.                                 new zoneid = GetPlayerZone(playerid);
  3569.                                 ShowDialogDoorCreate(playerid, ZoneData[zoneid][zYard]);
  3570.                                 return 1;
  3571.                         }
  3572.                         else
  3573.                         {
  3574.                                 return 1;
  3575.                         }
  3576.                 }
  3577.                 case D_STATS:
  3578.                 {
  3579.                         if(response)
  3580.                         {
  3581.                                 new option = strval(inputtext);
  3582.                                 switch(option)
  3583.                                 {
  3584.                                         case 1: return ShowDialogSettings(playerid);
  3585.                                         case 2: return ShowPlayerDialog(playerid, D_SERVICES, DIALOG_STYLE_LIST, "Usługi", ""HEX_WHITE"1\tStwórz grupę", "Wybierz", "Anuluj");
  3586.                                         case 3:
  3587.                                         {
  3588.                                                 new documents[256], info[128];
  3589.                                                 if(UserCache[pUID[playerid]][uID])
  3590.                                                 {
  3591.                                                         format(info, sizeof(info), "%d\tDowód osobisty", pUID[playerid]);
  3592.                                                         strins(documents, info, strlen(documents));
  3593.                                                 }
  3594.                                                 if(strlen(documents))
  3595.                                                 return ShowPlayerDialog(playerid, D_DOCUMENTS, DIALOG_STYLE_LIST, "Dokumenty Twojej postaci", documents, "Wybierz", "Anuluj");
  3596.                                                 return ShowDialogInfo(playerid, "Twoja postać nie posiada jeszcze żadnych dokumentów.");
  3597.                                         }
  3598.                                         case 4: return ShowDialogConnects(playerid);
  3599.                                 }
  3600.                         }
  3601.                         return 1;
  3602.                 }
  3603.                 case D_CONNECT:
  3604.                 {
  3605.                         if(response)
  3606.                         {
  3607.                                 new option = strval(inputtext);
  3608.                                 switch(option)
  3609.                                 {
  3610.                                         case 1:
  3611.                                         {
  3612.                                                 if(UserCache[pUID[playerid]][uFreeze])
  3613.                                                 {
  3614.                                                         UserCache[pUID[playerid]][uFreeze] = false;
  3615.                                                         ShowDialogConnects(playerid);
  3616.                                                         return TextDrawForPlayerEx(playerid, 1, "~r~~h~Przelaczono ~w~freeze przez drzwi.", 3000);
  3617.                                                 }
  3618.                                                 UserCache[pUID[playerid]][uFreeze] = true;
  3619.                                                 ShowDialogConnects(playerid);
  3620.                                                 return TextDrawForPlayerEx(playerid, 1, "~g~~h~Przelaczono ~w~freeze przez drzwi.", 3000);
  3621.                                         }
  3622.                                         case 2:
  3623.                                         {
  3624.                                                 if(UserCache[pUID[playerid]][uOOC])
  3625.                                                 {
  3626.                                                         UserCache[pUID[playerid]][uOOC] = false;
  3627.                                                         ShowDialogConnects(playerid);
  3628.                                                         return TextDrawForPlayerEx(playerid, 1, "~r~~h~Przelaczono ~w~czat OOC.", 3000);
  3629.                                                 }
  3630.                                                 UserCache[pUID[playerid]][uOOC] = true;
  3631.                                                 ShowDialogConnects(playerid);
  3632.                                                 return TextDrawForPlayerEx(playerid, 1, "~g~~h~Przelaczono ~w~czat OOC.", 3000);
  3633.                                         }
  3634.                                 }
  3635.                         }
  3636.                 }
  3637.                 case D_SETTINGS:
  3638.                 {
  3639.                         if(response)
  3640.                         {
  3641.                                 new option = strval(inputtext);
  3642.                                 switch(option)
  3643.                                 {
  3644.                                         case 1: return ShowDialogChangePass(playerid);
  3645.                                 }
  3646.                         }
  3647.                         return 1;
  3648.                 }
  3649.                 case D_SERVICES:
  3650.                 {
  3651.                         if(response)
  3652.                         {
  3653.                                 new option = strval(inputtext);
  3654.                                 switch(option)
  3655.                                 {
  3656.                                         case 1:
  3657.                                         {
  3658.                                                 if(UserCache[pUID[playerid]][uSP] < 1000)
  3659.                                                 return SendClientMessage(playerid, COLOR_WHITE, "Nie posiadasz 1000 SP do stworzenia grupy.");
  3660.                                                 return ShowDialogCreateGroup(playerid);
  3661.                                         }
  3662.                                 }
  3663.                         }
  3664.                         return 1;
  3665.                 }
  3666.                 case D_CREATE_GROUP:
  3667.                 {
  3668.                         if(response)
  3669.                         {
  3670.                                 if(Isnull(inputtext))
  3671.                                 return ShowDialogCreateGroup(playerid);
  3672.                                 new string[64]; format(string, sizeof(string), " %s", inputtext);
  3673.                                 new type, name[32];
  3674.                                 if(sscanf(string, "is[32]", type, name))
  3675.                                 return ShowDialogCreateGroup(playerid);
  3676.                                 if(type != 0) return ShowDialogCreateGroup(playerid);
  3677.                                 if(strlen(name) > 32)
  3678.                                 return ShowDialogCreateGroup(playerid);
  3679.                                 if(!GetPlayerFreeSlot(playerid))
  3680.                                 return SendClientMessage(playerid, COLOR_GRAY, "Brak wolnych slotów grupowych! Musisz opuścić jakąś grupę. Możesz użyć komendy /g [slot grupy] [opuść] by opuścić grupę.");
  3681.                                 CreateGroup(type, name, "ffffff");
  3682.                                 new uid = pUID[playerid]; UserCache[uid][uSP] -= 1000;
  3683.                                 SetPlayerScore(playerid, UserCache[uid][uSP]);
  3684.                                 TextDrawForPlayerEx(playerid, 1, "Grupa zostala utworzona pomyslnie!~n~Uzyj ~y~/g [slot] panel~w~ by zarzadzac grupa.", 5000);
  3685.                         }
  3686.                         return 1;
  3687.                 }
  3688.                 case D_USERS:
  3689.                 {
  3690.                         if(response)
  3691.                         {
  3692.                                 new uid = strval(inputtext);
  3693.                                 new num = random(6);
  3694.                                 new pass[32]; format(pass, sizeof(pass), "%d", num);
  3695.                                 UserCache[uid][uPass] = pass;
  3696.                                 new msg[128];
  3697.                                 format(msg, sizeof(msg), "Zresetowano hasło %s (%d): %s", UserCache[uid][uName], uid, pass);
  3698.                                 SendClientMessage(playerid, COLOR_WHITE, msg);
  3699.                         }
  3700.                         return 1;
  3701.                 }
  3702.                 case D_CHANGE_PASS:
  3703.                 {
  3704.                         if(response)
  3705.                         {
  3706.                                 if(strlen(inputtext) < 8 || strlen(inputtext) > 32)
  3707.                                 return ShowDialogChangePass(playerid);
  3708.                                 new newpass[32]; format(newpass, sizeof(newpass), inputtext);
  3709.                                 UserCache[pUID[playerid]][uPass] = newpass;
  3710.                                 TextDrawForPlayerEx(playerid, 1, "Haslo do konta zostalo zmienione pomyslnie.", 5000);
  3711.                                 LogoutPlayer(playerid);
  3712.                         }
  3713.                         return 1;
  3714.                 }
  3715.         }
  3716.         return 0;
  3717. }
  3718.  
  3719. stock ShowDialogSettings(playerid)
  3720. {
  3721.         new str[256];
  3722.         format(str, sizeof(str), ""HEX_WHITE"1\tZmień hasło logowania");
  3723.         return ShowPlayerDialog(playerid, D_SETTINGS, DIALOG_STYLE_LIST, "Ustawienia postaci", str , "Wybierz", "Anuluj");
  3724. }
  3725.  
  3726. stock ShowDialogConnects(playerid)
  3727. {
  3728.         new str[256];
  3729.         format(str, sizeof(str), "1\tFreeze przy przejściu: %s\n2\tCzat OOC: %s", UserCache[pUID[playerid]][uFreeze] ? (""HEX_GREEN"Tak") : (""HEX_RED"Nie"), UserCache[pUID[playerid]][uOOC] ? (""HEX_GREEN"Tak") : (""HEX_RED"Nie"));
  3730.         return ShowPlayerDialog(playerid, D_CONNECT, DIALOG_STYLE_LIST, "Przełączniki postaci", str , "Wybierz", "Anuluj");
  3731. }
  3732.  
  3733. stock LogoutPlayer(playerid)
  3734. {
  3735.         godmodecount[playerid]=0;
  3736.         new uid = pUID[playerid];
  3737.         for(new i=0; i<10; i++)
  3738.         {
  3739.                 if(IsPlayerAttachedObjectSlotUsed(playerid, i))
  3740.                 RemovePlayerAttachedObject(playerid, i);
  3741.         }
  3742.         if(UserCache[pUID[playerid]][uTutorial] == 0)
  3743.         {
  3744.                 GetPlayerPos(playerid, UserCache[uid][uSpawnX], UserCache[uid][uSpawnY], UserCache[uid][uSpawnZ]);
  3745.                 UserCache[uid][uSpawnVW] = GetPlayerVirtualWorld(playerid); // Saving player's position and virtual world
  3746.         }
  3747.         UserCache[uid][uOnline] = false;
  3748.         KillTimer(PlayerRepairingVehicle[playerid][repairTimer]);
  3749.         UserCache[uid][uBelts] = false;
  3750.         SetPlayerVirtualWorld(playerid, -1);
  3751.         DestroyPlayerTextDraws(playerid);
  3752.         PlayAudioStreamForPlayer(playerid, "http://k003.kiwi6.com/hotlink/ict12m0ifu/Legendary_Official_Audio_-_Welshly_Arms.mp3");
  3753.         ClearChat(playerid);
  3754.         TogglePlayerSpectating(playerid, 1);
  3755.         RandomCamera(playerid);
  3756.         SetPlayerColor(playerid, COLOR_BLACK);
  3757.         ShowDialogLogin(playerid);
  3758.         LoginAttempt[playerid] = 0;
  3759.  
  3760.         if(UserCache[pUID[playerid]][uTutorial] > 0) // Destroy Tutorial if is any
  3761.         {
  3762.                 KillTimer(ChooseSkinTimer[playerid]);
  3763.         }
  3764.         DestroyDynamic3DTextLabel(pDesc[playerid][dID]); // Destroy his description
  3765.         pDesc[playerid][dID] = Text3D:0;
  3766.         pDesc[playerid][dIsDescOnPlayer] = false;
  3767.         for(new i=1; i<LastiUID; i++)
  3768.         {
  3769.                 if(ItemCache[i][iOwner] == pUID[playerid])
  3770.                 {
  3771.                         if(ItemCache[i][iActive])
  3772.                         {
  3773.                                 if(ItemCache[i][iType] != 2)
  3774.                                 {
  3775.                                         if(ItemCache[i][iType] == 1)
  3776.                                         ResetPlayerWeapons(playerid);
  3777.                                         ItemCache[i][iActive]=0;
  3778.                                 }
  3779.                         }
  3780.                 }
  3781.         }
  3782.         for(new i=1; i < LastoUID; i++) // Clear object editor
  3783.         {
  3784.                 if(ObjectCache[i][oState] == 0)
  3785.                 {
  3786.                         if(ObjectCache[i][oPlayer] == playerid)
  3787.                         {
  3788.                                 ObjectCache[i][oPlayer] = -1;
  3789.                                 KillTimer(ObjectCache[i][oTimer]);
  3790.                                 ObjectCache[i][oTimer] = 0;
  3791.                                 break;
  3792.                         }
  3793.                 }
  3794.         }
  3795.         // Clear phone calling
  3796.         if(CallData[playerid][cCaller] != -1 && !CallData[playerid][cCalling])
  3797.         {
  3798.                 new callerid = CallData[playerid][cCaller];
  3799.                 SetPlayerSpecialAction(callerid, 13);
  3800.                 SendClientMessage(callerid, -1, "Rozmówca rozłączył się.");
  3801.                 CallData[callerid][cCaller] = -1;
  3802.         }
  3803.         CallData[playerid][cCalling] = 0;
  3804.         CallData[playerid][cCaller] = -1;
  3805.         pDuty[playerid] = 0; // aduty off
  3806.         pChoosingTxd[playerid] = 0;
  3807.         aduty[playerid] = 0;
  3808.         SetTimerEx("ClearPos", 60000*10, false, "i", pUID[playerid]);
  3809.         ac[playerid] = false;
  3810.         pUID[playerid] = 0;
  3811.         return 1;
  3812. }
  3813.  
  3814.  
  3815. stock ShowDialogChangePass(playerid)
  3816. return ShowPlayerDialog(playerid, D_CHANGE_PASS, DIALOG_STYLE_PASSWORD, "Zmień hasło", ""HEX_WHITE"Wprowadź nowe hasło do konta.\n\n1\tIlość znaków hasła musi mieścić się w przedziale "HEX_BLUE"8-32"HEX_WHITE".\n2\tHasło nie może zawierać polskich znaków.", "Zmien", "Anuluj");
  3817.  
  3818. stock ShowDialogCreateGroup(playerid)
  3819. return ShowPlayerDialog(playerid, D_CREATE_GROUP, DIALOG_STYLE_INPUT, "Stwórz grupę", ""HEX_WHITE"Podaj rodzaj oraz nazwę grupy.\nWzór: [liczba] [nazwa]\nGdzie:\n"HEX_RED"0"HEX_WHITE" - Party", "Stwórz", "Anuluj");
  3820.  
  3821. stock ShowDialogVCardAccept(playerid)
  3822. {
  3823.         new senderid = VCardSender[playerid];
  3824.         new header[64], str[128];
  3825.         format(header, sizeof(header), "Oferta od "HEX_YELLOW"%s", strreplace(PlayerName(senderid), '_', ' '));
  3826.         format(str, sizeof(str), ""HEX_YELLOW"%s"HEX_WHITE" wysyła Ci swój VCard.\nCzy akceptujesz tę ofertę?", strreplace(PlayerName(senderid), '_', ' '));
  3827.         return ShowPlayerDialog(playerid, D_VCARD_ACCEPT, DIALOG_STYLE_MSGBOX, header, str, "Tak", "Nie");
  3828. }
  3829.  
  3830. stock ShowDialogVCard(playerid)
  3831. {
  3832.         new Float:X, Float:Y, Float:Z, vw = GetPlayerVirtualWorld(playerid); GetPlayerPos(playerid, X, Y, Z);
  3833.         new list[256], info[256], count;
  3834.         for(new i; i<=GetPlayerPoolSize(); i++)
  3835.         {
  3836.                 if(IsPlayerConnected(i))
  3837.                 {
  3838.                         if(GetPlayerVirtualWorld(i) == vw)
  3839.                         {
  3840.                                 if(IsPlayerInRangeOfPoint(i, 5.0, X, Y, Z))
  3841.                                 {
  3842.                                         format(info, sizeof(info), "%d\t%s\n", i, strreplace(PlayerName(i), '_', ' '));
  3843.                                         strins(list, info, strlen(list));
  3844.                                         count++;
  3845.                                 }
  3846.                         }
  3847.                 }
  3848.         }
  3849.         if(count)
  3850.         return ShowPlayerDialog(playerid, D_VCARD, DIALOG_STYLE_LIST, "Telefon > Kontakty > Wyślij VCard", list, "Wyślij", "Anuluj");
  3851.         return ShowDialogInfo(playerid, "Musisz stać w pobliżu osoby z telefonem do, której chcesz wysłać VCard.");
  3852. }
  3853.  
  3854. stock ShowDialogVehicleGroup(playerid)
  3855. return ShowPlayerDialog(playerid, D_VEHICLE_GROUP, DIALOG_STYLE_INPUT, "Podpisz pojazd pod grupę", "Wpisz poniżej slot grupowy grupy pod jaką chcesz podpisać swój pojazd.\nPamiętaj, aby to zrobić musisz mieć odpowiednie uprawnienia nadane przez lidera wybranej grupy.", "Podpisz", "Anuluj");
  3856.  
  3857. stock ShowDialogGroupPanel(playerid)
  3858. {
  3859.         new uid = GetPVarInt(playerid, "iUID");
  3860.         new str[1000]; format(str, sizeof(str), ""HEX_WHITE"Informacje o grupie:\n\nNazwa grupy:\t%s\nUID grupy:\t%d\nKolor grupy:\t{%s}%s\nStan konta bankowego grupy:\t"HEX_GREEN"%d$\n"HEX_WHITE"---\n1\tZmień nazwę grupy\n2\tWyrzuć członka\n3\tPrzełącz czat grupowy OOC\n4\tPrzełącz czat grupowy IC\n5\tZmień uprawnienia członka\n6\t"HEX_RED"Usuń grupę\n7\tZmień kolor grupy",
  3861.         GroupCache[uid][gName], uid, GroupCache[uid][gColor], GroupCache[uid][gColor], GroupCache[uid][gBank]);
  3862.         return ShowPlayerDialog(playerid, D_GROUP_PANEL, DIALOG_STYLE_LIST, "Zarządzaj grupą", str, "Wybierz", "Anuluj");
  3863. }
  3864.  
  3865. stock ShowDialogRemoveContact(playerid)
  3866. {
  3867.         new uid = GetPVarInt(playerid, "iUID"), list[256], info[256], count;
  3868.         for(new i=1; i < LastContactUID; i++)
  3869.         {
  3870.                 if(ContactCache[i][cOwner] == ItemCache[uid][iVal])
  3871.                 {
  3872.                         if(!ContactCache[i][cState])
  3873.                         {
  3874.                                 format(info, sizeof(info), "%d\t%s\n", ContactCache[i][cNum], ContactCache[i][cName]);
  3875.                                 strins(list, info, strlen(list)); count++;
  3876.                         }
  3877.                 }
  3878.         }
  3879.         if(count)
  3880.         return ShowPlayerDialog(playerid, D_REMOVE_CONTACT, DIALOG_STYLE_LIST, "Telefon > Kontakty > Usuń kontakt", list, "Wybierz", "Anuluj");
  3881.         GameTextForPlayer(playerid, "~w~nie posiadasz zadnych kontaktow", 1500, 4);
  3882.         return ShowDialogContacts(playerid);
  3883. }
  3884.  
  3885. stock AddContact(owner, num, name[])
  3886. {
  3887.         new str[128]; format(str, sizeof(str), name);
  3888.         ContactCache[LastContactUID][cOwner] = owner;
  3889.         ContactCache[LastContactUID][cNum] = num;
  3890.         ContactCache[LastContactUID][cName] = str;
  3891.         ContactCache[LastContactUID][cState] = 0;
  3892.         LastContactUID++;
  3893. }
  3894.  
  3895. stock ShowDialogAddContact(playerid)
  3896. return ShowPlayerDialog(playerid, D_ADD_CONTACT, DIALOG_STYLE_INPUT, "Telefon > Kontakty > Dodaj nowy kontakt", ""HEX_WHITE"Dodaj nowy kontakt na wzór: "HEX_GREEN"[numer telefonu] [nazwa kontaktu]", "Dodaj", "Anuluj");
  3897.  
  3898. stock ShowDialogContacts(playerid)
  3899. return ShowPlayerDialog(playerid, D_CONTACTS, DIALOG_STYLE_LIST, "Telefon > Kontakty", "1\tZadzwoń do kontaktu\n2\tNumery alarmowe\n3\tDodaj nowy kontakt\n4\tWyślij VCard\n5\t"HEX_RED"Usuń kontakt", "Wybierz", "Anuluj");
  3900.  
  3901. stock PlayerPlaySoundInRange(playerid, soundid, Float:range)
  3902. {
  3903.         new Float:X, Float:Y, Float:Z, vw = GetPlayerVirtualWorld(playerid); GetPlayerPos(playerid, X, Y, Z);
  3904.         for(new i=0; i<=GetPlayerPoolSize(); i++)
  3905.         {
  3906.                 if(vw == GetPlayerVirtualWorld(i))
  3907.                 {
  3908.                         if(IsPlayerInRangeOfPoint(i, range, X, Y, Z))
  3909.                         {
  3910.                                 PlayerPlaySound(i, soundid, 0.0, 0.0, 0.0);
  3911.                         }
  3912.                 }
  3913.         }
  3914. }
  3915.  
  3916. forward GiveWeapon(playerid, weaponid, ammo);
  3917. public GiveWeapon(playerid, weaponid, ammo)
  3918. {
  3919.         GivePlayerWeapon(playerid, weaponid, ammo);
  3920. }
  3921.  
  3922. forward Calling(playerid);
  3923. public Calling(playerid)
  3924. {
  3925.         if(CallData[playerid][cCalling] > 0)
  3926.         {
  3927.                 PlayerPlaySound(CallData[playerid][cCaller], 16001, 0.0, 0.0, 0.0);
  3928.                 PlayerPlaySoundInRange(playerid, 23000, 12.0);
  3929.                 CallData[playerid][cCalling]--;
  3930.                 if(CallData[playerid][cCalling] == 0)
  3931.                 {
  3932.                         SetPlayerSpecialAction(CallData[playerid][cCaller], 13);
  3933.                         SendClientMessage(CallData[playerid][cCaller],COLOR_WHITE, "Rozmówca nie odebrał połączenia.");
  3934.                         for(new i=1; i<LastiUID; i++)
  3935.                         {
  3936.                                 if(ItemCache[i][iActive])
  3937.                                 {
  3938.                                         if(ItemCache[i][iType] == 2)
  3939.                                         {
  3940.                                                 if(ItemCache[i][iOwner] == pUID[CallData[playerid][cCaller]])
  3941.                                                 {
  3942.                                                         new msg[128];
  3943.                                                         format(msg, sizeof(msg), "Masz nieodebrane połączenie od numeru: %d", ItemCache[i][iVal]);
  3944.                                                         CallData[playerid][cCalling] = 0;
  3945.                                                         CallData[playerid][cCaller] = -1;
  3946.                                                         return SendClientMessage(playerid, COLOR_WHITE, msg);
  3947.                                                 }
  3948.                                         }
  3949.                                 }
  3950.                         }
  3951.                         return 1;
  3952.                 }
  3953.                 SetTimerEx("Calling", 3000, false, "i", playerid);
  3954.         }
  3955.         return 1;
  3956. }
  3957.  
  3958. stock ShowDialogCall(playerid)
  3959. return ShowPlayerDialog(playerid, D_CALL, DIALOG_STYLE_INPUT, "Telefon > Zadzwoń pod numer", "Wprowadź numer telefonu osoby do, której chcesz zadzwonić.\nNp. "HEX_GREEN"500914", "Zadzwoń", "Anuluj");
  3960.  
  3961. stock ShowDialogMessages(playerid)
  3962. {
  3963.         new uid = GetPVarInt(playerid, "iUID"), msg[256], list[256] = "#\tNumer tel.\tWiadomość\n", count;
  3964.         for(new i=1; i<LastMsgUID; i++)
  3965.         {
  3966.                 if(MsgCache[i][mReceiver] == ItemCache[uid][iVal])
  3967.                 {
  3968.                         count++;
  3969.                         format(msg, sizeof(msg), ""HEX_WHITE"%d\t%d\t%s\n", count, MsgCache[i][mSender], MsgCache[i][mText]);
  3970.                         strins(list, msg, strlen(list));
  3971.                 }
  3972.         }
  3973.         if(count != 0)
  3974.         return ShowPlayerDialog(playerid, D_MESSAGES, DIALOG_STYLE_TABLIST_HEADERS, "Telefon > Skrzynka odbiorcza", list, "Wybierz", "Wróć");
  3975.         else
  3976.         {
  3977.                 GameTextForPlayer(playerid, "~w~skrzynka odbiorcza jest pusta", 3000, 4);
  3978.                 return ShowDialogPhone(playerid);
  3979.         }
  3980. }
  3981.  
  3982. stock ShowDialogSMS(playerid)
  3983. return ShowPlayerDialog(playerid, D_SMS, DIALOG_STYLE_INPUT, "Telefon > Wyślij SMS", ""HEX_WHITE"Podaj numer na jaki chcesz wysłać wiadomość SMS, następnie jego treść.\nNp. "HEX_GREEN"523414 "HEX_WHITE"Cześć Lucy!", "Wyślij", "Anuluj");
  3984.  
  3985. stock SetPlayerCash(playerid, cash)
  3986. {
  3987.         UserCache[pUID[playerid]][uCash] += cash;
  3988.         GivePlayerMoney(playerid, cash);
  3989.         return 1;
  3990. }
  3991.  
  3992. stock CreateDoor(ownerid, outVW, type, Float:X, Float:Y, Float:Z)
  3993. {
  3994.         new VW=1, name[32];
  3995.         for(new i=1; i<LastdUID; i++)
  3996.         {
  3997.                 if(VW == DoorCache[i][dInsVW])
  3998.                 {
  3999.                         VW++;
  4000.                 }
  4001.         }
  4002.         DoorCache[LastdUID][dUID] = LastdUID;
  4003.         DoorCache[LastdUID][dType] = type;
  4004.         if(type)
  4005.         {
  4006.                 name = "Biznes";
  4007.                 DoorCache[LastdUID][dName] = name;
  4008.         }
  4009.         else
  4010.         {
  4011.                 name = "Dom";
  4012.                 DoorCache[LastdUID][dName] = name;
  4013.                 if(UserCache[pUID[ownerid]][uHouseSpawn] == 0)
  4014.                 {
  4015.                         UserCache[pUID[ownerid]][uHouseSpawn] = LastdUID;
  4016.                         SendClientMessage(ownerid, COLOR_GRAY, "Od teraz będziesz spawnować się w tym budynku.");
  4017.                 }
  4018.                 else
  4019.                 {
  4020.                         SendClientMessage(ownerid, COLOR_GRAY, "Jesteś zameldowany w jakimś innym budynku, nie będziesz spawnować się w tym.");
  4021.                 }
  4022.         }
  4023.         DoorCache[LastdUID][dPlayerUID] = pUID[ownerid];
  4024.         DoorCache[LastdUID][dGroupUID] = 0;
  4025.         DoorCache[LastdUID][dOutX] = X;
  4026.         DoorCache[LastdUID][dOutY] = Y;
  4027.         DoorCache[LastdUID][dOutZ] = Z;
  4028.         DoorCache[LastdUID][dInsVW] = VW;
  4029.         DoorCache[LastdUID][dInsX] = X;
  4030.         DoorCache[LastdUID][dInsY] = Y;
  4031.         DoorCache[LastdUID][dInsZ] = Z;
  4032.         DoorCache[LastdUID][dOutVW] = outVW;
  4033.         DoorCache[LastdUID][dDestroyed] = 0;
  4034.         DoorCache[LastdUID][dOpen] = 1;
  4035.         DoorCache[LastdUID][dVehicle] = 0;
  4036.         if(DoorCache[LastdUID][dType])
  4037.         DoorPickupID[LastdUID] = CreateDynamicPickup(1210, 2, X,Y, Z, DoorCache[LastdUID][dOutVW], 0, -1);
  4038.         else
  4039.         DoorPickupID[LastdUID] = CreateDynamicPickup(1273, 2, X, Y, Z, DoorCache[LastdUID][dOutVW], 0, -1);
  4040.         new url[256];
  4041.         format(url, sizeof(url), "");
  4042.         DoorCache[LastdUID][dUrl] = url;
  4043.         LastdUID++;
  4044. }
  4045.  
  4046. stock GetPickupModelFromGroupType(gtype)
  4047. {
  4048.         if(gtype == 0)
  4049.         return 1273;
  4050.         if(gtype == 1)
  4051.         return 1210;
  4052.         if(gtype == 2)
  4053.         return 11738;
  4054.         if(gtype == 3)
  4055.         return 1582;
  4056.         if(gtype == 4)
  4057.         return 1239;
  4058.         if(gtype == 5)
  4059.         return 1239;
  4060.         if(gtype == 6)
  4061.         return 1239;
  4062.         if(gtype == 7)
  4063.         return 1212;
  4064.         if(gtype == 8)
  4065.         return 1274;
  4066.         if(gtype == 9)
  4067.         return 1210;
  4068.         if(gtype == 10)
  4069.         return 1318;
  4070.         if(gtype == 11)
  4071.         return 1727;
  4072.         if(gtype == 12)
  4073.         return 1239;
  4074.         if(gtype == 13)
  4075.         return 1272;
  4076.         if(gtype == 14)
  4077.         return 11746;
  4078.         return 1239;
  4079. }
  4080.  
  4081. stock BackToMenu(playerid)
  4082. {
  4083.         if(UserExists(PlayerName(playerid)))
  4084.         ShowDialogLogin(playerid);
  4085.         else
  4086.         ShowDialogNotFound(playerid);
  4087. }
  4088.  
  4089. stock UserExists(name[])
  4090. {
  4091.         for(new i = 1; i < LastUID; i++)
  4092.         {
  4093.                 if(!strcmp(name, UserCache[i][uName], true))
  4094.                 {
  4095.                         return 1;
  4096.                 }
  4097.         }
  4098.         return 0;
  4099. }
  4100.  
  4101. stock PlayerName(playerid)
  4102. {
  4103.         new name[MAX_PLAYER_NAME];
  4104.         GetPlayerName(playerid, name, sizeof(name));
  4105.         return name;
  4106. }
  4107.  
  4108. stock UserPath(id)
  4109. {
  4110.         new path[64];
  4111.         format(path, sizeof(path), FOLDER_USERS"%d.ini", id);
  4112.         return path;
  4113. }
  4114.  
  4115. stock Isnull(string[])
  4116. return !strlen(string);
  4117.  
  4118. stock LoadAccounts()
  4119. {
  4120.         new pass[32];
  4121.         new name[MAX_PLAYER_NAME];
  4122.         new count;
  4123.         new reason[128];
  4124.         for(new i=1; i < LastUID; i++)
  4125.         {
  4126.                 if(!dfile_FileExists(UserPath(i)))
  4127.                 continue;
  4128.                 dfile_Open(UserPath(i));
  4129.                 format(name, sizeof(name), dfile_ReadString("Name"));
  4130.                 UserCache[i][uName] = name;
  4131.                 format(pass, sizeof(pass), dfile_ReadString("Pass"));
  4132.                 UserCache[i][uPass] = pass;
  4133.                 UserCache[i][uBornDate] = dfile_ReadInt("BornDate");
  4134.                 UserCache[i][uUID] = dfile_ReadInt("UID");
  4135.                 UserCache[i][uSkin] = dfile_ReadInt("Skin");
  4136.                 UserCache[i][uHealth] = dfile_ReadFloat("Health");
  4137.                 UserCache[i][uCash] = dfile_ReadInt("Cash");
  4138.                 UserCache[i][uTutorial] = dfile_ReadInt("Tutorial");
  4139.                 UserCache[i][uStrenght] = dfile_ReadInt("Strenght");
  4140.                 UserCache[i][uRank] = dfile_ReadInt("Rank");
  4141.                 UserCache[i][uBW] = dfile_ReadInt("BW");
  4142.                 UserCache[i][uSpawnX] = dfile_ReadFloat("SpawnX");
  4143.                 UserCache[i][uSpawnY] = dfile_ReadFloat("SpawnY");
  4144.                 UserCache[i][uSpawnZ] = dfile_ReadFloat("SpawnZ");
  4145.                 UserCache[i][uAJ] = dfile_ReadInt("AJ");
  4146.                 UserCache[i][uBWReason] = dfile_ReadInt("BWReason");
  4147.                 UserCache[i][uGroup] = dfile_ReadInt("Group");
  4148.                 UserCache[i][uGroup2] = dfile_ReadInt("Group2");
  4149.                 UserCache[i][uGroup3] = dfile_ReadInt("Group3");
  4150.                 UserCache[i][uGroupMapper] = dfile_ReadBool("GroupMapper");
  4151.                 UserCache[i][uGroupMapper2] = dfile_ReadBool("GroupMapper2");
  4152.                 UserCache[i][uGroupMapper3] = dfile_ReadBool("GroupMapper3");
  4153.                 UserCache[i][uGroupDuty] = dfile_ReadInt("GroupDuty");
  4154.                 UserCache[i][uGroupDuty2] = dfile_ReadInt("GroupDuty2");
  4155.                 UserCache[i][uGroupDuty] = dfile_ReadInt("GroupDuty3");
  4156.                 UserCache[i][uH] = dfile_ReadInt("H");
  4157.                 UserCache[i][uMin] = dfile_ReadInt("Min");
  4158.                 UserCache[i][uSP] = dfile_ReadInt("SP");
  4159.                 UserCache[i][uHouseSpawn] = dfile_ReadInt("HouseSpawn");
  4160.                 UserCache[i][uBank] = dfile_ReadInt("Bank");
  4161.                 UserCache[i][uMapper] = dfile_ReadBool("Mapper");
  4162.                 UserCache[i][uSpawnVW] = dfile_ReadInt("SpawnVW");
  4163.                 UserCache[i][uID] = dfile_ReadInt("ID");
  4164.                 UserCache[i][uDrivingLicense] = dfile_ReadInt("DrivingLicense");
  4165.                 UserCache[i][uBankAccount] = dfile_ReadInt("BankAccount");
  4166.                 UserCache[i][uBan] = dfile_ReadInt("Ban");
  4167.                 UserCache[i][uBanHour] = dfile_ReadInt("BanHour");
  4168.                 UserCache[i][uBanMin] = dfile_ReadInt("BanMin");
  4169.                 format(reason, sizeof(reason), dfile_ReadString("BanReason"));
  4170.                 UserCache[i][uBanReason] = reason;
  4171.                 UserCache[i][uBanYear] = dfile_ReadInt("BanYear");
  4172.                 UserCache[i][uBanMonth] = dfile_ReadInt("BanMonth");
  4173.                 UserCache[i][uBanDay] = dfile_ReadInt("BanDay");
  4174.                 UserCache[i][uLastLogin] = dfile_ReadInt("LastLogin");
  4175.                 UserCache[i][uFreeze] = dfile_ReadBool("Freeze");
  4176.                 UserCache[i][uOOC] = dfile_ReadBool("OOC");
  4177.                 UserCache[i][uAchievementManDown] = dfile_ReadBool("AchievementManDown");
  4178.                 dfile_CloseFile();
  4179.                 count++;
  4180.         }
  4181.         printf("[SYSTEM] Loaded %d accounts.", count);
  4182. }
  4183.  
  4184. stock SaveAccounts()
  4185. {
  4186.         for(new i=1; i < LastUID; i++)
  4187.         {
  4188.                 if(!dfile_FileExists(UserPath(i)))
  4189.                 {
  4190.                         dfile_Create(UserPath(i));
  4191.                 }
  4192.                 dfile_Open(UserPath(i));
  4193.                 dfile_WriteString("Name", UserCache[i][uName]);
  4194.                 dfile_WriteString("Pass", UserCache[i][uPass]);
  4195.                 dfile_WriteInt("UID", UserCache[i][uUID]);
  4196.                 dfile_WriteInt("Skin", UserCache[i][uSkin]);
  4197.                 dfile_WriteFloat("Health", UserCache[i][uHealth]);
  4198.                 dfile_WriteInt("Cash", UserCache[i][uCash]);
  4199.                 dfile_WriteInt("Tutorial", UserCache[i][uTutorial]);
  4200.                 dfile_WriteInt("Strenght", UserCache[i][uStrenght]);
  4201.                 dfile_WriteInt("Rank", UserCache[i][uRank]);
  4202.                 dfile_WriteInt("BornDate", UserCache[i][uBornDate]);
  4203.                 dfile_WriteInt("BW", UserCache[i][uBW]);
  4204.                 dfile_WriteFloat("SpawnX", UserCache[i][uSpawnX]);
  4205.                 dfile_WriteFloat("SpawnY", UserCache[i][uSpawnY]);
  4206.                 dfile_WriteFloat("SpawnZ", UserCache[i][uSpawnZ]);
  4207.                 dfile_WriteInt("BWReason", UserCache[i][uBWReason]);
  4208.                 dfile_WriteInt("AJ", UserCache[i][uAJ]);
  4209.                 dfile_WriteInt("Group", UserCache[i][uGroup]);
  4210.                 dfile_WriteInt("Group2", UserCache[i][uGroup2]);
  4211.                 dfile_WriteInt("Group3", UserCache[i][uGroup3]);
  4212.                 dfile_WriteBool("GroupMapper", UserCache[i][uGroupMapper]);
  4213.                 dfile_WriteBool("GroupMapper2", UserCache[i][uGroupMapper2]);
  4214.                 dfile_WriteBool("GroupMapper3", UserCache[i][uGroupMapper3]);
  4215.                 dfile_WriteInt("GroupDuty", UserCache[i][uGroupDuty]);
  4216.                 dfile_WriteInt("GroupDuty2", UserCache[i][uGroupDuty2]);
  4217.                 dfile_WriteInt("GroupDuty3", UserCache[i][uGroupDuty3]);
  4218.                 dfile_WriteInt("Min", UserCache[i][uMin]);
  4219.                 dfile_WriteInt("H", UserCache[i][uH]);
  4220.                 dfile_WriteInt("SP", UserCache[i][uSP]);
  4221.                 dfile_WriteInt("HouseSpawn", UserCache[i][uHouseSpawn]);
  4222.                 dfile_WriteInt("Bank", UserCache[i][uBank]);
  4223.                 dfile_WriteBool("Mapper", UserCache[i][uMapper]);
  4224.                 dfile_WriteInt("SpawnVW", UserCache[i][uSpawnVW]);
  4225.                 dfile_WriteInt("DrivingLicense", UserCache[i][uDrivingLicense]);
  4226.                 dfile_WriteInt("ID", UserCache[i][uID]);
  4227.                 dfile_WriteInt("BankAccount", UserCache[i][uBankAccount]);
  4228.                 dfile_WriteInt("Ban", UserCache[i][uBan]);
  4229.                 dfile_WriteInt("BanHour", UserCache[i][uBanHour]);
  4230.                 dfile_WriteInt("BanMin", UserCache[i][uBanMin]);
  4231.                 dfile_WriteString("BanReason", UserCache[i][uBanReason]);
  4232.                 dfile_WriteInt("BanYear", UserCache[i][uBanYear]);
  4233.                 dfile_WriteInt("BanMonth", UserCache[i][uBanMonth]);
  4234.                 dfile_WriteInt("BanDay", UserCache[i][uBanDay]);
  4235.                 dfile_WriteInt("LastLogin", UserCache[i][uLastLogin]);
  4236.                 dfile_WriteBool("Freeze", UserCache[i][uFreeze]);
  4237.                 dfile_WriteBool("OOC", UserCache[i][uOOC]);
  4238.                 dfile_WriteBool("AchievementManDown", UserCache[i][uAchievementManDown]);
  4239.                 dfile_SaveFile();
  4240.                 dfile_CloseFile();
  4241.         }
  4242. }
  4243.  
  4244. stock LoadUIDs()
  4245. {
  4246.         if(dfile_FileExists(UID_FILE))
  4247.         {
  4248.                 dfile_Open(UID_FILE);
  4249.                 LastUID = dfile_ReadInt("UID");
  4250.                 LastdUID = dfile_ReadInt("dUID");
  4251.                 LastiUID = dfile_ReadInt("iUID");
  4252.                 LastMsgUID = dfile_ReadInt("MsgUID");
  4253.                 LastContactUID = dfile_ReadInt("ContactUID");
  4254.                 LastgUID = dfile_ReadInt("gUID");
  4255.                 LastoUID = dfile_ReadInt("oUID");
  4256.                 LasttUID = dfile_ReadInt("tUID");
  4257.                 LastvUID = dfile_ReadInt("vUID");
  4258.                 LastaUID = dfile_ReadInt("aUID");
  4259.                 dfile_CloseFile();
  4260.         }
  4261. }
  4262.  
  4263. stock SaveUIDs()
  4264. {
  4265.         if(dfile_FileExists(UID_FILE))
  4266.         {
  4267.                 dfile_Open(UID_FILE);
  4268.                 dfile_WriteInt("UID", LastUID);
  4269.                 dfile_WriteInt("dUID", LastdUID);
  4270.                 dfile_WriteInt("iUID", LastiUID);
  4271.                 dfile_WriteInt("MsgUID", LastMsgUID);
  4272.                 dfile_WriteInt("ContactUID", LastContactUID);
  4273.                 dfile_WriteInt("gUID", LastgUID);
  4274.                 dfile_WriteInt("oUID", LastoUID);
  4275.                 dfile_WriteInt("tUID", LasttUID);
  4276.                 dfile_WriteInt("vUID", LastvUID);
  4277.                 dfile_WriteInt("aUID", LastaUID);
  4278.                 dfile_SaveFile();
  4279.                 dfile_CloseFile();
  4280.         }
  4281. }
  4282.  
  4283. stock ShowDialogLogin(playerid)
  4284. {
  4285.         new str[256];
  4286.         format(str, sizeof(str), ""HEX_PURPLE"Witaj na serwerze Szkodnik RolePlay!"HEX_WHITE"\n\nPostać "HEX_RED"%s"HEX_WHITE" została odnaleziona.\n\nZaloguj się podając poprawne hasło lub wybierz 'Zmień' jeśli chcesz zalogować się na inną postać.", PlayerName(playerid));
  4287.         ShowPlayerDialog(playerid, D_LOGIN, DIALOG_STYLE_PASSWORD, "Logowanie", str, "Zaloguj", "Zmień");
  4288.         return 1;
  4289. }
  4290.  
  4291. stock ShowDialogNotFound(playerid)
  4292. {
  4293.         new str[256];format(str, sizeof(str), ""HEX_WHITE"Postać "HEX_RED"%s"HEX_WHITE" nie została odnaleziona.\n\nMożesz wyszukać postać już istniejącą lub stworzyć zupełnie nową.\n\n"HEX_PURPLE"1\tWybierz przycisk stwórz by stworzyć nową postać.\n2\tWybierz przycisk zmień by znaleźć postać już istniejącą.", PlayerName(playerid));
  4294.         return ShowPlayerDialog(playerid, D_NOTFOUND, DIALOG_STYLE_MSGBOX, "Stwórz lub zmień postać", str, "Stwórz", "Zmień");
  4295. }
  4296.  
  4297. stock ShowDialogFind(playerid)
  4298. return ShowPlayerDialog(playerid, D_FIND, DIALOG_STYLE_INPUT, "Wybór postaci", ""HEX_PURPLE"Witaj na serwerze Szkodnik RolePlay!\n\n"HEX_WHITE"Wprowadź nazwę postaci w formacie: "HEX_RED"Imie_Nazwisko"HEX_WHITE" by wyszukać już istniejącą postać.\n\nWybierz drugą opcje by stworzyć nową postać.", "Zmień", "Stwórz");
  4299.  
  4300. stock ShowDialogCreate(playerid)
  4301. return ShowPlayerDialog(playerid, D_CREATE, DIALOG_STYLE_INPUT, "Wpisz dane postaci", "Aby utworzyć nową postać wpisz poniżej jej dane w formacie:\n\n"HEX_RED"[Imie_Nazwisko]\t[Data urodzenia]\t[Płeć]\n\n"HEX_WHITE"Z czego płeć to: m - mężczyzna oraz k - kobieta\n\nPrzykład: Josh_Smith 1990 m", "Wprowadź", "Anuluj");
  4302.  
  4303. stock ShowDialogPassword(playerid)
  4304. {
  4305.         ShowPlayerDialog(playerid, D_PASS, DIALOG_STYLE_PASSWORD, "Wprowadź hasło", ""HEX_WHITE"Wpisz poniżej hasło za pomocą którego będziesz logować się do swojej postaci.\n\n"HEX_PURPLE"Prosimy nie wpisywać haseł zawierających polskie znaki, gdyż logowanie potem będzie nie możliwe.", "Stwórz", "Anuluj");
  4306.         return 1;
  4307. }
  4308.  
  4309. stock CreateUser(username[], userpass[], usersex[], userBornDate)
  4310. {
  4311.         new name[MAX_PLAYER_NAME], pass[32];
  4312.         format(name, sizeof(name), username);
  4313.         format(pass, sizeof(pass), userpass);
  4314.         UserCache[LastUID][uName] = name;
  4315.         UserCache[LastUID][uPass] = pass;
  4316.         if(usersex[0] == 'm')
  4317.         UserCache[LastUID][uSex] = 0;
  4318.         else
  4319.         UserCache[LastUID][uSex] = 1;
  4320.         UserCache[LastUID][uUID] = LastUID;
  4321.         if(usersex[0] == 'k')
  4322.         {
  4323.                 UserCache[LastUID][uSkin] = 12;
  4324.         }
  4325.         else
  4326.         {
  4327.                 UserCache[LastUID][uSkin] = 7;
  4328.         }
  4329.         UserCache[LastUID][uBornDate] = userBornDate;
  4330.         UserCache[LastUID][uHealth] = 100.0;
  4331.         UserCache[LastUID][uCash] = 50;
  4332.         UserCache[LastUID][uTutorial] = 2;
  4333.         UserCache[LastUID][uStrenght] = 100;
  4334.         UserCache[LastUID][uRank] = 0;
  4335.         UserCache[LastUID][uBW] = 0;
  4336.         UserCache[LastUID][uSpawnVW] = 0;
  4337.         UserCache[LastUID][uSpawnX] = -128.0586,
  4338.         UserCache[LastUID][uSpawnY] = 1267.5101;
  4339.         UserCache[LastUID][uSpawnZ] =18.9242;
  4340.         UserCache[LastUID][uAJ] = 0;
  4341.         UserCache[LastUID][uBWReason] = 0;
  4342.         UserCache[LastUID][uGroup] = 0;
  4343.         UserCache[LastUID][uGroup2] = 0;
  4344.         UserCache[LastUID][uGroup3] = 0;
  4345.         UserCache[LastUID][uGroupDuty] = 0;
  4346.         UserCache[LastUID][uGroupDuty2] = 0;
  4347.         UserCache[LastUID][uGroupDuty3] = 0;
  4348.         UserCache[LastUID][uH] = 0;
  4349.         UserCache[LastUID][uMin] = 0;
  4350.         UserCache[LastUID][uSP] = 0;
  4351.         UserCache[LastUID][uHouseSpawn] = 0;
  4352.         UserCache[LastUID][uMapper] = false;
  4353.         UserCache[LastUID][uID] = 0;
  4354.         UserCache[LastUID][uDrivingLicense] = 0;
  4355.         UserCache[LastUID][uBankAccount] = 0;
  4356.         LastUID++;
  4357. }
  4358.  
  4359. stock PlayerIP(playerid)
  4360. {
  4361.         new IP[128];
  4362.         GetPlayerIp(playerid, IP, sizeof(IP));
  4363.         return IP;
  4364. }
  4365.  
  4366. stock SetSpawnInfoFix(playerid, team, skinid, Float:X, Float:Y, Float:Z)
  4367. {
  4368.         SetSpawnInfo(playerid, team, skinid, X, Y, Z, 0.0, 0, 0, 0, 0, 0, 0);
  4369.         return SetPlayerTeam(playerid, team); // Set Player Team bug fix
  4370. }
  4371.  
  4372.  
  4373. stock LoginPlayer(playerid, UID)
  4374. {
  4375.         SetPVarInt(playerid, "Spec", -1); // Nobody specs him
  4376.         pUID[playerid] = UID;
  4377.         new y, m, d, todays;
  4378.         todays = getdate(y, m, d);
  4379.         UserCache[UID][uLastLogin] = todays;
  4380.         UserCache[UID][uOnline] = true;
  4381.         TextDrawShowForPlayer(playerid, RadioTextDraw);
  4382.         StopAudioStreamForPlayer(playerid);
  4383.         SetPlayerScore(playerid, UserCache[pUID[playerid]][uSP]);
  4384.         CallData[playerid][cCaller] = -1;
  4385.         CallData[playerid][cCalling] = 0;
  4386.         SetPlayerColor(playerid, LOGGED_COLOR);
  4387.         CreatePlayerTextDraws(playerid);
  4388.        
  4389.         new str[128];
  4390.         format(str, sizeof(str), "> Witaj, %s! "HEX_GRAY"(UID: %d, ID: %d)"HEX_WHITE". Życzymy miłej gry!", PlayerName(playerid), UID, playerid);
  4391.         ClearChat(playerid);
  4392.         SendClientMessage(playerid, COLOR_WHITE, str);
  4393.         KillTimer(ChooseSkinTimer[playerid]);
  4394.         if(UserCache[UID][uTutorial] == 2)
  4395.         {
  4396.                 SetPlayerFreeVW(playerid);
  4397.                 SetSpawnInfoFix(playerid, 0, UserCache[pUID[playerid]][uSkin], 1016.1049,-1313.0197,13.5469);
  4398.         }
  4399.         if(UserCache[UID][uAJ] > 0)
  4400.         {
  4401.                 SetPlayerFreeVW(playerid);
  4402.                 format(str, sizeof(str), "~r~AJ: %d min", UserCache[UID][uAJ]);
  4403.                 PlayerTextDrawSetString(playerid, AJTextDraw[playerid], str);
  4404.                 PlayerTextDrawShow(playerid, AJTextDraw[playerid]);
  4405.                 SetSpawnInfoFix(playerid, 0, UserCache[pUID[playerid]][uSkin], 1175.3094,-1179.7953,87.0432);
  4406.         }
  4407.         else if(UserCache[UID][uSpawnX] != 0 && UserCache[UID][uSpawnY] != 0 && UserCache[UID][uSpawnZ] != 0)
  4408.         {
  4409.                 Freeze(playerid, 3000);
  4410.                 SetSpawnInfoFix(playerid, 0, UserCache[UID][uSkin],UserCache[UID][uSpawnX], UserCache[UID][uSpawnY], UserCache[UID][uSpawnZ]);
  4411.                 SetPlayerVirtualWorld(playerid, UserCache[UID][uSpawnVW]);
  4412.         }
  4413.         else if(UserCache[UID][uHouseSpawn] != 0)
  4414.         {
  4415.                 new duid = UserCache[UID][uHouseSpawn];
  4416.                 SetSpawnInfoFix(playerid, 0, UserCache[UID][uSkin],DoorCache[duid][dInsX], DoorCache[duid][dInsY], DoorCache[duid][dInsZ]);
  4417.                 SetPlayerVirtualWorld(playerid, DoorCache[duid][dInsVW]);
  4418.         }
  4419.         else
  4420.         {
  4421.                 SetSpawnInfoFix(playerid, 0, UserCache[UID][uSkin],-128.0586,1267.5101,18.9242);
  4422.                 SetPlayerVirtualWorld(playerid, 0);
  4423.         }
  4424.         TogglePlayerSpectating(playerid, 0); // Spawn
  4425.         if(UserCache[UID][uBW] > 0)
  4426.         {
  4427.                 TogglePlayerControllable(playerid, 0);
  4428.                 ApplyAnimation(playerid, "crack", "crckdeth1", 4.1, 0, 0, 0, 1, 0, 0);
  4429.                 SetPlayerCameraPos(playerid, UserCache[UID][uSpawnX], UserCache[UID][uSpawnY], UserCache[UID][uSpawnZ]+10.0);
  4430.                 SetPlayerCameraLookAt(playerid, UserCache[UID][uSpawnX], UserCache[UID][uSpawnY], UserCache[UID][uSpawnZ], CAMERA_CUT);
  4431.                 new msg[64];
  4432.                 format(msg, sizeof(msg),  "Stan nieprzytomnosci przez: %dmin", UserCache[UID][uBW]);
  4433.                 PlayerTextDrawShow(playerid, BWTextDraw[playerid]);
  4434.         }
  4435.         else if(UserCache[UID][uTutorial])
  4436.         {
  4437.                 TogglePlayerControllable(playerid, 0);
  4438.                 SetPlayerPos(playerid, -128.0586,1267.5101,18.9242);
  4439.                 SetPlayerCameraPos(playerid, -127.2054,1263.7201,19.0055);
  4440.                 SetPlayerCameraLookAt(playerid,  -128.0586,1267.5101,18.9242);
  4441.                 SetPlayerFacingAngle(playerid, 182.2969);
  4442.                 ChooseSkinTimer[playerid] = SetTimerEx("ChooseSkin", 120, true, "i", playerid);
  4443.                 PlayerTextDrawSetString(playerid, BottomTextDraw[playerid], "~y~Wyglad postaci.~w~~n~~n~~b~~h~~h~~h~lewo ~w~poprzedni skin~n~~b~~h~~h~~h~prawo ~w~nastepny skin~n~~n~~b~~h~~h~~h~LALT~w~ akceptuj");
  4444.                 PlayerTextDrawShow(playerid, BottomTextDraw[playerid]);
  4445.         }
  4446.         DestroyDynamic3DTextLabel(pNick[playerid][nID]); // Remove nickname on his ID
  4447.         if(UserCache[pUID[playerid]][uRank] != 0)
  4448.         pNick[playerid][nColor] = COLOR_WHITE;
  4449.         else
  4450.         pNick[playerid][nColor] = PLAYER_NORMAL_COLOR;
  4451.  
  4452.         pNick[playerid][nID] = CreateDynamic3DTextLabel(" ", pNick[playerid][nColor], 0.0, 0.0, 0.2, 10.0, playerid, INVALID_VEHICLE_ID, 1, -1, -1, -1);
  4453.  
  4454.         SetTimerEx("GiveScorePerHour", 60000*60, false, "i", playerid);
  4455.  
  4456.         if(UserCache[pUID[playerid]][uRank] != 0)
  4457.         {
  4458.                 aduty[playerid] = 1;
  4459.                 format(str, sizeof(str), "~w~wchodzisz na sluzbe:~n~~b~~h~~h~~h~%s", GetRankName(UserCache[pUID[playerid]][uRank]));
  4460.                 GameTextForPlayer(playerid, str, 3000, 4);
  4461.         }
  4462.         UpdatePlayerName(playerid);
  4463.         return 1;
  4464. }
  4465.  
  4466. forward GiveScorePerHour(playerid);
  4467. public GiveScorePerHour(playerid)
  4468. {
  4469.         if(IsPlayerConnected(playerid))
  4470.         {
  4471.                 UserCache[pUID[playerid]][uSP] += 30;
  4472.                 SetPlayerScore(playerid, UserCache[pUID[playerid]][uSP]);
  4473.                 if(!UserCache[pUID[playerid]][uBankAccount])
  4474.                 TextDrawForPlayerEx(playerid, 1, "Nie mozesz otrzymac cogodzinnego zasilku~n~poniewaz nie posiadasz konta bankowego.~n~Udaj sie do banku!", 10000);
  4475.                 else
  4476.                 {
  4477.                         new msg[128]; format(msg, sizeof(msg), "#Bank "HEX_WHITE"Na konto wypłynęła kwota 40$ z cogodzinnego zasiłku.");
  4478.                         SendClientMessage(playerid, COLOR_GREEN, msg);
  4479.                         UserCache[pUID[playerid]][uBank] += 40;
  4480.                         SetTimerEx("GiveScorePerHour", 60000*60, false, "i", playerid);
  4481.                 }
  4482.         }
  4483. }
  4484.  
  4485. stock ReturnHour()
  4486. {
  4487.         new h, m, s;
  4488.         gettime(h, m ,s);
  4489.         return h;
  4490. }
  4491.  
  4492. stock ReturnMinute()
  4493. {
  4494.         new h, m, s;
  4495.         gettime(h,m,s);
  4496.         return m;
  4497. }
  4498.  
  4499. stock UpdatePlayerName(playerid)
  4500. {
  4501.         new name[525], uid = pUID[playerid];
  4502.         format(name, sizeof(name), "%s, %d", strreplace(PlayerName(playerid), '_', ' '), playerid);
  4503.         if(UserCache[uid][uBW])
  4504.         {
  4505.                 format(name, sizeof(name), "%s, %d\n(%s)", RPName(playerid), playerid, GetBWReason(playerid));
  4506.                 if(UserCache[uid][uBelts])
  4507.                 format(name, sizeof(name), "%s, %d\n(%s, %s)", strreplace(PlayerName(playerid), '_', ' '), playerid,GetBWReason(playerid), IsHelmet(playerid) ? ("kask") : ("pasy"));
  4508.                 if(UserCache[uid][uAFK])
  4509.                 format(name, sizeof(name), "%s, %d\n(%s, %s, AFK od: %02d:%02d)", strreplace(PlayerName(playerid), '_', ' '), playerid,GetBWReason(playerid),IsHelmet(playerid) ? ("kask") : ("pasy"), ReturnHour(), ReturnMinute());
  4510.         }
  4511.         if(pDuty[playerid] != 0)
  4512.         {
  4513.                 if(UserCache[uid][uBelts])
  4514.                 {
  4515.                         format(name, sizeof(name), "%s, %d\n(%s)\n{%s}[%s]", strreplace(PlayerName(playerid), '_', ' '), playerid,IsHelmet(playerid) ? ("kask") : ("pasy"), GroupCache[pDuty[playerid]][gColor],GroupCache[pDuty[playerid]][gName]);
  4516.                         if(UserCache[uid][uAFK])
  4517.                         {
  4518.                                 format(name, sizeof(name), "%s, %d\n(%s, AFK od: %02d:%02d)\n{%s}[%s]", strreplace(PlayerName(playerid), '_', ' '), playerid, IsHelmet(playerid) ? ("kask") : ("pasy"), ReturnHour(), ReturnMinute(), GroupCache[pDuty[playerid]][gColor],GroupCache[pDuty[playerid]][gName]);
  4519.                         }
  4520.                 }
  4521.                 if(UserCache[uid][uAFK])
  4522.                 {
  4523.                         format(name, sizeof(name), "%s, %d\n(AFK od: %02d:%02d)\n{%s}[%s]", strreplace(PlayerName(playerid), '_', ' '), playerid, ReturnHour(), ReturnMinute(), GroupCache[pDuty[playerid]][gColor],GroupCache[pDuty[playerid]][gName]);
  4524.                 }
  4525.                 else
  4526.                 format(name, sizeof(name), "%s, %d\n{%s}[%s]", strreplace(PlayerName(playerid), '_', ' '), playerid, GroupCache[pDuty[playerid]][gColor],GroupCache[pDuty[playerid]][gName]);
  4527.         }
  4528.         if(UserCache[uid][uStrenght] >= 300)
  4529.         {
  4530.                 format(name, sizeof(name), "%s, %d\n(%s)", strreplace(PlayerName(playerid), '_', ' '),playerid, GetPlayerStrenghtName(playerid));
  4531.                 if(UserCache[uid][uBelts])
  4532.                 format(name, sizeof(name), "%s, %d\n(%s, %s)", strreplace(PlayerName(playerid), '_', ' '),playerid, GetPlayerStrenghtName(playerid), IsHelmet(playerid) ? ("kask") : ("pasy"));
  4533.                 if(UserCache[uid][uAFK])
  4534.                 format(name, sizeof(name), "%s, %d\n(%s, AFK od: %02d:%02d)", strreplace(PlayerName(playerid), '_', ' '),playerid, GetPlayerStrenghtName(playerid), ReturnHour(), ReturnMinute());
  4535.                 if(UserCache[uid][uBelts] && UserCache[uid][uAFK])
  4536.                 format(name, sizeof(name), "%s, %d\n(%s, %s, AFK od: %02d:%02d)", strreplace(PlayerName(playerid), '_', ' '),playerid, GetPlayerStrenghtName(playerid), IsHelmet(playerid) ? ("kask") : ("pasy"), ReturnHour(), ReturnMinute());
  4537.         }
  4538.         if(UserCache[uid][uStrenght] >= 300 && pDuty[playerid])
  4539.         {
  4540.                 format(name, sizeof(name), "%s, %d\n(%s)\n{%s}[%s]", strreplace(PlayerName(playerid), '_', ' '),playerid, GetPlayerStrenghtName(playerid), GroupCache[pDuty[playerid]][gColor], GroupCache[pDuty[playerid]][gName]);
  4541.                 if(UserCache[uid][uAFK])
  4542.                 format(name, sizeof(name), "%s, %d\n(%s, AFK od: %02d:%02d)\n{%s}[%s]", strreplace(PlayerName(playerid), '_', ' '),playerid, GetPlayerStrenghtName(playerid), ReturnHour(), ReturnMinute(), GroupCache[pDuty[playerid]][gColor], GroupCache[pDuty[playerid]][gName]);
  4543.                 if(UserCache[uid][uBelts])
  4544.                 format(name, sizeof(name), "%s, %d\n(%s, %s)\n{%s}[%s]", strreplace(PlayerName(playerid), '_', ' '),playerid, GetPlayerStrenghtName(playerid), IsHelmet(playerid) ? ("kask") : ("pasy"),GroupCache[pDuty[playerid]][gColor], GroupCache[pDuty[playerid]][gName]);
  4545.                 if(UserCache[uid][uBelts] && UserCache[uid][uAFK])
  4546.                 format(name, sizeof(name), "%s, %d\n(%s, %s, AFK od: %02d:%02d)\n{%s}[%s]", strreplace(PlayerName(playerid), '_', ' '),playerid, GetPlayerStrenghtName(playerid), IsHelmet(playerid) ? ("kask") : ("pasy"), ReturnHour(), ReturnMinute(), GroupCache[pDuty[playerid]][gColor], GroupCache[pDuty[playerid]][gName]);
  4547.  
  4548.         }
  4549.         if(UserCache[uid][uStrenght] >= 300 && UserCache[uid][uBW])
  4550.         {
  4551.                 format(name, sizeof(name), "%s, %d\n(%s, %s)", strreplace(PlayerName(playerid), '_', ' '),playerid, GetBWReason(playerid), GetPlayerStrenghtName(playerid));
  4552.                 if(UserCache[uid][uAFK])
  4553.                 format(name, sizeof(name), "%s, %d\n(%s, %s, %s, AFK od: %02d:%02d)", strreplace(PlayerName(playerid), '_', ' '),playerid, GetBWReason(playerid), GetPlayerStrenghtName(playerid), IsHelmet(playerid) ? ("kask") : ("pasy"), ReturnHour(), ReturnMinute());
  4554.                 if(UserCache[uid][uBelts])
  4555.                 format(name, sizeof(name), "%s, %d\n(%s, %s, %s)", strreplace(PlayerName(playerid), '_', ' '),playerid, GetBWReason(playerid), GetPlayerStrenghtName(playerid), IsHelmet(playerid) ? ("kask") : ("pasy"));
  4556.                 if(UserCache[uid][uBelts] && UserCache[uid][uAFK])
  4557.                 format(name, sizeof(name), "%s, %d\n(%s, %s, %s, AFK od: %02d:%02d)", strreplace(PlayerName(playerid), '_', ' '),playerid, GetBWReason(playerid), GetPlayerStrenghtName(playerid), IsHelmet(playerid) ? ("kask") : ("pasy"), ReturnHour(), ReturnMinute());
  4558.         }
  4559.         if(pDuty[playerid] && UserCache[uid][uBW])
  4560.         {
  4561.                 format(name, sizeof(name), "%s, %d\n(%s)\n{%s}[%s]", strreplace(PlayerName(playerid), '_', ' '),playerid, GetBWReason(playerid),GroupCache[pDuty[playerid]][gColor],GroupCache[pDuty[playerid]][gName]);
  4562.                 if(UserCache[uid][uAFK])
  4563.                 format(name, sizeof(name), "%s, %d\n(%s, AFK od %02d:%02d)\n{%s}[%s]", strreplace(PlayerName(playerid), '_', ' '),playerid, GetBWReason(playerid),ReturnHour(), ReturnMinute(), GroupCache[pDuty[playerid]][gColor],GroupCache[pDuty[playerid]][gName]);
  4564.                 if(UserCache[uid][uBelts])
  4565.                 format(name, sizeof(name), "%s, %d\n(%s, %s)\n{%s}[%s]", strreplace(PlayerName(playerid), '_', ' '),playerid, GetBWReason(playerid), IsHelmet(playerid) ? ("kask") : ("pasy"),GroupCache[pDuty[playerid]][gColor] ,GroupCache[pDuty[playerid]][gName]);
  4566.                 if(UserCache[uid][uBelts] && UserCache[uid][uAFK])
  4567.                 format(name, sizeof(name), "%s, %d\n(%s, %s, AFK od %02d:%02d)\n{%s}[%s]", strreplace(PlayerName(playerid), '_', ' '),playerid, GetBWReason(playerid),IsHelmet(playerid) ? ("kask") : ("pasy"),ReturnHour(), ReturnMinute(), GroupCache[pDuty[playerid]][gColor],GroupCache[pDuty[playerid]][gName]);
  4568.         }
  4569.         if(pDuty[playerid] && UserCache[uid][uBW] && UserCache[uid][uStrenght] >= 300)
  4570.         {
  4571.                 format(name, sizeof(name), "%s, %d\n(%s, %s)\n{%s}[%s]", strreplace(PlayerName(playerid), '_', ' '), playerid, GetBWReason(playerid),GetPlayerStrenghtName(playerid),GroupCache[pDuty[playerid]][gColor],GroupCache[pDuty[playerid]][gName]);
  4572.                 if(UserCache[uid][uAFK])
  4573.                 format(name, sizeof(name), "%s, %d\n(%s, %s, AFK od %02d:%02d)\n{%s}[%s]", strreplace(PlayerName(playerid), '_', ' '), playerid, GetBWReason(playerid),GetPlayerStrenghtName(playerid),ReturnHour(), ReturnMinute(), GroupCache[pDuty[playerid]][gColor],GroupCache[pDuty[playerid]][gName]);
  4574.                 if(UserCache[uid][uBelts])
  4575.                 format(name, sizeof(name), "%s, %d\n(%s, %s, %s)\n{%s}[%s]", strreplace(PlayerName(playerid), '_', ' '), playerid, GetBWReason(playerid),GetPlayerStrenghtName(playerid),IsHelmet(playerid) ? ("kask") : ("pasy"),GroupCache[pDuty[playerid]][gColor],GroupCache[pDuty[playerid]][gName]);
  4576.                 if(UserCache[uid][uBelts] && UserCache[uid][uAFK])
  4577.                 format(name, sizeof(name), "%s, %d\n(%s, %s, %s, AFK od %02d:%02d)\n{%s}[%s]", strreplace(PlayerName(playerid), '_', ' '), playerid, GetBWReason(playerid),GetPlayerStrenghtName(playerid),IsHelmet(playerid) ? ("kask") : ("pasy"),ReturnHour(), ReturnMinute(), GroupCache[pDuty[playerid]][gColor],GroupCache[pDuty[playerid]][gName]);
  4578.         }
  4579.         pNick[playerid][nColor] = PLAYER_NORMAL_COLOR;
  4580.  
  4581.         for(new i=1; i<LastiUID; i++)
  4582.         {
  4583.                 if(ItemCache[i][iOwner] == pUID[playerid])
  4584.                 {
  4585.                         if(ItemCache[i][iType] == 7)
  4586.                         {
  4587.                                 if(ItemCache[i][iActive])
  4588.                                 {
  4589.                                         new pos = strfind(name, ",", true);
  4590.                                         strdel(name, pos, pos+3);
  4591.                                 }
  4592.                         }
  4593.                 }
  4594.         }
  4595.         if(aduty[playerid] != 0)
  4596.         {
  4597.                 pNick[playerid][nColor] = COLOR_WHITE;
  4598.                 format(name, sizeof(name), "%s %s(%s, %d)", strreplace(PlayerName(playerid), '_', ' '), GetHexRankColor(UserCache[uid][uRank]), GetRankName(UserCache[uid][uRank]), playerid);
  4599.         }
  4600.         pNick[playerid][nStr] = name;
  4601.  
  4602.         UpdateDynamic3DTextLabelText(pNick[playerid][nID], pNick[playerid][nColor], name);
  4603.         return 1;
  4604. }
  4605.  
  4606. stock GetHexRankColor(rank)
  4607. {
  4608.         new hex[16];
  4609.         switch(rank)
  4610.         {
  4611.                 case 1: hex = "{FF00CC}";
  4612.                 case 2: hex = "{FF00FF}";
  4613.                 case 3: hex = "{FF0099}";
  4614.                 case 4: hex = "{660099}";
  4615.                 case 5: hex = "{6600FF}";
  4616.                 case 6: hex = "{CC0000}";
  4617.                 case 7: hex = "{990000}";
  4618.                 case 8: hex = "{FF0000}";
  4619.         }
  4620.         return hex;
  4621. }
  4622.  
  4623. stock GetRankName(rank)
  4624. {
  4625.         new name[16];
  4626.         switch(rank)
  4627.         {
  4628.                 case 1: name = "Supporter";
  4629.                 case 2: name = "Supporter 2";
  4630.                 case 3: name = "Supporter 3";
  4631.                 case 4: name = "GameMaster";
  4632.                 case 5: name = "SGM";
  4633.                 case 6: name = "Admin";
  4634.                 case 7: name = "SAdmin";
  4635.                 case 8: name = "Programista";
  4636.         }
  4637.         return name;
  4638. }
  4639.  
  4640. stock GetPlayerStrenghtName(playerid)
  4641. {
  4642.         new name[16], uid = pUID[playerid], strenght = UserCache[uid][uStrenght];
  4643.         if(UserCache[uid][uSex])
  4644.         {
  4645.                 if(strenght >= 300)
  4646.                 name = "wysportowana";
  4647.                 if(strenght >= 600)
  4648.                 name = "umięśniona";
  4649.                 if(strenght >= 900)
  4650.                 name = "muskularna";
  4651.         }
  4652.         else
  4653.         {
  4654.                 if(strenght >= 300)
  4655.                 name = "wysportowany";
  4656.                 if(strenght >= 600)
  4657.                 name = "umięśniony";
  4658.                 if(strenght >= 900)
  4659.                 name = "muskularny";
  4660.         }
  4661.         return name;
  4662. }
  4663.  
  4664. public OnPlayerGiveDamage(playerid, damagedid, Float:amount, weaponid, bodypart)
  4665. {
  4666.         if(GetPlayerWeapon(playerid) != 0)
  4667.         {
  4668.                 new bool:ischeater=true;
  4669.                 for(new i=1;i<LastiUID; i++)
  4670.                 {
  4671.                         if(ItemCache[i][iActive])
  4672.                         {
  4673.                                 if(ItemCache[i][iType] == 1)
  4674.                                 {
  4675.                                         if(ItemCache[i][iOwner] == pUID[playerid])
  4676.                                         {
  4677.                                                 if(GetPlayerWeapon(playerid) == ItemCache[i][iVal])
  4678.                                                 {
  4679.                                                         ischeater=false;
  4680.                                                         break;
  4681.                                                 }
  4682.                                         }
  4683.                                 }
  4684.                         }
  4685.                 }
  4686.                 if(ischeater == true)
  4687.                 {
  4688.                         new str[128]; format(str, sizeof(str), "Weapon Cheat (C) weaponid %d", GetPlayerWeapon(playerid));
  4689.                         return !KickPlayer(playerid, "System", str);
  4690.                 }
  4691.         }
  4692.         return 1;
  4693. }
  4694.  
  4695. forward SetSpawnPos(playerid);
  4696. public SetSpawnPos(playerid)
  4697. {
  4698.         SetPlayerInterior(playerid, 0);
  4699.         SetPlayerPos(playerid, 838.4644,-1346.0699,7.1787);
  4700.         SetPlayerVirtualWorld(playerid, 0);
  4701.         DestroyActor(JaneSmith[playerid]);
  4702.         DestroyDynamic3DTextLabel(JaneSmithLabel[playerid]);
  4703.         DisablePlayerCheckpoint(playerid);
  4704. }
  4705.  
  4706. new restarttime = 10, restartstr[64];
  4707.  
  4708. cmd:gmx (playerid, params[])
  4709. {
  4710.         if(UserCache[pUID[playerid]][uRank] < ADMINISTRATION)
  4711.         return 1;
  4712.         format(restartstr, sizeof(restartstr), "~w~restart serwera za:~n~ ~b~~h~%d~w~ sek", restarttime);
  4713.         GameTextForAll(restartstr, 1000, 4);
  4714.         restarttime--;
  4715.         SetTimer("RestartServer", 1000, true);
  4716.         return 1;
  4717. }
  4718.  
  4719. forward RestartServer();
  4720. public RestartServer()
  4721. {
  4722.         if(restarttime == 0)
  4723.         {
  4724.                 SendRconCommand("gmx");
  4725.                 return 1;
  4726.         }
  4727.         format(restartstr, sizeof(restartstr), "~w~restart serwera za:~n~ ~b~~h~%d~w~ sek", restarttime);
  4728.         GameTextForAll(restartstr, 1000, 4);
  4729.         restarttime--;
  4730.         return 1;
  4731. }
  4732. public OnPlayerCommandReceived(playerid, cmd[], params[], flags)
  4733. {
  4734.         if(!pUID[playerid])
  4735.         return 0;
  4736.         if(UserCache[pUID[playerid]][uRank])
  4737.         return 1;
  4738.         if(UserCache[pUID[playerid]][uAJ] > 0 && strcmp(cmd, "/w", true) || strcmp(cmd, "/re", true))
  4739.         return 1;
  4740.         if(!strcmp(cmd, "/krzeslo", true))
  4741.         {
  4742.                 if(UserCache[pUID[playerid]][uTutorial] == 2)
  4743.                 {
  4744.                         if(!IsPlayerInRangeOfPoint(playerid,0.5,2.7780,26.6538,1199.5938))
  4745.                         {
  4746.                                 GameTextForPlayer(playerid, "~r~wejdz w marker", 3000, 4);
  4747.                                 return 1;
  4748.                         }
  4749.                         SetPlayerFacingAngle(playerid, 9.086769);
  4750.                         SetPlayerPos(playerid, 2.6589,26.5511,1199.5938);
  4751.                         ApplyAnimation(playerid, "ped", "seat_down", 4.1, 0, 0, 0, 1, 0, 0);
  4752.                         TextDrawForPlayer(playerid, 0, "~b~~h~The tutoriale zjebale~n~~n~Zajebiscie. Ogarnales to. Zeby wstac musisz kliknac ~g~~h~LPM ~w~(lewy przycisk myszki).~n~Szersza liste animacji znajdziesz pod ~y~/anim~w~.");
  4753.                         PlayerPlaySound(playerid, 1149, 0.0, 0.0, 0.0);
  4754.                         UserCache[pUID[playerid]][uTutorial]--;
  4755.                         return 0;
  4756.                 }
  4757.                 return !ApplyAnimation(playerid, "int_office", "off_sit_idle_loop", 4.1, 0, 0, 0, 1, 0, 0);
  4758.         }
  4759.         if(!strcmp(cmd, "/napad", true))
  4760.         {
  4761.                 return !ApplyAnimation(playerid, "shop", "rob_loop", 4.1, 1, 0, 0, 1, 0, 0);
  4762.         }
  4763.         if(!strcmp(cmd, "/siad", true))
  4764.         {
  4765.                 return !ApplyAnimation(playerid, "beach", "parksit_m_loop", 4.1, 1, 0, 0, 1, 0, 0);
  4766.         }
  4767.         if(!strcmp(cmd, "/tancz", true))
  4768.         {
  4769.                 return !SetPlayerSpecialAction(playerid, SPECIAL_ACTION_DANCE1);
  4770.         }
  4771.         if(!strcmp(cmd, "/tancz2", true))
  4772.         {
  4773.                 return !SetPlayerSpecialAction(playerid, SPECIAL_ACTION_DANCE2);
  4774.         }
  4775.         if(!strcmp(cmd, "/tancz3", true))
  4776.         {
  4777.                 return !SetPlayerSpecialAction(playerid, SPECIAL_ACTION_DANCE3);
  4778.         }
  4779.         if(!strcmp(cmd, "/tancz4", true))
  4780.         {
  4781.                 return !SetPlayerSpecialAction(playerid, SPECIAL_ACTION_DANCE4);
  4782.         }
  4783.         if(!pUID[playerid])
  4784.         return 0;
  4785.         if(UserCache[pUID[playerid]][uAJ])
  4786.         return 0;
  4787.         return 1;
  4788. }
  4789.  
  4790. stock ShowDialogATM(playerid)
  4791. {
  4792.         new str[128]; format(str, sizeof(str), ""HEX_WHITE"Stan konta bankowego:\t"HEX_GREEN"%d$"HEX_WHITE"\n-\n1\tWypłać środki\n2\tWpłać środki", UserCache[pUID[playerid]][uBank]);
  4793.         return ShowPlayerDialog(playerid, D_ATM, DIALOG_STYLE_LIST, "Bankomat", str, "Wybierz", "Anuluj");
  4794. }
  4795.  
  4796. stock RPName(playerid)
  4797. {
  4798.         new name[MAX_PLAYER_NAME]; GetPlayerName(playerid, name, sizeof(name));
  4799.         for(new i; i<strlen(name); i++)
  4800.         {
  4801.                 if(name[i] == '_')
  4802.                 {
  4803.                         name[i] = ' ';
  4804.                 }
  4805.         }
  4806.         return name;
  4807. }
  4808.  
  4809. forward TurnOnEngine(vuid);
  4810. public TurnOnEngine(vuid)
  4811. {
  4812.         new playerid;
  4813.         for(new i; i<=GetPlayerPoolSize(); i++)
  4814.         {
  4815.                 if(IsPlayerConnected(i))
  4816.                 {
  4817.                         if(pUID[i] == VehicleCache[vuid][vOwner])
  4818.                         {
  4819.                                 playerid = i;
  4820.                         }
  4821.                 }
  4822.         }
  4823.         if(VehicleCache[vuid][vHP] <= 300.0)
  4824.         {
  4825.                 VehicleCache[vuid][vTimer] = 0;
  4826.                 PlayerTextDrawSetString(playerid, VehicleInfo[playerid], "~b~~h~~h~~h~LCTRL ~w~by uruchomic silnik~n~~b~~h~~h~~h~LPM ~w~by zapalic swiatla");
  4827.                 PlayerTextDrawShow(playerid, VehicleInfo[playerid]);
  4828.                 new msg[128]; format(msg, sizeof(msg), "* %s próbuje uruchomić silnik w %s, ale stan techniczny pojazdu na to nie pozwala. *", RPName(playerid), GetVehicleName(GetVehicleModel(GetPlayerVehicleID(playerid))));
  4829.                 ShowDialogInfo(playerid, "Stan techniczny pojazdu jest w kiepskim stanie.\nSkorzystaj z zestawu naprawczego by naprawić pojazd lub wezwij holownik.");
  4830.                 return SendPlayerMessageInRange(playerid, msg, DO_SHADE_1, DO_SHADE_2, DO_SHADE_3, DO_SHADE_4, DO_SHADE_5, DO_SHADE_6);
  4831.         }
  4832.         if(VehicleCache[vuid][vFuel] == 0)
  4833.         {
  4834.                 for(new i; i<=GetPlayerPoolSize(); i++)
  4835.                 {
  4836.                         if(IsPlayerConnected(i))
  4837.                         {
  4838.                                 if(pUID[i] == VehicleCache[vuid][vOwner])
  4839.                                 {
  4840.                                         VehicleCache[vuid][vTimer] = 0;
  4841.                                         PlayerTextDrawSetString(playerid, VehicleInfo[playerid], "~b~~h~~h~~h~LCTRL ~w~by uruchomic silnik~n~~b~~h~~h~~h~LPM ~w~by zapalic swiatla");
  4842.                                         PlayerTextDrawShow(playerid, VehicleInfo[playerid]);
  4843.                                         return TextDrawForPlayerEx(i, 1, "W pojezdzie skonczylo sie paliwo.", 3000);
  4844.                                 }
  4845.                         }
  4846.                 }
  4847.         }
  4848.         SetVehicleParamsEx(VehicleCache[vuid][vID], VehicleCache[vuid][vEngine]=1, VehicleCache[vuid][vLights], VehicleCache[vuid][vAlarm], VehicleCache[vuid][vDoors], VehicleCache[vuid][vBonnet],VehicleCache[vuid][vBoot], VehicleCache[vuid][vObjective]);
  4849.         VehicleCache[vuid][vTimer] = 0;
  4850.         return 1;
  4851. }
  4852.  
  4853. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  4854. {
  4855.         if(newkeys & KEY_ACTION)
  4856.         {
  4857.                 if(IsPlayerInAnyVehicle(playerid))
  4858.                 {
  4859.                         new vid = GetPlayerVehicleID(playerid), vuid = GetVehicleUID(vid);
  4860.                         if(GetVehicleModel(vid) == 481 || GetVehicleModel(vid) == 509 || GetVehicleModel(vid) == 510)
  4861.                         return 1;
  4862.                         if(pUID[playerid] != VehicleCache[vuid][vOwner])
  4863.                         return TextDrawForPlayerEx(playerid, 1, "Nie posiadasz kluczy do tego pojazdu.", 1500);
  4864.                         if(VehicleCache[vuid][vEngine])
  4865.                         {
  4866.                                 PlayerTextDrawSetString(playerid, VehicleInfo[playerid], "~b~~h~~h~~h~LCTRL ~w~by uruchomic silnik~n~~b~~h~~h~~h~LPM ~w~by zapalic swiatla");
  4867.                                 PlayerTextDrawShow(playerid, VehicleInfo[playerid]);
  4868.                                 SetVehicleParamsEx(vid, VehicleCache[vuid][vEngine]=0, VehicleCache[vuid][vLights], VehicleCache[vuid][vAlarm], VehicleCache[vuid][vDoors], VehicleCache[vuid][vBonnet],VehicleCache[vuid][vBoot], VehicleCache[vuid][vObjective]);
  4869.                                 return SendPlayerMe(playerid, "przekręca kluczyk w stacyjce gasi silnik.");
  4870.                         }
  4871.                         else if(VehicleCache[vuid][vTimer] == 0)
  4872.                         {
  4873.                                 VehicleCache[vuid][vTimer] = SetTimerEx("TurnOnEngine", 3000, false, "i", vuid);
  4874.                                 PlayerTextDrawSetString(playerid, VehicleInfo[playerid], "~y~Trwa uruchamianie silnika..");
  4875.                                 PlayerTextDrawShow(playerid, VehicleInfo[playerid]);
  4876.                                 return SendPlayerMe(playerid, "przekręca kluczyk w stacyjce i zapala.");
  4877.                         }
  4878.                 }
  4879.                 return 1;
  4880.         }
  4881.         if(newkeys & KEY_YES)
  4882.         {
  4883.                 if(GetPlayerCameraTargetVehicle(playerid) != INVALID_VEHICLE_ID)
  4884.                 {
  4885.                         new vuid = GetVehicleUID(GetPlayerCameraTargetVehicle(playerid));
  4886.                         new Float:vX, Float:vY, Float:vZ;
  4887.                         GetVehiclePos(GetPlayerCameraTargetVehicle(playerid), vX, vY, vZ);
  4888.                         if(IsPlayerInRangeOfPoint(playerid, 5.0, vX, vY, vZ))
  4889.                         {
  4890.                                 if(VehicleCache[vuid][vOwner] == pUID[playerid])
  4891.                                 {
  4892.                                         ApplyAnimation(playerid, "BD_FIRE", "wash_up", 4.1, 0, 0, 0, 0, 0, 0);
  4893.                                         PlayerPlaySound(playerid, 24600, 0.0, 0.0, 0.0);
  4894.                                         if(VehicleCache[vuid][vOpen])
  4895.                                         {
  4896.                                                 SendPlayerMe(playerid, "zamyka pojazd.");
  4897.                                                 VehicleCache[vuid][vOpen]=0;
  4898.                                                 return TextDrawForPlayerEx(playerid, 1, "Pojazd ~r~zamkniety.", 3000);
  4899.                                         }
  4900.                                         else
  4901.                                         {
  4902.                                                 SendPlayerMe(playerid, "otwiera pojazd.");
  4903.                                                 VehicleCache[vuid][vOpen]=1;
  4904.                                                 return TextDrawForPlayerEx(playerid, 1, "Pojazd ~g~otwarty.", 3000);
  4905.                                         }      
  4906.                                 }
  4907.                                 return TextDrawForPlayerEx(playerid, 1, "~r~~h~Nie posiadasz kluczykow do tego pojazdu.", 3000);
  4908.                         }
  4909.                         return 1;
  4910.                 }
  4911.                 if(IsPlayerInAnyVehicle(playerid))
  4912.                 {
  4913.                         if(GetPlayerVehicleSeat(playerid) == 0)
  4914.                         {
  4915.                                 new vid = GetPlayerVehicleID(playerid);
  4916.                                 new vuid = GetVehicleUID(vid);
  4917.                                 if(GetVehicleModel(vid) == 525)
  4918.                                 {
  4919.                                         if(VehicleCache[vuid][vEngine])
  4920.                                         {
  4921.                                                 if(IsTrailerAttachedToVehicle(vid))
  4922.                                                 {
  4923.                                                         new trailerid = GetVehicleTrailer(vid);
  4924.                                                         new traileruid = GetVehicleUID(trailerid);
  4925.                                                         GetVehiclePos(trailerid, VehicleCache[traileruid][vPosX], VehicleCache[traileruid][vPosY], VehicleCache[traileruid][vPosZ]);
  4926.                                                         GetVehicleZAngle(trailerid, VehicleCache[traileruid][vAngle]);
  4927.                                                         VehicleCache[traileruid][vVW] = GetVehicleVirtualWorld(trailerid);
  4928.                                                         DetachTrailerFromVehicle(vid);
  4929.                                                         new str[128];
  4930.                                                         format(str, sizeof(str), "Odholowano pojazd marki ~b~~h~~h~~h~%s~w~.", GetVehicleName(GetVehicleModel(trailerid)));
  4931.                                                         TextDrawForPlayerEx(playerid, 1, str, 5000);
  4932.                                                         return 1;
  4933.                                                 }
  4934.                                                 new str[128];
  4935.                                                 new targetvid = GetPlayerCameraTargetVehicle(playerid);
  4936.                                                 if(targetvid == INVALID_VEHICLE_ID)
  4937.                                                 return TextDrawForPlayerEx(playerid, 1, "Skieruj kamere na ~b~~h~~h~~h~pojazd~w~ aby go zaczepic.", 3000);
  4938.                                                 new Float:X, Float:Y, Float:Z;
  4939.                                                 GetVehiclePos(targetvid, X, Y, Z);
  4940.                                                 if(!IsPlayerInRangeOfPoint(playerid, 7.5, X, Y, Z))
  4941.                                                 return TextDrawForPlayerEx(playerid, 1, "Ten pojazd jest zbyt daleko! Podjedz blizej.", 5000);
  4942.  
  4943.                                                 new targetvuid = GetVehicleUID(targetvid);
  4944.                                                 if(VehicleCache[targetvuid][vEngine])
  4945.                                                 return TextDrawForPlayerEx(playerid, 1, "Silnik w pojezdzie, ktory chcesz odholowac jest ~y~zapalony~w~.", 3000);
  4946.                                                 AttachTrailerToVehicle(targetvid, vid);
  4947.                                                 format(str, sizeof(str), "Zaczepiono pojazd marki ~b~~h~~h~~h~%s~w~.", GetVehicleName(GetVehicleModel(VehicleCache[targetvuid][vID])));
  4948.                                                 return TextDrawForPlayerEx(playerid, 1, str, 3000);
  4949.                                         }
  4950.                                         return ShowDialogInfo(playerid, "Włącz silnik.");
  4951.                                 }
  4952.                         }
  4953.                 }
  4954.                 if(GetPlayerCameraTargetDynActor(playerid) != 0)
  4955.                 {
  4956.                         new auid = GetActorUID(GetPlayerCameraTargetDynActor(playerid));
  4957.  
  4958.                         if(IsPlayerInRangeOfPoint(playerid, 3.0, ActorCache[auid][aPosX], ActorCache[auid][aPosY], ActorCache[auid][aPosZ]))
  4959.                         {
  4960.                                 new msg[825];
  4961.                                 if(ActorCache[auid][aType] == 1)
  4962.                                 {
  4963.                                         format(msg, sizeof(msg), "%s mówi: Witam, w czym mogę pomóc?", strreplace(ActorCache[auid][aName], '_', ' '));
  4964.                                         ShowPlayerDialog(playerid, D_GOVERMENT, DIALOG_STYLE_LIST, "Urząd", "1\tWyrób dowód osobisty"HEX_WHITE"\n2\tWyrób prawo jazdy\n3\tZakup rejestrację pojazdu", "Wybierz", "Anuluj");
  4965.                                 }
  4966.                                 else if(ActorCache[auid][aType] == 2)
  4967.                                 {
  4968.                                         format(msg, sizeof(msg), "%s mówi: Witam, w czym mogę pomóc?", strreplace(ActorCache[auid][aName], '_', ' '));
  4969.                                         ShowPlayerDialog(playerid, D_BANK, DIALOG_STYLE_LIST, "Bank", "1\tOtwórz konto bankowe", "Wybierz", "Anuluj");
  4970.                                 }
  4971.                                 else if(ActorCache[auid][aType] == 3)
  4972.                                 return ShowPlayerDialog(playerid, D_MEDIC, DIALOG_STYLE_LIST, "Lekarz", ""HEX_GREEN"$50"HEX_WHITE"\tZakup lek", "Wybierz", "Anuluj");
  4973.                                 else
  4974.                                 {
  4975.                                         new rand = random(3);
  4976.                                         switch(rand)
  4977.                                         {
  4978.                                                 case 0: format(msg, sizeof(msg), "%s mówi: Mądra osoba rzekła kiedyś.. 'Nie warto być tak dobrym dla drugiego człowieka bo ta osoba później zaczyna oczekiwać zbyt wiele i każde uchylenie nastroju czy niepoprawny występek jest jak nóż wbity w plecy samemu sobie.'", strreplace(ActorCache[auid][aName], '_', ' '));
  4979.                                                 case 1: format(msg, sizeof(msg), "%s mówi: Los Santos to dość duże miasto, zawsze wiele się dzieje.", strreplace(ActorCache[auid][aName], '_', ' '));
  4980.                                                 case 2: format(msg, sizeof(msg), "%s mówi: Mam znajomego, który interesuje się programowaniem czy coś.. ma nawet swój własny serwer pomocniczy dla graczy. Nie lubię go.", strreplace(ActorCache[auid][aName], '_', ' '));
  4981.                                         }
  4982.                                 }
  4983.                                 if(strlen(msg) >= 100)
  4984.                                 {
  4985.                                         new temp1[825], temp2[825];
  4986.                                         temp1 = msg, temp2=msg;
  4987.                                         strdel(temp1, 100, strlen(temp1));
  4988.                                         strins(temp1, "...", strlen(temp1));
  4989.                                         strdel(temp2, 0, 100);
  4990.                                         strins(temp2, "...", 0);
  4991.                                         SendClientMessage(playerid, CHAT_SHADE_2, temp1);
  4992.                                         return SendClientMessage(playerid, CHAT_SHADE_2, temp2);
  4993.                                 }
  4994.                                 return SendClientMessage(playerid, CHAT_SHADE_2, msg);
  4995.                         }
  4996.                 }
  4997.                 new objectid = GetPlayerCameraTargetDynObject(playerid);
  4998.                 new objuid = GetObjectUID(objectid);
  4999.                 if(ObjectCache[objuid][oModel] == 19324 || ObjectCache[objuid][oModel] == 2942 || ObjectCache[objuid][oModel] == 2754)
  5000.                 {
  5001.                         if(IsPlayerInRangeOfPoint(playerid, 1.5, ObjectCache[objuid][oX], ObjectCache[objuid][oY], ObjectCache[objuid][oZ]))
  5002.                         {
  5003.                                 if(!UserCache[pUID[playerid]][uBankAccount])
  5004.                                 return ShowDialogInfo(playerid, "Nie posiadasz konta bankowego, udaj się do banku by utworzyć konto!");
  5005.                                 ApplyAnimation(playerid, "dealer", "shop_pay", 4.1, 0, 0, 0, 0, 0, 0);
  5006.                                 SendPlayerMe(playerid, "korzysta z bankomatu.");
  5007.                                 return ShowDialogATM(playerid);
  5008.                         }
  5009.                 }
  5010.                 if(ObjectCache[objuid][oGate])
  5011.                 {
  5012.                         new Float:ox, Float:oy, Float:oz, Float:rx, Float:ry, Float:rz;
  5013.                         if(IsDynamicObjectMoving(objectid))
  5014.                         return TextDrawForPlayerEx(playerid, 1, "Brama aktualnie sie porusza!", 3000);
  5015.                         GetDynamicObjectPos(objectid, ox, oy, oz);
  5016.                         GetDynamicObjectRot(objectid, rx, ry, rz);
  5017.                         if(ox == ObjectCache[objuid][oX]+ObjectCache[objuid][oGateX] && oy ==  ObjectCache[objuid][oY]+ObjectCache[objuid][oGateY]  && oz ==ObjectCache[objuid][oZ]+ObjectCache[objuid][oGateZ] && rx == ObjectCache[objuid][orX]+ObjectCache[objuid][oGaterX] && ry == ObjectCache[objuid][orY]+ObjectCache[objuid][oGaterY] && rz == ObjectCache[objuid][orZ]+ObjectCache[objuid][oGaterZ])
  5018.                         {
  5019.                                 TextDrawForPlayerEx(playerid, 1, "Brama ~r~~h~zamknieta~w~.", 3000);
  5020.                                 return MoveDynamicObject(objectid,ObjectCache[objuid][oX], ObjectCache[objuid][oY], ObjectCache[objuid][oZ], 4.1,  ObjectCache[objuid][orX],  ObjectCache[objuid][orY],  ObjectCache[objuid][orZ]);
  5021.                         }
  5022.                         MoveDynamicObject(objectid,ObjectCache[objuid][oX]+ObjectCache[objuid][oGateX], ObjectCache[objuid][oY]+ObjectCache[objuid][oGateY], ObjectCache[objuid][oZ]+ObjectCache[objuid][oGateZ], 4.1,  ObjectCache[objuid][orX]+ObjectCache[objuid][oGaterX],  ObjectCache[objuid][orY]+ObjectCache[objuid][oGaterY],  ObjectCache[objuid][orZ]+ObjectCache[objuid][oGaterZ]);
  5023.                         return TextDrawForPlayerEx(playerid, 1, "Brama ~g~~h~otwarta.~w~.", 3000);
  5024.                 }
  5025.         }
  5026.         if(newkeys & KEY_FIRE)
  5027.         {
  5028.                 if(IsPlayerInAnyVehicle(playerid))
  5029.                 {
  5030.                         new vid = GetPlayerVehicleID(playerid), vuid = GetVehicleUID(vid);
  5031.                         if(GetPlayerVehicleSeat(playerid) != 0)
  5032.                         return 1;
  5033.                         if(VehicleCache[vuid][vLights])
  5034.                         return SetVehicleParamsEx(vid, VehicleCache[vuid][vEngine], VehicleCache[vuid][vLights]=0, VehicleCache[vuid][vAlarm], VehicleCache[vuid][vDoors], VehicleCache[vuid][vBonnet], VehicleCache[vuid][vBoot], VehicleCache[vuid][vObjective]);
  5035.                         return SetVehicleParamsEx(vid, VehicleCache[vuid][vEngine], VehicleCache[vuid][vLights]=1, VehicleCache[vuid][vAlarm], VehicleCache[vuid][vDoors], VehicleCache[vuid][vBonnet], VehicleCache[vuid][vBoot], VehicleCache[vuid][vObjective]);
  5036.                 }
  5037.                 new lib[32], name[32], index;
  5038.                 index = GetPlayerAnimationIndex(playerid);
  5039.                 GetAnimationName(index, lib, sizeof(lib), name, sizeof(name));
  5040.                 if(!strcmp(lib, "int_office", true) || !strcmp(name, "parksit_m_loop", true) || !strcmp(name, "rob_loop", true))
  5041.                 {
  5042.                         return ClearAnimations(playerid);
  5043.                 }
  5044.                 if(GetPlayerObjectID(playerid))
  5045.                 {
  5046.                         if(!strcmp(name, "gnstwall_injurd", true))
  5047.                         return ClearAnimations(playerid);
  5048.                         return ApplyAnimation(playerid, "swat", "gnstwall_injurd", 4.1, 0, 0, 0, 1, 0, 0);
  5049.                 }
  5050.                 return 1;
  5051.         }
  5052.         if(newkeys & KEY_WALK && newkeys & KEY_SPRINT)
  5053.         {
  5054.                 new vw = GetPlayerVirtualWorld(playerid);
  5055.                 for(new i=1; i<LastdUID; i++)
  5056.                 {
  5057.                         if(!DoorCache[i][dDestroyed])
  5058.                         {
  5059.                                 if(IsPlayerInRangeOfPoint(playerid, 1.5, DoorCache[i][dOutX], DoorCache[i][dOutY], DoorCache[i][dOutZ]))
  5060.                                 {
  5061.                                         if(vw == DoorCache[i][dOutVW])
  5062.                                         {
  5063.                                                 if(!DoorCache[i][dOpen])
  5064.                                                 {
  5065.                                                         SendPlayerMe(playerid, "pociąga za klamkę od drzwi.");
  5066.                                                         TextDrawForPlayerEx(playerid, 1, "~r~Te drzwi sa zamkniete.", 3000);
  5067.                                                         return 1;
  5068.                                                 }
  5069.                                                 if(DoorCache[i][dEnterCost] > 0)
  5070.                                                 {
  5071.                                                         if(UserCache[pUID[playerid]][uCash] < DoorCache[i][dEnterCost])
  5072.                                                         return TextDrawForPlayerEx(playerid, 1, "~r~~h~Brak gotowki na przejscie.", 3000);
  5073.                                                         UserCache[pUID[playerid]][uCash] -= DoorCache[i][dEnterCost];
  5074.                                                         GivePlayerMoney(playerid, -DoorCache[i][dEnterCost]);
  5075.                                                         GroupCache[DoorCache[i][dGroupUID]][gBank] += DoorCache[i][dEnterCost];
  5076.                                                 }
  5077.                                                 if(pChangeInterior[playerid])
  5078.                                                 return TextDrawForPlayerEx(playerid, 1, "Odczekaj chwile przed kolejnym przejsciem.", 3000);
  5079.                                                 pChangeInterior[playerid] = true;
  5080.                                                 SetTimerEx("DisableInterior", 3000, false, "i", playerid);
  5081.                                                 if(UserCache[pUID[playerid]][uFreeze])
  5082.                                                 Freeze(playerid, 3000);
  5083.                                                 else if(!UserCache[pUID[playerid]][uFreeze] && GetPlayerSpeed(playerid))
  5084.                                                 TextDrawForPlayerEx(playerid, 1, "Przechodzac przez interior spadasz pod mape? Przejdz do: ~y~/stats -> ustawienia postaci~w~ i ~n~Przelacz ~g~~h~freeze~w~ przy przejsciu przez drzwi.", 10000);
  5085.                                                 SetPlayerVirtualWorld(playerid, DoorCache[i][dInsVW]);
  5086.                                                 SetPlayerPos(playerid, DoorCache[i][dInsX], DoorCache[i][dInsY], DoorCache[i][dInsZ]);
  5087.                                                 Streamer_Update(playerid);
  5088.                                                 if(!Isnull(DoorCache[i][dUrl]))
  5089.                                                 PlayAudioStreamForPlayer(playerid, DoorCache[i][dUrl]);
  5090.                                                 PlayerTextDrawHide(playerid, TextDrawDoorInfo[playerid]);
  5091.                                                 if(GroupCache[DoorCache[i][dGroupUID]][gType] == 7)
  5092.                                                 TextDrawForPlayerEx(playerid, 1, "Znajdujesz sie w sklepie calodobowym.~n~Uzyj ~g~~h~/kup~w~ by wyswietlic liste wszystkich przedmiotow do kupienia.", 75000);
  5093.                                                 return 1;
  5094.                                         }
  5095.                                 }
  5096.                                 if(IsPlayerInRangeOfPoint(playerid, 1.5, DoorCache[i][dInsX], DoorCache[i][dInsY], DoorCache[i][dInsZ]))
  5097.                                 {
  5098.                                         if(vw == DoorCache[i][dInsVW])
  5099.                                         {
  5100.                                                 if(!DoorCache[i][dOpen])
  5101.                                                 {
  5102.                                                         SendPlayerMe(playerid, "pociąga za klamkę od drzwi");
  5103.                                                         TextDrawForPlayerEx(playerid, 1, "~r~Te drzwi sa zamkniete.", 3000);
  5104.                                                         return 1;
  5105.                                                 }
  5106.                                                 if(pChangeInterior[playerid])
  5107.                                                 return TextDrawForPlayerEx(playerid, 1, "Odczekaj chwile przed kolejnym przejsciem.", 3000);
  5108.                                                 pChangeInterior[playerid] = true;
  5109.                                                 SetTimerEx("DisableInterior", 3000, false, "i", playerid);
  5110.                                                 if(UserCache[pUID[playerid]][uFreeze])
  5111.                                                 Freeze(playerid, 3000);
  5112.                                                 SetPlayerVirtualWorld(playerid, DoorCache[i][dOutVW]);
  5113.                                                 SetPlayerPos(playerid, DoorCache[i][dOutX], DoorCache[i][dOutY], DoorCache[i][dOutZ]);
  5114.                                                 StopAudioStreamForPlayer(playerid);
  5115.                                                 Streamer_Update(playerid);
  5116.                                                 return 1;
  5117.                                         }
  5118.                                        
  5119.                                 }
  5120.                         }
  5121.                 }
  5122.         }
  5123.         return 1;
  5124. }
  5125.  
  5126. forward DisableInterior(playerid);
  5127. public DisableInterior(playerid)
  5128. {
  5129.         pChangeInterior[playerid] = false;
  5130. }
  5131.  
  5132. stock Freeze(playerid, time)
  5133. {TogglePlayerControllable(playerid, 0); SetTimerEx("Unfreeze", time, false, "i", playerid);}
  5134.  
  5135. forward Unfreeze(playerid);
  5136. public Unfreeze(playerid)
  5137. TogglePlayerControllable(playerid, 1);
  5138.  
  5139. stock IsPosInRangeOfPos(Float:PosX, Float:PosY, Float:PosZ, Float:TargetX, Float:TargetY, Float:TargetZ, Float:range)
  5140. {
  5141.         if(PosX >= TargetX-range && PosX <= TargetX+range || PosY >= TargetY-range && PosY <= TargetY+range || PosZ >= TargetZ-range && PosZ <= TargetZ+range)
  5142.         return 1;
  5143.         return 0;
  5144. }
  5145.  
  5146. public OnPlayerCommandPerformed(playerid, cmd[], params[], result, flags)
  5147. {
  5148.         printf("[UID: %d] [CMD: %s %s] [PLAYER: %s ID: %d]", pUID[playerid], cmd, params, PlayerName(playerid), playerid);
  5149.         if(result==-1)
  5150.         return PlayerPlaySound(playerid, 1085, 0.0, 0.0, 0.0);
  5151.         return 1;
  5152. }
  5153.  
  5154. forward ChooseSkin(playerid);
  5155. public ChooseSkin(playerid)
  5156. {
  5157.         new ud, lr, keys;
  5158.         GetPlayerKeys(playerid, keys, ud, lr);
  5159.         if(lr == KEY_LEFT)
  5160.         {
  5161.                 PlayerPlaySound(playerid, 1084, 0.0, 0.0, 0.0);
  5162.                 if(UserCache[pUID[playerid]][uSex])
  5163.                 {
  5164.                         SetPrevFemaleSkin(playerid);
  5165.                 }
  5166.                 else
  5167.                 {
  5168.                         SetPrevMaleSkin(playerid);
  5169.                 }
  5170.         }
  5171.         else if(lr == KEY_RIGHT)
  5172.         {
  5173.                 PlayerPlaySound(playerid, 1083, 0.0, 0.0, 0.0);
  5174.                 if(UserCache[pUID[playerid]][uSex])
  5175.                 {
  5176.                         SetNextFemaleSkin(playerid);
  5177.                 }
  5178.                 else
  5179.                 {
  5180.                         SetNextMaleSkin(playerid);
  5181.                 }
  5182.         }
  5183.         else if(keys & KEY_WALK)
  5184.         {
  5185.                 ChooseSkinTimer[playerid] = KillTimer(ChooseSkinTimer[playerid]);
  5186.                 UserCache[pUID[playerid]][uSkin] = GetPlayerSkin(playerid);
  5187.                 TogglePlayerControllable(playerid, 1);
  5188.                 SetCameraBehindPlayer(playerid);
  5189.                 UserCache[pUID[playerid]][uTutorial] = 1;
  5190.                 SetPlayerPos(playerid, -199.4787,1223.2294,19.7113);
  5191.                 SetPlayerVirtualWorld(playerid, 0);
  5192.                 ShowDialogInfo(playerid, ""HEX_BLUE"Witamy na Projekt Roleplay!\n\n"HEX_WHITE"Stworzyłeś/aś właśnie nową postać, słowami wstępu:\n\nUdaj się do "HEX_BLUE"urzędu"HEX_WHITE" miasta by wyrobić dokumenty osobiste, następnie do "HEX_GREEN"banku"HEX_WHITE",\nw celu wyrobienia karty kredytowej.\nKiedy już to wszystko zrobisz, poszukaj zatrudnienia w jakimś biznesie. Popytaj ludzi o pracę.\n\nJeśli dalej potrzebujesz pomocy - skorzystaj z komendy /pomoc. Miłej gry!");
  5193.                 UserCache[pUID[playerid]][uTutorial] = 0;
  5194.                 PlayerTextDrawHide(playerid, BottomTextDraw[playerid]);
  5195.         }
  5196. }
  5197.  
  5198. stock SetNextMaleSkin(playerid)
  5199. {
  5200.         for(new i=GetPlayerSkin(playerid)+1; i < LAST_MALE_SKIN; i++)
  5201.         {
  5202.                 if(i == LAST_MALE_SKIN)
  5203.                 {
  5204.                         SetPlayerSkin(playerid, FIRST_MALE_SKIN);
  5205.                         break;
  5206.                 }
  5207.                 if(i ==18 || i == 17 || i == 19 || i == 20 || i == 21 || i == 23 || i == 240 || i == 250 || i == LAST_MALE_SKIN)
  5208.                 {
  5209.                         SetPlayerSkin(playerid, i);
  5210.                         break;
  5211.                 }
  5212.         }
  5213. }
  5214.  
  5215. stock SetNextFemaleSkin(playerid)
  5216. {
  5217.         for(new i=GetPlayerSkin(playerid)+1; i < LAST_FEMALE_SKIN; i++)
  5218.         {
  5219.                 if(i == LAST_FEMALE_SKIN)
  5220.                 {
  5221.                         SetPlayerSkin(playerid, FIRST_FEMALE_SKIN);
  5222.                         break;
  5223.                 }
  5224.                 if(i ==12 || i == 40 || i == 41 || i == 56 || i == 63 || i == 69 || i == 75 || i == 76 || i == LAST_FEMALE_SKIN)
  5225.                 {
  5226.                         SetPlayerSkin(playerid, i);
  5227.                         break;
  5228.                 }
  5229.         }
  5230. }
  5231.  
  5232. stock SetPrevMaleSkin(playerid)
  5233. {
  5234.         for(new i=GetPlayerSkin(playerid)-1; i > FIRST_MALE_SKIN; i--)
  5235.         {
  5236.                 if(i == FIRST_MALE_SKIN)
  5237.                 {
  5238.                         SetPlayerSkin(playerid, LAST_MALE_SKIN);
  5239.                         break;
  5240.                 }
  5241.                 if(i ==18 || i == 17 || i == 19 || i == 20 || i == 21 || i == 23 || i == 240 || i == 250 || i == FIRST_MALE_SKIN)
  5242.                 {
  5243.                         SetPlayerSkin(playerid, i);
  5244.                         break;
  5245.                 }
  5246.         }
  5247. }
  5248.  
  5249. stock SetPrevFemaleSkin(playerid)
  5250. {
  5251.         for(new i=GetPlayerSkin(playerid)-1; i < FIRST_FEMALE_SKIN; i--)
  5252.         {
  5253.                 if(i == FIRST_FEMALE_SKIN)
  5254.                 {
  5255.                         SetPlayerSkin(playerid, LAST_FEMALE_SKIN);
  5256.                         break;
  5257.                 }
  5258.                 if(i ==12 || i == 40 || i == 41 || i == 56 || i == 63 || i == 69 || i == 75 || i == 76 || i == LAST_FEMALE_SKIN)
  5259.                 {
  5260.                         SetPlayerSkin(playerid, i);
  5261.                         break;
  5262.                 }
  5263.         }
  5264. }
  5265.  
  5266. public OnPlayerSpawn(playerid)
  5267. {
  5268.         if(!pUID[playerid])
  5269.         return Kick(playerid);
  5270.         SetPlayerHealth(playerid, UserCache[pUID[playerid]][uHealth]);
  5271.         ResetPlayerMoney(playerid); GivePlayerMoney(playerid, UserCache[pUID[playerid]][uCash]);
  5272.         if(UserCache[pUID[playerid]][uBW] > 0)
  5273.         {
  5274.                 SetPlayerHP(playerid, 1);
  5275.                 UpdatePlayerName(playerid);
  5276.         }
  5277.         return 1;
  5278. }
  5279.  
  5280. stock LookForEmoji(str[])
  5281. {
  5282.         new msg[258]; format(msg, sizeof(msg), str);
  5283.         new pos;
  5284.         while(strfind(msg, ":d", true) != -1)
  5285.         {
  5286.                 pos = strfind(msg, ":d", true);
  5287.                 strdel(msg, pos, pos+2);
  5288.                 strins(msg, "*śmieje się*",pos);
  5289.         }
  5290.         while(strfind(msg, ":)", true) != -1)
  5291.         {
  5292.                 pos = strfind(msg, ":)", true);
  5293.                 strdel(msg, pos, pos+2);
  5294.                 strins(msg, "*uśmiecha się*",pos);
  5295.         }
  5296.         while(strfind(msg, ":(", true) != -1)
  5297.         {
  5298.                 pos = strfind(msg, ":(", true);
  5299.                 strdel(msg, pos, pos+2);
  5300.                 strins(msg, "*smuci się*",pos);
  5301.         }
  5302.         while(strfind(msg, ";(", true) != -1)
  5303.         {
  5304.                 pos = strfind(msg, ";(", true);
  5305.                 strdel(msg, pos, pos+2);
  5306.                 strins(msg, "*smuci się*",pos);
  5307.         }
  5308.         while(strfind(msg, ":p", true) != -1)
  5309.         {
  5310.                 pos = strfind(msg, ":p", true);
  5311.                 strdel(msg, pos, pos+2);
  5312.                 strins(msg, "*wystawia język*",pos);
  5313.         }
  5314.         while(strfind(msg, ":o", true) != -1)
  5315.         {
  5316.                 pos = strfind(msg, ":o", true);
  5317.                 strdel(msg, pos, pos+2);
  5318.                 strins(msg, "*robi zaskoczoną minę*",pos);
  5319.         }
  5320.         while(strfind(msg, "lel", true) != -1)
  5321.         {
  5322.                 pos = strfind(msg, "lel", true);
  5323.                 strdel(msg, pos, pos+3);
  5324.                 strins(msg, "*wybucha śmiechem*",pos);
  5325.         }
  5326.         while(strfind(msg, "lol", true) != -1)
  5327.         {
  5328.                 pos = strfind(msg, "lol", true);
  5329.                 strdel(msg, pos, pos+3);
  5330.                 strins(msg, "*wybucha śmiechem*",pos);
  5331.         }
  5332.         while(strfind(msg, ":d", true) != -1)
  5333.         {
  5334.                 pos = strfind(msg, ":d", true);
  5335.                 strdel(msg, pos, pos+2);
  5336.                 strins(msg, "*śmieje się*",pos);
  5337.         }
  5338.         while(strfind(msg, "xd", true) != -1)
  5339.         {
  5340.                 pos = strfind(msg, "xd", true);
  5341.                 strdel(msg, pos, pos+2);
  5342.                 strins(msg, "*śmieje się*",pos);
  5343.         }
  5344.         while(strfind(msg, ":/", true) != -1)
  5345.         {
  5346.                 pos = strfind(msg, ":/", true);
  5347.                 strdel(msg, pos, pos+2);
  5348.                 strins(msg, "*krzywi się*",pos);
  5349.         }
  5350.         while(strfind(msg, ":*", true) != -1)
  5351.         {
  5352.                 pos = strfind(msg, ":*", true);
  5353.                 strdel(msg, pos, pos+2);
  5354.                 strins(msg, "*posyła całusa*",pos);
  5355.         }
  5356.         while(strfind(msg, ":>", true) != -1)
  5357.         {
  5358.                 pos = strfind(msg, ":>", true);
  5359.                 strdel(msg, pos, pos+2);
  5360.                 strins(msg, "*mróży oczy*",pos);
  5361.         }
  5362.         return msg;
  5363. }
  5364.  
  5365. stock SendFormattedMessage(playerid, message[], hexme[], hexnormal[], color)
  5366. {
  5367.         new msg[500]; format(msg, sizeof(msg), message);
  5368.         new me[32]; format(me, sizeof(me), "%s*", hexme);
  5369.         new norm[32]; format(norm, sizeof(norm), "*%s", hexnormal);
  5370.         new bool:look;
  5371.         if(strlen(msg) >= 100)
  5372.         {
  5373.                 new temp1[500], temp2[500];
  5374.                 temp1 = msg; temp2 = msg;
  5375.                 strdel(temp1, 100, strlen(temp1));
  5376.                 strdel(temp2, 0, 100);
  5377.                 strins(temp1, "...", strlen(temp1));
  5378.                 strins(temp2, "...", 0);
  5379.                 format(temp1, sizeof(temp1), LookForEmoji(temp1));
  5380.                 format(temp2, sizeof(temp2), LookForEmoji(temp2));
  5381.                 for(new i=0; i<=strlen(temp1); i++)
  5382.                 {
  5383.                         if(look == true)
  5384.                         {
  5385.                                 if(temp1[i] == '*')
  5386.                                 {
  5387.                                         strdel(temp1, i, i+1);
  5388.                                         strins(temp1, norm, i);
  5389.                                         look = false;
  5390.                                         continue;
  5391.                                 }
  5392.                         }
  5393.                         if(temp1[i] == '*')
  5394.                         {
  5395.                                 strdel(temp1, i, i+1);
  5396.                                 strins(temp1, me, i);
  5397.                                 i=i+8;
  5398.                                 look = true;
  5399.                         }
  5400.                 }
  5401.                 for(new i=0; i<=strlen(temp2); i++)
  5402.                 {
  5403.                         if(look == true)
  5404.                         {
  5405.                                 if(temp2[i] == '*')
  5406.                                 {
  5407.                                         strdel(temp2, i, i+1);
  5408.                                         strins(temp2, norm, i);
  5409.                                         look = false;
  5410.                                         continue;
  5411.                                 }
  5412.                         }
  5413.                         if(temp2[i] == '*')
  5414.                         {
  5415.                                 strdel(temp2, i, i+1);
  5416.                                 strins(temp2, me, i);
  5417.                                 i=i+8;
  5418.                                 look = true;
  5419.                         }
  5420.                 }
  5421.                 new pos2;
  5422.                 for(new i=strlen(temp1); i>=0; i--)
  5423.                 {
  5424.                         if(temp1[i] == '*')
  5425.                         {
  5426.                                 pos2 = i;
  5427.                                 break;
  5428.                         }
  5429.                 }
  5430.                 if(pos2 != 0)
  5431.                 {
  5432.                         strins(temp1, hexme, pos2);
  5433.                         strins(temp2, hexme, 0);
  5434.                 }
  5435.                 SendClientMessage(playerid, color, temp1);
  5436.                 SendClientMessage(playerid, color, temp2);
  5437.                 return 1;
  5438.         }
  5439.         format(msg, sizeof(msg), LookForEmoji(msg));
  5440.         for(new i=0; i<=strlen(msg); i++)
  5441.         {
  5442.                 if(look == true)
  5443.                 {
  5444.                         if(msg[i] == '*')
  5445.                         {
  5446.                                 strdel(msg, i, i+1);
  5447.                                 strins(msg, norm, i);
  5448.                                 look = false;
  5449.                                 continue;
  5450.                         }
  5451.                 }
  5452.                 if(msg[i] == '*')
  5453.                 {
  5454.                         strdel(msg, i, i+1);
  5455.                         strins(msg, me, i);
  5456.                         i=i+8;
  5457.                         look = true;
  5458.                 }
  5459.         }
  5460.         return SendClientMessage(playerid, color, msg);
  5461. }
  5462.  
  5463. public OnPlayerText(playerid, text[])
  5464. {
  5465.         if(UserCache[pUID[playerid]][uAJ] || !pUID[playerid])
  5466.         return 0;
  5467.         PlayerTick[playerid] = GetTickCount();
  5468.         if(GetTickCount()/1000 + 2000 >= PlayerTick[playerid])
  5469.         {
  5470.                 new msg[128];
  5471.                 format(msg, sizeof(msg), "Poczekaj %ds.", GetTickCount()/1000-PlayerTick[playerid]/1000);
  5472.                 return !SendClientMessage(playerid, COLOR_GRAY, msg);
  5473.         }
  5474.         if(ac[playerid])
  5475.         {
  5476.                 new msg[256];
  5477.                 format(msg, sizeof(msg), "(( %s: %s ))", PlayerName(playerid), text);
  5478.                 for(new i=0; i<=GetPlayerPoolSize();i++)
  5479.                 {
  5480.                         if(IsPlayerConnected(i))
  5481.                         {
  5482.                                 if(pUID[i])
  5483.                                 {
  5484.                                         if(UserCache[pUID[i]][uRank] >= ADMINISTRATION)
  5485.                                         {
  5486.                                                 SendClientMessage(i, COLOR_DARKRED, msg);
  5487.                                         }
  5488.                                 }
  5489.                         }
  5490.                 }
  5491.                 return 0;
  5492.         }
  5493.         if(UserCache[pUID[playerid]][uBW])
  5494.         return !SendClientMessage(playerid, COLOR_GRAY, "Nie możesz nic mówić podczas BW.");
  5495.         if(text[0] == ':' && text[1] == 'd' || text[1] == 'D' && text[0] == ':')
  5496.         return !SendPlayerMe(playerid, "śmieje się.");
  5497.         if(text[0] == 'x' && text[1] == 'd' || text[1] == 'D' && text[0] == 'X')
  5498.         return !SendPlayerMe(playerid, "śmieje się.");
  5499.         if(text[0] == ':' && text[1] == ')')
  5500.         return !SendPlayerMe(playerid, "uśmiecha się.");
  5501.         if(text[0] == ':' && text[1] == '(')
  5502.         return !SendPlayerMe(playerid, "smuci się.");
  5503.         if(text[0] == ':' && text[1] == 'p')
  5504.         return !SendPlayerMe(playerid, "wystawia język.");
  5505.         if(text[0] == ':' && text[1] == 'P')
  5506.         return !SendPlayerMe(playerid, "wystawia język.");
  5507.         if(text[0] == ':' && text[1] == '>')
  5508.         return !SendPlayerMe(playerid, "mróży oczy.");
  5509.         if(text[0] == ':' && text[1] == '/')
  5510.         return !SendPlayerMe(playerid, "krzywi się.");
  5511.         if(text[0] == ':' && text[1] == 'o')
  5512.         return !SendPlayerMe(playerid, "robi zaskoczoną minę");
  5513.         if(text[0] == ':' && text[1] == 'O')
  5514.         return !SendPlayerMe(playerid, "robi zaskoczoną minę");
  5515.         if(text[0] == '@')
  5516.         {
  5517.                 new slot;
  5518.                 if(strfind(text, "1", true) != -1)
  5519.                 {
  5520.                         slot =1;
  5521.                 }
  5522.                 else if(strfind(text, "2", true) != -1)
  5523.                 {
  5524.                         slot =2;
  5525.                 }
  5526.                 else if(strfind(text, "3", true) != -1)
  5527.                 {
  5528.                         slot =3;
  5529.                 }
  5530.                 switch(slot)
  5531.                 {
  5532.                         case 1:
  5533.                         {
  5534.                                 if(UserCache[pUID[playerid]][uGroup] == 0)
  5535.                                 {
  5536.                                         return !SendClientMessage(playerid, COLOR_GRAY, "Pod tym slotem nie masz żadnej grupy.");
  5537.                                 }
  5538.                                 else if(GroupCache[UserCache[pUID[playerid]][uGroup]][gChatOOC] == false)
  5539.                                 return !SendClientMessage(playerid, COLOR_GRAY, "Czat OOC tej grupy jest wyłaczony.");
  5540.                                 new temp[16]; format(temp, sizeof(temp), "%d", slot);
  5541.                                 new playermsg[128]; format(playermsg, sizeof(playermsg), text);
  5542.                                 strdel(playermsg, 0, strfind(playermsg,temp,true)+1);
  5543.                                 new groupuid = UserCache[pUID[playerid]][uGroup];
  5544.                                 new msg[128]; format(msg, sizeof(msg), "{%s}(( %s, %s: %s ))",GroupCache[groupuid][gColor], GroupCache[groupuid][gName], strreplace(PlayerName(playerid), '_', ' '), playermsg);
  5545.                                 for(new i; i<=GetPlayerPoolSize(); i++)
  5546.                                 {
  5547.                                         if(IsPlayerConnected(i))
  5548.                                         {
  5549.                                                 if(pUID[i])
  5550.                                                 {
  5551.                                                         if(UserCache[pUID[i]][uGroup] == groupuid || UserCache[pUID[i]][uGroup2] == groupuid || UserCache[pUID[i]][uGroup3] == groupuid)
  5552.                                                         {
  5553.                                                                 SendClientMessage(i, -1, msg);
  5554.                                                         }
  5555.                                                 }
  5556.                                         }
  5557.                                 }
  5558.                                 return 0;
  5559.                         }
  5560.                         case 2:
  5561.                         {
  5562.                                 if(UserCache[pUID[playerid]][uGroup2] == 0)
  5563.                                 {
  5564.                                         return !SendClientMessage(playerid, COLOR_GRAY, "Pod tym slotem nie masz żadnej grupy.");
  5565.                                 }
  5566.                                 else if(GroupCache[UserCache[pUID[playerid]][uGroup2]][gChatOOC] == false)
  5567.                                 return !SendClientMessage(playerid, COLOR_GRAY, "Czat OOC tej grupy jest wyłaczony.");
  5568.                                 new temp[16]; format(temp, sizeof(temp), "%d", slot);
  5569.                                 new playermsg[128]; format(playermsg, sizeof(playermsg), text);
  5570.                                 strdel(playermsg, 0, strfind(playermsg,temp,true)+1);
  5571.                                 new groupuid = UserCache[pUID[playerid]][uGroup2];
  5572.                                 new msg[128]; format(msg, sizeof(msg), "{%s}(( %s, %s: %s ))",GroupCache[groupuid][gColor], GroupCache[groupuid][gName], strreplace(PlayerName(playerid), '_', ' '), playermsg);
  5573.                                 for(new i; i<=GetPlayerPoolSize(); i++)
  5574.                                 {
  5575.                                         if(IsPlayerConnected(i))
  5576.                                         {
  5577.                                                 if(pUID[i])
  5578.                                                 {
  5579.                                                         if(UserCache[pUID[i]][uGroup] == groupuid || UserCache[pUID[i]][uGroup2] == groupuid || UserCache[pUID[i]][uGroup3] == groupuid)
  5580.                                                         {
  5581.                                                                 SendClientMessage(i, -1, msg);
  5582.                                                         }
  5583.                                                 }
  5584.                                         }
  5585.                                 }
  5586.                                 return 0;
  5587.                         }
  5588.                         case 3:
  5589.                         {
  5590.                                 if(UserCache[pUID[playerid]][uGroup3] == 0)
  5591.                                 {
  5592.                                         return !SendClientMessage(playerid, COLOR_GRAY, "Pod tym slotem nie masz żadnej grupy.");
  5593.                                 }
  5594.                                 else if(GroupCache[UserCache[pUID[playerid]][uGroup3]][gChatOOC] == false)
  5595.                                 return !SendClientMessage(playerid, COLOR_GRAY, "Czat OOC tej grupy jest wyłaczony.");
  5596.                                 new temp[16]; format(temp, sizeof(temp), "%d", slot);
  5597.                                 new playermsg[128]; format(playermsg, sizeof(playermsg), text);
  5598.                                 strdel(playermsg, 0, strfind(playermsg,temp,true)+1);
  5599.                                 new groupuid = UserCache[pUID[playerid]][uGroup3];
  5600.                                 new msg[128]; format(msg, sizeof(msg), "{%s}(( %s, %s:%s ))",GroupCache[groupuid][gColor], GroupCache[groupuid][gName], strreplace(PlayerName(playerid), '_', ' '), playermsg);
  5601.                                 for(new i; i<=GetPlayerPoolSize(); i++)
  5602.                                 {
  5603.                                         if(IsPlayerConnected(i))
  5604.                                         {
  5605.                                                 if(pUID[i])
  5606.                                                 {
  5607.                                                         if(UserCache[pUID[i]][uGroup] == groupuid || UserCache[pUID[i]][uGroup2] == groupuid || UserCache[pUID[i]][uGroup3] == groupuid)
  5608.                                                         {
  5609.                                                                 SendClientMessage(i, -1, msg);
  5610.                                                         }
  5611.                                                 }
  5612.                                         }
  5613.                                 }
  5614.                                 return 0;
  5615.                         }
  5616.                         default:
  5617.                         {
  5618.                                 SendClientMessage(playerid, COLOR_GRAY, "Nieprawidłowy slot grupy.");
  5619.                                 return 0;
  5620.                         }
  5621.                 }
  5622.                 return 0;
  5623.         }
  5624.         if(text[0] == '!')
  5625.         {
  5626.                 new slot;
  5627.                 if(strfind(text, "1", true) != -1)
  5628.                 {
  5629.                         slot =1;
  5630.                 }
  5631.                 else if(strfind(text, "2", true) != -1)
  5632.                 {
  5633.                         slot =2;
  5634.                 }
  5635.                 else if(strfind(text, "3", true) != -1)
  5636.                 {
  5637.                         slot =3;
  5638.                 }
  5639.                 new groupuid;
  5640.                 switch(slot)
  5641.                 {
  5642.                         case 1:
  5643.                         {
  5644.                                 if(UserCache[pUID[playerid]][uGroup] == 0)
  5645.                                 {
  5646.                                         return !SendClientMessage(playerid, COLOR_GRAY, "Pod tym slotem nie masz żadnej grupy.");
  5647.                                 }
  5648.                                 else if(GroupCache[UserCache[pUID[playerid]][uGroup]][gChatIC] == false)
  5649.                                 return !SendClientMessage(playerid, COLOR_GRAY, "Czat IC tej grupy jest wyłaczony.");
  5650.                                 groupuid = UserCache[pUID[playerid]][uGroup];
  5651.                         }
  5652.                         case 2:
  5653.                         {
  5654.                                 if(UserCache[pUID[playerid]][uGroup2] == 0)
  5655.                                 {
  5656.                                         return !SendClientMessage(playerid, COLOR_GRAY, "Pod tym slotem nie masz żadnej grupy.");
  5657.                                 }
  5658.                                 else if(GroupCache[UserCache[pUID[playerid]][uGroup2]][gChatIC] == false)
  5659.                                 return !SendClientMessage(playerid, COLOR_GRAY, "Czat IC tej grupy jest wyłaczony.");
  5660.                                 groupuid = UserCache[pUID[playerid]][uGroup2];
  5661.                         }
  5662.                         case 3:
  5663.                         {
  5664.                                 if(UserCache[pUID[playerid]][uGroup3] == 0)
  5665.                                 {
  5666.                                         return !SendClientMessage(playerid, COLOR_GRAY, "Pod tym slotem nie masz żadnej grupy.");
  5667.                                 }
  5668.                                 else if(GroupCache[UserCache[pUID[playerid]][uGroup3]][gChatIC] == false)
  5669.                                 return !SendClientMessage(playerid, COLOR_GRAY, "Czat IC tej grupy jest wyłaczony.");
  5670.                                 groupuid = UserCache[pUID[playerid]][uGroup3];
  5671.                         }
  5672.                         default: return !SendClientMessage(playerid, COLOR_GRAY, "Nieprawidłowy slot grupy.");
  5673.                 }
  5674.                 new temp[16]; format(temp, sizeof(temp), "%d", slot);
  5675.                 new playermsg[128]; format(playermsg, sizeof(playermsg), text);
  5676.                 strdel(playermsg, 0, strfind(playermsg,temp,true)+1);
  5677.                 new msg[128]; format(msg, sizeof(msg), "{%s}!%s, %s"HEX_WHITE":%s", GroupCache[groupuid][gColor], GroupCache[groupuid][gName], strreplace(PlayerName(playerid), '_', ' '), playermsg);
  5678.                 for(new i; i<=GetPlayerPoolSize(); i++)
  5679.                 {
  5680.                         if(IsPlayerConnected(i))
  5681.                         {
  5682.                                 if(pUID[i])
  5683.                                 {
  5684.                                         if(UserCache[pUID[i]][uGroup] == groupuid || UserCache[pUID[i]][uGroup2] == groupuid || UserCache[pUID[i]][uGroup3] == groupuid)
  5685.                                         {
  5686.                                                 SendClientMessage(i, -1, msg);
  5687.                                         }
  5688.                                 }
  5689.                         }
  5690.                 }
  5691.                 format(msg, sizeof(msg), "(słuchawka) %s mówi: %s", strreplace(PlayerName(playerid), '_', ' '), playermsg);
  5692.                 new Float:X, Float:Y, Float:Z;
  5693.                 GetPlayerPos(playerid, X, Y, Z);
  5694.                 new vw = GetPlayerVirtualWorld(playerid);
  5695.                 for(new i=0; i<=GetPlayerPoolSize(); i++)
  5696.                 {
  5697.                         if(IsPlayerConnected(i))
  5698.                         {
  5699.                                 if(GetPlayerVirtualWorld(i) == vw)
  5700.                                 {
  5701.                                         if(UserCache[pUID[i]][uGroup] == groupuid || UserCache[pUID[i]][uGroup2] == groupuid || UserCache[pUID[i]][uGroup3] == groupuid)
  5702.                                         {
  5703.                                                 continue;
  5704.                                         }
  5705.                                         if(IsPlayerInRangeOfPoint(i, 2.0, X, Y, Z))
  5706.                                         {
  5707.                                                 if(UserCache[pUID[i]][uBW] > 0)
  5708.                                                 {
  5709.                                                         SendClientMessage(i, ME_SHADE_1, "Twoja postać jest nieprzytomna, więc nie może sąyszeć wypowiedzi innych osób.");
  5710.                                                         continue;
  5711.                                                 }
  5712.                                                 SendFormattedMessage(i, msg, "{B992C3}", "{EEEEEE}", CHAT_SHADE_1);
  5713.                                         }
  5714.                                         else if(IsPlayerInRangeOfPoint(i, 4.0, X, Y, Z))
  5715.                                         {
  5716.                                                 if(UserCache[pUID[i]][uBW] > 0)
  5717.                                                 {
  5718.                                                         SendClientMessage(i, ME_SHADE_2, "* Twoja postać jest nieprzytomna, więc nie może sąyszeć wypowiedzi innych osób.");
  5719.                                                         continue;
  5720.                                                 }
  5721.                                                 SendFormattedMessage(i, msg, "{AC79A7}", "{C8C8C8}", CHAT_SHADE_2);
  5722.                                         }
  5723.                                         else if(IsPlayerInRangeOfPoint(i, 6.0, X, Y, Z))
  5724.                                         {
  5725.                                                 if(UserCache[pUID[i]][uBW] > 0)
  5726.                                                 {
  5727.                                                         SendClientMessage(i, ME_SHADE_3, "* Twoja postać jest nieprzytomna, więc nie może sąyszeć wypowiedzi innych osób.");
  5728.                                                         continue;
  5729.                                                 }
  5730.                                                 SendFormattedMessage(i, msg, "{AC7998}", "{B4B4B4}", CHAT_SHADE_3);
  5731.                                         }
  5732.                                         else if(IsPlayerInRangeOfPoint(i, 8.0, X, Y, Z))
  5733.                                         {
  5734.                                                 if(UserCache[pUID[i]][uBW] > 0)
  5735.                                                 {
  5736.                                                         SendClientMessage(i, ME_SHADE_4, "* Twoja postać jest nieprzytomna, więc nie może sąyszeć wypowiedzi innych osób.");
  5737.                                                         continue;
  5738.                                                 }
  5739.                                                 SendFormattedMessage(i, msg, "{AC6798}", "{8C8C8C}", CHAT_SHADE_4);
  5740.                                         }
  5741.                                         else if(IsPlayerInRangeOfPoint(i, 10.0, X, Y, Z))
  5742.                                         {
  5743.                                                 if(UserCache[pUID[i]][uBW] > 0)
  5744.                                                 {
  5745.                                                         SendClientMessage(i, ME_SHADE_5, "* Twoja postać jest nieprzytomna, więc nie może sąyszeć wypowiedzi innych osób.");
  5746.                                                         continue;
  5747.                                                 }
  5748.                                                 SendFormattedMessage(i, msg, "{976798}", "{787878}", CHAT_SHADE_5);
  5749.                                         }
  5750.                                         else if(IsPlayerInRangeOfPoint(i, 12.0, X, Y, Z))
  5751.                                         {
  5752.                                                 if(UserCache[pUID[i]][uBW] > 0)
  5753.                                                 {
  5754.                                                         SendClientMessage(i, ME_SHADE_6, "* Twoja postać jest nieprzytomna, więc nie może sąyszeć wypowiedzi innych osób.");
  5755.                                                         continue;
  5756.                                                 }
  5757.                                                 SendFormattedMessage(i, msg, "{936583}", "{505050}", CHAT_SHADE_6);
  5758.                                         }
  5759.                                 }
  5760.                         }
  5761.                 }
  5762.                 return 0;
  5763.         }
  5764.         if(text[0] == '.' && text[1] != ' ')
  5765.         {
  5766.                 new finalmsg[256], playermsg[128];
  5767.                 format(playermsg, sizeof(playermsg), text);
  5768.                 strdel(playermsg, 0, 1);
  5769.                 format(finalmsg, sizeof(finalmsg), "(( %s ))", playermsg);
  5770.                 SetPlayerChatBubble(playerid, finalmsg, COLOR_WHITE, 12.0, 5000);
  5771.                 if(!UserCache[pUID[playerid]][uOOC])
  5772.                 {
  5773.                         format(finalmsg, sizeof(finalmsg), "(( Wysłano OOC: %s ))", playermsg);
  5774.                         SendClientMessage(playerid, COLOR_WHITE, finalmsg);
  5775.                 }
  5776.                 format(finalmsg, sizeof(finalmsg), "(( [%d] %s: %s ))", playerid, RPName(playerid), playermsg);
  5777.                 new Float:X, Float:Y, Float:Z;
  5778.                 GetPlayerPos(playerid, X, Y, Z);
  5779.                 for(new i; i<=GetPlayerPoolSize(); i++)
  5780.                 {
  5781.                         if(IsPlayerConnected(i))
  5782.                         {
  5783.                                 if(UserCache[pUID[i]][uOOC])
  5784.                                 {
  5785.                                         if(IsPlayerInRangeOfPoint(i, 12.0, X, Y, Z) && GetPlayerVirtualWorld(playerid) == GetPlayerVirtualWorld(i))
  5786.                                         SendClientMessage(i, COLOR_WHITE, finalmsg);
  5787.                                 }
  5788.                         }
  5789.                 }
  5790.                 return 0;
  5791.         }
  5792.         if(aduty[playerid] != 0)
  5793.         {
  5794.                 new msg[128];
  5795.                 format(msg, sizeof(msg), "%s%s"HEX_WHITE": %s",GetHexRankColor(UserCache[pUID[playerid]][uRank]), PlayerName(playerid), text);
  5796.                 new Float:X, Float:Y, Float:Z;
  5797.                 GetPlayerPos(playerid, X, Y, Z);
  5798.                 new vw = GetPlayerVirtualWorld(playerid);
  5799.                 for(new i=0; i<=GetPlayerPoolSize(); i++)
  5800.                 {
  5801.                         if(IsPlayerConnected(i))
  5802.                         {
  5803.                                 if(GetPlayerVirtualWorld(i) == vw)
  5804.                                 {
  5805.                                         if(IsPlayerInRangeOfPoint(i, 1.0, X, Y, Z))
  5806.                                         {
  5807.                                                 SendFormattedMessage(i, msg, "{B992C3}", "{EEEEEE}", CHAT_SHADE_1);
  5808.                                         }
  5809.                                         else if(IsPlayerInRangeOfPoint(i, 4.0, X, Y, Z))
  5810.                                         {
  5811.                                                 SendFormattedMessage(i, msg, "{AC79A7}", "{C8C8C8}", CHAT_SHADE_2);
  5812.                                         }
  5813.                                         else if(IsPlayerInRangeOfPoint(i, 8.0, X, Y, Z))
  5814.                                         {
  5815.                                                 SendFormattedMessage(i, msg, "{AC7998}", "{B4B4B4}", CHAT_SHADE_3);
  5816.                                         }
  5817.                                         else if(IsPlayerInRangeOfPoint(i, 12.0, X, Y, Z))
  5818.                                         {
  5819.                                                 SendFormattedMessage(i, msg, "{AC6798}", "{8C8C8C}", CHAT_SHADE_4);
  5820.                                         }
  5821.                                         else if(IsPlayerInRangeOfPoint(i, 16.0, X, Y, Z))
  5822.                                         {
  5823.                                                 SendFormattedMessage(i, msg, "{976798}", "{787878}", CHAT_SHADE_5);
  5824.                                         }
  5825.                                         else if(IsPlayerInRangeOfPoint(i, 20.0, X, Y, Z))
  5826.                                         {
  5827.                                                 SendFormattedMessage(i, msg, "{936583}", "{505050}", CHAT_SHADE_6);
  5828.                                         }
  5829.                                 }
  5830.                         }
  5831.                 }
  5832.                 return 0;
  5833.         }
  5834.         new msg[128];
  5835.         format(msg, sizeof(msg), "%s mówi: %s", strreplace(PlayerName(playerid), '_', ' '), text);
  5836.         if(CallData[playerid][cCaller] != -1)
  5837.         format(msg, sizeof(msg), "%s (telefon): %s", PlayerName(playerid), text);
  5838.         new Float:X, Float:Y, Float:Z;
  5839.         GetPlayerPos(playerid, X, Y, Z);
  5840.         new vw = GetPlayerVirtualWorld(playerid);
  5841.         for(new i=0; i<=GetPlayerPoolSize(); i++)
  5842.         {
  5843.                 if(IsPlayerConnected(i))
  5844.                 {
  5845.                         if(GetPlayerVirtualWorld(i) == vw)
  5846.                         {
  5847.                                 if(IsPlayerInRangeOfPoint(i, 1.0, X, Y, Z))
  5848.                                 {
  5849.                                         if(UserCache[pUID[i]][uBW] > 0)
  5850.                                         {
  5851.                                                 SendClientMessage(i, ME_SHADE_1, "Twoja postać jest nieprzytomna, więc nie może sąyszeć wypowiedzi innych osób.");
  5852.                                                 continue;
  5853.                                         }
  5854.                                         SendFormattedMessage(i, msg, "{B992C3}", "{EEEEEE}", CHAT_SHADE_1);
  5855.                                 }
  5856.                                 else if(IsPlayerInRangeOfPoint(i, 4.0, X, Y, Z))
  5857.                                 {
  5858.                                         if(UserCache[pUID[i]][uBW] > 0)
  5859.                                         {
  5860.                                                 SendClientMessage(i, ME_SHADE_2, "* Twoja postać jest nieprzytomna, więc nie może sąyszeć wypowiedzi innych osób.");
  5861.                                                 continue;
  5862.                                         }
  5863.                                         SendFormattedMessage(i, msg, "{AC79A7}", "{C8C8C8}", CHAT_SHADE_2);
  5864.                                 }
  5865.                                 else if(IsPlayerInRangeOfPoint(i, 8.0, X, Y, Z))
  5866.                                 {
  5867.                                         if(UserCache[pUID[i]][uBW] > 0)
  5868.                                         {
  5869.                                                 SendClientMessage(i, ME_SHADE_3, "* Twoja postać jest nieprzytomna, więc nie może sąyszeć wypowiedzi innych osób.");
  5870.                                                 continue;
  5871.                                         }
  5872.                                         SendFormattedMessage(i, msg, "{AC7998}", "{B4B4B4}", CHAT_SHADE_3);
  5873.                                 }
  5874.                                 else if(IsPlayerInRangeOfPoint(i, 12.0, X, Y, Z))
  5875.                                 {
  5876.                                         if(UserCache[pUID[i]][uBW] > 0)
  5877.                                         {
  5878.                                                 SendClientMessage(i, ME_SHADE_4, "* Twoja postać jest nieprzytomna, więc nie może sąyszeć wypowiedzi innych osób.");
  5879.                                                 continue;
  5880.                                         }
  5881.                                         SendFormattedMessage(i, msg, "{AC6798}", "{8C8C8C}", CHAT_SHADE_4);
  5882.                                 }
  5883.                                 else if(IsPlayerInRangeOfPoint(i, 16.0, X, Y, Z))
  5884.                                 {
  5885.                                         if(UserCache[pUID[i]][uBW] > 0)
  5886.                                         {
  5887.                                                 SendClientMessage(i, ME_SHADE_5, "* Twoja postać jest nieprzytomna, więc nie może sąyszeć wypowiedzi innych osób.");
  5888.                                                 continue;
  5889.                                         }
  5890.                                         SendFormattedMessage(i, msg, "{976798}", "{787878}", CHAT_SHADE_5);
  5891.                                 }
  5892.                                 else if(IsPlayerInRangeOfPoint(i, 20.0, X, Y, Z))
  5893.                                 {
  5894.                                         if(UserCache[pUID[i]][uBW] > 0)
  5895.                                         {
  5896.                                                 SendClientMessage(i, ME_SHADE_6, "* Twoja postać jest nieprzytomna, więc nie może sąyszeć wypowiedzi innych osób.");
  5897.                                                 continue;
  5898.                                         }
  5899.                                         SendFormattedMessage(i, msg, "{936583}", "{505050}", CHAT_SHADE_6);
  5900.                                 }
  5901.                         }
  5902.                 }
  5903.         }
  5904.         if(CallData[playerid][cCaller] != -1)
  5905.         {
  5906.                 new uid;
  5907.                 for(new i=1; i<LastiUID; i++)
  5908.                 {
  5909.                         if(ItemCache[i][iActive])
  5910.                         {
  5911.                                 if(ItemCache[i][iType] == 2)
  5912.                                 {
  5913.                                         if(ItemCache[i][iOwner] == pUID[playerid])
  5914.                                         {
  5915.                                                 uid = i;
  5916.                                                 break;
  5917.                                         }
  5918.                                 }
  5919.                         }
  5920.                 }
  5921.                 if(UserCache[pUID[playerid]][uSex])
  5922.                 format(msg, sizeof(msg), "%d(kobieta) mówi: "HEX_WHITE"%s", ItemCache[uid][iVal], text);
  5923.                 else
  5924.                 format(msg, sizeof(msg), "%d(mężczyzna) mówi: "HEX_WHITE"%s", ItemCache[uid][iVal], text);
  5925.                 SendClientMessage(CallData[playerid][cCaller], COLOR_YELLOW, msg);
  5926.                 return 0;
  5927.         }
  5928.  
  5929.         if(UserCache[pUID[playerid]][uTutorial] > 0)
  5930.         {
  5931.                 new actorvw;
  5932.                 new pvw = GetPlayerVirtualWorld(playerid);
  5933.                 for(new i=0; i<=GetActorPoolSize(); i++)
  5934.                 {
  5935.                         GetActorPos(i, X, Y, Z);
  5936.                         actorvw = GetActorVirtualWorld(i);
  5937.                         if(IsPlayerInRangeOfPoint(playerid, 15.0, X, Y,Z) && pvw == actorvw)
  5938.                         {
  5939.                                 if(strfind(text, "kurw", true) != -1)
  5940.                                 {
  5941.                                         SendActorMessageInRange(i, "Jane Smith mówi: zamknij pizde lachociągu jebany kurwa");
  5942.                                         break;
  5943.                                 }
  5944.                         }
  5945.                 }
  5946.         }
  5947.         return 0;
  5948. }
  5949.  
  5950. stock SendActorMessageInRange(actorid, msg[])
  5951. {
  5952.         new Float:X, Float:Y, Float:Z;
  5953.         GetActorPos(actorid, X, Y, Z);
  5954.         new vw = GetActorVirtualWorld(actorid);
  5955.         for(new i=0; i<=GetPlayerPoolSize(); i++)
  5956.         {
  5957.                 if(IsPlayerConnected(i))
  5958.                 {
  5959.                         if(GetPlayerVirtualWorld(i) == vw)
  5960.                         {
  5961.                                 if(IsPlayerInRangeOfPoint(i, 2.0, X, Y, Z))
  5962.                                 {
  5963.                                         SendClientMessage(i, CHAT_SHADE_1, msg);
  5964.                                 }
  5965.                                 else if(IsPlayerInRangeOfPoint(i, 4.0, X, Y, Z))
  5966.                                 {
  5967.                                         SendClientMessage(i, CHAT_SHADE_2, msg);
  5968.                                 }
  5969.                                 else if(IsPlayerInRangeOfPoint(i, 6.0, X, Y, Z))
  5970.                                 {
  5971.                                         SendClientMessage(i, CHAT_SHADE_3, msg);
  5972.                                 }
  5973.                                 else if(IsPlayerInRangeOfPoint(i, 8.0, X, Y, Z))
  5974.                                 {
  5975.                                         SendClientMessage(i, CHAT_SHADE_4, msg);
  5976.                                 }
  5977.                                 else if(IsPlayerInRangeOfPoint(i, 10.0, X, Y, Z))
  5978.                                 {
  5979.                                         SendClientMessage(i, CHAT_SHADE_5, msg);
  5980.                                 }
  5981.                                 else if(IsPlayerInRangeOfPoint(i, 12.0, X, Y, Z))
  5982.                                 {
  5983.                                         SendClientMessage(i, CHAT_SHADE_6, msg);
  5984.                                 }
  5985.                         }
  5986.                 }
  5987.         }
  5988. }
  5989.  
  5990. stock SendPlayerMessageInRange(playerid, text[], color, color2, color3, color4, color5, color6)
  5991. {
  5992.         new msg[128]; format(msg, sizeof(msg), text);
  5993.         new Float:X, Float:Y, Float:Z;
  5994.         GetPlayerPos(playerid, X, Y, Z);
  5995.         new vw = GetPlayerVirtualWorld(playerid);
  5996.         for(new i; i<=GetPlayerPoolSize(); i++)
  5997.         {
  5998.                 if(IsPlayerConnected(i))
  5999.                 {
  6000.                         if(GetPlayerVirtualWorld(i) == vw)
  6001.                         {
  6002.                                 if(IsPlayerInRangeOfPoint(i, 1.0, X, Y, Z))
  6003.                                 {
  6004.                                         if(strlen(msg) >= 64)
  6005.                                         {
  6006.                                                 new temp1[128], temp2[128];
  6007.                                                 temp1 = msg, temp2=msg;
  6008.                                                 strdel(temp1, 64, strlen(temp1));
  6009.                                                 strins(temp1, "...", strlen(temp1));
  6010.                                                 strdel(temp2, 0, 64);
  6011.                                                 strins(temp2, "...", 0);
  6012.                                                 SendClientMessage(i, color, temp1);
  6013.                                                 SendClientMessage(i, color, temp2);
  6014.                                                 continue;
  6015.                                         }
  6016.                                         SendClientMessage(i, color, msg);
  6017.                                 }
  6018.                                 else if(IsPlayerInRangeOfPoint(i, 4.0, X, Y, Z))
  6019.                                 {
  6020.                                         if(strlen(msg) >= 64)
  6021.                                         {
  6022.                                                 new temp1[128], temp2[128];
  6023.                                                 temp1 = msg, temp2=msg;
  6024.                                                 strdel(temp1, 64, strlen(temp1));
  6025.                                                 strins(temp1, "...", strlen(temp1));
  6026.                                                 strdel(temp2, 0, 64);
  6027.                                                 strins(temp2, "...", 0);
  6028.                                                 SendClientMessage(i, color2, temp1);
  6029.                                                 SendClientMessage(i, color, temp2);
  6030.                                                 continue;
  6031.                                         }
  6032.                                         SendClientMessage(i, color2, msg);
  6033.                                 }
  6034.                                 else if(IsPlayerInRangeOfPoint(i, 8.0, X, Y, Z))
  6035.                                 {
  6036.                                         if(strlen(msg) >= 64)
  6037.                                         {
  6038.                                                 new temp1[128], temp2[128];
  6039.                                                 temp1 = msg, temp2=msg;
  6040.                                                 strdel(temp1, 64, strlen(temp1));
  6041.                                                 strins(temp1, "...", strlen(temp1));
  6042.                                                 strdel(temp2, 0, 64);
  6043.                                                 strins(temp2, "...", 0);
  6044.                                                 SendClientMessage(i, color3, temp1);
  6045.                                                 SendClientMessage(i, color3, temp2);
  6046.                                                 continue;
  6047.                                         }
  6048.                                         SendClientMessage(i, color3, msg);
  6049.                                 }
  6050.                                 else if(IsPlayerInRangeOfPoint(i, 12.0, X, Y, Z))
  6051.                                 {
  6052.                                         if(strlen(msg) >= 64)
  6053.                                         {
  6054.                                                 new temp1[128], temp2[128];
  6055.                                                 temp1 = msg, temp2=msg;
  6056.                                                 strdel(temp1, 64, strlen(temp1));
  6057.                                                 strins(temp1, "...", strlen(temp1));
  6058.                                                 strdel(temp2, 0, 64);
  6059.                                                 strins(temp2, "...", 0);
  6060.                                                 SendClientMessage(i, color4, temp1);
  6061.                                                 SendClientMessage(i, color4, temp2);
  6062.                                                 continue;
  6063.                                         }
  6064.                                         SendClientMessage(i, color4, msg);
  6065.                                 }
  6066.                                 else if(IsPlayerInRangeOfPoint(i, 16.0, X, Y, Z))
  6067.                                 {
  6068.                                         if(strlen(msg) >= 64)
  6069.                                         {
  6070.                                                 new temp1[128], temp2[128];
  6071.                                                 temp1 = msg, temp2=msg;
  6072.                                                 strdel(temp1, 64, strlen(temp1));
  6073.                                                 strins(temp1, "...", strlen(temp1));
  6074.                                                 strdel(temp2, 0, 64);
  6075.                                                 strins(temp2, "...", 0);
  6076.                                                 SendClientMessage(i, color5, temp1);
  6077.                                                 SendClientMessage(i, color5, temp2);
  6078.                                                 continue;
  6079.                                         }
  6080.                                         SendClientMessage(i, color5, msg);
  6081.                                 }
  6082.                                 else if(IsPlayerInRangeOfPoint(i, 20.0, X, Y, Z))
  6083.                                 {
  6084.                                         if(strlen(msg) >= 64)
  6085.                                         {
  6086.                                                 new temp1[128], temp2[128];
  6087.                                                 temp1 = msg, temp2=msg;
  6088.                                                 strdel(temp1, 64, strlen(temp1));
  6089.                                                 strins(temp1, "...", strlen(temp1));
  6090.                                                 strdel(temp2, 0, 64);
  6091.                                                 strins(temp2, "...", 0);
  6092.                                                 SendClientMessage(i, color6, temp1);
  6093.                                                 SendClientMessage(i, color6, temp2);
  6094.                                                 continue;
  6095.                                         }
  6096.                                         SendClientMessage(i, color6, msg);
  6097.                                 }
  6098.                         }
  6099.                 }
  6100.         }
  6101.         return 1;
  6102. }
  6103.  
  6104. stock strreplace(string[], find, replace)
  6105. {
  6106.         new str[128];
  6107.         format(str, sizeof(str), string);
  6108.         for(new i = 0; i < strlen(str); i++)
  6109.         {
  6110.                 if(str[i] == find)
  6111.                 {
  6112.                         str[i] = replace;
  6113.                 }
  6114.         }
  6115.         return str;
  6116. }
  6117.  
  6118. stock ClearChat(playerid)
  6119. {
  6120.         for(new i=0; i<21; i++)
  6121.         {
  6122.                 SendClientMessage(playerid, 0, " ");
  6123.         }
  6124. }
  6125.  
  6126. stock TextDrawForPlayerEx(playerid, textdrawid, text[], time)
  6127. {
  6128.         switch(textdrawid)
  6129.         {
  6130.                 case 0: {PlayerTextDrawSetString(playerid, ObjectInfo[playerid], text); PlayerTextDrawShow(playerid, ObjectInfo[playerid]); ObjectInfoTimer[playerid]=SetTimerEx("HideTextDrawForPlayerEx", time, false, "iii", playerid, 0, time);}
  6131.                 case 1: {PlayerTextDrawSetString(playerid, RadarTextDraw[playerid], text); PlayerTextDrawShow(playerid, RadarTextDraw[playerid]); RadarTextDrawTimer[playerid]=SetTimerEx("HideTextDrawForPlayerEx", time, false, "iii", playerid, 1, time);}
  6132.                 case 2: {PlayerTextDrawSetString(playerid, TextDrawDoorInfo[playerid], text); PlayerTextDrawShow(playerid, TextDrawDoorInfo[playerid]); DoorInfoTextTimer[playerid]=SetTimerEx("HideTextDrawForPlayerEx", time, false, "iii", playerid, 2, time);}
  6133.         }
  6134.         return 1;
  6135. }
  6136.  
  6137. stock TextDrawForPlayer(playerid, textdrawid, text[])
  6138. {
  6139.         switch(textdrawid)
  6140.         {
  6141.                 case 0: {PlayerTextDrawSetString(playerid, BottomTextDraw[playerid], text); PlayerTextDrawShow(playerid, BottomTextDraw[playerid]);}
  6142.                 case 1: {PlayerTextDrawSetString(playerid, RadarTextDraw[playerid], text); PlayerTextDrawShow(playerid, RadarTextDraw[playerid]);}
  6143.                 case 2: {PlayerTextDrawSetString(playerid, BWTextDraw[playerid], text); PlayerTextDrawShow(playerid, BWTextDraw[playerid]);}
  6144.                 case 3: {PlayerTextDrawSetString(playerid, AJTextDraw[playerid], text); PlayerTextDrawShow(playerid, AJTextDraw[playerid]);}
  6145.         }
  6146. }
  6147.  
  6148. stock HideTextDrawForPlayer(playerid, textdrawid)
  6149. {
  6150.         switch(textdrawid)
  6151.         {
  6152.                 case 0: PlayerTextDrawHide(playerid, BottomTextDraw[playerid]);
  6153.                 case 1: PlayerTextDrawHide(playerid, RadarTextDraw[playerid]);
  6154.                 case 2: PlayerTextDrawHide(playerid, BWTextDraw[playerid]);
  6155.                 case 3: PlayerTextDrawHide(playerid, AJTextDraw[playerid]);
  6156.  
  6157.         }
  6158. }
  6159.  
  6160. forward HideTextDrawForPlayerEx(playerid, textdrawid, time);
  6161. public HideTextDrawForPlayerEx(playerid, textdrawid, time)
  6162. {
  6163.         switch(textdrawid)
  6164.         {
  6165.                 case 0: PlayerTextDrawHide(playerid, ObjectInfo[playerid]);
  6166.                 case 1: PlayerTextDrawHide(playerid, RadarTextDraw[playerid]);
  6167.                 case 2: PlayerTextDrawHide(playerid, TextDrawDoorInfo[playerid]);
  6168.         }
  6169.         return 1;
  6170. }
  6171.  
  6172. public OnPlayerDisconnect(playerid, reason)
  6173. {
  6174.         godmodecount[playerid]=0;
  6175.         LoginAttempt[playerid] = 0;
  6176.         for(new i=0; i<10; i++)
  6177.         {
  6178.                 if(IsPlayerAttachedObjectSlotUsed(playerid, i))
  6179.                 RemovePlayerAttachedObject(playerid, i);
  6180.         }
  6181.         if(pUID[playerid])
  6182.         {
  6183.                 new uid = pUID[playerid]; // uid - player's UID
  6184.                 UserCache[uid][uOnline] = false;
  6185.                 UserCache[uid][uBelts] = false;
  6186.                 if(UserCache[uid][uAJ] == 0 && UserCache[uid][uTutorial] == 0)
  6187.                 {
  6188.                         GetPlayerPos(playerid, UserCache[uid][uSpawnX], UserCache[uid][uSpawnY], UserCache[uid][uSpawnZ]);
  6189.                         UserCache[uid][uSpawnVW] = GetPlayerVirtualWorld(playerid); // Saving player's position and virtual world
  6190.                 }
  6191.                 KillTimer(PlayerRepairingVehicle[playerid][repairTimer]);
  6192.                 DestroyDynamic3DTextLabel(pDesc[playerid][dID]); // Destroy his description
  6193.                 pDesc[playerid][dID] = Text3D:0;
  6194.                 pDesc[playerid][dIsDescOnPlayer] = false;
  6195.                 for(new i=1; i<LastiUID; i++)
  6196.                 {
  6197.                         if(ItemCache[i][iOwner] == pUID[playerid])
  6198.                         {
  6199.                                 if(ItemCache[i][iActive])
  6200.                                 {
  6201.                                         if(ItemCache[i][iType] != 2)
  6202.                                         {
  6203.                                                 if(ItemCache[i][iType] == 1)
  6204.                                                 ResetPlayerWeapons(playerid);
  6205.                                                 ItemCache[i][iActive]=0;
  6206.                                         }
  6207.                                 }
  6208.                         }
  6209.                 }
  6210.                 for(new i=1; i < LastoUID; i++) // Clear object editor
  6211.                 {
  6212.                         if(ObjectCache[i][oState] == 0)
  6213.                         {
  6214.                                 if(ObjectCache[i][oPlayer] == playerid)
  6215.                                 {
  6216.                                         ObjectCache[i][oPlayer] = -1;
  6217.                                         KillTimer(ObjectCache[i][oTimer]);
  6218.                                         ObjectCache[i][oTimer] = 0;
  6219.                                         break;
  6220.                                 }
  6221.                         }
  6222.                 }
  6223.                 // Clear phone calling
  6224.                 if(CallData[playerid][cCaller] != -1 && !CallData[playerid][cCalling])
  6225.                 {
  6226.                         new callerid = CallData[playerid][cCaller];
  6227.                         SetPlayerSpecialAction(callerid, 13);
  6228.                         SendClientMessage(callerid, -1, "Rozmówca rozłączył się.");
  6229.                         CallData[callerid][cCaller] = -1;
  6230.                 }
  6231.                 CallData[playerid][cCalling] = 0;
  6232.                 CallData[playerid][cCaller] = -1;
  6233.                 pDuty[playerid] = 0;
  6234.                 pChoosingTxd[playerid] = 0;
  6235.                 aduty[playerid] = 0;
  6236.                 ac[playerid] = false;
  6237.                 SetTimerEx("ClearPos", 60000*10, false, "i", pUID[playerid]);
  6238.                 pUID[playerid] = 0;
  6239.         }
  6240.         return 1;
  6241. }
  6242.  
  6243. forward ClearPos(puid);
  6244. public ClearPos(puid)
  6245. {
  6246.         for(new i; i<=GetPlayerPoolSize(); i++)
  6247.         {
  6248.                 if(IsPlayerConnected(i))
  6249.                 {
  6250.                         if(pUID[i] == puid)
  6251.                         {
  6252.                                 return 1;
  6253.                         }
  6254.                 }
  6255.         }
  6256.         UserCache[puid][uSpawnX] = 0;
  6257.         UserCache[puid][uSpawnY] = 0;
  6258.         UserCache[puid][uSpawnZ] = 0;
  6259.         return 1;
  6260. }
  6261.  
  6262. stock CreatePlayerTextDraws(playerid)
  6263. {
  6264.  
  6265.         VehicleInfo[playerid] = CreatePlayerTextDraw(playerid, 505.519317, 390.666748, "Predkosc: ~b~~h~~h~0 km/h~n~~w~Paliwo: ~b~~h~~h~100/100");
  6266.         PlayerTextDrawLetterSize(playerid, VehicleInfo[playerid], 0.212122, 0.905833);
  6267.         PlayerTextDrawTextSize(playerid, VehicleInfo[playerid], 642.000000, 0.000000);
  6268.         PlayerTextDrawAlignment(playerid, VehicleInfo[playerid], 1);
  6269.         PlayerTextDrawColor(playerid, VehicleInfo[playerid], -1);
  6270.         PlayerTextDrawUseBox(playerid, VehicleInfo[playerid], 1);
  6271.         PlayerTextDrawBoxColor(playerid, VehicleInfo[playerid], 20);
  6272.         PlayerTextDrawSetShadow(playerid, VehicleInfo[playerid], 0);
  6273.         PlayerTextDrawSetOutline(playerid, VehicleInfo[playerid], 1);
  6274.         PlayerTextDrawBackgroundColor(playerid, VehicleInfo[playerid], 36);
  6275.         PlayerTextDrawFont(playerid, VehicleInfo[playerid], 1);
  6276.         PlayerTextDrawSetProportional(playerid, VehicleInfo[playerid], 1);
  6277.         PlayerTextDrawSetShadow(playerid, VehicleInfo[playerid], 0);
  6278.  
  6279.         BottomTextDraw[playerid] = CreatePlayerTextDraw(playerid, 499.898010, 306.666656, "Kradziez pojazdu.~n~Rozpoczynasz ~r~~h~kradziez pojazdu~w~. Czekaj cierpliwie do konca kradziezy.~n~~n~Kliknij ~y~LPM~w~ aby anl");
  6280.         PlayerTextDrawLetterSize(playerid, BottomTextDraw[playerid], 0.249135, 1.337484);
  6281.         PlayerTextDrawTextSize(playerid, BottomTextDraw[playerid], 0.000000, 239.000000);
  6282.         PlayerTextDrawAlignment(playerid, BottomTextDraw[playerid], 2);
  6283.         PlayerTextDrawColor(playerid, BottomTextDraw[playerid], -1);
  6284.         PlayerTextDrawUseBox(playerid, BottomTextDraw[playerid], 1);
  6285.         PlayerTextDrawBoxColor(playerid, BottomTextDraw[playerid], 43);
  6286.         PlayerTextDrawSetShadow(playerid, BottomTextDraw[playerid], 0);
  6287.         PlayerTextDrawSetOutline(playerid, BottomTextDraw[playerid], 1);
  6288.         PlayerTextDrawBackgroundColor(playerid, BottomTextDraw[playerid], 255);
  6289.         PlayerTextDrawFont(playerid, BottomTextDraw[playerid], 1);
  6290.         PlayerTextDrawSetProportional(playerid, BottomTextDraw[playerid], 1);
  6291.         PlayerTextDrawSetShadow(playerid, BottomTextDraw[playerid], 0);
  6292.  
  6293.         RadarTextDraw[playerid] = CreatePlayerTextDraw(playerid, 549.561157, 110.083229, " ");
  6294.         PlayerTextDrawLetterSize(playerid, RadarTextDraw[playerid],0.186464, 1.080818);
  6295.         PlayerTextDrawTextSize(playerid, RadarTextDraw[playerid],0.099999, 130.000000);
  6296.         PlayerTextDrawAlignment(playerid, RadarTextDraw[playerid], 2);
  6297.         PlayerTextDrawColor(playerid, RadarTextDraw[playerid], -1);
  6298.         PlayerTextDrawUseBox(playerid, RadarTextDraw[playerid], 1);
  6299.         PlayerTextDrawBoxColor(playerid, RadarTextDraw[playerid], 36);
  6300.         PlayerTextDrawSetShadow(playerid, RadarTextDraw[playerid], 0);
  6301.         PlayerTextDrawSetOutline(playerid, RadarTextDraw[playerid], 1);
  6302.         PlayerTextDrawBackgroundColor(playerid, RadarTextDraw[playerid], 28);
  6303.         PlayerTextDrawFont(playerid, RadarTextDraw[playerid], 1);
  6304.         PlayerTextDrawSetProportional(playerid,RadarTextDraw[playerid], 1);
  6305.         PlayerTextDrawSetShadow(playerid, RadarTextDraw[playerid], 0);
  6306.  
  6307.         TextDrawDoorInfo[playerid] = CreatePlayerTextDraw(playerid, 522.386779, 372.000122, " ");
  6308.         PlayerTextDrawLetterSize(playerid, TextDrawDoorInfo[playerid],0.183068, 0.969994);
  6309.         PlayerTextDrawTextSize(playerid, TextDrawDoorInfo[playerid], 0.000000, 143.000000);
  6310.         PlayerTextDrawAlignment(playerid, TextDrawDoorInfo[playerid], 2);
  6311.         PlayerTextDrawColor(playerid, TextDrawDoorInfo[playerid], -1);
  6312.         PlayerTextDrawUseBox(playerid, TextDrawDoorInfo[playerid], 1);
  6313.         PlayerTextDrawBoxColor(playerid, TextDrawDoorInfo[playerid], 28);
  6314.         PlayerTextDrawSetShadow(playerid, TextDrawDoorInfo[playerid], 0);
  6315.         PlayerTextDrawSetOutline(playerid, TextDrawDoorInfo[playerid], 1);
  6316.         PlayerTextDrawBackgroundColor(playerid, TextDrawDoorInfo[playerid], 30);
  6317.         PlayerTextDrawFont(playerid, TextDrawDoorInfo[playerid], 1);
  6318.         PlayerTextDrawSetProportional(playerid, TextDrawDoorInfo[playerid], 1);
  6319.         PlayerTextDrawSetShadow(playerid, TextDrawDoorInfo[playerid], 0);
  6320.  
  6321.         BWTextDraw[playerid] = CreatePlayerTextDraw(playerid, 319.517089, 396.500091, "Stan nieprzytomnosci przez: 10 min");
  6322.         PlayerTextDrawLetterSize(playerid, BWTextDraw[playerid], 0.231331, 0.981666);
  6323.         PlayerTextDrawTextSize(playerid, BWTextDraw[playerid],0.000000, 158.000000);
  6324.         PlayerTextDrawAlignment(playerid, BWTextDraw[playerid], 2);
  6325.         PlayerTextDrawColor(playerid, BWTextDraw[playerid], -1);
  6326.         PlayerTextDrawUseBox(playerid, BWTextDraw[playerid], 1);
  6327.         PlayerTextDrawBoxColor(playerid, BWTextDraw[playerid],-16711642);
  6328.         PlayerTextDrawSetShadow(playerid, BWTextDraw[playerid], 0);
  6329.         PlayerTextDrawSetOutline(playerid, BWTextDraw[playerid], 1);
  6330.         PlayerTextDrawBackgroundColor(playerid, BWTextDraw[playerid], 255);
  6331.         PlayerTextDrawFont(playerid, BWTextDraw[playerid], 1);
  6332.         PlayerTextDrawSetProportional(playerid, BWTextDraw[playerid], 1);
  6333.         PlayerTextDrawSetShadow(playerid, BWTextDraw[playerid], 0);
  6334.  
  6335.  
  6336.         AJTextDraw[playerid] = CreatePlayerTextDraw(playerid, 237.993927, 335.249938, " ");
  6337.         PlayerTextDrawLetterSize(playerid, AJTextDraw[playerid], 0.951446, 3.034994);
  6338.         PlayerTextDrawAlignment(playerid, AJTextDraw[playerid], 2);
  6339.         PlayerTextDrawColor(playerid, AJTextDraw[playerid], -1);
  6340.         PlayerTextDrawSetShadow(playerid, AJTextDraw[playerid], 0);
  6341.         PlayerTextDrawSetOutline(playerid, AJTextDraw[playerid], 2);
  6342.         PlayerTextDrawBackgroundColor(playerid, AJTextDraw[playerid], 36);
  6343.         PlayerTextDrawFont(playerid, AJTextDraw[playerid], 1);
  6344.         PlayerTextDrawSetProportional(playerid, AJTextDraw[playerid], 1);
  6345.         PlayerTextDrawSetShadow(playerid, AJTextDraw[playerid], 0);
  6346.  
  6347.  
  6348.         Group[playerid] = CreatePlayerTextDraw(playerid, 553.777770, 143.916717, "Brak");
  6349.         PlayerTextDrawLetterSize(playerid, Group[playerid], 0.180730, 1.098330);
  6350.         PlayerTextDrawTextSize(playerid, Group[playerid], 5, 138.000000);
  6351.         PlayerTextDrawAlignment(playerid, Group[playerid], 2);
  6352.         PlayerTextDrawColor(playerid, Group[playerid], -1);
  6353.         PlayerTextDrawUseBox(playerid, Group[playerid], 1);
  6354.         PlayerTextDrawBoxColor(playerid, Group[playerid], 23);
  6355.         PlayerTextDrawSetShadow(playerid, Group[playerid], 0);
  6356.         PlayerTextDrawSetOutline(playerid, Group[playerid], 1);
  6357.         PlayerTextDrawBackgroundColor(playerid, Group[playerid], 23);
  6358.         PlayerTextDrawFont(playerid, Group[playerid], 1);
  6359.         PlayerTextDrawSetProportional(playerid, Group[playerid], 1);
  6360.         PlayerTextDrawSetShadow(playerid, Group[playerid], 0);
  6361.         PlayerTextDrawSetSelectable(playerid, Group[playerid], 1);
  6362.  
  6363.         Group2[playerid] = CreatePlayerTextDraw(playerid, 553.777648, 160.250076, "Brak");
  6364.         PlayerTextDrawLetterSize(playerid, Group2[playerid], 0.180730, 1.098330);
  6365.         PlayerTextDrawTextSize(playerid, Group2[playerid], 5, 138.000000);
  6366.         PlayerTextDrawAlignment(playerid, Group2[playerid], 2);
  6367.         PlayerTextDrawColor(playerid, Group2[playerid], -1);
  6368.         PlayerTextDrawUseBox(playerid, Group2[playerid], 1);
  6369.         PlayerTextDrawBoxColor(playerid, Group2[playerid], 23);
  6370.         PlayerTextDrawSetShadow(playerid, Group2[playerid], 0);
  6371.         PlayerTextDrawSetOutline(playerid, Group2[playerid], 1);
  6372.         PlayerTextDrawBackgroundColor(playerid, Group2[playerid], 23);
  6373.         PlayerTextDrawFont(playerid, Group2[playerid], 1);
  6374.         PlayerTextDrawSetProportional(playerid, Group2[playerid], 1);
  6375.         PlayerTextDrawSetShadow(playerid, Group2[playerid], 0);
  6376.         PlayerTextDrawSetSelectable(playerid, Group2[playerid], 1);
  6377.  
  6378.         Group3[playerid] = CreatePlayerTextDraw(playerid, 553.777648, 176.583343, "Brak");
  6379.         PlayerTextDrawLetterSize(playerid, Group3[playerid], 0.180730, 1.098330);
  6380.         PlayerTextDrawTextSize(playerid, Group3[playerid], 5, 138.000000);
  6381.         PlayerTextDrawAlignment(playerid, Group3[playerid], 2);
  6382.         PlayerTextDrawColor(playerid, Group3[playerid], -1);
  6383.         PlayerTextDrawUseBox(playerid, Group3[playerid], 1);
  6384.         PlayerTextDrawBoxColor(playerid, Group3[playerid], 23);
  6385.         PlayerTextDrawSetShadow(playerid, Group3[playerid], 0);
  6386.         PlayerTextDrawSetOutline(playerid, Group3[playerid], 1);
  6387.         PlayerTextDrawBackgroundColor(playerid, Group3[playerid], 23);
  6388.         PlayerTextDrawFont(playerid, Group3[playerid], 1);
  6389.         PlayerTextDrawSetProportional(playerid, Group3[playerid], 1);
  6390.         PlayerTextDrawSetShadow(playerid, Group3[playerid], 0);
  6391.         PlayerTextDrawSetSelectable(playerid, Group3[playerid], 1);
  6392.  
  6393.         GroupLabel[playerid] = CreatePlayerTextDraw(playerid, 553.309082, 127.583351, "Twoje grupy:");
  6394.         PlayerTextDrawLetterSize(playerid, GroupLabel[playerid], 0.181667, 1.057497);
  6395.         PlayerTextDrawTextSize(playerid, GroupLabel[playerid], 0.000000, 138.000000);
  6396.         PlayerTextDrawAlignment(playerid, GroupLabel[playerid], 2);
  6397.         PlayerTextDrawColor(playerid, GroupLabel[playerid], -1);
  6398.         PlayerTextDrawUseBox(playerid, GroupLabel[playerid], 1);
  6399.         PlayerTextDrawBoxColor(playerid, GroupLabel[playerid], 23);
  6400.         PlayerTextDrawSetShadow(playerid, GroupLabel[playerid], 0);
  6401.         PlayerTextDrawSetOutline(playerid, GroupLabel[playerid], 1);
  6402.         PlayerTextDrawBackgroundColor(playerid, GroupLabel[playerid], 23);
  6403.         PlayerTextDrawFont(playerid, GroupLabel[playerid], 1);
  6404.         PlayerTextDrawSetProportional(playerid, GroupLabel[playerid], 1);
  6405.         PlayerTextDrawSetShadow(playerid, GroupLabel[playerid], 0);
  6406.  
  6407.         DutyTxd[playerid] = CreatePlayerTextDraw(playerid, 516.763854, 3.333277, "Sluzba: ~y~Federal Bureau of Investigation");
  6408.         PlayerTextDrawLetterSize(playerid, DutyTxd[playerid], 0.169955, 0.923333);
  6409.         PlayerTextDrawAlignment(playerid, DutyTxd[playerid], 1);
  6410.         PlayerTextDrawColor(playerid, DutyTxd[playerid], -1);
  6411.         PlayerTextDrawSetShadow(playerid, DutyTxd[playerid], 0);
  6412.         PlayerTextDrawSetOutline(playerid, DutyTxd[playerid], 1);
  6413.         PlayerTextDrawBackgroundColor(playerid, DutyTxd[playerid], 22);
  6414.         PlayerTextDrawFont(playerid, DutyTxd[playerid], 1);
  6415.         PlayerTextDrawSetProportional(playerid, DutyTxd[playerid], 1);
  6416.         PlayerTextDrawSetShadow(playerid, DutyTxd[playerid], 0);
  6417.  
  6418.         ObjectInfo[playerid] = CreatePlayerTextDraw(playerid, 310.615112, 374.916717, "X: ~y~0.0 ~w~Y: ~y~0.0 ~w~Z: ~y~0.0~w~ rX: ~y~0.0~w~ rY: ~y~0.0 ~w~rZ: ~y~0.0");
  6419.         PlayerTextDrawLetterSize(playerid, ObjectInfo[playerid],0.209309, 1.028334);
  6420.         PlayerTextDrawAlignment(playerid, ObjectInfo[playerid], 2);
  6421.         PlayerTextDrawColor(playerid, ObjectInfo[playerid], -1);
  6422.         PlayerTextDrawSetShadow(playerid, ObjectInfo[playerid], 0);
  6423.         PlayerTextDrawSetOutline(playerid, ObjectInfo[playerid], 1);
  6424.         PlayerTextDrawBackgroundColor(playerid, ObjectInfo[playerid], 68);
  6425.         PlayerTextDrawFont(playerid, ObjectInfo[playerid], 1);
  6426.         PlayerTextDrawSetProportional(playerid, ObjectInfo[playerid], 1);
  6427.         PlayerTextDrawSetShadow(playerid, ObjectInfo[playerid], 0);
  6428.  
  6429. }
  6430.  
  6431. stock DestroyPlayerTextDraws(playerid)
  6432. {
  6433.         PlayerTextDrawDestroy(playerid, BottomTextDraw[playerid]);
  6434.         PlayerTextDrawDestroy(playerid, RadarTextDraw[playerid]);
  6435.         PlayerTextDrawDestroy(playerid, TextDrawDoorInfo[playerid]);
  6436.         PlayerTextDrawDestroy(playerid, BWTextDraw[playerid]);
  6437.         PlayerTextDrawDestroy(playerid, AJTextDraw[playerid]);
  6438.         PlayerTextDrawDestroy(playerid, Group2[playerid]);
  6439.         PlayerTextDrawDestroy(playerid, Group3[playerid]);
  6440.         PlayerTextDrawDestroy(playerid, GroupLabel[playerid]);
  6441.         PlayerTextDrawDestroy(playerid, Group[playerid]);
  6442.         PlayerTextDrawDestroy(playerid, DutyTxd[playerid]);
  6443.         PlayerTextDrawDestroy(playerid, ObjectInfo[playerid]);
  6444. }
  6445.  
  6446. cmd:anim (playerid, params[])
  6447. return ShowDialogAnim(playerid);
  6448.  
  6449. stock ShowDialogAnim(playerid)
  6450. return ShowPlayerDialog(playerid, D_ANIMS, DIALOG_STYLE_LIST, "Dostępne animacje", "//krzeslo\n//siad\n//napad\n//tancz\n//tancz2\n//tancz3\n//tancz4\n//tancz5", "Wybierz", "Anuluj");
  6451.  
  6452. public OnPlayerTakeDamage(playerid, issuerid, Float:amount, weaponid, bodypart)
  6453. {
  6454.         if(issuerid != INVALID_PLAYER_ID)
  6455.         {
  6456.                 if(UserCache[pUID[playerid]][uBW] > 0 || aduty[playerid])
  6457.                 return 1;
  6458.                 // issuerid - ten co uderzył
  6459.                 // playerid - ten co otrzymał
  6460.                 if(issuerid != Attacker[playerid])
  6461.                 {
  6462.                         Attacker[playerid] = issuerid;
  6463.                         SendClientMessage(issuerid, -1, "Nie jestes w stanie skrzywdzic tego gracza, jak ci odda to mozecie sie bic.");
  6464.                         return SendClientMessage(playerid, -1, "Gracz Ci nic nie zrobi bo nie oddałeś mu.");
  6465.                 }
  6466.                 if(Attacker[issuerid] != playerid)
  6467.                 {
  6468.                         return SendClientMessage(playerid, -1, "Gracz Ci nic nie zrobi bo nie oddales mu, jak mu oddasz to mu wpierdolic mozesz.");
  6469.                 }
  6470.                 if(ClearNicknameColorTimer[playerid] == 0)
  6471.                 {
  6472.                         UpdateDynamic3DTextLabelText(pNick[playerid][nID], DAMAGE_COLOR, pNick[playerid][nStr]);
  6473.                         ClearNicknameColorTimer[playerid] = SetTimerEx("ClearNicknameColor", 2500, false, "i", playerid);
  6474.                 }
  6475.                 new Float:damage =  0.0;
  6476.                 switch(weaponid)
  6477.                 {
  6478.                         case 0:
  6479.                         {
  6480.                                 if(UserCache[pUID[issuerid]][uStrenght] >= 100)
  6481.                                 damage = UserCache[pUID[issuerid]][uStrenght]/100;
  6482.                         }
  6483.                         case 2: damage = 3.0;
  6484.                         case 5: damage = 3.0;
  6485.                         case 6: damage = 3.0;
  6486.                         case 7: damage = 3.0;
  6487.                         case 22: damage = 4.0;
  6488.                         case 23: damage = 2.5;
  6489.                         case 24: damage = 21.0;
  6490.                         case 25: damage = 6.0;
  6491.                         case 28: damage = 1.5;
  6492.                         case 29: damage = 3.5;
  6493.                         case 30: damage = 9.5;
  6494.                         case 31: damage = 9.5;
  6495.                         case 32: damage = 2.0;
  6496.                         case 33: damage = 10.0;
  6497.                         case 34: damage = 50.0;
  6498.                         case 38: damage = 0.1;
  6499.                         case 41: damage = 0.5;
  6500.                         case 42: damage = 0.5;
  6501.  
  6502.                 }
  6503.                 if(UserCache[pUID[playerid]][uHealth] - damage <= 0)
  6504.                 {
  6505.                         if(Attacker[playerid] != -1)
  6506.                         {
  6507.                                 Attacker[Attacker[playerid]] = -1;
  6508.                                 Attacker[playerid] = -1;
  6509.                         }
  6510.                         if(!UserCache[pUID[playerid]][uAchievementManDown])
  6511.                         {
  6512.                                 UserCache[pUID[playerid]][uAchievementManDown] = true;
  6513.                                 SendClientMessage(playerid, COLOR_YELLOW, "> Zdobyto osiągnięcie Man Down! (+10 SP)");
  6514.                                 UserCache[pUID[playerid]][uSP] += 10;
  6515.                                 SetPlayerScore(playerid, UserCache[pUID[playerid]][uSP]);
  6516.                         }
  6517.                         SendPlayerMe(playerid, "traci przytomność");
  6518.                         UserCache[pUID[playerid]][uBWReason] = weaponid;
  6519.                         new puid = pUID[playerid];
  6520.                         UserCache[puid][uHealth]=1;
  6521.                         SetPlayerCameraPos(playerid, UserCache[puid][uSpawnX], UserCache[puid][uSpawnY], UserCache[puid][uSpawnZ]+10.0);
  6522.                         SetPlayerCameraLookAt(playerid, UserCache[puid][uSpawnX], UserCache[puid][uSpawnY], UserCache[puid][uSpawnZ], CAMERA_CUT);
  6523.                         UserCache[puid][uBW] = 2;
  6524.                         new msg[32];
  6525.                         format(msg, sizeof(msg),  "Stan nieprzytomnosci przez: %d min", UserCache[puid][uBW]);
  6526.                         TextDrawForPlayer(playerid, 2, msg);
  6527.                         ResetPlayerWeapons(playerid);
  6528.                         for(new i=1; i<LastiUID; i++)
  6529.                                 {
  6530.                                         if(ItemCache[i][iOwner] == pUID[playerid])
  6531.                                         {
  6532.                                                 if(ItemCache[i][iActive])
  6533.                                                 {
  6534.                                                         if(ItemCache[i][iType] == 1)
  6535.                                                         {
  6536.                                                                 ItemCache[i][iActive]=0;
  6537.                                                         }
  6538.                                                 }
  6539.                                         }
  6540.                                 }
  6541.                         TogglePlayerControllable(playerid, 0);
  6542.                         UpdatePlayerName(playerid);
  6543.                         ClearAnimations(playerid);
  6544.                         ApplyAnimation(playerid, "crack", "crckdeth1", 4.1, 0, 0, 0, 1, 0, 0);
  6545.                         return 1;
  6546.                 }
  6547.                 SetPlayerHP(playerid, UserCache[pUID[playerid]][uHealth]-damage);
  6548.         }
  6549.         else
  6550.         {
  6551.                 if(ClearNicknameColorTimer[playerid] == 0)
  6552.                 {
  6553.                         UpdateDynamic3DTextLabelText(pNick[playerid][nID], DAMAGE_COLOR, pNick[playerid][nStr]);
  6554.                         ClearNicknameColorTimer[playerid] = SetTimerEx("ClearNicknameColor", 2500, false, "i", playerid);
  6555.                 }
  6556.                 UserCache[pUID[playerid]][uHealth] -= amount;
  6557.         }
  6558.         return 1;
  6559. }
  6560.  
  6561. forward StandUp(playerid);
  6562. public StandUp(playerid)
  6563. {
  6564.         ClearAnimations(playerid);
  6565. }
  6566.  
  6567. stock GetBWReason(playerid)
  6568. {
  6569.         new uid = pUID[playerid], reason[64];
  6570.         if(UserCache[uid][uSex])
  6571.         {
  6572.                 if(UserCache[uid][uBWReason] < 22)
  6573.                 reason = "pobita";
  6574.                 else if(UserCache[uid][uBWReason] > 22 && UserCache[uid][uBWReason] < 49)
  6575.                 reason = "postrzelona z broni palnej";
  6576.                 else if(UserCache[uid][uBWReason] == 49)
  6577.                 reason = "potrącenie";
  6578.                 else if(UserCache[uid][uBWReason] == 51)
  6579.                 reason = "eksplozja";
  6580.                 else if(UserCache[uid][uBWReason] == 53)
  6581.                 reason = "utonięcie";
  6582.                 else if(UserCache[uid][uBWReason] == 54)
  6583.                 reason = "potłuczona";
  6584.         }
  6585.         else
  6586.         {
  6587.                 if(UserCache[uid][uBWReason] < 22)
  6588.                 reason = "pobity";
  6589.                 else if(UserCache[uid][uBWReason] > 22 && UserCache[uid][uBWReason] < 49)
  6590.                 reason = "postrzelony z broni palnej";
  6591.                 else if(UserCache[uid][uBWReason] == 49)
  6592.                 reason = "potrącenie";
  6593.                 else if(UserCache[uid][uBWReason] == 51)
  6594.                 reason = "eksplozja";
  6595.                 else if(UserCache[uid][uBWReason] == 53)
  6596.                 reason = "utonięcie";
  6597.                 else if(UserCache[uid][uBWReason] == 54)
  6598.                 reason = "potłuczony";
  6599.         }
  6600.         return reason;
  6601. }
  6602.  
  6603. stock SetPlayerHP(playerid, Float:HP)
  6604. {
  6605.         SetPlayerHealth(playerid, HP);
  6606.         UserCache[pUID[playerid]][uHealth] = HP;
  6607. }
  6608.  
  6609.  
  6610. forward ClearNicknameColor(playerid);
  6611. public ClearNicknameColor(playerid)
  6612. {
  6613.         UpdateDynamic3DTextLabelText(pNick[playerid][nID], pNick[playerid][nColor], pNick[playerid][nStr]);
  6614.         ClearNicknameColorTimer[playerid] = 0;
  6615. }
  6616.  
  6617. stock ReturnLastOnline(puid, todays)
  6618. {
  6619.         new str[32];
  6620.         format(str, sizeof(str), "%d dni temu", todays-UserCache[puid][uLastLogin]);
  6621.         return str;
  6622. }
  6623.  
  6624. cmd:a (playerid, params[])
  6625. {
  6626.         new year, month, days, todays;
  6627.         todays = getdate(year, month, days);
  6628.         new info[256], list[525];
  6629.         format(list, sizeof(list), "Nickname\tUprawnienia\tStatus\tOstatnio online\n");
  6630.         for(new i=1; i<LastUID; i++)
  6631.         {
  6632.                 if(UserCache[i][uRank])
  6633.                 {
  6634.                         format(info, sizeof(info), "%s\t%s%s\t%s\t%s\n", UserCache[i][uName], GetHexRankColor(UserCache[i][uRank]),GetRankName(UserCache[i][uRank]), UserCache[i][uOnline] ? (""HEX_GREEN"Online") : (""HEX_GRAY"Offline"), UserCache[i][uLastLogin] == todays ? ("Dzisiaj") : (ReturnLastOnline(i, todays)));
  6635.                         strins(list, info, strlen(list));
  6636.                 }
  6637.         }
  6638.         return ShowPlayerDialog(playerid, D_ADMINS, DIALOG_STYLE_TABLIST_HEADERS, "Nasza ekipa", list, "OK", "");
  6639. }
  6640.  
  6641. stock ShowDialogInfo(playerid, info[])
  6642. {
  6643.         ShowPlayerDialog(playerid, D_INFO, DIALOG_STYLE_MSGBOX, "Informacja", info, "ok", "");
  6644.         return 1;
  6645. }
  6646.  
  6647. public OnPlayerDeath(playerid, killerid, reason)
  6648. {
  6649.         Attacker[playerid] = -1;
  6650.         ResetPlayerWeapons(playerid);
  6651.         if(IsPlayerInAnyVehicle(playerid))
  6652.         RemovePlayerFromVehicle(playerid);
  6653.         new puid = pUID[playerid];
  6654.         UserCache[pUID[playerid]][uBWReason] = reason;
  6655.         UserCache[puid][uHealth]=1;
  6656.         GetPlayerPos(playerid, UserCache[puid][uSpawnX], UserCache[puid][uSpawnY], UserCache[puid][uSpawnZ]);
  6657.         TogglePlayerSpectating(playerid, 1);
  6658.         SetSpawnInfo(playerid, 0, GetPlayerSkin(playerid), UserCache[puid][uSpawnX], UserCache[puid][uSpawnY], UserCache[puid][uSpawnZ], 0.0, 0, 0, 0, 0, 0 ,0);
  6659.         TogglePlayerSpectating(playerid, 0);
  6660.         SendPlayerMe(playerid, "traci przytomność");
  6661.         SetPlayerHP(playerid, 100);
  6662.         ClearAnimations(playerid);
  6663.         ApplyAnimation(playerid, "crack", "crckdeth1", 4.1, 0, 0, 0, 1, 0, 0);
  6664.         SetPlayerCameraPos(playerid, UserCache[puid][uSpawnX], UserCache[puid][uSpawnY], UserCache[puid][uSpawnZ]+10.0);
  6665.         SetPlayerCameraLookAt(playerid, UserCache[puid][uSpawnX], UserCache[puid][uSpawnY], UserCache[puid][uSpawnZ], CAMERA_CUT);
  6666.         UserCache[puid][uBW] = 2;
  6667.         new msg[32];
  6668.         format(msg, sizeof(msg),  "Stan nieprzytomnosci przez: %d min", UserCache[puid][uBW]);
  6669.         TextDrawForPlayer(playerid, 2, msg);
  6670.         for(new i=1; i<LastiUID; i++)
  6671.                 {
  6672.                         if(ItemCache[i][iOwner] == pUID[playerid])
  6673.                         {
  6674.                                 if(ItemCache[i][iActive])
  6675.                                 {
  6676.                                         if(ItemCache[i][iType] == 1)
  6677.                                         {
  6678.                                                 SetTimerEx("HideWeapon", 50, false, "ii", ItemCache[i][iUID], playerid);
  6679.                                         }
  6680.                                 }
  6681.                         }
  6682.                 }
  6683.         TogglePlayerControllable(playerid, 0);
  6684.         UpdatePlayerName(playerid);
  6685.         UpdatePlayerInfo(playerid);
  6686.         return 1;
  6687. }
  6688.  
  6689. forward CheckCameraPos(playerid, Float:oldX, Float:oldY, Float:oldZ);
  6690. public CheckCameraPos(playerid, Float:oldX, Float:oldY, Float:oldZ)
  6691. {
  6692.         if(!UserCache[pUID[playerid]][uAFK])
  6693.         {
  6694.                 new Float:X, Float:Y, Float:Z;
  6695.                 GetPlayerCameraPos(playerid, X, Y,Z);
  6696.                 if(oldX == X && oldY == Y && oldZ == Z)
  6697.                 {
  6698.                         UserCache[pUID[playerid]][uAFK] = true;
  6699.                         UpdatePlayerName(playerid);
  6700.                         PlayerTextDrawSetString(playerid, BWTextDraw[playerid], "AFK");
  6701.                         PlayerTextDrawShow(playerid, BWTextDraw[playerid]);
  6702.                 }
  6703.         }
  6704. }
  6705.  
  6706. stock ReturnAttachFreeSlot(playerid)
  6707. {
  6708.         for(new i=0; i<10; i++)
  6709.         {
  6710.                 if(!IsPlayerAttachedObjectSlotUsed(playerid, i))
  6711.                 return i;
  6712.         }
  6713.         return -1;
  6714. }
  6715.  
  6716. forward OnPlayerWeaponChange(playerid, weaponid);
  6717. public OnPlayerWeaponChange(playerid, weaponid)
  6718. {
  6719.         for(new i=1; i<LastiUID; i++)
  6720.         {
  6721.                 if(ItemCache[i][iActive])
  6722.                 {
  6723.                         if(ItemCache[i][iOwner] == pUID[playerid])
  6724.                         {
  6725.                                 if(ItemCache[i][iType] == 1)
  6726.                                 {
  6727.                                         if(weaponid == 0)
  6728.                                         {
  6729.                                                 if(IsPlayerAttachedObjectSlotUsed(playerid, 6))
  6730.                                                 return 1;
  6731.                                                 new weapon = ItemCache[i][iVal];
  6732.                                                 switch(weapon)
  6733.                                                 {
  6734.                                                         case 5:  SetPlayerAttachedObject(playerid, 6, GetWeaponModel(weapon), 1,0.214000,-0.155999,-0.051000,2.200000,65.199981, 1.700000, 1, 1, 1, 0, 0);
  6735.                                                         case 3:  SetPlayerAttachedObject(playerid, 6, GetWeaponModel(weapon), 1,-0.179000,0.079999,-0.230999,88.500038,-79.399971,-4.199996, 1, 1, 1, 0, 0);
  6736.                                                         case 33: SetPlayerAttachedObject(playerid, 6, GetWeaponModel(weapon), 1,-0.158999,0.049999,0.155999,77.799972,178.399948, 3.099992, 1, 1, 1, 0, 0);
  6737.                                                         case 22: SetPlayerAttachedObject(playerid, 6, GetWeaponModel(weapon), 1,-0.158999,0.049999,0.155999,77.799972,178.399948, 3.099992, 1, 1, 1, 0, 0);
  6738.                                                         case 23: SetPlayerAttachedObject(playerid, 6, GetWeaponModel(weapon), 1,-0.158999,0.049999,0.155999,77.799972,178.399948, 3.099992, 1, 1, 1, 0, 0);
  6739.                                                         case 24: SetPlayerAttachedObject(playerid, 6, GetWeaponModel(weapon), 1,-0.158999,0.049999,0.155999,77.799972,178.399948, 3.099992, 1, 1, 1, 0, 0);
  6740.                                                         case 30: SetPlayerAttachedObject(playerid, 6, GetWeaponModel(weapon), 1,-0.118000,-0.133000,0.056000,7.699995,33.100013, -1.500000, 1, 1, 1, 0, 0);
  6741.                                                         case 31: SetPlayerAttachedObject(playerid, 6, GetWeaponModel(weapon), 1,0.011000,0.211000, -0.116000,178.299957,153.700164, -1.399997, 1, 1, 1, 0, 0);
  6742.                                                         case 25: SetPlayerAttachedObject(playerid, 6, GetWeaponModel(weapon), 1,-0.118000,-0.133000,0.056000,7.699995,33.100013, -1.500000, 1, 1, 1, 0, 0);
  6743.                                                         case 28: SetPlayerAttachedObject(playerid, 6, GetWeaponModel(weapon), 1,-0.006000,-0.089000,-0.163999,-2.099997,-3.299997,-175.099960, 1, 1, 1, 0, 0);
  6744.                                                         case 29: SetPlayerAttachedObject(playerid, 6, GetWeaponModel(weapon), 1,-0.006000,-0.089000,-0.163999,-2.099997,-3.299997,-175.099960, 1, 1, 1, 0, 0);
  6745.                                                         case 32: SetPlayerAttachedObject(playerid, 6, GetWeaponModel(weapon), 1,-0.006000,-0.089000,-0.163999,-2.099997,-3.299997,-175.099960, 1, 1, 1, 0, 0);
  6746.                                                 }
  6747.                                                 return 1;
  6748.                                         }
  6749.                                 }
  6750.                         }
  6751.                 }
  6752.         }
  6753.         return RemovePlayerAttachedObject(playerid, 6);
  6754. }
  6755.  
  6756. forward min_timer();
  6757. public min_timer()
  6758. {
  6759.         gettime(ghour, gmin, gsec);
  6760.         if(gmin==0)
  6761.         {
  6762.                 format(gmsg, sizeof(gmsg), "** Dzwony w ratuszu wybijają %d:%02d godzinę. **", ghour, gmin);
  6763.                 if(ghour==0)
  6764.                 gmsg = "** Dzwony w ratuszu wybijają północ. **";
  6765.                 SendClientMessageToAll(DO_SHADE_1, gmsg);
  6766.                 SetWorldTime(ghour);
  6767.         }
  6768.         new str[64];
  6769.         new guid;
  6770.         new dooruid;
  6771.         new vuid;
  6772.         for(new i=1; i<=GetVehiclePoolSize(); i++)
  6773.         {
  6774.                 vuid = GetVehicleUID(i);
  6775.                 if(VehicleCache[vuid][vEngine])
  6776.                 {
  6777.                         if(VehicleCache[vuid][vFuel] == 0)
  6778.                         {
  6779.                                 SetVehicleParamsEx(i, VehicleCache[vuid][vEngine]=0, VehicleCache[vuid][vLights], VehicleCache[vuid][vAlarm], VehicleCache[vuid][vDoors],  VehicleCache[vuid][vBonnet],VehicleCache[vuid][vBoot], VehicleCache[vuid][vObjective]);
  6780.                                 continue;
  6781.                         }
  6782.                         VehicleCache[vuid][vFuel]--;
  6783.                 }
  6784.         }
  6785.         new Float:pH;
  6786.         new Float:X, Float:Y, Float:Z;
  6787.         for(new i=0; i<=GetPlayerPoolSize(); i++)
  6788.         {
  6789.                 if(IsPlayerConnected(i))
  6790.                 {
  6791.                         if(pUID[i])
  6792.                         {
  6793.                                 if(GetPlayerSurfingVehicleID(i))
  6794.                                 {
  6795.                                         Freeze(i, 3000);
  6796.                                         GameTextForPlayer(i, "~r~~h~nie mozesz jezdzic na tym pojezdzie", 3000, 4);
  6797.                                         continue;
  6798.                                 }
  6799.                                 GetPlayerCameraPos(i, X, Y, Z);
  6800.                                 SetTimerEx("CheckCameraPos", 1000*30, false, "ifff", i, X, Y, Z);
  6801.                                 if(IsPlayerInAnyVehicle(i))
  6802.                                 {
  6803.                                         new id = GetPlayerVehicleID(i);
  6804.                                         if(GetPlayerVehicleSeat(i) == 0)
  6805.                                         {
  6806.                                                 if(GetVehicleSpeed(id) >= 180.0)
  6807.                                                 {
  6808.                                                         AJPlayer(i, "System", "Veh speedhack (A)", 30);
  6809.                                                 }
  6810.                                                 vuid = GetVehicleUID(id);
  6811.                                                 if(VehicleCache[vuid][vOwner] != pUID[i])
  6812.                                                 {
  6813.                                                         AJPlayer(i, "System", "Vehicle Jack (A)", 30);
  6814.                                                 }
  6815.                                         }
  6816.                                 }
  6817.                                 GetPlayerHealth(i, pH);
  6818.                                 if(pH != UserCache[pUID[i]][uHealth])
  6819.                                 SetPlayerHealth(i, UserCache[pUID[i]][uHealth]);
  6820.                                 if(GetPlayerMoney(i) != UserCache[pUID[i]][uCash])
  6821.                                 {
  6822.                                         ResetPlayerMoney(i);
  6823.                                         GivePlayerMoney(i, UserCache[pUID[i]][uCash]);
  6824.                                 }
  6825.                                 if(pDuty[i])
  6826.                                 {
  6827.                                         guid = pDuty[i];
  6828.                                         if(GroupCache[guid][gType] == 1) // We DO NOT check player inside building
  6829.                                         {
  6830.                                                 if(UserCache[pUID[i]][uGroup] == guid)
  6831.                                                 {
  6832.                                                         if(UserCache[pUID[i]][uGroupDuty] == 18)
  6833.                                                         {
  6834.                                                                 UserCache[pUID[i]][uBank] += 400;
  6835.                                                                 SendClientMessage(i, DO_SHADE_1, "* Otrzymujesz 400$ wypłaty *");
  6836.                                                                 PlayerPlaySound(i, 4201, 0.0, 0.0, 0.0);
  6837.                                                                 UserCache[pUID[i]][uGroupDuty] = 0;
  6838.                                                         }
  6839.                                                         UserCache[pUID[i]][uGroupDuty]++;
  6840.                                                 }
  6841.                                                 else if(UserCache[pUID[i]][uGroup2] == guid)
  6842.                                                 {
  6843.                                                         if(UserCache[pUID[i]][uGroupDuty2] == 18)
  6844.                                                         {
  6845.                                                                 UserCache[pUID[i]][uBank] += 400;
  6846.                                                                 SendClientMessage(i, DO_SHADE_1, "* Otrzymujesz 400$ wypłaty *");
  6847.                                                                 PlayerPlaySound(i, 4201, 0.0, 0.0, 0.0);
  6848.                                                                 UserCache[pUID[i]][uGroupDuty2] = 0;
  6849.                                                         }
  6850.                                                         UserCache[pUID[i]][uGroupDuty2]++;
  6851.                                                 }
  6852.                                                 else if(UserCache[pUID[i]][uGroup3] == guid)
  6853.                                                 {
  6854.                                                         if(UserCache[pUID[i]][uGroupDuty3] == 18)
  6855.                                                         {
  6856.                                                                 UserCache[pUID[i]][uBank] += 400;
  6857.                                                                 SendClientMessage(i, DO_SHADE_1, "* Otrzymujesz 400$ wypłaty *");
  6858.                                                                 PlayerPlaySound(i, 4201, 0.0, 0.0, 0.0);
  6859.                                                                 UserCache[pUID[i]][uGroupDuty3] = 0;
  6860.                                                         }
  6861.                                                         UserCache[pUID[i]][uGroupDuty3]++;
  6862.                                                 }
  6863.                                         }
  6864.                                         else // Count duty time ONLY when player is inside group's building
  6865.                                         {
  6866.                                                 dooruid = GetPlayerDoorUID(i);
  6867.                                                 if(DoorCache[dooruid][dGroupUID] == guid)
  6868.                                                 {
  6869.                                                         if(UserCache[pUID[i]][uGroup] == guid)
  6870.                                                         {
  6871.                                                                 if(UserCache[pUID[i]][uGroupDuty] == 18)
  6872.                                                                 {
  6873.                                                                         UserCache[pUID[i]][uBank] += 180;
  6874.                                                                         SendClientMessage(i, DO_SHADE_1, "* Otrzymujesz 180$ wypłaty *");
  6875.                                                                         PlayerPlaySound(i, 4201, 0.0, 0.0, 0.0);
  6876.                                                                         UserCache[pUID[i]][uGroupDuty] = 0;
  6877.                                                                 }
  6878.                                                                 UserCache[pUID[i]][uGroupDuty]++;
  6879.                                                         }
  6880.                                                         else if(UserCache[pUID[i]][uGroup2] == guid)
  6881.                                                         {
  6882.                                                                 if(UserCache[pUID[i]][uGroupDuty2] == 18)
  6883.                                                                 {
  6884.                                                                         UserCache[pUID[i]][uBank] += 180;
  6885.                                                                         SendClientMessage(i, DO_SHADE_1, "* Otrzymujesz 180$ wypłaty *");
  6886.                                                                         PlayerPlaySound(i, 4201, 0.0, 0.0, 0.0);
  6887.                                                                         UserCache[pUID[i]][uGroupDuty2] = 0;
  6888.                                                                 }
  6889.                                                                 UserCache[pUID[i]][uGroupDuty2]++;
  6890.                                                         }
  6891.                                                         else if(UserCache[pUID[i]][uGroup3] == guid)
  6892.                                                         {
  6893.                                                                 if(UserCache[pUID[i]][uGroupDuty3] == 18)
  6894.                                                                 {
  6895.                                                                         UserCache[pUID[i]][uBank] += 180;
  6896.                                                                         SendClientMessage(i, DO_SHADE_1, "* Otrzymujesz 180$ wypłaty *");
  6897.                                                                         PlayerPlaySound(i, 4201, 0.0, 0.0, 0.0);
  6898.                                                                         UserCache[pUID[i]][uGroupDuty3] = 0;
  6899.                                                                 }
  6900.                                                                 UserCache[pUID[i]][uGroupDuty3]++;
  6901.                                                         }
  6902.                                                 }
  6903.                                         }
  6904.                                 }
  6905.                                 if(UserCache[pUID[i]][uMin] >= 60)
  6906.                                 {
  6907.                                         UserCache[pUID[i]][uMin] = 0;
  6908.                                         UserCache[pUID[i]][uH]++;
  6909.                                 }
  6910.                                 UserCache[pUID[i]][uMin]++;
  6911.                                 if(UserCache[pUID[i]][uBW] > 0)
  6912.                                 {
  6913.                                         UserCache[pUID[i]][uBW]--;
  6914.                                         format(str, sizeof(str), "Stan nieprzytomnosci przez: %dmin", UserCache[pUID[i]][uBW]);
  6915.                                         PlayerTextDrawShow(i, BWTextDraw[i]);
  6916.                                         if(UserCache[pUID[i]][uBW] == 0)
  6917.                                         {
  6918.                                                 TogglePlayerControllable(i, 1);
  6919.                                                 ClearAnimations(i);
  6920.                                                 SetCameraBehindPlayer(i);
  6921.                                                 ShowDialogInfo(i, "Twoja postać ocknęła się po utracie przytomności.\nUdaj się do szpitala.");
  6922.                                                 PlayerTextDrawHide(i, BWTextDraw[i]);
  6923.                                                 UpdatePlayerName(i);
  6924.                                                 continue;
  6925.                                         }
  6926.                                 }
  6927.                                 if(UserCache[pUID[i]][uAJ])
  6928.                                 {
  6929.                                         UserCache[pUID[i]][uAJ]--;
  6930.                                         format(str, sizeof(str), "~r~AJ: %dmin", UserCache[pUID[i]][uAJ]);
  6931.                                         PlayerTextDrawSetString(i, AJTextDraw[i], str);
  6932.                                         PlayerTextDrawShow(i, AJTextDraw[i]);
  6933.                                         if(UserCache[pUID[i]][uAJ] == 0)
  6934.                                         {
  6935.                                                 new UID = pUID[i];
  6936.                                                 if(UserCache[UID][uSpawnX] != 0 && UserCache[UID][uSpawnY] != 0 && UserCache[UID][uSpawnZ] != 0)
  6937.                                                 {
  6938.                                                         SetPlayerPos(i, UserCache[pUID[i]][uSpawnX], UserCache[pUID[i]][uSpawnY], UserCache[pUID[i]][uSpawnZ]);
  6939.                                                         SetPlayerVirtualWorld(i, UserCache[pUID[i]][uSpawnVW]);
  6940.                                                 }
  6941.                                                 else if(UserCache[UID][uHouseSpawn] != 0)
  6942.                                                 {
  6943.                                                         new duid = UserCache[pUID[i]][uHouseSpawn];
  6944.                                                         SetPlayerPos(i, DoorCache[duid][dInsX], DoorCache[duid][dInsY], DoorCache[duid][dInsZ]);
  6945.                                                         SetPlayerVirtualWorld(i, DoorCache[duid][dInsVW]);
  6946.                                                 }
  6947.                                                 else if(UserCache[UID][uHouseSpawn] == 0)
  6948.                                                 {
  6949.                                                         SetPlayerPos(i, 1016.3893,-1314.6183,13.5469);
  6950.                                                         SetPlayerVirtualWorld(i, 0);
  6951.                                                 }
  6952.                                                 PlayerTextDrawHide(i, AJTextDraw[i]);
  6953.                                                 SendClientMessage(i, COLOR_RED, "Opuściłeś AdminJail.");
  6954.                                                 continue;
  6955.                                         }
  6956.                                 }
  6957.                         }
  6958.                 }
  6959.         }
  6960. }
  6961.  
  6962. cmd:me (playerid, params[])
  6963. {
  6964.         if(UserCache[pUID[playerid]][uBW] > 0)
  6965.         {
  6966.                 ShowDialogInfo(playerid, "Nie możesz teraz tego zrobić.");
  6967.                 return 1;
  6968.         }
  6969.         new action[128];
  6970.         if(sscanf(params, "s[128]", action))
  6971.         {
  6972.                 return SendClientMessage(playerid, COLOR_GRAY, "Poprawne użycie: /me [czynność postaci]");
  6973.         }
  6974.         new msg[256]; format(msg, sizeof(msg), "** %s %s", strreplace(PlayerName(playerid), '_', ' '), action);
  6975.         new Float:X, Float:Y, Float:Z;
  6976.         GetPlayerPos(playerid, X, Y, Z);
  6977.         new vw = GetPlayerVirtualWorld(playerid);
  6978.         for(new i; i<=GetPlayerPoolSize(); i++)
  6979.         {
  6980.                 if(IsPlayerConnected(i))
  6981.                 {
  6982.                         if(GetPlayerVirtualWorld(i) == vw)
  6983.                         {
  6984.                                 if(IsPlayerInRangeOfPoint(i, 1.0, X, Y, Z))
  6985.                                 {
  6986.                                         if(strlen(msg) >= 64)
  6987.                                         {
  6988.                                                 new temp1[256], temp2[256];
  6989.                                                 temp1 = msg, temp2=msg;
  6990.                                                 strdel(temp1, 64, strlen(temp1));
  6991.                                                 strins(temp1, "...", strlen(temp1));
  6992.                                                 strdel(temp2, 0, 64);
  6993.                                                 strins(temp2, "...", 0);
  6994.                                                 SendClientMessage(i, ME_SHADE_1, temp1);
  6995.                                                 SendClientMessage(i, ME_SHADE_1, temp2);
  6996.                                                 continue;
  6997.                                         }
  6998.                                         SendClientMessage(i, ME_SHADE_1, msg);
  6999.                                 }
  7000.                                 else if(IsPlayerInRangeOfPoint(i, 4.0, X, Y, Z))
  7001.                                 {
  7002.                                         if(strlen(msg) >= 64)
  7003.                                         {
  7004.                                                 new temp1[256], temp2[256];
  7005.                                                 temp1 = msg, temp2=msg;
  7006.                                                 strdel(temp1, 64, strlen(temp1));
  7007.                                                 strins(temp1, "...", strlen(temp1));
  7008.                                                 strdel(temp2, 0, 64);
  7009.                                                 strins(temp2, "...", 0);
  7010.                                                 SendClientMessage(i, ME_SHADE_2, temp1);
  7011.                                                 SendClientMessage(i, ME_SHADE_2, temp2);
  7012.                                                 continue;
  7013.                                         }
  7014.                                         SendClientMessage(i, ME_SHADE_2, msg);
  7015.                                 }
  7016.                                 else if(IsPlayerInRangeOfPoint(i, 8.0, X, Y, Z))
  7017.                                 {
  7018.                                         if(strlen(msg) >= 64)
  7019.                                         {
  7020.                                                 new temp1[256], temp2[256];
  7021.                                                 temp1 = msg, temp2=msg;
  7022.                                                 strdel(temp1, 64, strlen(temp1));
  7023.                                                 strins(temp1, "...", strlen(temp1));
  7024.                                                 strdel(temp2, 0, 64);
  7025.                                                 strins(temp2, "...", 0);
  7026.                                                 SendClientMessage(i, ME_SHADE_3, temp1);
  7027.                                                 SendClientMessage(i, ME_SHADE_3, temp2);
  7028.                                                 continue;
  7029.                                         }
  7030.                                         SendClientMessage(i, ME_SHADE_3, msg);
  7031.                                 }
  7032.                                 else if(IsPlayerInRangeOfPoint(i, 12.0, X, Y, Z))
  7033.                                 {
  7034.                                         if(strlen(msg) >= 256)
  7035.                                         {
  7036.                                                 new temp1[256], temp2[256];
  7037.                                                 temp1 = msg, temp2=msg;
  7038.                                                 strdel(temp1, 64, strlen(temp1));
  7039.                                                 strins(temp1, "...", strlen(temp1));
  7040.                                                 strdel(temp2, 0, 64);
  7041.                                                 strins(temp2, "...", 0);
  7042.                                                 SendClientMessage(i, ME_SHADE_4, temp1);
  7043.                                                 SendClientMessage(i, ME_SHADE_4, temp2);
  7044.                                                 continue;
  7045.                                         }
  7046.                                         SendClientMessage(i, ME_SHADE_4, msg);
  7047.                                 }
  7048.                                 else if(IsPlayerInRangeOfPoint(i, 14.0, X, Y, Z))
  7049.                                 {
  7050.                                         if(strlen(msg) >= 64)
  7051.                                         {
  7052.                                                 new temp1[256], temp2[256];
  7053.                                                 temp1 = msg, temp2=msg;
  7054.                                                 strdel(temp1, 64, strlen(temp1));
  7055.                                                 strins(temp1, "...", strlen(temp1));
  7056.                                                 strdel(temp2, 0, 64);
  7057.                                                 strins(temp2, "...", 0);
  7058.                                                 SendClientMessage(i, ME_SHADE_5, temp1);
  7059.                                                 SendClientMessage(i, ME_SHADE_5, temp2);
  7060.                                                 continue;
  7061.                                         }
  7062.                                         SendClientMessage(i, ME_SHADE_5, msg);
  7063.                                 }
  7064.                                 else if(IsPlayerInRangeOfPoint(i, 16.0, X, Y, Z))
  7065.                                 {
  7066.                                         if(strlen(msg) >= 64)
  7067.                                         {
  7068.                                                 new temp1[256], temp2[256];
  7069.                                                 temp1 = msg, temp2=msg;
  7070.                                                 strdel(temp1, 64, strlen(temp1));
  7071.                                                 strins(temp1, "...", strlen(temp1));
  7072.                                                 strdel(temp2, 0, 64);
  7073.                                                 strins(temp2, "...", 0);
  7074.                                                 SendClientMessage(i, ME_SHADE_6, temp1);
  7075.                                                 SendClientMessage(i, ME_SHADE_6, temp2);
  7076.                                                 continue;
  7077.                                         }
  7078.                                         SendClientMessage(i, ME_SHADE_6, msg);
  7079.                                 }
  7080.                         }
  7081.                 }
  7082.         }
  7083.         if(pVal[playerid] == 2)
  7084.         {
  7085.                 new vuid;
  7086.                 for(new i=1; i<=GetVehiclePoolSize(); i++)
  7087.                 {
  7088.                         if(GetVehicleUID(i) == pVal2[playerid])
  7089.                         {
  7090.                                 if(vw == GetVehicleVirtualWorld(i))
  7091.                                 {
  7092.                                         GetVehiclePos(i, X, Y, Z);
  7093.                                         if(IsPlayerInRangeOfPoint(playerid, 3.0, X, Y, Z))
  7094.                                         {
  7095.                                                 vuid = GetVehicleUID(i);
  7096.                                                 VehicleCache[vuid][vRegister] = true;
  7097.                                                 UnSpawnVehicle(vuid);
  7098.                                                 SpawnVehicle(vuid);
  7099.                                                 return ShowDialogInfo(playerid, "Pomyślnie zamontowano rejstrację pojazdu.");
  7100.                                         }
  7101.                                 }
  7102.                         }
  7103.                 }
  7104.         }
  7105.         if(pVal[playerid] == 1) // Buying vehicle register
  7106.         {
  7107.                 new actoruid = pVal2[playerid];
  7108.                 if(GetActorInRange(playerid) == actoruid)
  7109.                 {
  7110.                         format(msg, sizeof(msg), "%s mówi: Dziękuję! "HEX_PURPLE"** zwrócił dokumenty petentowi oraz podał mu rejestrację pojazdu ** ", strreplace(ActorCache[actoruid][aName], '_', ' '));
  7111.                         SendClientMessage(playerid, CHAT_SHADE_2, msg);
  7112.                         pVal[playerid] = 0;
  7113.                         PlayerTextDrawShow(playerid, RadarTextDraw[playerid]);
  7114.                         return ShowPlayerDialog(playerid, D_BUY_REGISTER, DIALOG_STYLE_MSGBOX, "Oferta", "Kup "HEX_GREEN"rejestrację pojazdu"HEX_WHITE" za "HEX_GREEN"$300.", "Kup", "Anuluj");
  7115.                 }
  7116.         }
  7117.         if(ActionData[playerid][aType] == 2)
  7118.         {
  7119.                 new auid = GetActorInRange(playerid);
  7120.                 if(ActorCache[auid][aType] == 1)
  7121.                 {
  7122.                         ShowPlayerDialog(playerid, D_TRADE_3, DIALOG_STYLE_MSGBOX, "Oferta", "Wyrobienie dokumentu osobistego: "HEX_GREEN"$100"HEX_WHITE"\nCzy akceptujesz tę ofertę?", "Tak", "Nie");
  7123.                 }
  7124.         }
  7125.         else if(ActionData[playerid][aType] == 1)
  7126.         {
  7127.                 new auid = GetActorInRange(playerid);
  7128.                 if(ActorCache[auid][aType] == 2)
  7129.                 {
  7130.                         format(msg, sizeof(msg), "%s mówi: Dziękuję! *wpisuje dane w systemie oraz kładzie dokumenty z powrotem na ladzie*", strreplace(ActorCache[auid][aName], '_', ' '));
  7131.                         SendFormattedMessage(playerid, msg, "{AC79A7}", "{C8C8C8}", CHAT_SHADE_2);
  7132.                         new acc = MAX_USERS;
  7133.                         acc += random(300);
  7134.                         for(new i=1; i<LastUID; i++)
  7135.                         {
  7136.                                 if(UserCache[i][uBankAccount] == acc)
  7137.                                 {
  7138.                                         while(UserCache[i][uBankAccount] == acc)
  7139.                                         {
  7140.                                                 acc+=1;
  7141.                                         }
  7142.                                 }
  7143.                         }
  7144.                         UserCache[pUID[playerid]][uBankAccount] = acc;
  7145.                         format(msg, sizeof(msg), "Konto bankowe zostało otwarte. Numer konta: %d", acc);
  7146.                         ShowDialogInfo(playerid, msg);
  7147.                         ActionData[playerid][aType] = 0;
  7148.                 }
  7149.         }
  7150.         return 1;
  7151. }
  7152.  
  7153. cmd:do (playerid, params[])
  7154. {
  7155.         new action[128];
  7156.         if(sscanf(params, "s[128]", action))
  7157.         {
  7158.                 SendClientMessage(playerid, COLOR_GRAY, "Poprawne użycie: /do [SZCZEGÓŁOWY OPIS POSTACI/OTOCZENIA]");
  7159.                 return 1;
  7160.         }
  7161.         new msg[256];
  7162.         format(msg, sizeof(msg), "** %s (( %s ))", action, strreplace(PlayerName(playerid), '_', ' '));
  7163.         new Float:X, Float:Y, Float:Z;
  7164.         GetPlayerPos(playerid, X, Y, Z);
  7165.         new vw = GetPlayerVirtualWorld(playerid);
  7166.         for(new i; i<=GetPlayerPoolSize(); i++)
  7167.         {
  7168.                 if(IsPlayerConnected(i))
  7169.                 {
  7170.                         if(GetPlayerVirtualWorld(i) == vw)
  7171.                         {
  7172.                                 if(IsPlayerInRangeOfPoint(i, 1.0, X, Y, Z))
  7173.                                 {
  7174.                                         if(strlen(msg) >= 64)
  7175.                                         {
  7176.                                                 new temp1[256], temp2[256];
  7177.                                                 temp1 = msg, temp2=msg;
  7178.                                                 strdel(temp1, 64, strlen(temp1));
  7179.                                                 strins(temp1, "...", strlen(temp1));
  7180.                                                 strdel(temp2, 0, 64);
  7181.                                                 strins(temp2, "...", 0);
  7182.                                                 SendClientMessage(i, DO_SHADE_1, temp1);
  7183.                                                 SendClientMessage(i, DO_SHADE_1, temp2);
  7184.                                                 continue;
  7185.                                         }
  7186.                                         SendClientMessage(i, DO_SHADE_1, msg);
  7187.                                 }
  7188.                                 else if(IsPlayerInRangeOfPoint(i, 4.0, X, Y, Z))
  7189.                                 {
  7190.                                         if(strlen(msg) >= 64)
  7191.                                         {
  7192.                                                 new temp1[256], temp2[256];
  7193.                                                 temp1 = msg, temp2=msg;
  7194.                                                 strdel(temp1, 64, strlen(temp1));
  7195.                                                 strins(temp1, "...", strlen(temp1));
  7196.                                                 strdel(temp2, 0, 64);
  7197.                                                 strins(temp2, "...", 0);
  7198.                                                 SendClientMessage(i, DO_SHADE_2, temp1);
  7199.                                                 SendClientMessage(i, DO_SHADE_2, temp2);
  7200.                                                 continue;
  7201.                                         }
  7202.                                         SendClientMessage(i, DO_SHADE_2, msg);
  7203.                                 }
  7204.                                 else if(IsPlayerInRangeOfPoint(i, 8.0, X, Y, Z))
  7205.                                 {
  7206.                                         if(strlen(msg) >= 64)
  7207.                                         {
  7208.                                                 new temp1[256], temp2[256];
  7209.                                                 temp1 = msg, temp2=msg;
  7210.                                                 strdel(temp1, 64, strlen(temp1));
  7211.                                                 strins(temp1, "...", strlen(temp1));
  7212.                                                 strdel(temp2, 0, 64);
  7213.                                                 strins(temp2, "...", 0);
  7214.                                                 SendClientMessage(i, DO_SHADE_3, temp1);
  7215.                                                 SendClientMessage(i, DO_SHADE_3, temp2);
  7216.                                                 continue;
  7217.                                         }
  7218.                                         SendClientMessage(i, DO_SHADE_3, msg);
  7219.                                 }
  7220.                                 else if(IsPlayerInRangeOfPoint(i, 12.0, X, Y, Z))
  7221.                                 {
  7222.                                         if(strlen(msg) >= 64)
  7223.                                         {
  7224.                                                 new temp1[256], temp2[256];
  7225.                                                 temp1 = msg, temp2=msg;
  7226.                                                 strdel(temp1, 64, strlen(temp1));
  7227.                                                 strins(temp1, "...", strlen(temp1));
  7228.                                                 strdel(temp2, 0, 64);
  7229.                                                 strins(temp2, "...", 0);
  7230.                                                 SendClientMessage(i, DO_SHADE_4, temp1);
  7231.                                                 SendClientMessage(i, DO_SHADE_4, temp2);
  7232.                                                 continue;
  7233.                                         }
  7234.                                         SendClientMessage(i, DO_SHADE_4, msg);
  7235.                                 }
  7236.                                 else if(IsPlayerInRangeOfPoint(i, 14.0, X, Y, Z))
  7237.                                 {
  7238.                                         if(strlen(msg) >= 64)
  7239.                                         {
  7240.                                                 new temp1[256], temp2[256];
  7241.                                                 temp1 = msg, temp2=msg;
  7242.                                                 strdel(temp1, 64, strlen(temp1));
  7243.                                                 strins(temp1, "...", strlen(temp1));
  7244.                                                 strdel(temp2, 0, 64);
  7245.                                                 strins(temp2, "...", 0);
  7246.                                                 SendClientMessage(i, DO_SHADE_5, temp1);
  7247.                                                 SendClientMessage(i, DO_SHADE_5, temp2);
  7248.                                                 continue;
  7249.                                         }
  7250.                                         SendClientMessage(i, DO_SHADE_5, msg);
  7251.                                 }
  7252.                                 else if(IsPlayerInRangeOfPoint(i, 16.0, X, Y, Z))
  7253.                                 {
  7254.                                         if(strlen(msg) >= 64)
  7255.                                         {
  7256.                                                 new temp1[256], temp2[256];
  7257.                                                 temp1 = msg, temp2=msg;
  7258.                                                 strdel(temp1, 64, strlen(temp1));
  7259.                                                 strins(temp1, "...", strlen(temp1));
  7260.                                                 strdel(temp2, 0, 64);
  7261.                                                 strins(temp2, "...", 0);
  7262.                                                 SendClientMessage(i, DO_SHADE_6, temp1);
  7263.                                                 SendClientMessage(i, DO_SHADE_6, temp2);
  7264.                                                 continue;
  7265.                                         }
  7266.                                         SendClientMessage(i, DO_SHADE_6, msg);
  7267.                                 }
  7268.                         }
  7269.                 }
  7270.         }
  7271.         return 1;
  7272. }
  7273.  
  7274. stock PlayerFirstName(playerid)
  7275. {      
  7276.         new pname[MAX_PLAYER_NAME];
  7277.         GetPlayerName(playerid, pname, sizeof(pname));
  7278.         new pos = strfind(pname, "_", true);
  7279.         if(pos != -1)
  7280.         strdel(pname, pos, strlen(pname));
  7281.         return pname;
  7282. }
  7283.  
  7284. stock SendPlayerMe(playerid, action[])
  7285. {
  7286.         new str[256];
  7287.         format(str, sizeof(str), "* %s %s *", PlayerFirstName(playerid), action);
  7288.         SetPlayerChatBubble(playerid, str, ME_SHADE_1, 15.0, 5000);
  7289.         format(str, sizeof(str), "* %s %s", PlayerFirstName(playerid), action);
  7290.         SendClientMessage(playerid, ME_SHADE_1, str);
  7291.         return 1;
  7292. }
  7293.  
  7294. cmd:raport (playerid, params[])
  7295. {
  7296.         return callcmd::report(playerid, params);
  7297. }
  7298.  
  7299. cmd:report (playerid, params[])
  7300. {
  7301.         new targetid, reason[128];
  7302.         if(sscanf(params, "rs[128]", targetid, reason))
  7303.         {
  7304.                 return SendClientMessage(playerid, COLOR_GRAY, "Poprawne użycie: /report [ID/Część nazwy gracza] [treść]");
  7305.         }
  7306.         if(playerid == targetid)
  7307.         return SendClientMessage(playerid, COLOR_GRAY, "Nie możesz zreportować samego siebie!");
  7308.         if(!IsPlayerConnected(targetid))
  7309.         {
  7310.                 return SendClientMessage(playerid, COLOR_GRAY, "Takiego gracza nie ma na serwerze.");
  7311.         }
  7312.         if(!pUID[targetid])
  7313.         {
  7314.                 return SendClientMessage(playerid, COLOR_GRAY, "Ten gracz nie jest zalogowany.");
  7315.         }
  7316.         new msg[128]; format(msg, sizeof(msg), ""HEX_RED"%s(%d) wysłał raport na gracza %s(%d):", PlayerName(playerid), playerid, PlayerName(targetid), targetid);
  7317.         for(new i; i<=GetPlayerPoolSize(); i++)
  7318.         {
  7319.                 if(IsPlayerConnected(i))
  7320.                 {
  7321.                         if(pUID[i])
  7322.                         {
  7323.                                 if(UserCache[pUID[i]][uRank] > 0)
  7324.                                 {
  7325.                                         SendClientMessage(i, -1, msg);
  7326.                                         SendClientMessage(i, COLOR_ORANGE, reason);
  7327.                                 }
  7328.                         }
  7329.                 }
  7330.         }
  7331.         SendClientMessage(playerid, COLOR_RED, "Wysłano raport.");
  7332.         return 1;
  7333. }
  7334.  
  7335. cmd:unbw (playerid, params[])
  7336. {
  7337.         if(UserCache[pUID[playerid]][uRank] < 2)
  7338.         {
  7339.                 return 1;
  7340.         }
  7341.         new targetid;
  7342.         if(sscanf(params, "r", targetid))
  7343.         {
  7344.                 return SendClientMessage(playerid, COLOR_GRAY, "Poprawne użycie: /unbw [ID/Część nazwy gracza]");
  7345.         }
  7346.         if(!IsPlayerConnected(targetid))
  7347.         {
  7348.                 return SendClientMessage(playerid, COLOR_GRAY, "Ten gracz nie jest podłączony do serwera.");
  7349.         }
  7350.         if(!pUID[targetid])
  7351.         {
  7352.                 return SendClientMessage(playerid, COLOR_GRAY, "Ten gracz jest niezalogowany.");
  7353.         }
  7354.         if(UserCache[pUID[targetid]][uBW] == 0)
  7355.         {
  7356.                 return SendClientMessage(playerid, COLOR_GRAY, "Ten gracz nie ma BW.");
  7357.         }
  7358.         UserCache[pUID[targetid]][uBW] = 0;
  7359.         SetCameraBehindPlayer(targetid);
  7360.         TogglePlayerControllable(targetid, 1);
  7361.         ClearAnimations(targetid);
  7362.         UpdatePlayerName(targetid);
  7363.         HideTextDrawForPlayer(targetid, 2);
  7364.         new msg[64];
  7365.         format(msg, sizeof(msg), "%s ściąnął Ci BW.", strreplace(PlayerName(playerid), '_', ' '));
  7366.         SendClientMessage(targetid, COLOR_GRAY, msg);
  7367.         return 1;
  7368. }
  7369.  
  7370. cmd:joty (playerid, params[])
  7371. {
  7372.         if(UserCache[pUID[playerid]][uRank] < 2)
  7373.         {
  7374.                 return 1;
  7375.         }
  7376.         new targetid, j;
  7377.         if(sscanf(params, "ri", targetid, j))
  7378.         {
  7379.                 return SendClientMessage(playerid, COLOR_GRAY, "Poprawne użycie: /joty [ID/Część nazwy gracza] [ilość]");
  7380.         }
  7381.         if(!IsPlayerConnected(targetid))
  7382.         {
  7383.                 return SendClientMessage(playerid, COLOR_GRAY, "Gracz nie jest podłączony do serwera.");
  7384.         }
  7385.         if(!pUID[targetid])
  7386.         {
  7387.                 return SendClientMessage(playerid, COLOR_GRAY, "Gracz nie jest zalogowany.");
  7388.         }
  7389.         UserCache[pUID[targetid]][uStrenght] = j;
  7390.         UpdatePlayerName(targetid);
  7391.         new msg[128];
  7392.         format(msg, sizeof(msg), "%s zmienił twoją wartość Jotów na: %d", PlayerName(playerid), j);
  7393.         SendClientMessage(targetid, COLOR_GRAY, msg);
  7394.         format(msg, sizeof(msg), "Zmienił wartość Jotów %s na: %d", PlayerName(targetid), j);
  7395.         SendClientMessage(playerid, COLOR_GRAY, msg);
  7396.         return 1;
  7397. }
  7398.  
  7399. cmd:hp (playerid, params[])
  7400. {
  7401.         if(UserCache[pUID[playerid]][uRank] < 2)
  7402.         {
  7403.                 return 1;
  7404.         }
  7405.         new targetid, Float:HP;
  7406.         if(sscanf(params, "rf", targetid, HP))
  7407.         {
  7408.                 return SendClientMessage(playerid, COLOR_GRAY, "Poprawne użycie: /hp [ID/Część nazwy gracza] [ilość]");
  7409.         }
  7410.         if(!IsPlayerConnected(targetid))
  7411.         {
  7412.                 return SendClientMessage(playerid, COLOR_GRAY, "Gracz nie jest podłączony do serwera.");
  7413.         }
  7414.         if(!pUID[targetid])
  7415.         {
  7416.                 return SendClientMessage(playerid, COLOR_GRAY, "Gracz nie jest zalogowany.");
  7417.         }
  7418.         SetPlayerHP(targetid, HP);
  7419.         new msg[128];
  7420.         format(msg, sizeof(msg), "%s zmienił twoją wartość HP na: %f", PlayerName(playerid), HP);
  7421.         SendClientMessage(targetid, COLOR_GRAY, msg);
  7422.         format(msg, sizeof(msg), "Zmienił wartość HP %s na: %f", PlayerName(targetid), HP);
  7423.         SendClientMessage(playerid, COLOR_GRAY, msg);
  7424.         return 1;
  7425. }
  7426.  
  7427. cmd:alevel (playerid, params[])
  7428. {
  7429.         if(UserCache[pUID[playerid]][uRank] < ADMINISTRATION)
  7430.         return 1;
  7431.         new targetid, rank;
  7432.         if(sscanf(params, "ri", targetid, rank))
  7433.         return SendClientMessage(playerid, COLOR_GRAY, "Poprawne użycie: /alevel [ID/Część nazwy gracza] [ranga]");
  7434.         if(!IsPlayerConnected(targetid))
  7435.         return SendClientMessage(playerid, COLOR_GRAY, "Gracz nie jest podłączony do serwera.");
  7436.         if(!pUID[targetid])
  7437.         return SendClientMessage(playerid, COLOR_GRAY, "Gracz nie jest zalogowany.");
  7438.         if(rank == 0)
  7439.         aduty[targetid] = 0;
  7440.         UserCache[pUID[targetid]][uRank] = rank;
  7441.         UpdatePlayerName(targetid);
  7442.         new msg[128];
  7443.         format(msg, sizeof(msg), "%s zmienił Twój poziom rangi na: %d", PlayerName(playerid), rank);
  7444.         SendClientMessage(targetid, COLOR_GRAY, msg);
  7445.         format(msg, sizeof(msg), "Zmienił poziom rangi %s na: %d", PlayerName(targetid), rank);
  7446.         SendClientMessage(playerid, COLOR_GRAY, msg);
  7447.         return 1;
  7448. }
  7449.  
  7450. cmd:mapper (playerid, params[])
  7451. {
  7452.         if(UserCache[pUID[playerid]][uRank] < ADMINISTRATION)
  7453.         return 1;
  7454.         new targetid;
  7455.         if(sscanf(params, "r", targetid))
  7456.         return SendClientMessage(playerid, COLOR_GRAY, "Poprawne użycie: /mapper [ID/Część nazwy gracza], by nadać komuś uprawnienia do edycji świata 0.");
  7457.         if(!IsPlayerConnected(targetid))
  7458.         return SendClientMessage(playerid, COLOR_GRAY, "Wybrany gracz nie jest podłączony do serwera.");
  7459.         if(!pUID[targetid])
  7460.         return SendClientMessage(playerid, COLOR_GRAY, "Wybrany gracz nie jest zalogowany.");
  7461.         if(UserCache[pUID[targetid]][uMapper] == true)
  7462.         {
  7463.                 UserCache[pUID[targetid]][uMapper] = false;
  7464.                 return SendClientMessage(targetid, COLOR_RED, "> Twoje uprawnienia do edycji świata 0 został zabrane.");
  7465.         }
  7466.         UserCache[pUID[targetid]][uMapper] = true;
  7467.         return SendClientMessage(targetid, COLOR_GREEN, "> Zostajesz Mapperem.");
  7468. }
  7469.  
  7470. cmd:ac (playerid, params[])
  7471. {
  7472.         if(UserCache[pUID[playerid]][uRank] < ADMINISTRATION)
  7473.         return 1;
  7474.         new message[128];
  7475.         if(sscanf(params, "s[128]", message))
  7476.         {
  7477.                 return SendClientMessage(playerid, COLOR_GRAY, "Poprawne użycie: /ac [wiadomość]");
  7478.         }
  7479.         new msg[256];
  7480.         format(msg, sizeof(msg), "(( %s: %s ))", PlayerName(playerid), message);
  7481.         return SendMessageToAdmins(msg);
  7482. }
  7483.  
  7484. cmd:anick (playerid, params[])
  7485. {
  7486.         if(UserCache[pUID[playerid]][uRank] < ADMINISTRATION)
  7487.         return 1;
  7488.         new targetid, name[MAX_PLAYER_NAME];
  7489.         if(sscanf(params, "rs[24]", targetid, name))
  7490.         return SendClientMessage(playerid, COLOR_GRAY, "Poprawne użycie: /anick [ID/Część nazwy gracza] [nowy nick]");
  7491.         if(!IsPlayerConnected(targetid))
  7492.         return SendClientMessage(playerid, COLOR_GRAY, "Gracz nie jest podłączony do serwera.");
  7493.         if(!pUID[targetid])
  7494.         return SendClientMessage(playerid, COLOR_GRAY, "Gracz nie jest zalogowany.");
  7495.         if(UserExists(name))
  7496.         return SendClientMessage(playerid, COLOR_GRAY, "Ten nick jest już zajęty.");
  7497.         new pos;
  7498.         for(new i=0; i<=strlen(name); i++)
  7499.         {
  7500.                 tolower(name[i]);
  7501.                 if(name[i] == '_')
  7502.                 pos = i;
  7503.         }
  7504.         toupper(name[0]);
  7505.         toupper(name[pos]);
  7506.         SetPlayerName(targetid, name);
  7507.         UserCache[pUID[targetid]][uName] = name;
  7508.         UpdatePlayerName(targetid);
  7509.         new msg[128];
  7510.         format(msg, sizeof(msg), "%s zmienił Twój nickname na: %s", PlayerName(playerid), name);
  7511.         SendClientMessage(targetid, COLOR_GRAY, msg);
  7512.         format(msg, sizeof(msg), "Zmienił nickname %s na: %s", PlayerName(targetid), name);
  7513.         SendClientMessage(playerid, COLOR_GRAY, msg);
  7514.         return 1;
  7515. }
  7516.  
  7517. cmd:skin (playerid, params[])
  7518. {
  7519.         if(UserCache[pUID[playerid]][uRank] == 0)
  7520.         return 1;
  7521.         new targetid, skinid;
  7522.         if(sscanf(params, "ri", targetid, skinid))
  7523.         {
  7524.                 return SendClientMessage(playerid, COLOR_GRAY, "Poprawne użycie: /skin [ID/Część nazwy gracza] [skinid]");
  7525.         }
  7526.         if(!IsPlayerConnected(targetid))
  7527.         {
  7528.                 return SendClientMessage(playerid, COLOR_GRAY, "Gracz nie jest podłączony do serwera.");
  7529.         }
  7530.         if(!pUID[targetid])
  7531.         {
  7532.                 return SendClientMessage(playerid, COLOR_GRAY, "Gracz nie jest zalogowany.");
  7533.         }
  7534.         if(UserCache[pUID[targetid]][uRank] != UNRANKED)
  7535.         {
  7536.                 if(targetid != playerid)
  7537.                 {
  7538.                         SendClientMessage(playerid, COLOR_WHITE, "Nie możesz zmienić skina członkom ekipy.");
  7539.                         new msg[128];
  7540.                         format(msg, sizeof(msg), "Członek ekipy %s próbował zmienić Twój skin na ID %d.", PlayerName(playerid), skinid);
  7541.                         return SendClientMessage(targetid, COLOR_DARKRED, msg);
  7542.                 }
  7543.         }
  7544.         UserCache[pUID[targetid]][uSkin] = skinid;
  7545.         SetPlayerSkin(targetid, skinid);
  7546.         ClearAnimations(targetid);
  7547.         new msg[128];
  7548.         format(msg, sizeof(msg), "%s zmienił Twój skin na: %d", PlayerName(playerid), skinid);
  7549.         SendClientMessage(targetid, COLOR_GRAY, msg);
  7550.         format(msg, sizeof(msg), "Zmienił skin %s na: %d", PlayerName(targetid), skinid);
  7551.         SendClientMessage(playerid, COLOR_GRAY, msg);
  7552.         return 1;
  7553. }
  7554.  
  7555. cmd:say (playerid, params[])
  7556. {
  7557.         if(UserCache[pUID[playerid]][uRank] < ADMINISTRATION)
  7558.         {
  7559.                 return 1;
  7560.         }
  7561.         new text[128];
  7562.         if(sscanf(params, "s[128]", text))
  7563.         {
  7564.                 return SendClientMessage(playerid, COLOR_GRAY, "Poprawne użycie: /say [treść]");
  7565.         }
  7566.         new msg[256];
  7567.         format(msg, sizeof(msg), "[ %s: %s ]", PlayerName(playerid), text);
  7568.         SendClientMessageToAll(COLOR_PINK, msg);
  7569.         return 1;
  7570. }
  7571.  
  7572. new PenalityTimer;
  7573.  
  7574. stock KickPlayer(playerid, adminname[], reason[])
  7575. {
  7576.         pUID[playerid]=0;
  7577.         new str[128];
  7578.         format(str, sizeof(str), "~r~Kick~w~~n~Gracz: %s~n~Nadawca: %s~n~~y~%s", PlayerName(playerid), adminname, reason);
  7579.         TextDrawSetString(PenalityTextDraw, str);
  7580.         TextDrawShowForAll(PenalityTextDraw);
  7581.         if(PenalityTimer > 0)
  7582.         {
  7583.                 KillTimer(PenalityTimer);
  7584.         }
  7585.         PenalityTimer = SetTimer("HidePenalityTextDraw", 15000, false);
  7586.         format(str, sizeof(str), "> Otrzymałeś karę(kick) od %s. Powód: %s", adminname, reason);
  7587.         SendClientMessage(playerid, COLOR_RED, str);
  7588.         SetTimerEx("KickFix", 10, false, "i", playerid);
  7589.         return 1;
  7590. }
  7591.  
  7592. forward KickFix(playerid);
  7593. public KickFix(playerid)
  7594. {
  7595.         Kick(playerid);
  7596. }
  7597.  
  7598. forward HidePenalityTextDraw();
  7599. public HidePenalityTextDraw()
  7600. {
  7601.         TextDrawHideForAll(PenalityTextDraw);
  7602.         PenalityTimer = 0;
  7603. }
  7604.  
  7605.  
  7606. stock AJPlayer(playerid, adminname[], reason[], time)
  7607. {
  7608.         new str[128];
  7609.         format(str, sizeof(str), "~r~AdminJail~w~ (%d min)~n~Gracz: %s~n~Nadawca: %s~n~~y~%s", time, PlayerName(playerid), adminname, reason);
  7610.         TextDrawSetString(PenalityTextDraw, str);
  7611.         TextDrawShowForAll(PenalityTextDraw);
  7612.         if(PenalityTimer > 0)
  7613.         {
  7614.                 KillTimer(PenalityTimer);
  7615.         }
  7616.         PenalityTimer = SetTimer("HidePenalityTextDraw", 15000, false);
  7617.         format(str, sizeof(str), "> Otrzymałeś karę(AdminJail) od %s. Powód: %s", adminname, reason);
  7618.         SendClientMessage(playerid, COLOR_RED, str);
  7619.         for(new i=0; i<=GetPlayerPoolSize();i++)
  7620.         {
  7621.                 if(IsPlayerConnected(i))
  7622.                 {
  7623.                         if(pUID[i])
  7624.                         {
  7625.                                 if(GetPlayerVirtualWorld(i) == GetPlayerVirtualWorld(playerid))
  7626.                                 {
  7627.                                         SetPlayerVirtualWorld(playerid, GetPlayerVirtualWorld(i)-1);
  7628.                                 }
  7629.                         }
  7630.                 }
  7631.         }
  7632.         SetPlayerAJPos(playerid);
  7633.         UserCache[pUID[playerid]][uAJ] = time;
  7634.         format(str, sizeof(str), "~r~AJ: %d min.", UserCache[pUID[playerid]][uAJ]);
  7635.         PlayerTextDrawSetString(playerid, AJTextDraw[playerid], str);
  7636.         PlayerTextDrawShow(playerid, AJTextDraw[playerid]);
  7637.         return 1;
  7638. }
  7639.  
  7640. stock BanPlayer(playerid, adminname[], reason[], time)
  7641. {
  7642.         new str[128];
  7643.         format(str, sizeof(str), "~r~Blokada postaci~w~ (%d dni)~n~Gracz: %s~n~Nadawca: %s~n~~y~%s", time, PlayerName(playerid), adminname, reason);
  7644.         TextDrawSetString(PenalityTextDraw, str);
  7645.         TextDrawShowForAll(PenalityTextDraw);
  7646.         if(PenalityTimer > 0)
  7647.         {
  7648.                 KillTimer(PenalityTimer);
  7649.         }
  7650.         PenalityTimer = SetTimer("HidePenalityTextDraw", 15000, false);
  7651.  
  7652.         new h, m, s;
  7653.         gettime(h,m, s);
  7654.  
  7655.         UserCache[pUID[playerid]][uBan] = time;
  7656.         UserCache[pUID[playerid]][uBanHour] = h;
  7657.         UserCache[pUID[playerid]][uBanMin] = m;
  7658.         format(str, sizeof(str), reason);
  7659.         UserCache[pUID[playerid]][uBanReason] = str;
  7660.  
  7661.         UserCache[pUID[playerid]][uBanDay] = gday;
  7662.         UserCache[pUID[playerid]][uBanMonth] = gmonth;
  7663.         UserCache[pUID[playerid]][uBanYear] = gyear;
  7664.         return Kick(playerid);
  7665. }
  7666.  
  7667. stock PermBanPlayer(playerid, adminname[], reason[])
  7668. {
  7669.         new str[128];
  7670.         format(str, sizeof(str), "~r~Blokada postaci~w~ (na zawsze)~n~Gracz: %s~n~Nadawca: %s~n~~y~%s", PlayerName(playerid), adminname, reason);
  7671.         TextDrawSetString(PenalityTextDraw, str);
  7672.         TextDrawShowForAll(PenalityTextDraw);
  7673.         if(PenalityTimer > 0)
  7674.         {
  7675.                 KillTimer(PenalityTimer);
  7676.         }
  7677.         PenalityTimer = SetTimer("HidePenalityTextDraw", 15000, false);
  7678.  
  7679.         new h, m, s;
  7680.         gettime(h,m, s);
  7681.  
  7682.         format(str, sizeof(str), reason);
  7683.         UserCache[pUID[playerid]][uBanReason] = reason;
  7684.  
  7685.         UserCache[pUID[playerid]][uBan] = 999;
  7686.         return Kick(playerid);
  7687. }
  7688.  
  7689.  
  7690. cmd:aj (playerid, params[])
  7691. {
  7692.         if(UserCache[pUID[playerid]][uRank] < SP_2)
  7693.         return 1;
  7694.         new targetid, reason[128], time;
  7695.         if(sscanf(params, "ris[128]", targetid, time, reason))
  7696.         return SendClientMessage(playerid, COLOR_GRAY, "Poprawne użycie: /aj [ID/Część nazwy gracza] [czas] [powód]");
  7697.         /*if(playerid == targetid)
  7698.         return SendClientMessage(playerid, COLOR_GRAY, "Nie możesz nadać sobie tej kary.");*/
  7699.         if(!IsPlayerConnected(targetid))
  7700.         return SendClientMessage(playerid, COLOR_GRAY, "Ten gracz nie jest podłączony do serwera.");
  7701.         if(!pUID[targetid])
  7702.         return SendClientMessage(playerid, COLOR_GRAY, "Ten gracz nie jest zalogowany.");
  7703.         if(time < 0 || time > 120)
  7704.         return SendClientMessage(playerid, COLOR_GRAY, "Czas AdminJail musi zmieścić się pomiędzy wartościami 0(by zdjąć AJ) - 120 min.");
  7705.         if(time == 0)
  7706.         {
  7707.                 if(UserCache[pUID[targetid]][uAJ] == 0)
  7708.                 return SendClientMessage(playerid, COLOR_GRAY, "Ten gracz nie posiada AJ.");
  7709.                 UserCache[pUID[targetid]][uAJ] = 0;
  7710.                 new UID = pUID[targetid];
  7711.                 if(UserCache[UID][uSpawnX] != 0 && UserCache[UID][uSpawnY] != 0 && UserCache[UID][uSpawnZ] != 0)
  7712.                 {
  7713.                         SetPlayerPos(targetid, UserCache[UID][uSpawnX], UserCache[UID][uSpawnY], UserCache[UID][uSpawnZ]);
  7714.                         SetPlayerVirtualWorld(targetid, UserCache[UID][uSpawnVW]);
  7715.                 }
  7716.                 else if(UserCache[UID][uHouseSpawn] != 0)
  7717.                 {
  7718.                         new duid = UserCache[UID][uHouseSpawn];
  7719.                         SetPlayerPos(targetid, DoorCache[duid][dInsX], DoorCache[duid][dInsY], DoorCache[duid][dInsZ]);
  7720.                         SetPlayerVirtualWorld(targetid, DoorCache[duid][dInsVW]);
  7721.                 }
  7722.                 else if(UserCache[UID][uHouseSpawn] == 0)
  7723.                 {
  7724.                         SetPlayerPos(targetid, 1016.3893,-1314.6183,13.5469);
  7725.                         SetPlayerVirtualWorld(targetid, 0);
  7726.                 }
  7727.                 PlayerTextDrawHide(targetid, AJTextDraw[targetid]);
  7728.                 SendClientMessage(targetid, COLOR_RED, "Opuściłeś AdminJail.");
  7729.                 return SendClientMessage(playerid, COLOR_RED, "Wypuściłeś gracza z AdminJail.");
  7730.         }
  7731.         AJPlayer(targetid, PlayerName(playerid), reason, time);
  7732.         return 1;
  7733. }
  7734.  
  7735. CMD:ban (playerid, params[])
  7736. {
  7737.         if(UserCache[pUID[playerid]][uRank] != 3)
  7738.         return 1;
  7739.         new targetid, reason[128], time;
  7740.         if(sscanf(params, "ris[128]", targetid, time, reason))
  7741.         return SendClientMessage(playerid, COLOR_GRAY, "Poprawne użycie: /ban [ID/Część nazwy gracza] [czas] [powód]");
  7742.         if(!IsPlayerConnected(targetid))
  7743.         return SendClientMessage(playerid, COLOR_GRAY, "Ten gracz nie jest podłączony do serwera.");
  7744.         if(!pUID[targetid])
  7745.         return SendClientMessage(playerid, COLOR_GRAY, "Ten gracz nie jest zalogowany.");
  7746.         if(time < 1 || time > 30)
  7747.         return SendClientMessage(playerid, COLOR_GRAY, "Wartość blokady postaci musi mieścić się w przedziale 1-30 dni. ");
  7748.         return BanPlayer(targetid, PlayerName(playerid), reason, time);
  7749. }
  7750.  
  7751. stock SetPlayerFreeVW(playerid)
  7752. {
  7753.         for(new i=0; i<=GetPlayerPoolSize();i++)
  7754.         {
  7755.                 if(IsPlayerConnected(i))
  7756.                 {
  7757.                         if(GetPlayerVirtualWorld(i) == GetPlayerVirtualWorld(playerid))
  7758.                         {
  7759.                                 SetPlayerVirtualWorld(playerid, GetPlayerVirtualWorld(i)-1);
  7760.                         }
  7761.                 }
  7762.         }
  7763. }
  7764.  
  7765. stock SetPlayerAJPos(playerid)
  7766. {
  7767.         SetPlayerPos(playerid, 1175.3094,-1179.7953,87.0432);
  7768. }
  7769.  
  7770. cmd:to (playerid, params[])
  7771. {
  7772.         if(UserCache[pUID[playerid]][uRank] == 0)
  7773.         {
  7774.                 return 1;
  7775.         }
  7776.         new targetid;
  7777.         if(sscanf(params, "r", targetid))
  7778.         {
  7779.                 return SendClientMessage(playerid, COLOR_GRAY, "Poprawne użycie: /to [ID/Część nazwy gracza]");
  7780.         }
  7781.         if(playerid == targetid)
  7782.         {
  7783.                 return SendClientMessage(playerid, COLOR_GRAY, "Nie możesz przeteleportować się do samego siebie.");
  7784.         }
  7785.         if(!IsPlayerConnected(targetid))
  7786.         {
  7787.                 return SendClientMessage(playerid, COLOR_GRAY, "Ten gracz nie jest podłączony do serwera.");
  7788.         }
  7789.         if(!pUID[targetid])
  7790.         {
  7791.                 return SendClientMessage(playerid, COLOR_GRAY, "Ten gracz nie jest zalogowany.");
  7792.         }
  7793.         SetPlayerFreeVW(playerid);
  7794.         new Float:X, Float:Y, Float:Z; GetPlayerPos(targetid, X, Y, Z);
  7795.         SetPlayerPos(playerid, X, Y+1, Z);
  7796.         SetPlayerVirtualWorld(playerid, GetPlayerVirtualWorld(targetid));
  7797.         new str[64];
  7798.         format(str, sizeof(str), "~y~%s ~w~Przeteleportowal sie do Ciebie.", PlayerName(playerid));
  7799.         TextDrawForPlayerEx(targetid, 1, str, 5000);
  7800.         format(str, sizeof(str), "Przeteleportowales sie do ~y~%s~w~.", PlayerName(targetid));
  7801.         TextDrawForPlayerEx(playerid, 1, str, 5000);
  7802.         return 1;
  7803. }
  7804.  
  7805. cmd:here (playerid, params[])
  7806. {
  7807.         if(UserCache[pUID[playerid]][uRank] < 2)
  7808.         {
  7809.                 return 1;
  7810.         }
  7811.         new targetid;
  7812.         if(sscanf(params, "r", targetid))
  7813.         {
  7814.                 return SendClientMessage(playerid, COLOR_GRAY, "Poprawne użycie: /here [ID/Część nazwy gracza]");
  7815.         }
  7816.         if(playerid == targetid)
  7817.         {
  7818.                 return SendClientMessage(playerid, COLOR_GRAY, "Nie możesz przeteleportować się do samego siebie.");
  7819.         }
  7820.         if(!IsPlayerConnected(targetid))
  7821.         {
  7822.                 return SendClientMessage(playerid, COLOR_GRAY, "Ten gracz nie jest podłączony do serwera.");
  7823.         }
  7824.         if(!pUID[targetid])
  7825.         {
  7826.                 return SendClientMessage(playerid, COLOR_GRAY, "Ten gracz nie jest zalogowany.");
  7827.         }
  7828.         SetPlayerFreeVW(targetid);
  7829.         new Float:X, Float:Y, Float:Z; GetPlayerPos(playerid, X, Y, Z);
  7830.         SetPlayerPos(targetid, X, Y+1, Z);
  7831.         SetPlayerVirtualWorld(targetid, GetPlayerVirtualWorld(playerid));
  7832.         new str[64];
  7833.         format(str, sizeof(str), "~y~%s ~w~Przeteleportowal Cie do siebie.", PlayerName(playerid));
  7834.         TextDrawForPlayerEx(targetid, 1, str, 5000);
  7835.         format(str, sizeof(str), "Przeteleportowales ~y~%s~w~ do siebie.", PlayerName(targetid));
  7836.         TextDrawForPlayerEx(playerid, 1, str, 5000);
  7837.         return 1;
  7838. }
  7839.  
  7840. cmd:opis (playerid, params[])
  7841. {
  7842.         new desc[128];
  7843.         if(sscanf(params, "s[128]", desc))
  7844.         return SendClientMessage(playerid, COLOR_GRAY, "Poprawne użycie: /opis [OPIS TWOJEJ POSTACI]");
  7845.         if(!strcmp(desc, "usun", true) && pDesc[playerid][dIsDescOnPlayer] == true)
  7846.         {
  7847.                 DestroyDynamic3DTextLabel(pDesc[playerid][dID]);
  7848.                 SendClientMessage(playerid, COLOR_GRAY, "Usunięto opis.");
  7849.                 pDesc[playerid][dIsDescOnPlayer] = false;
  7850.                 return 1;
  7851.         }
  7852.         format(desc, sizeof(desc), strreplace(strreplace(desc, '(', '{'), ')', '}'));
  7853.         for(new i; i<=strlen(desc); i++)
  7854.         {
  7855.                 if(i == 32 || i == 64 || i == 86 || i == 102 || i == 134)
  7856.                 {
  7857.                         for(new j=i; j<=strlen(desc); j++)
  7858.                         {
  7859.                                 if(desc[j] == ' ')
  7860.                                 {
  7861.                                         strins(desc, "\n", j);
  7862.                                         break;
  7863.                                 }
  7864.                         }
  7865.                 }
  7866.         }
  7867.         if(pDesc[playerid][dIsDescOnPlayer] == true)
  7868.         UpdateDynamic3DTextLabelText(pDesc[playerid][dID], DESC_COLOR, desc);
  7869.         else
  7870.         {
  7871.                 DestroyDynamic3DTextLabel(pDesc[playerid][dID]);
  7872.                 pDesc[playerid][dID] = CreateDynamic3DTextLabel(desc, DESC_COLOR, 0.0, 0.0, 0.0-0.5, 6.0, playerid, INVALID_VEHICLE_ID, 1, -1, -1, -1);
  7873.         }
  7874.         SendClientMessage(playerid, COLOR_GRAY, "Ustawiono opis:");
  7875.         SendClientMessage(playerid, DESC_COLOR, desc);
  7876.         pDesc[playerid][dIsDescOnPlayer] = true;
  7877.         return 1;
  7878. }
  7879.  
  7880. cmd:warn (playerid, params[])
  7881. {
  7882.         if(UserCache[pUID[playerid]][uRank] == 0)
  7883.         {
  7884.                 return 1;
  7885.         }
  7886.         new targetid, reason[128];
  7887.         if(sscanf(params, "rs[128]", targetid, reason))
  7888.         {
  7889.                 return SendClientMessage(playerid, COLOR_GRAY, "Poprawne użycie: /warn [ID/Część nazwy gracza] [ostrzeżenie]");
  7890.         }
  7891.         if(playerid == targetid)
  7892.         {
  7893.                 return SendClientMessage(playerid, COLOR_GRAY, "Nie możesz nadać sobie tej kary.");
  7894.         }
  7895.         if(!IsPlayerConnected(targetid))
  7896.         {
  7897.                 return SendClientMessage(playerid, COLOR_GRAY, "Ten gracz nie jest podłączony do serwera.");
  7898.         }
  7899.         if(!pUID[targetid])
  7900.         {
  7901.                 return SendClientMessage(playerid, COLOR_GRAY, "Ten gracz nie jest zalogowany.");
  7902.         }
  7903.         new str[128];
  7904.         format(str, sizeof(str), "~r~Ostrzeznie~n~~w~Gracz: %s~n~Nadawca: %s~n~~y~%s", PlayerName(targetid), PlayerName(playerid), reason);
  7905.         TextDrawSetString(PenalityTextDraw, str);
  7906.         TextDrawShowForAll(PenalityTextDraw);
  7907.         if(PenalityTimer > 0)
  7908.         {
  7909.                 KillTimer(PenalityTimer);
  7910.         }
  7911.         PenalityTimer = SetTimer("HidePenalityTextDraw", 15000, false);
  7912.         format(str, sizeof(str), "> Otrzymałeś karę(ostrzeżenie) od %s. Powód: %s", PlayerName(playerid), reason);
  7913.         SendClientMessage(targetid, COLOR_RED, str);
  7914.         return 1;
  7915. }
  7916.  
  7917. stock ShowDialogDoorCreate(playerid, yard)
  7918. {
  7919.         new str[500];
  7920.         format(str, sizeof(str), "Aby utworzyć nowe drzwi w tej strefie musisz wpisać poniżej wartości w formacie:\n\n[rodzaj drzwi do stworzenia] [metraż]\n\nGdzie rodzaj to: d - dla domu oraz b- dla biznesu\nMetraż - metraż budynku.\nMinimalny metraż w tej strefie: %dm2.\n\n"HEX_RED"Uwaga!\n\
  7921.         Jeśli przed Tobą w grze nie znajdują się żadne drzwi, stworzenie ich w tym miejscu..\nzostanie usunięte przez Administrację bez żadnych zwrotów!",  yard);
  7922.         ShowPlayerDialog(playerid, D_CREATEDOOR, DIALOG_STYLE_INPUT, "Stwórz nowe drzwi", str, "Stwórz", "Anuluj");
  7923. }
  7924.  
  7925. stock GetPlayerDoorUID(playerid)
  7926. {
  7927.         new playervw = GetPlayerVirtualWorld(playerid);
  7928.         for(new i=1; i<LastdUID; i++)
  7929.         {
  7930.                 if(!DoorCache[i][dDestroyed])
  7931.                 {
  7932.                         if(playervw == DoorCache[i][dInsVW])
  7933.                         {
  7934.                                 return i;
  7935.                         }
  7936.                 }
  7937.         }
  7938.         return 0;
  7939. }
  7940.  
  7941. stock GetRadioState(dooruid)
  7942. {
  7943.         new str[64];
  7944.         if(Isnull(DoorCache[dooruid][dUrl]))
  7945.         format(str, sizeof(str), ""HEX_RED"Zakup system nagłaśniający(1200$)");
  7946.         else
  7947.         format(str, sizeof(str), ""HEX_GREEN"Zarządzaj systemem nagłaśniającym");
  7948.         return str;
  7949. }
  7950.  
  7951. stock ShowDialogDoorSettings(playerid)
  7952. {
  7953.         new str[1025];
  7954.         format(str, sizeof(str), ""HEX_WHITE"1\tZmień pozycję wejściową drzwi\n2\tWybierz ten dom jako Spawn\n3\t%s\n4\tTeleportuj do pozycji wyjściowej\n5\tZmień nazwę drzwi(2000$)\n6\tPodpisz budynek pod grupę\n7\tUstaw opłatę za przejście\n8\tPrzełącz przejazd pojazdami", GetRadioState(GetPlayerDoorUID(playerid)));
  7955.         return ShowPlayerDialog(playerid, D_DOOR_SETTINGS, DIALOG_STYLE_LIST, "Zarządzaj drzwiami", str, "Wybierz", "Anuluj");
  7956.  
  7957. }
  7958. cmd:drzwi (playerid, params[])
  7959. {
  7960.         new uid = GetPlayerDoorUID(playerid);
  7961.         if(uid != 0)
  7962.         {
  7963.                 if(DoorCache[uid][dPlayerUID] == pUID[playerid])
  7964.                 {
  7965.                         return ShowDialogDoorSettings(playerid);
  7966.                 }
  7967.                 return ShowDialogInfo(playerid, "Brak uprawnień.");
  7968.         }
  7969.        
  7970.         new zone[1];
  7971.         GetPlayerDynamicAreas(playerid, zone, sizeof(zone));
  7972.         if(ZoneData[zone[0]][zYard] == 0)
  7973.         {
  7974.                 ShowDialogInfo(playerid, "Ta strefa nie została wyceniona przez Administrację.\nPoproś o wycenę strefy kogoś z ekipy znajdującej się pod "HEX_RED"/a"HEX_WHITE".");
  7975.                 return 1;
  7976.         }
  7977.         new vw = GetPlayerVirtualWorld(playerid);
  7978.         for(new i=1; i<LastdUID;i++)
  7979.         {
  7980.                 if(!DoorCache[i][dDestroyed])
  7981.                 {
  7982.                         if(IsPlayerInRangeOfPoint(playerid, 2.0, DoorCache[i][dOutX], DoorCache[i][dOutY], DoorCache[i][dOutZ]))
  7983.                         {
  7984.                                 if(vw == DoorCache[i][dOutVW])
  7985.                                 {
  7986.                                         SendClientMessage(playerid, COLOR_GRAY, "Musisz stanąć trochę dalej od innych drzwi.");
  7987.                                         return 1;
  7988.                                 }
  7989.                         }
  7990.                 }
  7991.         }
  7992.         ShowDialogZone(playerid);
  7993.         return 1;
  7994.        
  7995. }
  7996.  
  7997. stock ShowDialogZone(playerid)
  7998. {
  7999.         new zoneid = GetPlayerZone(playerid);
  8000.         new zoneinfo[256];
  8001.         format(zoneinfo, sizeof(zoneinfo), ""HEX_WHITE"Minimalny metraż: %dm2 (%d$m2 dla domu, %d$m2dla biznesu)", ZoneData[zoneid][zYard], ZoneData[zoneid][zCostH], ZoneData[zoneid][zCostB]);
  8002.         new header[64]; format(header, sizeof(header), "%s", ZoneData[zoneid][zName]);
  8003.         ShowPlayerDialog(playerid, D_ZONE, DIALOG_STYLE_LIST, header, zoneinfo, "Wybierz", "Anuluj");
  8004.         return 1;
  8005. }
  8006.  
  8007. cmd:astrefa (playerid, params[])
  8008. {
  8009.         if(UserCache[pUID[playerid]][uRank] < 2)
  8010.         {
  8011.                 return 1;
  8012.         }
  8013.         new zname[64], zyard, zcosth, zcostb;
  8014.         if(sscanf(params, "iiis[64]", zyard, zcosth, zcostb, zname))
  8015.         {
  8016.                 SendClientMessage(playerid, COLOR_GRAY, "Poprawne użycie: /astrefa [min. metraż] [cena za min. metraż dla domu] [cena za min. metraż dla biznesu] [nazwa strefy]");
  8017.                 return 1;
  8018.         }
  8019.         new zone = GetPlayerZone(playerid);
  8020.         ZoneData[zone][zYard] = zyard;
  8021.         ZoneData[zone][zCostB] = zcostb;
  8022.         ZoneData[zone][zCostH] = zcosth;
  8023.         ZoneData[zone][zName] = zname;
  8024.         return 1;
  8025. }
  8026.  
  8027. stock GetPlayerZone(playerid)
  8028. {
  8029.         new zone[1];
  8030.         GetPlayerDynamicAreas(playerid, zone, sizeof(zone));
  8031.         return zone[0];
  8032. }
  8033.  
  8034. public OnPlayerPickUpDynamicPickup(playerid, pickupid)
  8035. {
  8036.         PlayerPlaySound(playerid, 1150, 0.0, 0.0, 0.0);
  8037.         new vw = GetPlayerVirtualWorld(playerid);
  8038.         new dinfo[256];
  8039.         for(new i=1; i<LastdUID; i++)
  8040.         {
  8041.                 if(!DoorCache[i][dDestroyed])
  8042.                 {
  8043.                         if(IsPlayerInRangeOfPoint(playerid, 1.5, DoorCache[i][dOutX], DoorCache[i][dOutY], DoorCache[i][dOutZ]))
  8044.                         {
  8045.                                 if(vw == DoorCache[i][dOutVW])
  8046.                                 {
  8047.                                         format(dinfo, sizeof(dinfo), "%s~w~~n~(nacisnij LALT+SPRINT aby wejsc)", DoorCache[i][dName]);
  8048.                                         new count;
  8049.                                         for(new j; j<=GetPlayerPoolSize(); j++)
  8050.                                         {
  8051.                                                 if(IsPlayerConnected(j))
  8052.                                                 {
  8053.                                                         if(GetPlayerVirtualWorld(j) == DoorCache[i][dInsVW])
  8054.                                                         {
  8055.                                                                 count++;
  8056.                                                         }
  8057.                                                 }
  8058.                                         }
  8059.                                         if(count)
  8060.                                         format(dinfo, sizeof(dinfo), "%s~w~~n~(nacisnij LALT+SPRINT aby wejsc)~n~(%d osob w srodku)", DoorCache[i][dName], count);
  8061.                                         if(DoorCache[i][dEnterCost] > 0)
  8062.                                         format(dinfo, sizeof(dinfo), "%s~n~~w~(Oplata za przejscie: ~g~~h~%d$~w~)~n~(nacisnij LALT+SPRINT aby wejsc)~n~(%d osob w srodku)", DoorCache[i][dName],DoorCache[i][dEnterCost], count);
  8063.                                         if(!DoorCache[i][dOpen])
  8064.                                         format(dinfo, sizeof(dinfo), "%s~w~~n~(nacisnij LALT+SPRINT aby wejsc)~n~~r~(te drzwi sa zamkniete)", DoorCache[i][dName]);
  8065.                                         TextDrawForPlayerEx(playerid, 2, dinfo, 5000);
  8066.                                         return 1;
  8067.                                 }
  8068.                         }
  8069.                 }
  8070.         }
  8071.         return 1;
  8072. }
  8073.  
  8074. cmd:zamknij (playerid, params[])
  8075. {
  8076.         new vw = GetPlayerVirtualWorld(playerid);
  8077.         for(new i=1; i<LastdUID; i++)
  8078.         {
  8079.                 if(!DoorCache[i][dDestroyed])
  8080.                 {
  8081.                         if(IsPlayerInRangeOfPoint(playerid, 1.5, DoorCache[i][dOutX], DoorCache[i][dOutY], DoorCache[i][dOutZ]))
  8082.                         {
  8083.                                 if(vw == DoorCache[i][dOutVW])
  8084.                                 {
  8085.                                         if(DoorCache[i][dPlayerUID] != pUID[playerid])
  8086.                                         {
  8087.                                                 GameTextForPlayer(playerid, "~r~nie posiadasz klucza do tych drzwi", 3000, 4);
  8088.                                                 return 1;
  8089.                                         }
  8090.                                         new msg[128];
  8091.                                         if(DoorCache[i][dOpen])
  8092.                                         {
  8093.                                                 DoorCache[i][dOpen]=0;
  8094.                                                 format(msg, sizeof(msg), "zamyka drzwi za pomocą klucza.");
  8095.                                         }
  8096.                                         else
  8097.                                         {
  8098.                                                 DoorCache[i][dOpen]=1;
  8099.                                                 format(msg, sizeof(msg), "otwiera drzwi za pomocą klucza.");
  8100.                                         }
  8101.                                         SendPlayerMe(playerid, msg);
  8102.                                         ApplyAnimation(playerid, "BD_FIRE", "wash_up", 4.1, 0, 0, 0, 0, 0, 0);
  8103.                                         return 1;
  8104.                                 }
  8105.                         }
  8106.                         if(IsPlayerInRangeOfPoint(playerid, 1.5, DoorCache[i][dInsX], DoorCache[i][dInsY], DoorCache[i][dInsZ]))
  8107.                         {
  8108.                                 if(vw == DoorCache[i][dInsVW])
  8109.                                 {
  8110.                                         if(DoorCache[i][dPlayerUID] != pUID[playerid])
  8111.                                         {
  8112.                                                 return GameTextForPlayer(playerid, "~r~nie posiadasz klucza do tych drzwi", 3000, 4);
  8113.                                         }
  8114.                                         new msg[128];
  8115.                                         if(DoorCache[i][dOpen])
  8116.                                         {
  8117.                                                 format(msg, sizeof(msg), "zamyka drzwi za pomocą klucza.");
  8118.                                                 DoorCache[i][dOpen]=0;
  8119.                                         }
  8120.                                         else
  8121.                                         {
  8122.                                                 format(msg, sizeof(msg), "otwiera drzwi za pomocą klucza.");
  8123.                                                 DoorCache[i][dOpen]=1;
  8124.                                         }
  8125.                                         SendPlayerMe(playerid, msg);
  8126.                                         return ApplyAnimation(playerid, "BD_FIRE", "wash_up", 4.1, 0, 0, 0, 0, 0, 0);
  8127.                                 }
  8128.                         }
  8129.                 }
  8130.         }
  8131.         return 1;
  8132. }
  8133.  
  8134. cmd:b (playerid, params[])
  8135. {
  8136.         new playermsg[128];
  8137.         if(sscanf(params, "s[128]", playermsg))
  8138.         {
  8139.                 return SendClientMessage(playerid, COLOR_GRAY, "Poprawne użycie: /b [wiadomość OOC]");
  8140.         }
  8141.         new finalmsg[128];
  8142.         format(finalmsg, sizeof(finalmsg), "(( %s ))", playermsg);
  8143.         SetPlayerChatBubble(playerid, finalmsg, COLOR_WHITE, 12.0, 5000);
  8144.         if(!UserCache[pUID[playerid]][uOOC])
  8145.         {
  8146.                 format(finalmsg, sizeof(finalmsg), "(( Wysłano OOC: %s ))", playermsg);
  8147.                 SendClientMessage(playerid, COLOR_WHITE, finalmsg); TextDrawForPlayerEx(playerid, 1, "Mozesz poprzedzic swoja wypowiedz kropka.~n~Np. .Elo", 5000);
  8148.         }
  8149.         format(finalmsg, sizeof(finalmsg), "(( [%d] %s: %s ))", playerid, RPName(playerid), playermsg);
  8150.         new Float:X, Float:Y, Float:Z;
  8151.         GetPlayerPos(playerid, X, Y, Z);
  8152.         for(new i; i<=GetPlayerPoolSize(); i++)
  8153.         {
  8154.                 if(IsPlayerConnected(i))
  8155.                 {
  8156.                         if(UserCache[pUID[i]][uOOC])
  8157.                         {
  8158.                                 if(IsPlayerInRangeOfPoint(i, 12.0, X, Y, Z) && GetPlayerVirtualWorld(playerid) == GetPlayerVirtualWorld(i))
  8159.                                 SendClientMessage(i, COLOR_WHITE, finalmsg);
  8160.                         }
  8161.                 }
  8162.         }
  8163.         return 1;
  8164. }
  8165.  
  8166. cmd:w (playerid, params[])
  8167. {
  8168.         new targetid, msg[128];
  8169.         if(sscanf(params, "rs[128]", targetid, msg))
  8170.         return SendClientMessage(playerid, COLOR_GRAY, "Poprawne użycie: /w [ID/Część nazwy gracza] [wiadomość]");
  8171.         if(targetid == playerid) return SendClientMessage(playerid, COLOR_GRAY, "Nie możesz wysłać wiadomości samemu sobie.");
  8172.         if(!IsPlayerConnected(targetid))
  8173.         return SendClientMessage(playerid, COLOR_GRAY, "Ten gracz nie jest podłączony do serwera.");
  8174.         if(!pUID[targetid]) return SendClientMessage(playerid, COLOR_GRAY, "Ten gracz nie jest zalogowany.");
  8175.         if(UserCache[pUID[playerid]][uAJ])
  8176.         {
  8177.                 if(UserCache[pUID[targetid]][uRank])
  8178.                 {
  8179.                         goto a;
  8180.                 }
  8181.                 return SendClientMessage(playerid, COLOR_GRAY, "Będąc w AdminJail możesz skontaktować się tylko z ekipą. Nie proś o zdjęcie kary bo raczej słusznie została ona nadana.");
  8182.         }
  8183.         a:
  8184.         new str[256];
  8185.         format(str, sizeof(str), "(( > %s: %s ))", strreplace(PlayerName(targetid), '_', ' '), msg);
  8186.         if(UserCache[pUID[targetid]][uAFK])
  8187.         format(str, sizeof(str), "(( > [AFK] %s: %s ))", strreplace(PlayerName(targetid), '_', ' '), msg);
  8188.         SendClientMessage(playerid, 0xFFD95BFF, str); format(str, sizeof(str), "(( %s: %s ))", strreplace(PlayerName(playerid), '_', ' '), msg);
  8189.         SendClientMessage(targetid, 0xFFB033FF, str); PlayerPlaySound(targetid, 5202, 0.0, 0.0, 0.0); PlayerMessageUID[targetid] = pUID[playerid];
  8190.         return SetPlayerChatBubble(playerid, "(PW)",  COLOR_ORANGE, 15, 3000);
  8191. }
  8192.  
  8193. cmd:cash (playerid, params[])
  8194. {
  8195.         if(UserCache[pUID[playerid]][uRank] < ADMINISTRATION)
  8196.         return 1;
  8197.         new targetid, money;
  8198.         if(sscanf(params, "ri", targetid, money))
  8199.         return SendClientMessage(playerid, COLOR_GRAY, "Poprawne użycie: /cash [ID/Część nazwy gracza] [ilość]");
  8200.         if(!IsPlayerConnected(targetid))
  8201.         return SendClientMessage(playerid, COLOR_GRAY, "Ten gracz nie jest podłączony do serwera.");
  8202.         if(!pUID[targetid])
  8203.         return SendClientMessage(playerid, COLOR_GRAY, "Ten gracz nie jest zalogowany.");
  8204.         new msg[256];
  8205.         format(msg, sizeof(msg), "(( %s %s[%d] nadał graczowi %s[%d] $%d gotówki. ))", GetRankName(UserCache[pUID[playerid]][uRank]), PlayerName(playerid),playerid, PlayerName(targetid),targetid, money);
  8206.         SendMessageToAdmins(msg);
  8207.         return SetPlayerCash(targetid, money);
  8208. }
  8209.  
  8210. cmd:re (playerid, params[])
  8211. {
  8212.         new msg[128];
  8213.         if(sscanf(params, "s[128]", msg))
  8214.         return SendClientMessage(playerid, COLOR_GRAY, "Poprawne użycie: /re [wiadomość]");
  8215.         for(new i=0;i<=GetPlayerPoolSize(); i++)
  8216.         {
  8217.                 if(IsPlayerConnected(i))
  8218.                 {
  8219.                         if(pUID[i] == PlayerMessageUID[playerid])
  8220.                         {
  8221.                                 if(UserCache[pUID[playerid]][uAJ])
  8222.                                 {
  8223.                                         if(UserCache[pUID[i]][uRank])
  8224.                                         {
  8225.                                                 goto a;
  8226.                                         }
  8227.                                         return SendClientMessage(playerid, COLOR_GRAY, "Będąc w AdminJail możesz skontaktować się tylko z ekipą. Nie proś o zdjęcie kary bo raczej słusznie została ona nadana.");
  8228.                                 }
  8229.                                 a:
  8230.                                 new str[256]; format(str, sizeof(str), "(( %s: %s ))", strreplace(PlayerName(i), '_', ' '), msg);
  8231.                                 if(UserCache[pUID[i]][uAFK])
  8232.                                 format(str, sizeof(str), "(( > [AFK] %s: %s ))", strreplace(PlayerName(i), '_', ' '), msg);
  8233.                                 SendClientMessage(playerid, 0xFFD95BFF, str); format(str, sizeof(str), "(( %s: %s ))", strreplace(PlayerName(playerid), '_', ' '), msg);
  8234.                                 SendClientMessage(i, 0xFFB033FF, str); PlayerPlaySound(i, 5202, 0.0, 0.0, 0.0); PlayerMessageUID[i] = pUID[playerid];
  8235.                                 return SetPlayerChatBubble(playerid, "(PW)",  COLOR_ORANGE, 15, 3000);
  8236.                         }
  8237.                 }
  8238.         }
  8239.         return SendClientMessage(playerid, COLOR_GRAY, "Nikt nie wysłał Ci wiadomości lub gracz wylogował się.");
  8240. }
  8241.  
  8242. stock ItemPath(itemid)
  8243. {
  8244.         new path[64];
  8245.         format(path, sizeof(path), FOLDER_ITEMS"%d.ini", itemid);
  8246.         return path;
  8247. }
  8248.  
  8249. stock LoadItems()
  8250. {
  8251.         new name[128], count;
  8252.         for(new i=1;i<LastiUID;i++)
  8253.         {
  8254.                 if(!dfile_FileExists(ItemPath(i)))
  8255.                 continue;
  8256.                 dfile_Open(ItemPath(i));
  8257.                 ItemCache[i][iUID] = dfile_ReadInt("UID");
  8258.                 ItemCache[i][iOwner] = dfile_ReadInt("Owner");
  8259.                 ItemCache[i][iState] = dfile_ReadInt("State");
  8260.                 ItemCache[i][iVW] = dfile_ReadInt("VW");
  8261.                 ItemCache[i][iX] = dfile_ReadFloat("X");
  8262.                 ItemCache[i][iY] = dfile_ReadFloat("Y");
  8263.                 ItemCache[i][iZ] = dfile_ReadFloat("Z");
  8264.                 format(name, sizeof(name), dfile_ReadString("Name"));
  8265.                 ItemCache[i][iName] = name;
  8266.                 ItemCache[i][iType] = dfile_ReadInt("Type");
  8267.                 ItemCache[i][iVal] = dfile_ReadInt("Val");
  8268.                 ItemCache[i][iVal2] = dfile_ReadInt("Val2");
  8269.                 ItemCache[i][iVal3] = dfile_ReadInt("Val3");
  8270.                 ItemCache[i][iActive] = dfile_ReadInt("Active");
  8271.                 ItemCache[i][iAttachX] = dfile_ReadFloat("AttachX");
  8272.                 ItemCache[i][iAttachY] = dfile_ReadFloat("AttachY");
  8273.                 ItemCache[i][iAttachZ] = dfile_ReadFloat("AttachZ");
  8274.                 ItemCache[i][iAttachrX] = dfile_ReadFloat("AttachrX");
  8275.                 ItemCache[i][iAttachrY] = dfile_ReadFloat("AttachrY");
  8276.                 ItemCache[i][iAttachrZ] = dfile_ReadFloat("AttachrZ");
  8277.                 ItemCache[i][iSizeX] = dfile_ReadFloat("SizeX");
  8278.                 ItemCache[i][iSizeY] = dfile_ReadFloat("SizeY");
  8279.                 ItemCache[i][iSizeZ] = dfile_ReadFloat("SizeZ");
  8280.                 dfile_CloseFile();
  8281.                 count++;
  8282.         }
  8283.         printf("[SYSTEM] Loaded %d items.", count);
  8284. }
  8285.  
  8286. stock SaveItems()
  8287. {
  8288.         for(new i=1;i<LastiUID;i++)
  8289.         {
  8290.                 if(!dfile_FileExists(ItemPath(i)))
  8291.                 dfile_Create(ItemPath(i));
  8292.                 dfile_Open(ItemPath(i));
  8293.                 dfile_WriteInt("UID", ItemCache[i][iUID]);
  8294.                 dfile_WriteInt("State", ItemCache[i][iState]);
  8295.                 dfile_WriteInt("VW", ItemCache[i][iVW]);
  8296.                 dfile_WriteInt("Owner", ItemCache[i][iOwner]);
  8297.                 dfile_WriteFloat("X", ItemCache[i][iX]);
  8298.                 dfile_WriteFloat("Y", ItemCache[i][iY]);
  8299.                 dfile_WriteFloat("Z", ItemCache[i][iZ]);
  8300.                 dfile_WriteString("Name", ItemCache[i][iName]);
  8301.                 dfile_WriteInt("Type", ItemCache[i][iType]);
  8302.                 dfile_WriteInt("Val", ItemCache[i][iVal]);
  8303.                 dfile_WriteInt("Val2", ItemCache[i][iVal2]);
  8304.                 dfile_WriteInt("Val3", ItemCache[i][iVal3]);
  8305.                 dfile_WriteInt("Active", ItemCache[i][iActive]);
  8306.                 dfile_WriteFloat("AttachX", ItemCache[i][iAttachX]);
  8307.                 dfile_WriteFloat("AttachY", ItemCache[i][iAttachY]);
  8308.                 dfile_WriteFloat("AttachZ", ItemCache[i][iAttachZ]);
  8309.                 dfile_WriteFloat("AttachrX", ItemCache[i][iAttachrX]);
  8310.                 dfile_WriteFloat("AttachrY", ItemCache[i][iAttachrY]);
  8311.                 dfile_WriteFloat("AttachrZ", ItemCache[i][iAttachrZ]);
  8312.                 dfile_WriteFloat("SizeX", ItemCache[i][iSizeX]);
  8313.                 dfile_WriteFloat("SizeY", ItemCache[i][iSizeY]);
  8314.                 dfile_WriteFloat("SizeZ", ItemCache[i][iSizeZ]);
  8315.                 dfile_SaveFile();
  8316.                 dfile_CloseFile();
  8317.         }
  8318. }
  8319.  
  8320. stock CreateItem(ownerid, type, val2, val3, val4, name[])
  8321. {
  8322.         new str[128]; format(str, sizeof(str), name);
  8323.         ItemCache[LastiUID][iUID] = LastiUID;
  8324.         ItemCache[LastiUID][iOwner] = pUID[ownerid];
  8325.         ItemCache[LastiUID][iName] = str;
  8326.         ItemCache[LastiUID][iType] = type;
  8327.         ItemCache[LastiUID][iVal] = val2;
  8328.         ItemCache[LastiUID][iVal2] = val3;
  8329.         ItemCache[LastiUID][iVal3] = val4;
  8330.         ItemCache[LastiUID][iX] = 0.0;
  8331.         ItemCache[LastiUID][iY] = 0.0;
  8332.         ItemCache[LastiUID][iZ] = 0.0;
  8333.         ItemCache[LastiUID][iVW] = 0;
  8334.         ItemCache[LastiUID][iState] = 0;
  8335.         ItemCache[LastiUID][iActive] = 0;
  8336.         ItemCache[LastiUID][iSizeX] = 1.0;
  8337.         ItemCache[LastiUID][iSizeY] = 1.0;
  8338.         ItemCache[LastiUID][iSizeZ] = 1.0;
  8339.         LastiUID++;
  8340.         return 1;
  8341. }
  8342.  
  8343. stock GetPlayerItemsCount(playerid)
  8344. {
  8345.         new count;
  8346.         for(new i=1; i<LastiUID; i++)
  8347.         {
  8348.                 if(ItemCache[i][iState] == 0)
  8349.                 {
  8350.                         if(ItemCache[i][iOwner] == pUID[playerid])
  8351.                         {
  8352.                                 count++;
  8353.                         }
  8354.                 }
  8355.         }
  8356.         return count;
  8357. }
  8358.  
  8359. cmd:p (playerid, params[])
  8360. {      
  8361.         new iname[32], rest[32];
  8362.         sscanf(params, "s[32]s[32]", iname, rest);
  8363.         if(!Isnull(rest))
  8364.         {
  8365.                 if(!strcmp(rest, "odloz", true))
  8366.                 {
  8367.                         if(!Isnull(iname))
  8368.                         {
  8369.                                 for(new i=1; i<LastiUID; i++)
  8370.                                 {
  8371.                                         if(ItemCache[i][iState] == 0)
  8372.                                         {
  8373.                                                 if(ItemCache[i][iOwner] == pUID[playerid])
  8374.                                                 {
  8375.                                                         if(strfind(ItemCache[i][iName], iname, true) != -1)
  8376.                                                         {
  8377.                                                                 return UseItemOption(playerid, 1, ItemCache[i][iUID]);
  8378.                                                         }
  8379.                                                 }
  8380.                                         }
  8381.                                 }
  8382.                         }
  8383.                 }
  8384.         }
  8385.         if(!Isnull(iname))
  8386.         {
  8387.                 if(!strcmp(iname, "podnies", true))
  8388.                 {
  8389.                         new pvw=GetPlayerVirtualWorld(playerid), info[1000], list[1000], count;
  8390.                         if(IsPlayerInAnyVehicle(playerid))
  8391.                         {
  8392.                                 new vid = GetPlayerVehicleID(playerid), vuid = GetVehicleUID(vid);
  8393.                                 if(VehicleCache[vuid][vOwner] == pUID[playerid])
  8394.                                 {
  8395.                                         for(new i=1; i<LastiUID; i++)
  8396.                                         {
  8397.                                                 if(ItemCache[i][iState] == 2)
  8398.                                                 {
  8399.                                                         if(ItemCache[i][iOwner] == vuid)
  8400.                                                         {
  8401.                                                                 format(info, sizeof(info), "%d\t%s\n", ItemCache[i][iUID], ItemCache[i][iName]);
  8402.                                                                 strins(list, info, strlen(list));
  8403.                                                                 count++;
  8404.                                                         }
  8405.                                                 }
  8406.                                         }
  8407.                                         if(count)
  8408.                                         return ShowPlayerDialog(playerid, D_NEARBY_ITEMS, DIALOG_STYLE_LIST, "Przedmioty w pojeździe", list, "Podnieś", "Anuluj");
  8409.                                         return TextDrawForPlayerEx(playerid, 1, "Nic nie znaleziono.", 3000);
  8410.                                 }
  8411.                                 return TextDrawForPlayerEx(playerid, 1, "Brak uprawnien.", 3000);
  8412.                         }
  8413.                         for(new i=1; i<LastiUID; i++)
  8414.                         {
  8415.                                 if(ItemCache[i][iState]==1)
  8416.                                 {
  8417.                                         if(IsPlayerInRangeOfPoint(playerid, 5.0, ItemCache[i][iX], ItemCache[i][iY], ItemCache[i][iZ]))
  8418.                                         {
  8419.                                                 if(pvw==ItemCache[i][iVW])
  8420.                                                 {
  8421.                                                         format(info, sizeof(info), "%d\t%s\n", ItemCache[i][iUID], ItemCache[i][iName]);
  8422.                                                         strins(list, info, strlen(list));
  8423.                                                         count++;
  8424.                                                 }
  8425.                                         }
  8426.                                 }
  8427.                         }
  8428.                         if(count)
  8429.                         ShowPlayerDialog(playerid, D_NEARBY_ITEMS, DIALOG_STYLE_LIST, "Przedmioty w pobliżu", list, "Podnieś", "Anuluj");
  8430.                         else
  8431.                         TextDrawForPlayerEx(playerid, 1, "Nic nie znaleziono.", 3000);
  8432.                         return 1;
  8433.                 }
  8434.                 for(new i=1; i<LastiUID; i++)
  8435.                 {
  8436.                         if(ItemCache[i][iState] == 0)
  8437.                         {
  8438.                                 if(ItemCache[i][iOwner] == pUID[playerid])
  8439.                                 {
  8440.                                         if(strfind(ItemCache[i][iName], iname, true) != -1)
  8441.                                         {
  8442.                                                 if(ItemCache[i][iType] == 1)
  8443.                                                 {
  8444.                                                         if(ItemCache[i][iActive])
  8445.                                                         {
  8446.                                                                 ResetPlayerWeapons(playerid);
  8447.                                                                 new str[128]; format(str, sizeof(str), "chowa %s %s", ItemCache[i][iName], rest);
  8448.                                                                 SendPlayerMe(playerid, str);
  8449.                                                                 SetTimerEx("HideWeapon", 50, false, "ii", ItemCache[i][iUID], playerid);
  8450.                                                                 return 1;
  8451.                                                         }
  8452.                                                         else if(!ItemCache[i][iActive])
  8453.                                                         {
  8454.                                                                 ItemCache[i][iActive]=1;
  8455.                                                                 new str[128]; format(str, sizeof(str), "wyciąga %s %s", ItemCache[i][iName], rest);
  8456.                                                                 SendPlayerMe(playerid, str);
  8457.                                                                 SetTimerEx("GiveWeapon", 50, false, "iii", playerid, ItemCache[i][iVal], ItemCache[i][iVal2]);
  8458.                                                                 return 1;
  8459.                                                         }
  8460.                                                 }
  8461.                                                 return UseItem(playerid, i);
  8462.                                         }
  8463.                                 }
  8464.                         }
  8465.                 }
  8466.                 return 1;
  8467.         }
  8468.         new list[1000], info[256];
  8469.         for(new i=1;i<LastiUID;i++)
  8470.         {
  8471.                 if(!ItemCache[i][iState])
  8472.                 {
  8473.                         if(ItemCache[i][iOwner]==pUID[playerid])
  8474.                         {
  8475.                                 format(info, sizeof(info), "%d\t"HEX_WHITE"%s\t%d,%d,%d,%d\n", ItemCache[i][iUID], ItemCache[i][iName], ItemCache[i][iType], ItemCache[i][iVal], ItemCache[i][iVal2], ItemCache[i][iVal3]);
  8476.                                 if(ItemCache[i][iActive])
  8477.                                 format(info, sizeof(info), "%d\t"HEX_GRAY"%s\t"HEX_WHITE"%d,%d,%d,%d\n", ItemCache[i][iUID], ItemCache[i][iName], ItemCache[i][iType], ItemCache[i][iVal], ItemCache[i][iVal2], ItemCache[i][iVal3]);
  8478.                                 strins(list, info, strlen(list));
  8479.                         }
  8480.                 }
  8481.         }
  8482.         if(Isnull(list))
  8483.         return ShowDialogInfo(playerid, "Nie posiadasz żadnych przedmiotów.\nMożesz rozejrzeć się po okolicy korzystając z komendy: /p podnies.");
  8484.         else
  8485.         return ShowPlayerDialog(playerid, D_ITEMS, DIALOG_STYLE_TABLIST, "Przedmioty", list, "Wybierz", "Zarządzaj");
  8486. }
  8487.  
  8488. CMD:przeszukaj (playerid, params[])
  8489. {
  8490.         if(GroupCache[pDuty[playerid]][gType] != 1)
  8491.         return SendClientMessage(playerid, COLOR_GRAY, "Nie znajdujesz się na służbie odpowiedniej grupy by użyć tej komendy.");
  8492.         new targetid;
  8493.         if(sscanf(params, "r", targetid))
  8494.         return SendClientMessage(playerid, COLOR_GRAY, "Poprawne użycie: /przeszukaj [ID/Częśc nazwy gracza] by podejrzeć przedmioty w ekwipunku.");
  8495.         if(targetid == playerid)
  8496.         return SendClientMessage(playerid, COLOR_GRAY, "Nie możesz przeszukać samego siebie.");
  8497.         if(!pUID[targetid])
  8498.         return SendClientMessage(playerid, COLOR_GRAY, "Gracz nie jest podłączony lub zalogowany do serwera.");
  8499.         new Float:targetX, Float:targetY, Float:targetZ;
  8500.         GetPlayerPos(targetid, targetX, targetY, targetZ);
  8501.         if(GetPlayerVirtualWorld(playerid) != GetPlayerVirtualWorld(targetid) || !IsPlayerInRangeOfPoint(playerid, 5.0, targetX, targetY, targetZ) && GetPlayerVirtualWorld(playerid) == GetPlayerVirtualWorld(targetid))
  8502.         return SendClientMessage(playerid, COLOR_GRAY, "Wybrany gracz jest za daleko.");
  8503.         new list[1000], info[256];
  8504.         for(new i=1;i<LastiUID;i++)
  8505.         {
  8506.                 if(!ItemCache[i][iState])
  8507.                 {
  8508.                         if(ItemCache[i][iOwner]==pUID[targetid])
  8509.                         {
  8510.                                 format(info, sizeof(info), "%d\t"HEX_WHITE"%s\t%d,%d,%d,%d\n", ItemCache[i][iUID], ItemCache[i][iName], ItemCache[i][iType], ItemCache[i][iVal], ItemCache[i][iVal2], ItemCache[i][iVal3]);
  8511.                                 if(ItemCache[i][iActive])
  8512.                                 format(info, sizeof(info), "%d\t"HEX_GRAY"%s\t"HEX_WHITE"%d,%d,%d,%d\n", ItemCache[i][iUID], ItemCache[i][iName], ItemCache[i][iType], ItemCache[i][iVal], ItemCache[i][iVal2], ItemCache[i][iVal3]);
  8513.                                 strins(list, info, strlen(list));
  8514.                         }
  8515.                 }
  8516.         }
  8517.         new header[64];
  8518.         format(header, sizeof(header), "przeszukuje %s", RPName(targetid));
  8519.         SendPlayerMe(playerid, header);
  8520.         if(Isnull(list))
  8521.         return ShowDialogInfo(playerid, "Ten gracz nie posiada żadnych przedmiotów.");
  8522.         format(header, sizeof(header), "Przedmioty %s", RPName(targetid));
  8523.         return ShowPlayerDialog(playerid, D_NEARBY_ITEMS, DIALOG_STYLE_TABLIST, header, list, "Zabierz", "Anuluj");
  8524. }
  8525.  
  8526. CMD:c (playerid, params[])
  8527. {
  8528.         new text[128];
  8529.         if(sscanf(params, "s[128]", text))
  8530.         return SendClientMessage(playerid, COLOR_GRAY, "Poprawne użycie: /c [szept na odległość 1m!]");    
  8531.         new Float:X, Float:Y, Float:Z; GetPlayerPos(playerid, X, Y, Z);
  8532.         new msg[128]; format(msg, sizeof(msg), "%s szepcze: %s", strreplace(PlayerName(playerid), '_', ' '), text);
  8533.         for(new i; i<=GetPlayerPoolSize(); i++)
  8534.         {
  8535.                 if(IsPlayerConnected(i))
  8536.                 {
  8537.                         if(IsPlayerInRangeOfPoint(i, 1.0, X, Y, Z))
  8538.                         {
  8539.                                 SendClientMessage(i, CHAT_SHADE_1,msg);
  8540.                         }
  8541.                 }
  8542.         }
  8543.         return SendPlayerMe(playerid, "coś szepcze.");
  8544. }
  8545.  
  8546. forward HideWeapon(itemuid, playerid);
  8547. public HideWeapon(itemuid, playerid)
  8548. {
  8549.         ItemCache[itemuid][iActive]=0;
  8550.         if(IsPlayerAttachedObjectSlotUsed(playerid, 6))
  8551.         RemovePlayerAttachedObject(playerid, 6);
  8552. }
  8553. CMD:ai(playerid, params[])
  8554. {
  8555.         if(UserCache[pUID[playerid]][uRank] == ADMINISTRATION || pDuty[playerid] == 16 || UserCache[pUID[playerid]][uRank] == DEVELOPER)
  8556.         {
  8557.                 if(GetPlayerItemsCount(playerid) >= 20)
  8558.                 return ShowDialogInfo(playerid, "W ekwipunku nie zmieści się aż tyle przedmiotów.");
  8559.                 new type, val, val2, val3 ,name[128];
  8560.                 if(sscanf(params, "iiiis[128]", type, val, val2, val3, name))
  8561.                 return SendClientMessage(playerid, COLOR_GRAY, "Poprawne użycie: /ai [Typ] [wartość 1] [wartość 2] [wartość 3] [Nazwa]");
  8562.                 CreateItem(playerid, type, val, val2, val3, name); format(name, sizeof(name), "> Do twojego ekwipunku został dodany przedmiot "HEX_BLUE"%s"HEX_WHITE".", ItemCache[LastiUID-1][iName]);
  8563.                 SendClientMessage(playerid, COLOR_WHITE, name);
  8564.         }
  8565.         return 1;
  8566. }
  8567.  
  8568. stock UseItem(playerid, itemuid)
  8569. {
  8570.         SetPVarInt(playerid, "iUID", itemuid);
  8571.         if(!ItemCache[itemuid][iType])
  8572.         return ShowDialogInfo(playerid, "Ten przedmiot służy do gry RolePlay i nie ma żadnych zastosowań skryptowych.");
  8573.         if(ItemCache[itemuid][iType]==1)
  8574.         {
  8575.                 if(ItemCache[itemuid][iVal2] == 0)
  8576.                 return SendClientMessage(playerid, COLOR_GRAY, "W tej broni skończyła się amunicja.");
  8577.                 for(new i=1; i<LastiUID; i++)
  8578.                 {
  8579.                         if(ItemCache[i][iOwner] == pUID[playerid])
  8580.                         {
  8581.                                 if(ItemCache[i][iType] == 1)
  8582.                                 {
  8583.                                         if(ItemCache[i][iActive] && i != itemuid)
  8584.                                         {
  8585.                                                 return SendClientMessage(playerid, COLOR_GRAY, "Masz już wyciągniętą jakąś broń.");
  8586.                                         }
  8587.                                 }
  8588.                         }
  8589.                 }
  8590.                 return ShowDialogUseWeap(playerid);
  8591.         }
  8592.         if(ItemCache[itemuid][iType] == 2)
  8593.         {
  8594.                 for(new i=1; i<LastiUID;i++)
  8595.                 {
  8596.                         if(!ItemCache[i][iState])
  8597.                         {
  8598.                                 if(ItemCache[i][iOwner]==pUID[playerid])
  8599.                                 {
  8600.                                         if(ItemCache[i][iType]==2)
  8601.                                         {
  8602.                                                 if(ItemCache[i][iActive])
  8603.                                                 {
  8604.                                                         if(i != itemuid)
  8605.                                                         {
  8606.                                                                 return SendClientMessage(playerid, COLOR_GRAY, "Aktywny możesz mieć tylko jeden telefon.");
  8607.                                                         }
  8608.                                                 }
  8609.                                         }
  8610.                                 }
  8611.                         }
  8612.                 }
  8613.                 if(CallData[playerid][cCaller] != -1 && CallData[playerid][cCalling]==0)
  8614.                 {
  8615.                         new senderid = CallData[playerid][cCaller];
  8616.                         CallData[playerid][cCaller] = -1;
  8617.                         CallData[senderid][cCaller] = -1;
  8618.                         GameTextForPlayer(senderid, "~w~rozmowca ~r~rozlaczyl sie", 3000, 4);
  8619.                         SetPlayerSpecialAction(senderid, 13);
  8620.                         SetPlayerSpecialAction(playerid, 13);
  8621.                         return 1;
  8622.                 }
  8623.                 if(CallData[playerid][cCalling] > 0)
  8624.                 {
  8625.                         ShowDialogAnswer(playerid);
  8626.                         return 1;
  8627.                 }
  8628.                 if(!ItemCache[itemuid][iActive])
  8629.                 {
  8630.                         GameTextForPlayer(playerid, "~b~~h~telefon ~w~wlaczony", 3000, 4);
  8631.                         PlayerPlaySound(playerid, 4202, 0.0, 0.0, 0.0);
  8632.                         ItemCache[itemuid][iActive]=1;
  8633.                 }
  8634.                 ShowDialogPhone(playerid);
  8635.         }
  8636.         if(ItemCache[itemuid][iType] == 3)
  8637.         {
  8638.                 for(new i=1; i<LastiUID; i++)
  8639.                 {
  8640.                         if(ItemCache[i][iActive])
  8641.                         {
  8642.                                 if(ItemCache[i][iType] == 3)
  8643.                                 {
  8644.                                         if(ItemCache[i][iOwner] == pUID[playerid])
  8645.                                         {
  8646.                                                 if(i == itemuid)
  8647.                                                 {
  8648.                                                         ItemCache[i][iActive]=0;
  8649.                                                         SetPlayerSkin(playerid, UserCache[pUID[playerid]][uSkin]);
  8650.                                                         ClearAnimations(playerid);
  8651.                                                         new msg[128];
  8652.                                                         format(msg, sizeof(msg), "przebiera się.");
  8653.                                                         SendPlayerMe(playerid, msg);
  8654.                                                         return 1;
  8655.                                                 }
  8656.                                                 return SendClientMessage(playerid, COLOR_GRAY, "Nosisz już na sobie jakieś ubranie.");
  8657.                                         }
  8658.                                 }
  8659.                         }
  8660.                 }
  8661.                 ItemCache[itemuid][iActive]=1;
  8662.                 SetPlayerSkin(playerid, ItemCache[itemuid][iVal]);
  8663.                 ClearAnimations(playerid);
  8664.                 new msg[128];
  8665.                 format(msg, sizeof(msg), "przebiera się.");
  8666.                 SendPlayerMe(playerid, msg);
  8667.                 return 1;
  8668.         }
  8669.         if(ItemCache[itemuid][iType] == 4)
  8670.         {
  8671.                 if(ItemCache[itemuid][iVal3] == 1)
  8672.                 {
  8673.                         if(UserCache[pUID[playerid]][uHealth] >= 10.0)
  8674.                         return TextDrawForPlayerEx(playerid, 1, "Nie potrzebujesz leku, bo stan zdrowia twojej postaci jest dobry.", 5000);
  8675.                 }
  8676.                 else if(UserCache[pUID[playerid]][uHealth] < 10.0)
  8677.                 {
  8678.                         return ShowDialogInfo(playerid, "Twój stan zdrowia jest zbyt niski.\nUdaj się do apteki by zakupić lek.");
  8679.                 }
  8680.                 if(ItemCache[itemuid][iVal2] == 0)
  8681.                 ApplyAnimation(playerid, "FOOD", "eat_burger", 4.1, 0, 0, 0, 0, 0, 0);
  8682.                 else if(ItemCache[itemuid][iVal2] == 1)
  8683.                 SetPlayerSpecialAction(playerid, 20);
  8684.                 else if(ItemCache[itemuid][iVal2] == 2)
  8685.                 SetPlayerSpecialAction(playerid, 21);
  8686.                 else if(ItemCache[itemuid][iVal2] == 3)
  8687.                 SetPlayerSpecialAction(playerid, 22);
  8688.                 else if(ItemCache[itemuid][iVal2] == 4)
  8689.                 SetPlayerSpecialAction(playerid, 23);
  8690.                 if(floatround(UserCache[pUID[playerid]][uHealth])+ItemCache[itemuid][iVal] > 100)
  8691.                 {
  8692.                         UserCache[pUID[playerid]][uHealth]=100.0;
  8693.                         SetPlayerHealth(playerid, 100);
  8694.                 }
  8695.                 else
  8696.                 {
  8697.                         UserCache[pUID[playerid]][uHealth] =    UserCache[pUID[playerid]][uHealth]+ItemCache[itemuid][iVal];
  8698.                         SetPlayerHealth(playerid, UserCache[pUID[playerid]][uHealth]);
  8699.                 }
  8700.                 new msg[128];
  8701.                 format(msg, sizeof(msg), "spożywa %s.", ItemCache[itemuid][iName]);
  8702.                 SendPlayerMe(playerid, msg);
  8703.                 ItemCache[itemuid][iState] = 3;
  8704.                 return 1;
  8705.         }
  8706.         if(ItemCache[itemuid][iType] == 5)
  8707.         {
  8708.                 new Float:X, Float:Y, Float:Z;
  8709.                 GetPlayerPos(playerid, X, Y, Z);
  8710.                 new vw = GetPlayerVirtualWorld(playerid);
  8711.                 for(new j=1; j < LastiUID; j++)
  8712.                 {
  8713.                         if(ItemCache[j][iState] == 0)
  8714.                         {
  8715.                                 if(ItemCache[j][iActive])
  8716.                                 {
  8717.                                         if(ItemCache[j][iOwner] == pUID[playerid])
  8718.                                         {
  8719.                                                 if(ItemCache[j][iType] == 5)
  8720.                                                 {
  8721.                                                         DestroyDynamicObject(ItemCache[j][iVal]);
  8722.                                                         ItemCache[j][iActive] = 0;
  8723.                                                         for(new i; i<=GetPlayerPoolSize(); i++)
  8724.                                                         {
  8725.                                                                 if(IsPlayerConnected(i))
  8726.                                                                 {
  8727.                                                                         if(IsPlayerInRangeOfPoint(i, 50, X, Y, Z))
  8728.                                                                         {
  8729.                                                                                 if(GetPlayerVirtualWorld(i) == vw)
  8730.                                                                                 {
  8731.                                                                                         StopAudioStreamForPlayer(i);
  8732.                                                                                 }
  8733.                                                                         }
  8734.                                                                 }
  8735.                                                         }
  8736.                                                 }
  8737.                                         }
  8738.                                 }
  8739.                         }
  8740.                 }
  8741.                 return ShowDialogBoomBox(playerid);
  8742.         }
  8743.         if(ItemCache[itemuid][iType] == 6)
  8744.         {
  8745.                 new msg[128];
  8746.                 new rand = random(6);
  8747.                 format(msg, sizeof(msg), "* %s wylosował liczbę %d (z 1-6) używając %s. *", RPName(playerid), rand+1, ItemCache[itemuid][iName]);
  8748.                 if(UserCache[pUID[playerid]][uSex])
  8749.                 format(msg, sizeof(msg), "* %s wylosowała liczbę %d (z 1-6) używając %s. *", RPName(playerid), rand+1, ItemCache[itemuid][iName]);
  8750.                 return SendPlayerMessageInRange(playerid, msg, DO_SHADE_1, DO_SHADE_2, DO_SHADE_3, DO_SHADE_4, DO_SHADE_5, DO_SHADE_6);
  8751.         }
  8752.         if(ItemCache[itemuid][iType] == 7)
  8753.         {
  8754.                 for(new i=1; i<LastiUID; i++)
  8755.                 {
  8756.                         if(ItemCache[i][iOwner] == pUID[playerid])
  8757.                         {
  8758.                                 if(ItemCache[i][iType] == 7)
  8759.                                 {
  8760.                                         if(ItemCache[i][iActive])
  8761.                                         {
  8762.                                                 if(ItemCache[i][iUID] == itemuid)
  8763.                                                 {
  8764.                                                         new msg[128];
  8765.                                                         format(msg, sizeof(msg), "zdejmuje %s.", ItemCache[itemuid][iName]);
  8766.                                                         SendPlayerMe(playerid, msg);
  8767.                                                         SetPlayerName(playerid, UserCache[pUID[playerid]][uName]);
  8768.                                                         ItemCache[i][iActive]=0;
  8769.                                                         UpdatePlayerName(playerid);
  8770.                                                         SetPlayerScore(playerid, UserCache[pUID[playerid]][uSP]);
  8771.                                                         return 1;
  8772.                                                 }
  8773.                                                 else
  8774.                                                 return SendClientMessage(playerid, COLOR_GRAY, "Masz już założoną jakąś maskę.");
  8775.                                         }
  8776.                                 }
  8777.                         }
  8778.                 }
  8779.                 new msg[128];
  8780.                 format(msg, sizeof(msg), "zakłada %s.", ItemCache[itemuid][iName]);
  8781.                 SendPlayerMe(playerid, msg);
  8782.                 format(msg, sizeof(msg), "Nieznajomy_%d", playerid+7542);
  8783.                 if(UserCache[pUID[playerid]][uSex])
  8784.                 format(msg, sizeof(msg), "Nieznajoma_%d", playerid+7542);
  8785.                 SetPlayerName(playerid, msg);
  8786.                 UpdatePlayerName(playerid);
  8787.                 ItemCache[itemuid][iActive] = 1;
  8788.                 SetPlayerScore(playerid, 0);
  8789.         }
  8790.         if(ItemCache[itemuid][iType] == 8)
  8791.         {
  8792.                 CreateSystemVehicle(ItemCache[itemuid][iVal], random(255), random(255),-199.4787,1223.2294,19.7113, playerid, 0,178.2287);
  8793.                 SpawnVehicle(LastvUID-1);
  8794.                 ItemCache[itemuid][iState] = 3;
  8795.                 MapIcon[playerid] = CreateDynamicMapIcon(876.5847,-1259.2781,14.6456, 55,-1,  0, 0, playerid,-1, 3);
  8796.                 MapIconTimer[playerid] = SetTimerEx("DestroyIcon", 5000*60, false, "i", playerid);
  8797.                 return TextDrawForPlayerEx(playerid, 1, "Pojazd zostal zespawnowany!~n~Ikona samochodu pojawila sie na radarze.", 10000);
  8798.         }
  8799.         if(ItemCache[itemuid][iType] == 9)
  8800.         {
  8801.                 if(IsPlayerInAnyVehicle(playerid))
  8802.                 return SendClientMessage(playerid, COLOR_GRAY, "Nie możesz znajdować się w pojeździe.");
  8803.                 for(new i=1; i<LastiUID; i++)
  8804.                 {
  8805.                         if(ItemCache[i][iOwner] == pUID[playerid])
  8806.                         {
  8807.                                 if(ItemCache[i][iType] == 9)
  8808.                                 {
  8809.                                         if(ItemCache[i][iState] == 0)
  8810.                                         {
  8811.                                                 if(ItemCache[i][iUID] == itemuid)
  8812.                                                 {
  8813.                                                         if(ItemCache[i][iActive])
  8814.                                                         {
  8815.                                                                 ItemCache[i][iActive] = 0;
  8816.                                                                 KillTimer(PlayerRepairingVehicle[playerid][repairTimer]);
  8817.                                                                 return GameTextForPlayer(playerid, "~r~~h~naprawa anulowana", 3000, 4);
  8818.                                                         }
  8819.                                                 }
  8820.                                                 else if(ItemCache[i][iUID] != itemuid && ItemCache[i][iActive])
  8821.                                                 return SendClientMessage(playerid, COLOR_GRAY, "Nie możesz wyjąć kolejnego zestawu naprawczego.");
  8822.                                         }
  8823.                                 }
  8824.                         }
  8825.                 }
  8826.                 new vid = GetPlayerCameraTargetVehicle(playerid);
  8827.                 if(vid)
  8828.                 {
  8829.                         new Float:X, Float:Y, Float:Z;
  8830.                         GetVehiclePos(vid, X, Y, Z);
  8831.                         if(!IsPlayerInRangeOfPoint(playerid, 5.0, X, Y, Z))
  8832.                         return GameTextForPlayer(playerid, "~r~~h~stan blizej", 3000, 4);
  8833.                         PlayerRepairingVehicle[playerid][repairVehicleUID] = GetVehicleUID(vid);
  8834.                         if(VehicleCache[GetVehicleUID(vid)][vHP] > 300)
  8835.                         return TextDrawForPlayerEx(playerid, 1, "Ten pojazd jest w stanie uruchomic silnik~n~Naprawa jest niepotrzebna.", 3000);
  8836.                         TextDrawForPlayerEx(playerid, 1, "Rozpoczynasz naprawe pojazdu.~n~Odegraj akcje RolePlay naprawy pojazdu.", 10000);
  8837.                         PlayerRepairingVehicle[playerid][repairTime] = 30;
  8838.                         ItemCache[itemuid][iActive] = 1;
  8839.                         PlayerRepairingVehicle[playerid][repairTimer] = SetTimerEx("RepairingVehicle", 1000, true, "i", playerid);
  8840.                 }
  8841.                 return GameTextForPlayer(playerid, "~r~~h~spojrz na pojazd", 3000, 4);
  8842.         }
  8843.         if(ItemCache[itemuid][iType] == 10)
  8844.         {
  8845.                 new Float:vx, Float:vy, Float:vz, vvw, pvw = GetPlayerVirtualWorld(playerid);
  8846.                 for(new i=1; i<=GetVehiclePoolSize(); i++)
  8847.                 {
  8848.                         vvw = GetVehicleVirtualWorld(i);
  8849.                         if(pvw == vvw)
  8850.                         {
  8851.                                 GetVehiclePos(i, vx, vy, vz);
  8852.                                 if(IsPlayerInRangeOfPoint(playerid, 5.0, vx, vy, vz))
  8853.                                 {
  8854.                                         new vuid = GetVehicleUID(i);
  8855.                                         new fuel = VehicleCache[vuid][vFuel];
  8856.                                         if(VehicleCache[vuid][vEngine])
  8857.                                         return ShowDialogInfo(playerid, "Silnik  w tym pojeździe musi być zgaszony.");
  8858.                                         if(fuel + ItemCache[itemuid][iVal] > 100)
  8859.                                         return TextDrawForPlayerEx(playerid, 1, "W tym pojezdzie nie zmiesci sie az tyle paliwa.", 3000);
  8860.                                         if(IsPlayerInAnyVehicle(playerid))
  8861.                                         return ShowDialogInfo(playerid, "Nie możesz użyć tej funkcji znajdując się w pojeździe.");
  8862.                                         VehicleCache[vuid][vFuel] += ItemCache[itemuid][iVal];
  8863.                                         new str[128]; format(str, sizeof(str), "uzupełnia bak paliwa pojazdu marki %s", GetVehicleName(GetVehicleModel(i)));
  8864.                                         ApplyAnimation(playerid, "BD_FIRE", "wash_up", 4.1, 0, 0, 0, 0, 0, 0);
  8865.                                         ItemCache[itemuid][iState] = 3;
  8866.                                         return SendPlayerMe(playerid, str);
  8867.                                 }
  8868.                         }
  8869.                 }
  8870.                 return TextDrawForPlayerEx(playerid, 1, "Nie znajdujesz sie w poblizu zadnego pojazdu.", 3000);
  8871.         }
  8872.         if(ItemCache[itemuid][iType] == 11)
  8873.         {
  8874.                 new weapontoload = ItemCache[itemuid][iVal], list[256], info[64], count;
  8875.                 for(new i=1; i<LastiUID; i++)
  8876.                 {
  8877.                         if(ItemCache[i][iType] == 1)
  8878.                         {
  8879.                                 if(ItemCache[i][iVal] == weapontoload)
  8880.                                 {
  8881.                                         if(ItemCache[i][iOwner] == pUID[playerid])
  8882.                                         {
  8883.                                                 if(ItemCache[i][iState] == 0)
  8884.                                                 {
  8885.                                                         format(info, sizeof(info), "%d\t%s\n", ItemCache[i][iUID], ItemCache[i][iName]);
  8886.                                                         strins(list, info, strlen(list)); count++;
  8887.                                                 }
  8888.                                         }
  8889.                                 }
  8890.                         }
  8891.                 }
  8892.                 if(count)
  8893.                 return ShowPlayerDialog(playerid, D_AMMO, DIALOG_STYLE_LIST, "Wybierz broń", list, "Wybierz", "Anuluj");
  8894.                 return ShowDialogInfo(playerid, "Brak pasujących przedmiotów do tego rodzaju amunicji.");
  8895.         }
  8896.         if(ItemCache[itemuid][iType] == 12)
  8897.         {
  8898.                 new model = ItemCache[itemuid][iVal];
  8899.                 new Float:X, Float:Y, Float:Z;
  8900.                 GetPlayerPos(playerid, X, Y, Z);
  8901.                 new index;
  8902.                 if(!IsPlayerAttachedObjectSlotUsed(playerid, 0))
  8903.                 index = 0;
  8904.                 else if(!IsPlayerAttachedObjectSlotUsed(playerid, 1))
  8905.                 index = 1;
  8906.                 else if(!IsPlayerAttachedObjectSlotUsed(playerid, 2))
  8907.                 index = 2;
  8908.                 else if(!IsPlayerAttachedObjectSlotUsed(playerid, 3))
  8909.                 index = 3;
  8910.                 else if(!IsPlayerAttachedObjectSlotUsed(playerid, 4))
  8911.                 index = 4;
  8912.                 else return ShowDialogInfo(playerid, "Posiadasz już limit doczepianych akcesorium na raz.");
  8913.                 ItemCache[itemuid][iVal2] = index;
  8914.                 new bone = ItemCache[itemuid][iVal3];
  8915.  
  8916.                 for(new i=1; i<LastiUID; i++)
  8917.                 {
  8918.                         if(ItemCache[i][iType] == 12)
  8919.                         {
  8920.                                 if(ItemCache[i][iState] == 0)
  8921.                                 {
  8922.                                         if(ItemCache[i][iOwner] == pUID[playerid])
  8923.                                         {
  8924.                                                 if(ItemCache[i][iActive])
  8925.                                                 {
  8926.                                                         if(ItemCache[i][iUID] == itemuid)
  8927.                                                         {
  8928.                                                                 ItemCache[i][iActive] = 0;
  8929.                                                                 return RemovePlayerAttachedObject(playerid, ItemCache[i][iVal2]);
  8930.                                                         }
  8931.                                                 }
  8932.                                         }
  8933.                                 }
  8934.                         }
  8935.                 }
  8936.                 SetPlayerAttachedObject(playerid, index, model, bone, ItemCache[itemuid][iAttachX], ItemCache[itemuid][iAttachY], ItemCache[itemuid][iAttachZ], ItemCache[itemuid][iAttachrX], ItemCache[itemuid][iAttachrY],
  8937.                 ItemCache[itemuid][iAttachrZ], ItemCache[itemuid][iSizeX], ItemCache[itemuid][iSizeY], ItemCache[itemuid][iSizeZ],0, 0);
  8938.  
  8939.                 if(!ItemCache[itemuid][iAttachX] && !ItemCache[itemuid][iAttachY] && !ItemCache[itemuid][iAttachZ] && !ItemCache[itemuid][iAttachrX] && !ItemCache[itemuid][iAttachrY] && !ItemCache[itemuid][iAttachrZ] &&
  8940.                 ItemCache[itemuid][iSizeX]==1 && ItemCache[itemuid][iSizeY]==1 && ItemCache[itemuid][iSizeZ]==1)
  8941.                 EditAttachedObject(playerid, index);
  8942.  
  8943.                 ItemCache[itemuid][iActive] = 1;
  8944.         }
  8945.         if(ItemCache[itemuid][iType] == 13)
  8946.         {
  8947.                 new list[525], info[128];
  8948.                 for(new i=1; i<LastiUID; i++)
  8949.                 {
  8950.                         if(ItemCache[i][iState] == 4)
  8951.                         {
  8952.                                 if(ItemCache[i][iOwner] == itemuid)
  8953.                                 {
  8954.                                         format(info, sizeof(info), "%d\t%s\n", ItemCache[i][iUID], ItemCache[i][iName]);
  8955.                                         strins(list, info, strlen(list));
  8956.                                 }
  8957.                         }
  8958.                 }
  8959.                 if(Isnull(list))
  8960.                 return ShowDialogInfo(playerid, "Ta torba jest pusta.");
  8961.                 return ShowPlayerDialog(playerid, D_BAG, DIALOG_STYLE_LIST, "Torba", list, "Wyjmij", "Zamknij");
  8962.         }
  8963.         if(ItemCache[itemuid][iType] == 14)
  8964.         {
  8965.                 new vid = GetPlayerCameraTargetVehicle(playerid);
  8966.                 if(vid != INVALID_VEHICLE_ID)
  8967.                 {
  8968.                         new vuid = GetVehicleUID(vid);
  8969.                         if(VehicleCache[vuid][vOwner] != pUID[playerid])
  8970.                         return TextDrawForPlayerEx(playerid, 1, "~r~~h~Ten pojazd nie nalezy do Ciebie.", 3000);
  8971.                         if(VehicleCache[vuid][vRegister])
  8972.                         return TextDrawForPlayerEx(playerid, 1, "Ten pojazd posiada juz rejestracje.", 3000);
  8973.                         pVal[playerid] = 2;
  8974.                         pVal2[playerid] = vuid;
  8975.                         ItemCache[itemuid][iState] = 3;
  8976.                         PlayerTextDrawSetString(playerid, RadarTextDraw[playerid], "Odegraj akcje RolePlay montazu rejestracji na pojazd.~n~Glupoty wypisywane na szybko beda karane!");
  8977.                         return PlayerTextDrawShow(playerid, RadarTextDraw[playerid]);
  8978.                 }
  8979.                 return TextDrawForPlayerEx(playerid, 1, "Spojrz na pojazd na, ktory chcesz nalozyc nowa rejestracje.", 3000);
  8980.         }
  8981.         return 1;
  8982. }
  8983.  
  8984. forward RepairingVehicle(playerid);
  8985. public RepairingVehicle(playerid)
  8986. {
  8987.         new targetid = GetPlayerCameraTargetVehicle(playerid);
  8988.         new targetuid = GetVehicleUID(targetid);
  8989.         if(targetuid != PlayerRepairingVehicle[playerid][repairVehicleUID])
  8990.         return GameTextForPlayer(playerid, "~r~~h~spojrz na pojazd", 1000, 4);
  8991.         new Float:X, Float:Y, Float:Z;
  8992.         GetVehiclePos(targetid, X, Y, Z);
  8993.         if(!IsPlayerInRangeOfPoint(playerid, 5.0, X, Y, Z))
  8994.         return GameTextForPlayer(playerid, "~r~~h~stan blizej!", 1000, 4);
  8995.         new str[64];
  8996.         format(str, sizeof(str), "~b~~h~~h~~h~%d", PlayerRepairingVehicle[playerid][repairTime]);
  8997.         GameTextForPlayer(playerid, str, 1000, 4);
  8998.         PlayerRepairingVehicle[playerid][repairTime]--;
  8999.         format(str, sizeof(str), "~b~~h~~h~~h~%d", PlayerRepairingVehicle[playerid][repairTime]);
  9000.         if(PlayerRepairingVehicle[playerid][repairTime] != 0)
  9001.         {
  9002.                 format(str, sizeof(str), "~b~~h~~h~~h~%d", PlayerRepairingVehicle[playerid][repairTime]);
  9003.         }
  9004.         else
  9005.         {
  9006.                 GameTextForPlayer(playerid, "~b~~h~~h~~h~gotowe!", 1000, 4);
  9007.         }
  9008.         if(PlayerRepairingVehicle[playerid][repairTime] == 0)
  9009.         {
  9010.                 new vuid = PlayerRepairingVehicle[playerid][repairVehicleUID];
  9011.                 new val;
  9012.                 for(new i=1; i<LastiUID; i++)
  9013.                 {
  9014.                         if(ItemCache[i][iState] == 0)
  9015.                         {
  9016.                                 if(ItemCache[i][iType] == 9)
  9017.                                 {
  9018.                                         if(ItemCache[i][iActive])
  9019.                                         {
  9020.                                                 if(ItemCache[i][iOwner] == pUID[playerid])
  9021.                                                 {
  9022.                                                         val = ItemCache[i][iVal];
  9023.                                                         ItemCache[i][iState] = 3;
  9024.                                                         ItemCache[i][iActive] = 0;
  9025.                                                 }
  9026.                                         }
  9027.                                 }
  9028.                         }
  9029.                 }
  9030.                 VehicleCache[vuid][vHP] = VehicleCache[vuid][vHP] + val;
  9031.                 SetVehicleHealth(VehicleCache[vuid][vID], VehicleCache[vuid][vHP]);
  9032.                 PlayerPlaySound(playerid, 1133, 0.0, 0.0, 0.0);
  9033.                 KillTimer(PlayerRepairingVehicle[playerid][repairTimer]);
  9034.         }
  9035.         return 1;
  9036. }
  9037.  
  9038. forward DestroyIcon(playerid);
  9039. public DestroyIcon(playerid)
  9040. {
  9041.         KillTimer(MapIconTimer[playerid]);
  9042.         DestroyDynamicMapIcon(MapIcon[playerid]);
  9043. }
  9044.  
  9045. stock ShowDialogBoomBox(playerid)
  9046. return ShowPlayerDialog(playerid, D_BOOMBOX, DIALOG_STYLE_INPUT, "Boombox", ""HEX_BLUE"Podaj adres "HEX_GREEN"URL"HEX_BLUE" do buzki z boomboxa.", "Gotowe!", "Anuluj");
  9047.  
  9048. stock ShowDialogAnswer(playerid)
  9049. return ShowPlayerDialog(playerid, D_ANSWER, DIALOG_STYLE_LIST, "Telefon > Połączenie przychodzące", "1\t"HEX_GREEN"Odbierz\n2\t"HEX_RED"Odrzuć", "Wybierz", "Anuluj");
  9050.  
  9051. stock ShowDialogPhone(playerid)
  9052. return ShowPlayerDialog(playerid, D_PHONE, DIALOG_STYLE_LIST, "Telefon", ""HEX_WHITE"1\t"HEX_GREEN"Kontakty"HEX_WHITE"\n2\t"HEX_BLUE"Skrzynka odbiorcza"HEX_WHITE"\n3\tZadzwoń pod numer\n4\tWyślij SMS\n5\t"HEX_RED"Wyłącz telefon", "Wybierz", "Anuluj");
  9053.  
  9054. stock ShowDialogUseWeap(playerid)
  9055. {
  9056.         return ShowPlayerDialog(playerid, D_USE_WEAP, DIALOG_STYLE_INPUT, "Użycie broni", ""HEX_WHITE"Napisz z/do którego wyjmujesz/chowasz swoją broń.\nNp. Z kabury/do kabury.", "Użyj", "Anuluj");
  9057. }
  9058.  
  9059. public OnPlayerWeaponShot(playerid, weaponid, hittype, hitid, Float:fX, Float:fY, Float:fZ)
  9060. {
  9061.         new bool:ischeater=true;
  9062.         for(new i=1;i<LastiUID; i++)
  9063.         {
  9064.                 if(ItemCache[i][iActive])
  9065.                 {
  9066.                         if(ItemCache[i][iType] == 1)
  9067.                         {
  9068.                                 if(ItemCache[i][iOwner] == pUID[playerid])
  9069.                                 {
  9070.                                         if(weaponid == ItemCache[i][iVal])
  9071.                                         {
  9072.                                                 ischeater=false;
  9073.                                                 break;
  9074.                                         }
  9075.                                 }
  9076.                         }
  9077.                 }
  9078.         }
  9079.         if(ischeater == true)
  9080.         {
  9081.                 return !KickPlayer(playerid, "System", "Weapon Cheat (A)");
  9082.         }
  9083.         for(new i=1; i<LastiUID;i++)
  9084.         {
  9085.                 if(ItemCache[i][iActive])
  9086.                 {
  9087.                         if(ItemCache[i][iOwner]==pUID[playerid])
  9088.                         {
  9089.                                 if(ItemCache[i][iType] == 1)
  9090.                                 {
  9091.                                         ItemCache[i][iVal2]--;
  9092.                                         if(!ItemCache[i][iVal2])
  9093.                                         {
  9094.                                                 ResetPlayerWeapons(playerid);
  9095.                                                 SetTimerEx("HideWeapon", 1000, false, "ii", ItemCache[i][iUID], playerid);
  9096.                                                 SendClientMessage(playerid, COLOR_GRAY, "W broni skończyła się amunicja.");
  9097.                                                 return 1;
  9098.                                         }
  9099.                                 }
  9100.                         }
  9101.                 }
  9102.         }
  9103.         return 1;
  9104. }
  9105.  
  9106. public OnPlayerShootDynamicObject(playerid, weaponid, STREAMER_TAG_OBJECT objectid, Float:x, Float:y, Float:z)
  9107. {
  9108.         new bool:ischeater=true;
  9109.         for(new i=1;i<LastiUID; i++)
  9110.         {
  9111.                 if(ItemCache[i][iActive])
  9112.                 {
  9113.                         if(ItemCache[i][iType] == 1)
  9114.                         {
  9115.                                 if(ItemCache[i][iOwner] == pUID[playerid])
  9116.                                 {
  9117.                                         if(weaponid == ItemCache[i][iVal])
  9118.                                         {
  9119.                                                 ischeater=false;
  9120.                                                 break;
  9121.                                         }
  9122.                                 }
  9123.                         }
  9124.                 }
  9125.         }
  9126.         if(ischeater == true)
  9127.         {
  9128.                 return !KickPlayer(playerid, "System", "Weapon Cheat (A)");
  9129.         }
  9130.         for(new i=1; i<LastiUID;i++)
  9131.         {
  9132.                 if(ItemCache[i][iActive])
  9133.                 {
  9134.                         if(ItemCache[i][iOwner]==pUID[playerid])
  9135.                         {
  9136.                                 if(ItemCache[i][iType] == 1)
  9137.                                 {
  9138.                                         ItemCache[i][iVal2]--;
  9139.                                         if(!ItemCache[i][iVal2])
  9140.                                         {
  9141.                                                 ResetPlayerWeapons(playerid);
  9142.                                                 SetTimerEx("HideWeapon", 1000, false, "ii", ItemCache[i][iUID], playerid);
  9143.                                                 SendClientMessage(playerid, COLOR_GRAY, "W broni skończyła się amunicja.");
  9144.                                                 return 1;
  9145.                                         }
  9146.                                 }
  9147.                         }
  9148.                 }
  9149.         }
  9150.         return 1;
  9151. }
  9152.  
  9153. CMD:stats (playerid, params[])
  9154. return ShowDialogStats(playerid);
  9155.  
  9156. stock ShowDialogStats(playerid)
  9157. {
  9158.         new pIP[64];
  9159.         GetPlayerIp(playerid, pIP, sizeof(pIP));
  9160.         new info[520];
  9161.         format(info, sizeof(info), "%s\t%dh %dmin\n\
  9162.         "HEX_WHITE"Zdrowie:\t%s%fHP\t \n\
  9163.         Aktualnie ubranie:\t%d\n\
  9164.         Standardowy skin:\t%d\n\
  9165.         Gotówka:\t"HEX_GREEN"%d$\n\
  9166.         Czas BW:\t%d\n\
  9167.         Czas AJ:\t%d\n\
  9168.         Szkodnik Points:\t"HEX_BLUE"%d\n\
  9169.         Virtual World:\t%d\n\
  9170.         Bank:\t"HEX_GREEN"%d$\n\
  9171.         ---\n\
  9172.         1\tUstawienia postaci\n\
  9173.         2\tUsługi\n\
  9174.         3\tDokumenty postaci\n\
  9175.         4\tPrzełączniki postaci",
  9176.         strreplace(PlayerName(playerid), '_', ' '),
  9177.         UserCache[pUID[playerid]][uH],
  9178.         UserCache[pUID[playerid]][uMin],
  9179.         GetHPHex(UserCache[pUID[playerid]][uHealth]),
  9180.         UserCache[pUID[playerid]][uHealth],
  9181.         GetPlayerSkin(playerid),
  9182.         UserCache[pUID[playerid]][uSkin],
  9183.         UserCache[pUID[playerid]][uCash],
  9184.         UserCache[pUID[playerid]][uBW],
  9185.         UserCache[pUID[playerid]][uAJ],
  9186.         UserCache[pUID[playerid]][uSP],
  9187.         GetPlayerVirtualWorld(playerid),
  9188.         UserCache[pUID[playerid]][uBank]);
  9189.         return ShowPlayerDialog(playerid, D_STATS, DIALOG_STYLE_TABLIST_HEADERS, "Statystyki", info, "Wybierz", "Anuluj");
  9190. }
  9191.  
  9192. stock SendMeInRange(playerid, msg[])
  9193. {
  9194.         return SendPlayerMe(playerid, msg);
  9195. }
  9196.  
  9197. stock SendDoInRange(playeri, msg[])
  9198. {
  9199.         return SendPlayerMe(playerid, msg);
  9200. }
  9201.  
  9202. stock GetHPHex(Float:HP)
  9203. {
  9204.         new hex[16];
  9205.         if(HP < 10)
  9206.         hex = HEX_RED;
  9207.         else
  9208.         hex = HEX_GREEN;
  9209.         return hex;
  9210. }
  9211.  
  9212. CMD:g (playerid, params[])
  9213. {
  9214.         if(!Isnull(params))
  9215.         {
  9216.                 new slot, sub[32], targetid;
  9217.                 sscanf(params, "is[32]r", slot, sub, targetid);
  9218.                 switch(slot)
  9219.                 {
  9220.                         case 1: if(UserCache[pUID[playerid]][uGroup] == 0) return SendClientMessage(playerid, COLOR_GRAY, "Pod wybranym slotem nie znajduje się żadna grupa.");
  9221.                         case 2: if(UserCache[pUID[playerid]][uGroup2] == 0) return SendClientMessage(playerid, COLOR_GRAY, "Pod wybranym slotem nie znajduje się żadna grupa.");
  9222.                         case 3: if(UserCache[pUID[playerid]][uGroup3] == 0) return SendClientMessage(playerid, COLOR_GRAY, "Pod wybranym slotem nie znajduje się żadna grupa.");
  9223.                         default: return SendClientMessage(playerid, COLOR_GRAY, "Nieprawidłowy slot grupy.");
  9224.                 }
  9225.                 if(!strcmp(sub, "opusc", true))
  9226.                 {
  9227.                         new msg[128];
  9228.                         switch(slot)
  9229.                         {
  9230.                                 case 1:
  9231.                                 {
  9232.                                         format(msg, sizeof(msg), "Opuściłeś/aś grupę %s.", GroupCache[UserCache[pUID[playerid]][uGroup]][gName]);
  9233.                                         UserCache[pUID[playerid]][uGroup] = 0;
  9234.                                 }
  9235.                                 case 2:
  9236.                                 {
  9237.                                         format(msg, sizeof(msg), "Opuściłeś/aś grupę %s.", GroupCache[UserCache[pUID[playerid]][uGroup2]][gName]);
  9238.                                         UserCache[pUID[playerid]][uGroup2] = 0;
  9239.                                 }
  9240.                                 case 3:
  9241.                                 {
  9242.                                         format(msg, sizeof(msg), "Opuściłeś/aś grupę %s.", GroupCache[UserCache[pUID[playerid]][uGroup3]][gName]);
  9243.                                         UserCache[pUID[playerid]][uGroup3] = 0;
  9244.                                 }
  9245.                         }
  9246.                         return SendClientMessage(playerid, COLOR_GRAY, msg);
  9247.                 }
  9248.                 else if(!strcmp(sub, "info", true))
  9249.                 {
  9250.                         switch(slot)
  9251.                         {
  9252.                                 case 1:
  9253.                                 {
  9254.                                         SetPVarInt(playerid, "iUID", UserCache[pUID[playerid]][uGroup]);
  9255.                                         new DEBUG[128];
  9256.                                         format(DEBUG, sizeof(DEBUG), "Panel: %d", GetPVarInt(playerid, "iUID"));
  9257.                                         SendClientMessage(playerid, -1, DEBUG);
  9258.                                 }
  9259.                                 case 2:
  9260.                                 {
  9261.                                         SetPVarInt(playerid, "iUID", UserCache[pUID[playerid]][uGroup2]);
  9262.                                 }
  9263.                                 case 3:
  9264.                                 {
  9265.                                         SetPVarInt(playerid, "iUID", UserCache[pUID[playerid]][uGroup3]);
  9266.                                 }
  9267.                         }
  9268.                         return ShowDialogGroupPanel(playerid);
  9269.                 }
  9270.                 else if(!strcmp(sub, "zapros", true))
  9271.                 {
  9272.                         if(!IsPlayerConnected(targetid))
  9273.                         return SendClientMessage(playerid, COLOR_GRAY, "Ten gracz nie jest podłączony do serwera.");
  9274.                         if(!pUID[targetid])
  9275.                         return SendClientMessage(playerid, COLOR_GRAY, "Ten gracz nie jest zalogowany.");
  9276.                         new Float:X, Float:Y, Float:Z, pvw = GetPlayerVirtualWorld(playerid); GetPlayerPos(playerid, X, Y, Z);
  9277.                         if(!IsPlayerInRangeOfPoint(targetid, 5.0, X, Y, Z) || GetPlayerVirtualWorld(targetid) != pvw)
  9278.                         return SendClientMessage(playerid, COLOR_GRAY, "Gracz jest zbyt daleko.");
  9279.                         new guid;
  9280.                         switch(slot)
  9281.                         {
  9282.                                 case 1: guid = UserCache[pUID[playerid]][uGroup];
  9283.                                 case 2: guid = UserCache[pUID[playerid]][uGroup2];
  9284.                                 case 3: guid = UserCache[pUID[playerid]][uGroup3];
  9285.                         }
  9286.                         if(UserCache[pUID[targetid]][uGroup] == guid || UserCache[pUID[targetid]][uGroup2] == guid || UserCache[pUID[targetid]][uGroup3] == guid)
  9287.                         return SendClientMessage(playerid, COLOR_GRAY, "Ten gracz należy już do tej grupy.");
  9288.                         pVal[targetid] = pUID[playerid];
  9289.                         pVal2[targetid] = guid;
  9290.                         new header[64]; format(header, sizeof(header), "Zaproszenie do grupy %s", GroupCache[guid][gName]);
  9291.                         new info[256]; format(info, sizeof(info),"Otrzymano zaproszenie do grupy %s przez gracza %s.\nMożesz dołączyć do tej grupy wybierając tak lub nie.\nCzy akceptujesz tę ofertę?",
  9292.                         GroupCache[guid][gName], RPName(playerid));
  9293.                         ShowPlayerDialog(targetid, D_JOIN_GROUP, DIALOG_STYLE_MSGBOX, header, info, "Tak", "Nie");
  9294.                         return TextDrawForPlayerEx(playerid, 1, "Oferta ~g~wyslana.", 3000);
  9295.                 }
  9296.                 return SendClientMessage(playerid, COLOR_GRAY, "Tip; /g [slot] info/zapros/opusc");
  9297.         }
  9298.         else
  9299.         {
  9300.                 if(pChoosingTxd[playerid])
  9301.                 {
  9302.                         PlayerTextDrawHide(playerid, Group[playerid]);
  9303.                         PlayerTextDrawHide(playerid, Group2[playerid]);
  9304.                         PlayerTextDrawHide(playerid, Group3[playerid]);
  9305.                         PlayerTextDrawHide(playerid, GroupLabel[playerid]);
  9306.                         pChoosingTxd[playerid]=0;
  9307.                         CancelSelectTextDraw(playerid);
  9308.                         return 1;
  9309.                 }
  9310.                 new uid = pUID[playerid];
  9311.                 new string[128];
  9312.                 PlayerTextDrawShow(playerid, GroupLabel[playerid]);
  9313.                 PlayerTextDrawSetString(playerid, Group[playerid], "Brak");
  9314.                 PlayerTextDrawSetString(playerid, Group2[playerid], "Brak");
  9315.                 PlayerTextDrawSetString(playerid, Group3[playerid], "Brak");
  9316.                 if(UserCache[uid][uGroup] != 0)
  9317.                 {
  9318.                         format(string, sizeof(string), "%s (%d min)", GroupCache[UserCache[uid][uGroup]][gName], UserCache[uid][uGroupDuty]);
  9319.                         PlayerTextDrawSetString(playerid, Group[playerid], string);
  9320.                 }
  9321.                 if(UserCache[uid][uGroup2] != 0)
  9322.                 {
  9323.                         format(string, sizeof(string), "%s (%d min)", GroupCache[UserCache[uid][uGroup2]][gName], UserCache[uid][uGroupDuty2]);
  9324.                         PlayerTextDrawSetString(playerid, Group2[playerid], string);
  9325.                 }
  9326.                 if(UserCache[uid][uGroup3] != 0)
  9327.                 {
  9328.                         format(string, sizeof(string), "%s (%d min)", GroupCache[UserCache[uid][uGroup3]][gName], UserCache[uid][uGroupDuty3]);
  9329.                         PlayerTextDrawSetString(playerid, Group3[playerid], string);
  9330.                 }
  9331.                 PlayerTextDrawShow(playerid, Group3[playerid]);
  9332.                 PlayerTextDrawShow(playerid, Group2[playerid]);
  9333.                 PlayerTextDrawShow(playerid, Group[playerid]);
  9334.                 SelectTextDraw(playerid, 0x6088D2FF);
  9335.                 pChoosingTxd[playerid]=1;
  9336.                 return 1;
  9337.         }
  9338. }
  9339.  
  9340. public OnPlayerClickPlayerTextDraw(playerid, PlayerText:playertextid)
  9341. {
  9342.         new uid = pUID[playerid];
  9343.         if(playertextid == Group[playerid])
  9344.         {
  9345.                 PlayerTextDrawHide(playerid, Group[playerid]);
  9346.                 PlayerTextDrawHide(playerid, Group2[playerid]);
  9347.                 PlayerTextDrawHide(playerid, Group3[playerid]);
  9348.                 PlayerTextDrawHide(playerid, GroupLabel[playerid]);
  9349.                 CancelSelectTextDraw(playerid);
  9350.                 if(UserCache[uid][uGroup] != 0)
  9351.                 {
  9352.                         if(pDuty[playerid] != 0)
  9353.                         {
  9354.                                 new str[64];
  9355.                                 format(str, sizeof(str), "Schodzisz ze sluzby:~n~~y~%s", GroupCache[pDuty[playerid]][gName]);
  9356.                                 TextDrawForPlayerEx(playerid, 1, str, 5000);
  9357.                                 pDuty[playerid] = 0;
  9358.                                 PlayerTextDrawHide(playerid, DutyTxd[playerid]);
  9359.                                 UpdatePlayerName(playerid);
  9360.                                 return 1;
  9361.                         }
  9362.                         pDuty[playerid] = GroupCache[UserCache[uid][uGroup]][gUID];
  9363.                         new str[64];
  9364.                         format(str, sizeof(str), "Wchodzisz na sluzbe:~n~~y~%s", GroupCache[UserCache[uid][uGroup]][gName]);
  9365.                         TextDrawForPlayerEx(playerid, 1, str, 5000);
  9366.                         format(str, sizeof(str), "Sluzba: ~y~%s", GroupCache[UserCache[uid][uGroup]][gName]);
  9367.                         PlayerTextDrawSetString(playerid, DutyTxd[playerid], str);
  9368.                         PlayerTextDrawShow(playerid, DutyTxd[playerid]);
  9369.                         UpdatePlayerName(playerid);
  9370.                         return 1;
  9371.                 }
  9372.                 return 1;
  9373.         }
  9374.         if(playertextid == Group2[playerid])
  9375.         {
  9376.                 PlayerTextDrawHide(playerid, Group[playerid]);
  9377.                 PlayerTextDrawHide(playerid, Group2[playerid]);
  9378.                 PlayerTextDrawHide(playerid, Group3[playerid]);
  9379.                 PlayerTextDrawHide(playerid, GroupLabel[playerid]);
  9380.                 CancelSelectTextDraw(playerid);
  9381.                 if(UserCache[uid][uGroup2] != 0)
  9382.                 {
  9383.                         if(pDuty[playerid] != 0)
  9384.                         {
  9385.                                 new str[64];
  9386.                                 format(str, sizeof(str), "Schodzisz ze sluzby:~n~~y~%s", GroupCache[pDuty[playerid]][gName]);
  9387.                                 TextDrawForPlayerEx(playerid, 1, str, 5000);
  9388.                                 PlayerTextDrawHide(playerid, DutyTxd[playerid]);
  9389.                                 pDuty[playerid] = 0;
  9390.                                 UpdatePlayerName(playerid);
  9391.                                 return 1;
  9392.                         }
  9393.                         pDuty[playerid] = GroupCache[UserCache[uid][uGroup2]][gUID];
  9394.                         new str[64];
  9395.                         format(str, sizeof(str), "Wchodzisz na sluzbe:~n~~y~%s", GroupCache[UserCache[uid][uGroup2]][gName]);
  9396.                         TextDrawForPlayerEx(playerid, 1, str, 5000);
  9397.                         format(str, sizeof(str), "Sluzba: ~y~%s", GroupCache[UserCache[uid][uGroup2]][gName]);
  9398.                         PlayerTextDrawSetString(playerid, DutyTxd[playerid], str);
  9399.                         PlayerTextDrawShow(playerid, DutyTxd[playerid]);
  9400.                         UpdatePlayerName(playerid);
  9401.                         return 1;
  9402.                 }
  9403.                 return 1;
  9404.         }
  9405.         if(playertextid == Group3[playerid])
  9406.         {
  9407.                 PlayerTextDrawHide(playerid, Group[playerid]);
  9408.                 PlayerTextDrawHide(playerid, Group2[playerid]);
  9409.                 PlayerTextDrawHide(playerid, Group3[playerid]);
  9410.                 PlayerTextDrawHide(playerid, GroupLabel[playerid]);
  9411.                 CancelSelectTextDraw(playerid);
  9412.                 if(UserCache[uid][uGroup3] != 0)
  9413.                 {      
  9414.                         if(pDuty[playerid] != 0)
  9415.                         {
  9416.                                 new str[64];
  9417.                                 format(str, sizeof(str), "Schodzisz ze sluzby:~n~~y~%s", GroupCache[pDuty[playerid]][gName]);
  9418.                                 TextDrawForPlayerEx(playerid, 1, str, 5000);
  9419.                                 PlayerTextDrawHide(playerid, DutyTxd[playerid]);
  9420.                                 pDuty[playerid] = 0;
  9421.                                 UpdatePlayerName(playerid);
  9422.                                 return 1;
  9423.                         }
  9424.                         pDuty[playerid] = GroupCache[UserCache[uid][uGroup3]][gUID];
  9425.                         new str[64];
  9426.                         format(str, sizeof(str), "Wchodzisz na sluzbe:~n~~y~%s", GroupCache[UserCache[uid][uGroup3]][gName]);
  9427.                         TextDrawForPlayerEx(playerid, 1, str, 5000);
  9428.                         format(str, sizeof(str), "Sluzba: ~y~%s", GroupCache[UserCache[uid][uGroup3]][gName]);
  9429.                         PlayerTextDrawSetString(playerid, DutyTxd[playerid], str);
  9430.                         PlayerTextDrawShow(playerid, DutyTxd[playerid]);
  9431.                         UpdatePlayerName(playerid);
  9432.                         return 1;
  9433.                 }
  9434.                 return 1;
  9435.         }
  9436.         return 0;
  9437. }
  9438. stock GroupPath(id)
  9439. {
  9440.         new path[64];
  9441.         format(path, sizeof(path), FOLDER_GROUPS"%d.ini", id);
  9442.         return path;
  9443. }
  9444.  
  9445. stock LoadGroups()
  9446. {
  9447.         new gname[32], gcolor[16];
  9448.         for(new i=1; i<LastgUID; i++)
  9449.         {
  9450.                 dfile_Open(GroupPath(i));
  9451.                 GroupCache[i][gUID] = dfile_ReadInt("UID");
  9452.                 GroupCache[i][gType] = dfile_ReadInt("Type");
  9453.                 GroupCache[i][gBank] = dfile_ReadInt("Bank");
  9454.                 format(gname, sizeof(gname), dfile_ReadString("Name"));
  9455.                 GroupCache[i][gName] = gname;
  9456.                 GroupCache[i][gChatOOC] = dfile_ReadBool("OOC");
  9457.                 GroupCache[i][gChatIC] = dfile_ReadBool("IC");
  9458.                 format(gcolor, sizeof(gcolor), dfile_ReadString("Color"));
  9459.                 GroupCache[i][gState] = dfile_ReadInt("State");
  9460.                 GroupCache[i][gColor] = gcolor;
  9461.                 dfile_CloseFile();
  9462.         }
  9463. }
  9464.  
  9465. stock SaveGroups()
  9466. {
  9467.         for(new i=1; i<LastgUID; i++)
  9468.         {
  9469.                 if(!dfile_FileExists(GroupPath(i)))
  9470.                 dfile_Create(GroupPath(i));
  9471.                 dfile_Open(GroupPath(i));
  9472.                 dfile_WriteInt("Type", GroupCache[i][gType]);
  9473.                 dfile_WriteInt("UID", GroupCache[i][gUID]);
  9474.                 dfile_WriteInt("Bank", GroupCache[i][gBank]);
  9475.                 dfile_WriteString("Name", GroupCache[i][gName]);
  9476.                 dfile_WriteBool("OOC", GroupCache[i][gChatOOC]);
  9477.                 dfile_WriteBool("IC", GroupCache[i][gChatIC]);
  9478.                 dfile_WriteString("Color", GroupCache[i][gColor]);
  9479.                 dfile_WriteInt("State", GroupCache[i][gState]);
  9480.                 dfile_SaveFile();
  9481.                 dfile_CloseFile();
  9482.         }
  9483. }
  9484.  
  9485. CMD:agrupa (playerid, params[])
  9486. {
  9487.         if(UserCache[pUID[playerid]][uRank] < ADMINISTRATION)
  9488.         return 1;
  9489.         new gtype, gname[128], gcolor[16];
  9490.         if(sscanf(params, "is[128]s[128]", gtype, gcolor, gname))
  9491.         return SendClientMessage(playerid, COLOR_GRAY, "Poprawne użycie: /agrupa [Rodzaj grupy] [Kolor rggb] [Nazwa grupy]");
  9492.         CreateGroup(gtype, gname, gcolor);
  9493.         new msg[128];
  9494.         format(msg, sizeof(msg), "Grupa została utworzona: %s (UID: %d)", GroupCache[LastgUID-1][gName], GroupCache[LastgUID-1][gUID]);
  9495.         return SendClientMessage(playerid, COLOR_GRAY, msg);
  9496. }
  9497.  
  9498. CMD:adodaj (playerid, params[])
  9499. {
  9500.         if(UserCache[pUID[playerid]][uRank] < ADMINISTRATION)
  9501.         return 1;
  9502.         new targetid, groupuid;
  9503.         if(sscanf(params, "ri", targetid, groupuid))
  9504.         return SendClientMessage(playerid, COLOR_GRAY, "Poprawne użycie: /adodaj [ID/Część nazwy gracza] [Grupa UID]");
  9505.         if(!pUID[targetid])
  9506.         return SendClientMessage(playerid, COLOR_GRAY, "Wybrany gracz nie jest na serwerze lub nie zalogował się do gry.");
  9507.         if(UserCache[pUID[targetid]][uGroup] == 0)
  9508.         {
  9509.                 UserCache[pUID[targetid]][uGroup] = groupuid;
  9510.                 return SendClientMessage(playerid, COLOR_GRAY, "Dodano.");
  9511.         }
  9512.         else if(UserCache[pUID[targetid]][uGroup2] == 0)
  9513.         {
  9514.                 UserCache[pUID[targetid]][uGroup2] = groupuid;
  9515.                 return SendClientMessage(playerid, COLOR_GRAY, "Dodano.");
  9516.         }
  9517.         else if(UserCache[pUID[targetid]][uGroup3] == 0)
  9518.         {
  9519.                 UserCache[pUID[targetid]][uGroup3] = groupuid;
  9520.                 return SendClientMessage(playerid, COLOR_GRAY, "Dodano.");
  9521.         }
  9522.         else
  9523.         return SendClientMessage(playerid, COLOR_GRAY, "Ten gracz nie ma wolnych slotów grupowych.");
  9524. }
  9525.  
  9526. stock AddPlayerToGroup(playerid, groupuid)
  9527. {
  9528.         if(UserCache[pUID[playerid]][uGroup] == 0)
  9529.         {
  9530.                 UserCache[pUID[playerid]][uGroup] = groupuid;
  9531.                 return 1;
  9532.         }
  9533.         else if(UserCache[pUID[playerid]][uGroup2] == 0)
  9534.         {
  9535.                 UserCache[pUID[playerid]][uGroup2] = groupuid;
  9536.                 return 1;
  9537.         }
  9538.         else if(UserCache[pUID[playerid]][uGroup3] == 0)
  9539.         {
  9540.                 UserCache[pUID[playerid]][uGroup3] = groupuid;
  9541.                 return 1;
  9542.         }
  9543.         return 0;
  9544. }
  9545.  
  9546. stock HasPlayerFreeSlots(playerid)
  9547. {
  9548.         new uid = pUID[playerid];
  9549.         if(UserCache[uid][uGroup] == 0 || UserCache[uid][uGroup2] == 0 || UserCache[uid][uGroup3] == 0)
  9550.         return 1;
  9551.         return 0;
  9552. }
  9553.  
  9554. stock CreateGroup(grouptype, gname[], color[])
  9555. {
  9556.         new name[32]; format(name, sizeof(name), gname);
  9557.         GroupCache[LastgUID][gUID] = LastgUID;
  9558.         GroupCache[LastgUID][gType] = grouptype;
  9559.         GroupCache[LastgUID][gName] = name;
  9560.         GroupCache[LastgUID][gChatIC] = false;
  9561.         GroupCache[LastgUID][gChatOOC] = false;
  9562.         GroupCache[LastgUID][gBank] = 1000;
  9563.         new gcolor[16]; format(gcolor, sizeof(gcolor), color);
  9564.         GroupCache[LastgUID][gColor] = gcolor;
  9565.         LastgUID++;
  9566. }
  9567.  
  9568. stock AddObject(model,Float:X, Float:Y, Float:Z, Float:rX, Float:rY, Float:rZ, VW, ownertype, owner)
  9569. {
  9570.         ObjectCache[LastoUID][oX] = X;
  9571.         ObjectCache[LastoUID][oY] = Y;
  9572.         ObjectCache[LastoUID][oZ] = Z;
  9573.         ObjectCache[LastoUID][oVW] = VW;
  9574.         ObjectCache[LastoUID][oModel] = model;
  9575.         ObjectCache[LastoUID][orX] = rX;
  9576.         ObjectCache[LastoUID][orY] = rY;
  9577.         ObjectCache[LastoUID][orZ] = rZ;
  9578.         ObjectCache[LastoUID][oID] = CreateDynamicObject(model, X, Y, Z, rX, rY, rZ,VW, 0, -1);
  9579.         ObjectCache[LastoUID][oUID] = LastoUID;
  9580.         ObjectCache[LastoUID][oGate] = 0;
  9581.         ObjectCache[LastoUID][oGateX] = 0.0;
  9582.         ObjectCache[LastoUID][oGateY] = 0.0;
  9583.         ObjectCache[LastoUID][oGateZ] = 0.0;
  9584.         ObjectCache[LastoUID][oGaterX] = 0.0;
  9585.         ObjectCache[LastoUID][oGaterY] = 0.0;
  9586.         ObjectCache[LastoUID][oGaterZ] = 0.0;
  9587.         ObjectCache[LastoUID][oOwnerType] = ownertype;
  9588.         ObjectCache[LastoUID][oOwner] =owner;
  9589.         LastoUID++;
  9590.         return ObjectCache[LastoUID-1][oID];
  9591. }
  9592.  
  9593. stock GetObjectInRange(playerid)
  9594. {
  9595.         new pvw = GetPlayerVirtualWorld(playerid);
  9596.         for(new i=1; i<LastoUID; i++)
  9597.         {
  9598.                 if(ObjectCache[i][oState] == 0)
  9599.                 {
  9600.                         if(ObjectCache[i][oVW] == pvw)
  9601.                         {
  9602.                                 if(IsPlayerInRangeOfPoint(playerid, 2.5, ObjectCache[i][oX], ObjectCache[i][oY], ObjectCache[i][oZ]))
  9603.                                 {
  9604.                                         return ObjectCache[i][oID];
  9605.                                 }
  9606.                         }
  9607.                 }
  9608.         }
  9609.         return 0;
  9610. }
  9611.  
  9612. CMD:rc (playerid, params[])
  9613. {
  9614.         if(UserCache[pUID[playerid]][uRank] == 0)
  9615.         return 1;
  9616.         for(new i; i<=GetPlayerPoolSize(); i++)
  9617.         {
  9618.                 if(IsPlayerConnected(i))
  9619.                 {
  9620.                         if(pUID[i])
  9621.                         {
  9622.                                 if(GetPVarInt(i, "Spec") == playerid)
  9623.                                 {
  9624.                                         TogglePlayerSpectating(playerid, 0);
  9625.                                         SetPlayerVirtualWorld(playerid, 0);
  9626.                                         SetPVarInt(i, "Spec", -1);
  9627.                                         return 1;
  9628.                                 }
  9629.                         }
  9630.                 }
  9631.         }
  9632.         new targetid;
  9633.         if(sscanf(params, "r", targetid))
  9634.         return SendClientMessage(playerid, COLOR_GRAY, "Poprawne użycie: /rc [ID/Część nicku gracza] by podejrzeć gracza.");
  9635.         if(!IsPlayerConnected(targetid))
  9636.         return SendClientMessage(playerid, COLOR_GRAY, "Ten gracz nie jest podłączony do serwera.");
  9637.         if(!pUID[targetid])
  9638.         return SendClientMessage(playerid, COLOR_GRAY, "Ten gracz jest niezalogowany.");
  9639.         for(new i; i<=GetPlayerPoolSize(); i++)
  9640.         {
  9641.                 if(IsPlayerConnected(i))
  9642.                 {
  9643.                         if(pUID[i])
  9644.                         {
  9645.                                 if(i == targetid)
  9646.                                 {
  9647.                                         if(GetPVarInt(i, "Spec") != -1)
  9648.                                         {
  9649.                                                 new targetname[64]; format(targetname, sizeof(targetname), strreplace(PlayerName(GetPVarInt(i, "Spec")), '_', ' '));
  9650.                                                 new str[128]; format(str, sizeof(str), "%s podgląda już tego gracza.", targetname);
  9651.                                                 return SendClientMessage(playerid, COLOR_GRAY, str);
  9652.                                         }
  9653.                                 }
  9654.                         }
  9655.                 }
  9656.         }
  9657.         TogglePlayerSpectating(playerid, 1);
  9658.         SetPVarInt(targetid, "Spec", playerid);
  9659.         SetPlayerVirtualWorld(playerid, GetPlayerVirtualWorld(targetid));
  9660.         if(IsPlayerInAnyVehicle(targetid))
  9661.         {
  9662.                 return PlayerSpectateVehicle(playerid, GetPlayerVehicleID(targetid));
  9663.         }
  9664.         PlayerSpectatePlayer(playerid, targetid);
  9665.         return 1;
  9666. }
  9667.  
  9668. stock PlayerEditObject(playerid, objectid)
  9669. {
  9670.         new objectUID = GetObjectUID(objectid);
  9671.         ApplyAnimation(playerid, "swat", "gnstwall_injurd", 4.1, 0, 0, 0, 1, 0, 0);
  9672.         ObjectCache[objectUID][oTimer] = SetTimerEx("ObjectMoving", 125, true, "iii", playerid, objectid, objectUID);
  9673.         ObjectCache[objectUID][oPlayer] = playerid;
  9674.         return 1;
  9675. }
  9676.  
  9677. stock UpdateObjectPos(objectid, ouid, Float:X, Float:Y, Float:Z)
  9678. {
  9679.         ObjectCache[ouid][oX] = X; ObjectCache[ouid][oY] = Y; ObjectCache[ouid][oZ] = Z;
  9680.         SetDynamicObjectPos(objectid, ObjectCache[ouid][oX],  ObjectCache[ouid][oY],  ObjectCache[ouid][oZ]);
  9681.         return 1;
  9682. }
  9683.  
  9684. stock UpdateObjectRot(objectid, objectuid, Float:rX, Float:rY, Float:rZ)
  9685. {
  9686.         ObjectCache[objectuid][orX] = rX;
  9687.         ObjectCache[objectuid][orY] = rY;
  9688.         ObjectCache[objectuid][orZ] = rZ;
  9689.         SetDynamicObjectRot(objectid, rX, rY, rZ);
  9690.         return 1;
  9691. }
  9692.  
  9693. forward ObjectMoving(playerid, objectid, objectuid);
  9694. public ObjectMoving(playerid, objectid, objectuid)
  9695. {
  9696.         new index, lib[32], name[32];
  9697.         index = GetPlayerAnimationIndex(playerid);
  9698.         GetAnimationName(index, lib, sizeof(lib), name, sizeof(name));
  9699.         if(!strcmp(lib, "swat", true))
  9700.         {
  9701.                 new Float:X, Float:Y, Float:Z;
  9702.                 X = ObjectCache[objectuid][oX];
  9703.                 Y = ObjectCache[objectuid][oY];
  9704.                 Z = ObjectCache[objectuid][oZ];
  9705.                 new Float:rX, Float:rY, Float:rZ;
  9706.                 rX = ObjectCache[objectuid][orX];
  9707.                 rY = ObjectCache[objectuid][orY];
  9708.                 rZ = ObjectCache[objectuid][orZ];
  9709.                 new str[256];
  9710.                 format(str, sizeof(str), "Pozycja: ~b~~h~~h~%f, %f, %f~n~~w~Rotacja: ~b~~h~~h~%f, %f, %f~w~~n~Obiekt: ~b~~h~~h~%d ~w~UID: ~b~~h~~h~%d", ObjectCache[objectuid][oX], ObjectCache[objectuid][oY], ObjectCache[objectuid][oZ], ObjectCache[objectuid][orX], ObjectCache[objectuid][orY],
  9711.                 ObjectCache[objectuid][orZ], ObjectCache[objectuid][oModel], objectuid);
  9712.                 PlayerTextDrawSetString(playerid, ObjectInfo[playerid], str);
  9713.                 PlayerTextDrawShow(playerid, ObjectInfo[playerid]);
  9714.                 new keys, ud, lr;
  9715.                 GetPlayerKeys(playerid, keys, ud, lr);
  9716.  
  9717.                 if(keys & KEY_JUMP && ud == KEY_UP && keys & KEY_SPRINT)
  9718.                 UpdateObjectPos(objectid, objectuid, X, Y, Z+1);
  9719.                 else if(keys & KEY_JUMP && ud == KEY_DOWN && keys & KEY_SPRINT)
  9720.                 UpdateObjectPos(objectid, objectuid, X, Y, Z-1);
  9721.                 else if(keys & KEY_JUMP && lr == KEY_LEFT && keys & KEY_SPRINT)
  9722.                 UpdateObjectRot(objectid, objectuid, rX, rY, rZ+10);
  9723.                 else if(keys & KEY_JUMP && lr == KEY_RIGHT && keys & KEY_SPRINT)
  9724.                 UpdateObjectRot(objectid, objectuid, rX, rY, rZ-10);
  9725.                 else if(ud == KEY_UP && keys & KEY_SPRINT)
  9726.                 UpdateObjectPos(objectid, objectuid, X, Y+1, Z);
  9727.                 else if(ud == KEY_DOWN && keys & KEY_SPRINT)
  9728.                 UpdateObjectPos(objectid, objectuid, X, Y-1, Z);
  9729.                 else if(lr == KEY_RIGHT && keys & KEY_SPRINT)
  9730.                 UpdateObjectPos(objectid, objectuid, X+1, Y, Z);
  9731.                 else if(lr == KEY_LEFT && keys & KEY_SPRINT)
  9732.                 UpdateObjectPos(objectid, objectuid, X-1, Y, Z);
  9733.                 else if(keys & KEY_JUMP && ud == KEY_UP && keys & KEY_WALK)
  9734.                 UpdateObjectPos(objectid, objectuid, X, Y, Z+0.01);
  9735.                 else if(keys & KEY_JUMP && ud == KEY_DOWN && keys & KEY_WALK)
  9736.                 UpdateObjectPos(objectid, objectuid, X, Y, Z-0.01);
  9737.                 else if(keys & KEY_JUMP && lr == KEY_LEFT && keys & KEY_WALK)
  9738.                 UpdateObjectRot(objectid, objectuid, rX, rY, rZ+0.1);
  9739.                 else if(keys & KEY_JUMP && lr == KEY_RIGHT && keys & KEY_WALK)
  9740.                 UpdateObjectRot(objectid, objectuid, rX, rY, rZ-0.1);
  9741.                 else if(ud == KEY_UP && keys & KEY_WALK)
  9742.                 UpdateObjectPos(objectid, objectuid, X, Y+0.01, Z);
  9743.                 else if(ud == KEY_DOWN && keys & KEY_WALK)
  9744.                 UpdateObjectPos(objectid, objectuid, X, Y-0.01, Z);
  9745.                 else if(lr == KEY_RIGHT && keys & KEY_WALK)
  9746.                 UpdateObjectPos(objectid, objectuid, X+0.01, Y, Z);
  9747.                 else if(lr == KEY_LEFT && keys & KEY_WALK)
  9748.                 UpdateObjectPos(objectid, objectuid, X-0.01, Y, Z);
  9749.                 else if(keys & KEY_JUMP && ud == KEY_UP)
  9750.                 UpdateObjectPos(objectid, objectuid, X, Y, Z+0.10);
  9751.                 else if(keys & KEY_JUMP && ud == KEY_DOWN)
  9752.                 UpdateObjectPos(objectid, objectuid, X, Y, Z-0.10);
  9753.                 else if(keys & KEY_JUMP && lr == KEY_LEFT)
  9754.                 UpdateObjectRot(objectid, objectuid, rX, rY, rZ+1);
  9755.                 else if(keys & KEY_JUMP && lr == KEY_RIGHT)
  9756.                 UpdateObjectRot(objectid, objectuid, rX, rY, rZ-1);
  9757.                 else if(ud == KEY_UP)
  9758.                 UpdateObjectPos(objectid, objectuid, X, Y+0.10, Z);
  9759.                 else if(ud == KEY_DOWN)
  9760.                 UpdateObjectPos(objectid, objectuid, X, Y-0.10, Z);
  9761.                 else if(lr == KEY_RIGHT)
  9762.                 UpdateObjectPos(objectid, objectuid, X+0.10, Y, Z);
  9763.                 else if(lr == KEY_LEFT)
  9764.                 UpdateObjectPos(objectid, objectuid, X-0.10, Y, Z);
  9765.         }
  9766.         return 1;
  9767. }
  9768.  
  9769. CMD:mc (playerid, params[])
  9770. {
  9771.         if(GetPlayerVirtualWorld(playerid) == 0 && UserCache[pUID[playerid]][uMapper] == false)
  9772.         return ShowDialogInfo(playerid, "Nie masz uprawnień do edycji obiektów na świecie 0.");
  9773.         if(GetPlayerObjectID(playerid))
  9774.         return SendClientMessage(playerid, -1, "Edytujesz już jakiś obiekt!");
  9775.         new model;
  9776.         if(sscanf(params, "i", model))
  9777.         return SendClientMessage(playerid, COLOR_GRAY, "Poprawne użycie: /mc [ID obiektu]");
  9778.         new Float:X, Float:Y, Float:Z; GetPlayerPos(playerid, X, Y, Z);
  9779.         PlayerEditObject(playerid, AddObject(model, X, Y+0.5, Z, 0.0, 0.0, 0.0, GetPlayerVirtualWorld(playerid), 0, 0));
  9780.         return Streamer_Update(playerid);
  9781. }
  9782.  
  9783. CMD:mcopy (playerid, params[])
  9784. {
  9785.         new objid = GetPlayerObjectID(playerid);
  9786.         if(objid == 0)
  9787.         return SendClientMessage(playerid, -1, "Nie edytujesz żadnego obiektu!");
  9788.         new objUID = GetObjectUID(objid);
  9789.  
  9790.         KillTimer(ObjectCache[objUID][oTimer]);
  9791.         ObjectCache[objUID][oPlayer] = -1;
  9792.  
  9793.         PlayerEditObject(playerid, AddObject(ObjectCache[objUID][oModel], ObjectCache[objUID][oX], ObjectCache[objUID][oY], ObjectCache[objUID][oZ], ObjectCache[objUID][orX],
  9794.         ObjectCache[objUID][orY], ObjectCache[objUID][orZ], GetPlayerVirtualWorld(playerid), 0, 0));
  9795.  
  9796.         new actualid = GetPlayerObjectID(playerid);
  9797.  
  9798.         new txdname[128];
  9799.         new txdtexture[128];
  9800.  
  9801.         for(new i=1; i<LasttUID; i++)
  9802.         {
  9803.                 if(TextureCache[i][tObjectUID] == objUID)
  9804.                 {
  9805.                         format(txdname, sizeof(txdname), TextureCache[i][tTxdname]);
  9806.                         TextureCache[LasttUID][tTxdname] = txdname;
  9807.                         format(txdtexture, sizeof(txdtexture), TextureCache[i][tTexturename]);
  9808.                         TextureCache[LasttUID][tTexturename] = txdtexture;
  9809.                         if(TextureCache[i][tType] == 0)
  9810.                         {
  9811.                                 SetDynamicObjectMaterial(actualid,TextureCache[i][tIndex], TextureCache[i][tModelid],  TextureCache[i][tTxdname],TextureCache[i][tTexturename],TextureCache[i][tColor]);
  9812.                                 TextureCache[LasttUID][tObjectUID] = GetObjectUID(GetPlayerObjectID(playerid));
  9813.                                 TextureCache[LasttUID][tColor] = TextureCache[i][tColor];
  9814.                                 TextureCache[LasttUID][tModelid] = TextureCache[i][tModelid];
  9815.                                 TextureCache[LasttUID][tIndex] = TextureCache[i][tIndex];
  9816.                                 TextureCache[LasttUID][tType] = TextureCache[i][tType];
  9817.                                 TextureCache[LasttUID][tBold] = TextureCache[i][tBold];
  9818.                                 TextureCache[LasttUID][tMaterialsize] = TextureCache[i][tMaterialsize];
  9819.                                 TextureCache[LasttUID][tFontsize] = TextureCache[i][tFontsize];
  9820.                                 TextureCache[LasttUID][tAlignment] = TextureCache[i][tAlignment];
  9821.                                 TextureCache[LasttUID][tBackcolor] = TextureCache[i][tBackcolor];
  9822.                                 LasttUID++;
  9823.                         }
  9824.                         else
  9825.                         {
  9826.                                 SetDynamicObjectMaterialText(actualid, TextureCache[i][tIndex], TextureCache[i][tTexturename], TextureCache[i][tMaterialsize], TextureCache[i][tTxdname], TextureCache[i][tFontsize], TextureCache[i][tBold], TextureCache[i][tColor], TextureCache[i][tBackcolor], TextureCache[i][tAlignment]);
  9827.                                 TextureCache[LasttUID][tObjectUID] = GetObjectUID(GetPlayerObjectID(playerid));
  9828.                                 TextureCache[LasttUID][tColor] = TextureCache[i][tColor];
  9829.                                 TextureCache[LasttUID][tModelid] = TextureCache[i][tModelid];
  9830.                                 TextureCache[LasttUID][tIndex] = TextureCache[i][tIndex];
  9831.                                 TextureCache[LasttUID][tType] = TextureCache[i][tType];
  9832.                                 TextureCache[LasttUID][tBold] = TextureCache[i][tBold];
  9833.                                 TextureCache[LasttUID][tMaterialsize] = TextureCache[i][tMaterialsize];
  9834.                                 TextureCache[LasttUID][tFontsize] = TextureCache[i][tFontsize];
  9835.                                 TextureCache[LasttUID][tAlignment] = TextureCache[i][tAlignment];
  9836.                                 TextureCache[LasttUID][tBackcolor] = TextureCache[i][tBackcolor];
  9837.                                 LasttUID++;
  9838.                         }
  9839.                 }
  9840.         }
  9841.         Streamer_Update(playerid);
  9842.         return 1;
  9843. }
  9844.  
  9845. CMD:msave (playerid, params[])
  9846. {
  9847.         new objectid = GetPlayerObjectID(playerid);
  9848.         if(objectid)
  9849.         {
  9850.                 new objectUID = GetObjectUID(objectid);
  9851.                 KillTimer(ObjectCache[objectUID][oTimer]);
  9852.                 ObjectCache[objectUID][oPlayer] = -1;
  9853.                 PlayerTextDrawHide(playerid, ObjectInfo[playerid]);
  9854.                 return ClearAnimations(playerid);
  9855.         }
  9856.         return GameTextForPlayer(playerid, "~w~nie edytujesz zadnego obiektu", 1500, 4);
  9857. }
  9858.  
  9859. stock GetObjectUID(objectid)
  9860. {
  9861.         for(new i=1; i<LastoUID; i++)
  9862.         {
  9863.                 if(ObjectCache[i][oState] == 0)
  9864.                 {
  9865.                         if(ObjectCache[i][oID] == objectid)
  9866.                         {
  9867.                                 return ObjectCache[i][oUID];
  9868.                         }
  9869.                 }
  9870.         }
  9871.         return 0;
  9872. }
  9873.  
  9874. CMD:msel (playerid, params[])
  9875. {
  9876.         if(GetPlayerVirtualWorld(playerid) == 0 && UserCache[pUID[playerid]][uMapper] == false)
  9877.         return ShowDialogInfo(playerid, "Nie masz uprawnień do edycji obiektów na świecie 0.");
  9878.         if(GetPlayerObjectID(playerid))
  9879.         return SendClientMessage(playerid, -1, "Edytujesz już jakiś obiekt!");
  9880.         new objectmodel, pvw = GetPlayerVirtualWorld(playerid);
  9881.         sscanf(params, "i", objectmodel);
  9882.         if(objectmodel != 0)
  9883.         {
  9884.                 for(new i=1; i<LastoUID; i++)
  9885.                 {
  9886.                         if(ObjectCache[i][oState] == 0)
  9887.                         {
  9888.                                 if(ObjectCache[i][oModel] == objectmodel)
  9889.                                 {
  9890.                                         if(IsPlayerInRangeOfPoint(playerid, 20.0, ObjectCache[i][oX], ObjectCache[i][oY], ObjectCache[i][oZ]))
  9891.                                         {
  9892.                                                 if(ObjectCache[i][oPlayer] != -1)
  9893.                                                 return TextDrawForPlayerEx(playerid, 1, "Ktos juz edytuje ten obiekt.", 3000);
  9894.                                                 if(pvw == ObjectCache[i][oVW])
  9895.                                                 {
  9896.                                                         return PlayerEditObject(playerid, ObjectCache[i][oID]);
  9897.                                                 }
  9898.                                         }
  9899.                                 }
  9900.                         }
  9901.                 }
  9902.         }
  9903.         new obj = GetObjectInRange(playerid);
  9904.         new objuid = GetObjectUID(obj);
  9905.         if(ObjectCache[objuid][oPlayer] != -1)
  9906.         return TextDrawForPlayerEx(playerid, 1, "Ten obiekty jest juz przez kogos edytowany.", 3000);
  9907.         if(obj)
  9908.         return PlayerEditObject(playerid, GetObjectInRange(playerid));
  9909.         return TextDrawForPlayerEx(playerid, 1, "Brak obiektow w poblizu", 3000);
  9910. }
  9911.  
  9912. CMD:mpick (playerid, params[])
  9913. {
  9914.         if(GetPlayerVirtualWorld(playerid) == 0 && UserCache[pUID[playerid]][uMapper] == false)
  9915.         return ShowDialogInfo(playerid, "Nie masz uprawnień do edycji obiektów na świecie 0.");
  9916.         new objid = GetPlayerCameraTargetDynObject(playerid);
  9917.         if(objid != 0)
  9918.         {
  9919.                 for(new i=1; i<LastoUID; i++)
  9920.                 {
  9921.                         if(ObjectCache[i][oState] == 0)
  9922.                         {
  9923.                                 if(ObjectCache[i][oID] == objid)
  9924.                                 {
  9925.                                         if(ObjectCache[i][oPlayer] != -1)
  9926.                                         return TextDrawForPlayerEx(playerid, 1, "Ktos juz edytuje ten obiekt.", 3000);
  9927.                                 }
  9928.                         }
  9929.                 }
  9930.                 if(GetPlayerObjectID(playerid))
  9931.                 return SendClientMessage(playerid, -1, "Edytujesz już jakiś obiekt!");
  9932.                 PlayerEditObject(playerid, objid);
  9933.                 return TextDrawForPlayerEx(playerid, 1, "Rozpoczynasz edycje obiektu.", 1500);
  9934.         }
  9935.         return TextDrawForPlayerEx(playerid, 1, "Nie znaleziono zadnego obiektu.", 1500);
  9936. }
  9937.  
  9938. CMD:last10 (playerid, params[])
  9939. {
  9940.         if(UserCache[pUID[playerid]][uRank] != 3)
  9941.         return 1;
  9942.         new model;
  9943.         if(sscanf(params, "i", model))
  9944.         return SendClientMessage(playerid, COLOR_GRAY, "Poprawne użycie: /last10 [model obiektu]");
  9945.         new msg[128], count;
  9946.         for(new i=1; i<LastoUID; i++)
  9947.         {
  9948.                 if(ObjectCache[i][oModel] == model)
  9949.                 {
  9950.                         DestroyDynamicObject(ObjectCache[i][oID]);
  9951.                         ObjectCache[i][oState]=1;
  9952.                         count++;
  9953.                 }
  9954.         }
  9955.         format(msg, sizeof(msg), "Usunięto %d obiektów z modelem: %d", count, model);
  9956.         SendClientMessageToAll(COLOR_WHITE, msg);
  9957.         return 1;
  9958. }
  9959.  
  9960. stock GetPlayerObjectID(playerid)
  9961. {
  9962.         for(new i=1; i < LastoUID; i++)
  9963.         {
  9964.                 if(ObjectCache[i][oState] == 0)
  9965.                 {
  9966.                         if(ObjectCache[i][oPlayer] == playerid)
  9967.                         {
  9968.                                 return ObjectCache[i][oID];
  9969.                         }
  9970.                 }
  9971.         }
  9972.         return 0;
  9973. }
  9974.  
  9975. CMD:md (playerid, params[])
  9976. {
  9977.         if(!GetPlayerObjectID(playerid))
  9978.         return GameTextForPlayer(playerid, "nie edytujesz zadnego obiektu", 1500, 4);
  9979.         new objectID = GetPlayerObjectID(playerid), objectUID = GetObjectUID(objectID);
  9980.         ObjectCache[objectUID][oPlayer] = -1;
  9981.         DestroyDynamicObject(objectID);
  9982.         KillTimer(ObjectCache[objectUID][oTimer]);
  9983.         PlayerTextDrawHide(playerid, ObjectInfo[playerid]);
  9984.         ObjectCache[objectUID][oState]=1;
  9985.         return ClearAnimations(playerid);
  9986. }
  9987.  
  9988. CMD:rx (playerid, params[])
  9989. {
  9990.         if(!GetPlayerObjectID(playerid))
  9991.         return SendClientMessage(playerid, COLOR_GRAY, "Nie edytujesz żadnego obiektu.");
  9992.         new Float:rx;
  9993.         if(sscanf(params, "f", rx))
  9994.         return SendClientMessage(playerid, COLOR_GRAY, "Poprawne użycie: /rx [wartość]");
  9995.         new ObjectID = GetPlayerObjectID(playerid), ObjectUID = GetObjectUID(ObjectID);
  9996.         if(rx <= 0.0)
  9997.         UpdateObjectRot(GetPlayerObjectID(playerid), GetObjectUID(GetPlayerObjectID(playerid)), ObjectCache[ObjectUID][orX]+rx,
  9998.         ObjectCache[ObjectUID][orY], ObjectCache[ObjectUID][orZ]);
  9999.         else
  10000.         UpdateObjectRot(GetPlayerObjectID(playerid), GetObjectUID(GetPlayerObjectID(playerid)), ObjectCache[ObjectUID][orX]+rx,
  10001.         ObjectCache[ObjectUID][orY], ObjectCache[ObjectUID][orZ]);
  10002.         return 1;
  10003. }
  10004.  
  10005. CMD:ry (playerid, params[])
  10006. {
  10007.         if(!GetPlayerObjectID(playerid))
  10008.         return SendClientMessage(playerid, COLOR_GRAY, "Nie edytujesz żadnego obiektu.");
  10009.         new Float:ry;
  10010.         if(sscanf(params, "f", ry))
  10011.         return SendClientMessage(playerid, COLOR_GRAY, "Poprawne użycie: /ry [wartość]");
  10012.         new ObjectID = GetPlayerObjectID(playerid), ObjectUID = GetObjectUID(ObjectID);
  10013.         if(ry <= 0.0)
  10014.         UpdateObjectRot(GetPlayerObjectID(playerid), GetObjectUID(GetPlayerObjectID(playerid)), ObjectCache[ObjectUID][orX],
  10015.         ObjectCache[ObjectUID][orY]+ry, ObjectCache[ObjectUID][orZ]);
  10016.         else
  10017.         UpdateObjectRot(GetPlayerObjectID(playerid), GetObjectUID(GetPlayerObjectID(playerid)), ObjectCache[ObjectUID][orX],
  10018.         ObjectCache[ObjectUID][orY]+ry, ObjectCache[ObjectUID][orZ]);
  10019.         return 1;
  10020. }
  10021.  
  10022. CMD:rz (playerid, params[])
  10023. {
  10024.         if(!GetPlayerObjectID(playerid))
  10025.         return SendClientMessage(playerid, COLOR_GRAY, "Nie edytujesz żadnego obiektu.");
  10026.         new Float:rz;
  10027.         if(sscanf(params, "f", rz))
  10028.         return SendClientMessage(playerid, COLOR_GRAY, "Poprawne użycie: /rz [wartość]");
  10029.         new ObjectID = GetPlayerObjectID(playerid), ObjectUID = GetObjectUID(ObjectID);
  10030.         if(rz)
  10031.         return UpdateObjectRot(GetPlayerObjectID(playerid), GetObjectUID(GetPlayerObjectID(playerid)), ObjectCache[ObjectUID][orX],
  10032.         ObjectCache[ObjectUID][orY], ObjectCache[ObjectUID][orZ]+rz);
  10033.         return UpdateObjectRot(GetPlayerObjectID(playerid), GetObjectUID(GetPlayerObjectID(playerid)), ObjectCache[ObjectUID][orX],
  10034.         ObjectCache[ObjectUID][orY], ObjectCache[ObjectUID][orZ]+rz);
  10035. }
  10036.  
  10037. cmd:sp (playerid, params[])
  10038. {
  10039.         if(UserCache[pUID[playerid]][uRank] == 0)
  10040.         {
  10041.                 return 1;
  10042.         }
  10043.         new targetid, sp,reason[128];
  10044.         if(sscanf(params, "ris[128]", targetid, sp, reason))
  10045.         {
  10046.                 return SendClientMessage(playerid, COLOR_GRAY, "Poprawne użycie: /sp [ID/Część nazwy gracza] [ilość] [powód]");
  10047.         }
  10048.         if(!IsPlayerConnected(targetid))
  10049.         {
  10050.                 return SendClientMessage(playerid, COLOR_GRAY, "Ten gracz nie jest podłączony do serwera.");
  10051.         }
  10052.         if(!pUID[targetid])
  10053.         {
  10054.                 return SendClientMessage(playerid, COLOR_GRAY, "Ten gracz nie jest zalogowany.");
  10055.         }
  10056.         new str[128];
  10057.         format(str, sizeof(str), "~b~~h~~h~S~w~Points (%d)~n~~w~Gracz: %s~n~Nadawca: %s~n~~y~%s",sp, PlayerName(targetid), PlayerName(playerid), reason);
  10058.         TextDrawSetString(PenalityTextDraw, str);
  10059.         TextDrawShowForAll(PenalityTextDraw);
  10060.         if(PenalityTimer > 0)
  10061.         {
  10062.                 KillTimer(PenalityTimer);
  10063.         }
  10064.         PenalityTimer = SetTimer("HidePenalityTextDraw", 15000, false);
  10065.         format(str, sizeof(str), "> Otrzymałeś SPoints (%d) od %s. Powód: %s", sp, PlayerName(playerid), reason);
  10066.         SendClientMessage(targetid, COLOR_GREEN, str);
  10067.         UserCache[pUID[targetid]][uSP] += sp;
  10068.         SetPlayerScore(targetid, UserCache[pUID[targetid]][uSP]);
  10069.         return 1;
  10070. }
  10071.  
  10072. CMD:kick (playerid, params[])
  10073. {
  10074.         if(UserCache[pUID[playerid]][uRank] == 0)
  10075.         return 1;
  10076.         new targetid, reason[128];
  10077.         if(sscanf(params, "rs[128]", targetid, reason))
  10078.         {
  10079.                 return SendClientMessage(playerid, COLOR_GRAY, "Poprawne użycie: /kick [ID/Część nazwy gracza] [powód]");
  10080.         }
  10081.         if(targetid == playerid)
  10082.         {
  10083.                 return SendClientMessage(playerid, COLOR_GRAY, "Nie możesz zkickować samego siebie!");
  10084.         }
  10085.         if(!IsPlayerConnected(targetid))
  10086.         {
  10087.                 return SendClientMessage(playerid, COLOR_GRAY, "Takiego gracza nie ma na serwerze.");
  10088.         }
  10089.         if(!pUID[targetid])
  10090.         {
  10091.                 return SendClientMessage(playerid, COLOR_GRAY, "Ten gracz nie jest zalogowany.");
  10092.         }
  10093.         KickPlayer(targetid, PlayerName(playerid), reason);
  10094.         return 1;
  10095. }
  10096.  
  10097. stock GetPlayerFreeSlot(playerid)
  10098. {
  10099.         new puid = pUID[playerid];
  10100.         if(UserCache[puid][uGroup] == 0)
  10101.         return 1;
  10102.         else if(UserCache[puid][uGroup2] == 0)
  10103.         return 2;
  10104.         else if(UserCache[puid][uGroup3] == 0)
  10105.         return 3;
  10106.         else return 0;
  10107. }
  10108.  
  10109. public OnPlayerClickTextDraw(playerid, Text:clickedid)
  10110. {
  10111.         PlayerTextDrawHide(playerid, Group[playerid]);
  10112.         PlayerTextDrawHide(playerid, Group2[playerid]);
  10113.         PlayerTextDrawHide(playerid, Group3[playerid]);
  10114.         PlayerTextDrawHide(playerid, GroupLabel[playerid]);
  10115.         pChoosingTxd[playerid] = 0;
  10116.         return 0;
  10117. }
  10118.  
  10119. CMD:login (playerid, params[])
  10120. {
  10121.         return LogoutPlayer(playerid);
  10122. }
  10123.  
  10124. CMD:mmat (playerid, params[])
  10125. {
  10126.         new objectid=GetPlayerObjectID(playerid);
  10127.         if(!objectid)
  10128.         return SendClientMessage(playerid, COLOR_GRAY, "Nie edytujesz żadnego obiektu.");
  10129.         new color, modelid, txdname[128], texturename[128], index, type;
  10130.         if(type == 16 || type < -1)
  10131.         return SendClientMessage(playerid, COLOR_GRAY, "Nieprawdiłowy index. Poprawny przedział index'u: [-1 do 16]");
  10132.         sscanf(params, "ii", index, type);
  10133.         new uid = GetObjectUID(objectid);
  10134.         if(type == 0)
  10135.         {
  10136.                 if(sscanf(params, "iixis[128]s[128]",index, type ,color, modelid, txdname, texturename))
  10137.                 return SendClientMessage(playerid, COLOR_GRAY, "Poprawne użycie: /mmat [typ] [index] [color] [modelid] [txdname] [texturename]");
  10138.                 SetDynamicObjectMaterial(objectid, index, modelid,txdname, texturename, color);
  10139.                 TextureCache[LasttUID][tTxdname] = txdname;
  10140.                 TextureCache[LasttUID][tTexturename] = texturename;
  10141.                 TextureCache[LasttUID][tColor] = color;
  10142.                 TextureCache[LasttUID][tModelid] = modelid;
  10143.                 TextureCache[LasttUID][tObjectUID] = uid;
  10144.                 TextureCache[LasttUID][tIndex] = index;
  10145.                 TextureCache[LasttUID][tType] = type;
  10146.                 TextureCache[LasttUID][tBold] = 0;
  10147.                 TextureCache[LasttUID][tMaterialsize] = 0;
  10148.                 TextureCache[LasttUID][tFontsize] = 0;
  10149.                 TextureCache[LasttUID][tAlignment] = 0;
  10150.                 TextDrawForPlayerEx(playerid, 1, "Textura zmieniona.",3000);
  10151.         }
  10152.         else if(type == 1)
  10153.         {
  10154.                 new fontsize, materialsize, bold, backcolor, alignment;
  10155.                 if(sscanf(params, "iiiiixxis[128]s[128]", index, type, materialsize, fontsize ,bold, color, backcolor, alignment, txdname, texturename))
  10156.                 return SendClientMessage(playerid, COLOR_GRAY, "Poprawne użycie: /mmat [index] [typ] [fontsize] [materialsize] [bold] [color] [backcolor] [txdname] [texturename]");
  10157.                 SetDynamicObjectMaterialText(objectid, index, texturename, materialsize, txdname, fontsize, bold, color, backcolor, alignment);
  10158.                 TextureCache[LasttUID][tTxdname] = txdname;
  10159.                 TextureCache[LasttUID][tTexturename] = texturename;
  10160.                 TextureCache[LasttUID][tColor] = color;
  10161.                 TextureCache[LasttUID][tModelid] = modelid;
  10162.                 TextureCache[LasttUID][tObjectUID] = uid;
  10163.                 TextureCache[LasttUID][tIndex] = index;
  10164.                 TextureCache[LasttUID][tType] = type;
  10165.                 TextureCache[LasttUID][tBold] = bold;
  10166.                 TextureCache[LasttUID][tMaterialsize] = materialsize;
  10167.                 TextureCache[LasttUID][tFontsize] = fontsize;
  10168.                 TextureCache[LasttUID][tAlignment] = alignment;
  10169.                 TextureCache[LasttUID][tBackcolor] = backcolor;
  10170.                 TextDrawForPlayerEx(playerid, 1, "Ustawiono napis.",3000);
  10171.         }
  10172.         LasttUID++;
  10173.         return 1;
  10174. }
  10175.  
  10176. CMD:pomoc (playerid, params[])
  10177. return ShowDialogHelp(playerid);
  10178.  
  10179. stock ShowDialogHelp(playerid)
  10180. return ShowPlayerDialog(playerid, D_HELP, DIALOG_STYLE_LIST, "Pomoc", ""HEX_WHITE"Przydatne komendy\n"HEX_BLUE"Statystyki\n"HEX_WHITE"Animacje", "Wybierz", "Anuluj");
  10181.  
  10182. stock ShowDialogCommands(playerid)
  10183. return ShowPlayerDialog(playerid, D_COMMANDS, DIALOG_STYLE_LIST,  "Pomoc > Przydatne komendy",""HEX_WHITE"Obiekty\nDrzwi\n"HEX_BLUE"Interakcja z graczem", "Wybierz", "Anuluj");
  10184.  
  10185. CMD:pay (playerid, params[])
  10186. {
  10187.         new targetid, amount;
  10188.         if(sscanf(params, "ri", targetid, amount))
  10189.         return SendClientMessage(playerid, COLOR_GRAY, "Poprawne użycie: /pay [ID/Część nicku gracza] [ilość gotówki]");
  10190.         if(!IsPlayerConnected(targetid) || !pUID[targetid])
  10191.         return SendClientMessage(playerid, COLOR_GRAY,"Ten gracz nie jest, lub nie jest zalogowany do serwera.");
  10192.         new Float:X, Float:Y, Float:Z, pvw = GetPlayerVirtualWorld(playerid); GetPlayerPos(playerid, X, Y, Z);
  10193.         if(!IsPlayerInRangeOfPoint(targetid, 5.0, X, Y, Z) || GetPlayerVirtualWorld(targetid) != pvw)
  10194.         return SendClientMessage(playerid, COLOR_GRAY, "Gracz jest za daleko.");
  10195.         if(amount < 1)
  10196.         return SendClientMessage(playerid, COLOR_GRAY, "Możesz podać minimalnie 1$.");
  10197.         if(UserCache[pUID[playerid]][uCash] < amount)
  10198.         return SendClientMessage(playerid, COLOR_GRAY, "Nie posiadasz przy sobie tylu pieniędzy.");
  10199.         UserCache[pUID[targetid]][uCash] += amount;
  10200.         UserCache[pUID[playerid]][uCash] -= amount;
  10201.         GivePlayerMoney(playerid, -amount); GivePlayerMoney(targetid, amount);
  10202.         new msg[128];
  10203.         format(msg, sizeof(msg), "> Podajesz %d$ dla gracza %s.", amount, strreplace(PlayerName(targetid), '_', ' '));
  10204.         SendClientMessage(playerid, COLOR_BLUE, msg);
  10205.         format(msg, sizeof(msg), "> Otrzymujesz %d$ od gracza %s.", amount, strreplace(PlayerName(playerid), '_', ' '));
  10206.         SendClientMessage(targetid, COLOR_BLUE, msg);
  10207.         format(msg, sizeof(msg), "podaje trochę gotówki %s.", strreplace(PlayerName(targetid), '_', ' '));
  10208.         SendPlayerMe(playerid, msg);
  10209.         return ApplyAnimation(playerid, "dealer", "dealer_deal", 4.1, 0, 0, 0, 0, 0, 0);
  10210. }
  10211.  
  10212. stock ShowDialogChangeGroupColor(playerid)
  10213. return ShowPlayerDialog(playerid, D_CHANGE_GROUP_COLOR, DIALOG_STYLE_INPUT, "Zmień kolor grupy", ""HEX_WHITE"Zmiana koloru grupy zmieni rzeczy tj. kolor służby, czatów grupowych.\nWpisz poniżej kolor HTML: np. {ff0000}FF0000", "Zatwierdź", "Anuluj");
  10214.  
  10215. CMD:m (playerid, params[])
  10216. {
  10217.         if(GroupCache[pDuty[playerid]][gType] != 1)
  10218.         return SendClientMessage(playerid, COLOR_GRAY, "Nie znajdujesz się na służbie odpowiedniej grupy by użyć tej komendy.");
  10219.         new text[128];
  10220.         if(sscanf(params, "s[128]", text))
  10221.         return SendClientMessage(playerid, COLOR_GRAY, "Poprawne użycie: /m [treść] by użyć megafonu");
  10222.         new msg[128];
  10223.         format(msg, sizeof(msg), "%s (megafon) :o< %s!!!", strreplace(PlayerName(playerid), '_', ' '), text);
  10224.         new pvw = GetPlayerVirtualWorld(playerid),Float:X, Float:Y, Float:Z; GetPlayerPos(playerid, X, Y, Z);
  10225.         for(new i; i<=GetPlayerPoolSize(); i++)
  10226.         {
  10227.                 if(IsPlayerConnected(i))
  10228.                 {
  10229.                         if(GetPlayerVirtualWorld(i) == pvw)
  10230.                         {
  10231.                                 if(IsPlayerInRangeOfPoint(i, 100.0, X, Y, Z))
  10232.                                 {
  10233.                                         SendClientMessage(i, 0xFFF000FF, msg);
  10234.                                 }
  10235.                         }
  10236.                 }
  10237.         }
  10238.         return 1;
  10239. }
  10240.  
  10241. CMD:kajdanki (playerid, params[])
  10242. {
  10243.         if(GroupCache[pDuty[playerid]][gType] != 1)
  10244.         return SendClientMessage(playerid, COLOR_GRAY, "Nie znajdujesz się na służbie odpowiedniej grupy by użyć tej komendy.");
  10245.         new targetid;
  10246.         if(sscanf(params, "r", targetid))
  10247.         return SendClientMessage(playerid, COLOR_GRAY, "Poprawne użycie: /kajdanki [ID/Część nicku gracza] by skuć/odkuć gracza.");
  10248.         new msg[128];
  10249.         if(GetPlayerSpecialAction(targetid) == SPECIAL_ACTION_CUFFED)
  10250.         {
  10251.                 format(msg, sizeof(msg), "odkuwa kajdankami", strreplace(PlayerName(playerid), '_', ' '),  strreplace(PlayerName(targetid), '_', ' '));
  10252.                 SetPlayerSpecialAction(targetid, 0);
  10253.         }
  10254.         else
  10255.         {
  10256.                 format(msg, sizeof(msg), "skuwa", strreplace(PlayerName(playerid), '_', ' '),  strreplace(PlayerName(targetid), '_', ' '));
  10257.                 SetPlayerSpecialAction(targetid, SPECIAL_ACTION_CUFFED);
  10258.         }
  10259.         SendPlayerMe(playerid, msg);
  10260.         return 1;
  10261. }
  10262.  
  10263. stock CreateSystemVehicle(model, color, color2, Float:PosX, Float:PosY, Float:PosZ, ownerid, VW, Float:angle)
  10264. {
  10265.         VehicleCache[LastvUID][vUID] = LastvUID;
  10266.         VehicleCache[LastvUID][vModel] = model;
  10267.         VehicleCache[LastvUID][vColor] = color;
  10268.         VehicleCache[LastvUID][vColor2] = color2;
  10269.         VehicleCache[LastvUID][vVW] = VW;
  10270.         VehicleCache[LastvUID][vPosX] = PosX;
  10271.         VehicleCache[LastvUID][vPosY] = PosY;
  10272.         VehicleCache[LastvUID][vPosZ] = PosZ;
  10273.         VehicleCache[LastvUID][vAngle] = angle;
  10274.         VehicleCache[LastvUID][vState] = 0;
  10275.         VehicleCache[LastvUID][vOwner] = pUID[ownerid];
  10276.         VehicleCache[LastvUID][vHP] = 1000.0;
  10277.         VehicleCache[LastvUID][vID] = 0;
  10278.         VehicleCache[LastvUID][vTimer] = 0;
  10279.         VehicleCache[LastvUID][vBonnet] = 0;
  10280.         VehicleCache[LastvUID][vDoors] = 0;
  10281.         VehicleCache[LastvUID][vBoot] = 0;
  10282.         VehicleCache[LastvUID][vLights] = 0;
  10283.         VehicleCache[LastvUID][vObjective] = 0;
  10284.         VehicleCache[LastvUID][vAlarm] = 0;
  10285.         VehicleCache[LastvUID][vOpen] = 0;
  10286.         VehicleCache[LastvUID][vFuel] = 100;
  10287.         VehicleCache[LastvUID][vRegister] = false;
  10288.         if(model == 481 ||model == 509 || model == 510)
  10289.         VehicleCache[LastvUID][vEngine] = 1;
  10290.         else
  10291.         VehicleCache[LastvUID][vEngine] = 0;
  10292.         LastvUID++;
  10293. }
  10294.  
  10295. CMD:ap(playerid, params[])
  10296. {
  10297.         if(UserCache[pUID[playerid]][uRank] >= ADMINISTRATION || pDuty[playerid] == 16)
  10298.         {
  10299.                 new model, color, color2;
  10300.                 if(sscanf(params, "iii", model, color, color2))
  10301.                 return SendClientMessage(playerid, COLOR_WHITE, "Poprawne użycie: /ap [model] [kolor] [kolor 2]");
  10302.                 new Float:X, Float:Y, Float:Z, Float:ang; GetPlayerPos(playerid, X, Y, Z); GetPlayerFacingAngle(playerid, ang);
  10303.                 CreateSystemVehicle(model, color, color2, X, Y, Z, playerid, GetPlayerVirtualWorld(playerid), ang);
  10304.                 SpawnVehicle(LastvUID-1);
  10305.                 PutPlayerInVehicle(playerid, VehicleCache[LastvUID-1][vID], 0);
  10306.         }
  10307.         return 1;
  10308. }
  10309.  
  10310. stock ShowDialogVehicleOptions(playerid)
  10311. return ShowPlayerDialog(playerid, D_V_OPTIONS, DIALOG_STYLE_LIST, "Zarządzaj pojazdem", ""HEX_WHITE"1\tOtwórz/zamknij maskę\n2\tOtwórz/zamknij bagażnik\n3\tZasuń/wysuń szyby\n-\n4\tPodpisz pojazd pod grupę\n5\tSprzedaj pojazd graczowi", "Wybierz", "Anuluj");
  10312.  
  10313. CMD:v (playerid, params[])
  10314. {
  10315.         new vid = GetPlayerVehicleID(playerid), vuid = GetVehicleUID(vid);
  10316.         new sub[32], uid;
  10317.         sscanf(params, "s[32]i", sub, uid);
  10318.         if(!Isnull(sub))
  10319.         {
  10320.                 if(!strcmp(sub, "namierz", true))
  10321.                 {
  10322.                         if(pUID[playerid] == VehicleCache[uid][vOwner])
  10323.                         {
  10324.                                 if(VehicleCache[uid][vID] == 0)
  10325.                                 return SendClientMessage(playerid, COLOR_GRAY, "Ten pojazd nie jest zespawnowany.");
  10326.                                 DestroyDynamicMapIcon(MapIcon[playerid]);
  10327.                                 KillTimer(MapIconTimer[playerid]);
  10328.                                 MapIcon[playerid] = CreateDynamicMapIcon(VehicleCache[uid][vPosX], VehicleCache[uid][vPosY], VehicleCache[uid][vPosZ], 55,-1,  0, 0, playerid,-1, 3);
  10329.                                 MapIconTimer[playerid] = SetTimerEx("DestroyIcon", 5000*60, false, "i", playerid);
  10330.                                 return TextDrawForPlayerEx(playerid, 1, "Namierzono pojazd.~n~Pozycja pojazdu zostala zaznaczona na na mapie.", 5000);
  10331.                         }
  10332.                         return SendClientMessage(playerid, COLOR_GRAY, "Poprawne użycie: /v namierz [UID Twojego pojazdu widocznego pod /v]");
  10333.                 }
  10334.                 if(!strcmp(sub, "z", true))
  10335.                 {
  10336.                         new Float:vX, Float:vY, Float:vZ, veVW, pVW=GetPlayerVirtualWorld(playerid);
  10337.                         for(new i=1; i<=GetVehiclePoolSize(); i++)
  10338.                         {
  10339.                                 vuid = GetVehicleUID(i);
  10340.                                 GetVehiclePos(i, vX, vY, vZ);
  10341.                                 veVW = GetVehicleVirtualWorld(i);
  10342.                                 if(pVW == veVW)
  10343.                                 {
  10344.                                         if(IsPlayerInRangeOfPoint(playerid, 5.0, vX, vY, vZ))
  10345.                                         {
  10346.                                                 if(VehicleCache[vuid][vOwner] == pUID[playerid])
  10347.                                                 {
  10348.                                                         ApplyAnimation(playerid, "BD_FIRE", "wash_up", 4.1, 0, 0, 0, 0, 0, 0);
  10349.                                                         PlayerPlaySound(playerid, 24600, 0.0, 0.0, 0.0);
  10350.                                                         if(VehicleCache[vuid][vOpen])
  10351.                                                         {
  10352.                                                                 SendPlayerMe(playerid, "zamyka pojazd.");
  10353.                                                                 VehicleCache[vuid][vOpen]=0;
  10354.                                                                 return TextDrawForPlayerEx(playerid, 1, "Pojazd ~r~zamkniety.", 3000);
  10355.                                                         }
  10356.                                                         else
  10357.                                                         {
  10358.                                                                 SendPlayerMe(playerid, "otwiera pojazd.");
  10359.                                                                 VehicleCache[vuid][vOpen]=1;
  10360.                                                                 return TextDrawForPlayerEx(playerid, 1, "Pojazd ~g~otwarty.", 3000);
  10361.                                                         }      
  10362.                                                 }
  10363.                                         }
  10364.                                 }
  10365.                         }
  10366.                 }
  10367.         }
  10368.         if(!Isnull(params))
  10369.         {
  10370.                 if(!strcmp(params, "info", true))
  10371.                 {
  10372.                         new Float:X, Float:Y, Float:Z;
  10373.                         for(new i=1; i<=GetVehiclePoolSize(); i++)
  10374.                         {
  10375.                                 GetVehiclePos(i, X, Y, Z);
  10376.                                 if(IsPlayerInRangeOfPoint(playerid, 5.0, X, Y, Z))
  10377.                                 {
  10378.                                         new info[256], vvuid = GetVehicleUID(i);
  10379.                                         format(info, sizeof(info), "Marka: ~y~%s~w~ Paliwo: ~y~%d/100~w~ Kolor: ~y~%d %d",
  10380.                                         GetVehicleName(GetVehicleModel(i)), VehicleCache[vvuid][vFuel], VehicleCache[vvuid][vColor], VehicleCache[vvuid][vColor2]);
  10381.                                         return TextDrawForPlayerEx(playerid, 0, info, 5000);
  10382.                                 }
  10383.                         }
  10384.                 }
  10385.                 else if(!strcmp(params, "parkuj", true))
  10386.                 {
  10387.                         if(IsPlayerInAnyVehicle(playerid))
  10388.                         {
  10389.                                 if(GetPlayerVehicleSeat(playerid) == 0)
  10390.                                 {
  10391.                                         if(VehicleCache[vuid][vOwner] == pUID[playerid])
  10392.                                         {
  10393.                                                 GetVehiclePos(vid, VehicleCache[vuid][vPosX], VehicleCache[vuid][vPosY], VehicleCache[vuid][vPosZ]);
  10394.                                                 VehicleCache[vuid][vVW] = GetPlayerVirtualWorld(playerid);
  10395.                                                 GetVehicleZAngle(vid, VehicleCache[vuid][vAngle]);
  10396.                                                 return TextDrawForPlayerEx(playerid, 1, "Przeparkowano pojazd.", 3000);
  10397.                                         }
  10398.                                         else return TextDrawForPlayerEx(playerid, 1, "Nie posiadasz kluczy do tego pojazdu.", 1500);
  10399.                                 }
  10400.                         }
  10401.                 }
  10402.                 else
  10403.                 return SendClientMessage(playerid, COLOR_GRAY, "Tip: /v [parkuj] [z] [info]");
  10404.         }
  10405.         if(VehicleCache[vuid][vOwner] == pUID[playerid])
  10406.         return ShowDialogVehicleOptions(playerid);
  10407.         new list[2500], info[128], count;
  10408.         list = "#\tNazwa pojazdu\tStan techniczny\n";
  10409.         for(new i=1; i<LastvUID; i++)
  10410.         {
  10411.                 if(VehicleCache[i][vState] == 0)
  10412.                 {
  10413.                         if(VehicleCache[i][vOwner] == pUID[playerid])
  10414.                         {
  10415.                                 format(info, sizeof(info), ""HEX_WHITE"%d\t%s\t%dHP\n", VehicleCache[i][vUID], GetVehicleName(VehicleCache[i][vModel]), floatround(VehicleCache[i][vHP]));
  10416.                                 if(VehicleCache[i][vID] != 0)
  10417.                                 format(info, sizeof(info), ""HEX_WHITE"%d\t%s*\t%dHP\n", VehicleCache[i][vUID], GetVehicleName(VehicleCache[i][vModel]), floatround(VehicleCache[i][vHP]));
  10418.                                 strins(list, info, strlen(list));
  10419.                                 count++;
  10420.                         }
  10421.                 }
  10422.         }
  10423.         if(!count)
  10424.         return ShowDialogInfo(playerid, "Nie posiadasz żadnych pojazdów.\n\nPojazd możesz nabyć od innego gracza lub kupić jakiś w salonie samochodowym.");
  10425.         ShowPlayerDialog(playerid, D_VEHICLES, DIALOG_STYLE_TABLIST_HEADERS, "Pojazdy (* - zespawnowany)", list, "(Un)Spawn", "Anuluj");
  10426.         return 1;
  10427. }
  10428.  
  10429. stock VehiclePath(id)
  10430. {
  10431.         new path[64]; format(path, sizeof(path), FOLDER_VEHICLES"%d.ini", id);
  10432.         return path;
  10433. }
  10434.  
  10435. stock LoadVehicles()
  10436. {
  10437.         for(new i=1; i<LastvUID; i++)
  10438.         {
  10439.                 if(!dfile_FileExists(VehiclePath(i)))
  10440.                 continue;
  10441.                 dfile_Open(VehiclePath(i));
  10442.                 VehicleCache[i][vUID] = dfile_ReadInt("UID");
  10443.                 VehicleCache[i][vOwner] = dfile_ReadInt("Owner");
  10444.                 VehicleCache[i][vState] = dfile_ReadInt("State");
  10445.                 VehicleCache[i][vModel] = dfile_ReadInt("Model");
  10446.                 VehicleCache[i][vPosX] = dfile_ReadFloat("PosX");
  10447.                 VehicleCache[i][vPosY] = dfile_ReadFloat("PosY");
  10448.                 VehicleCache[i][vPosZ] = dfile_ReadFloat("PosZ");
  10449.                 VehicleCache[i][vVW] = dfile_ReadInt("VW");
  10450.                 VehicleCache[i][vFuel] = dfile_ReadInt("Fuel");
  10451.                 VehicleCache[i][vColor] = dfile_ReadInt("Color");
  10452.                 VehicleCache[i][vColor2] = dfile_ReadInt("Color2");
  10453.                 VehicleCache[i][vAngle] = dfile_ReadFloat("Angle");
  10454.                 VehicleCache[i][vHP] = dfile_ReadFloat("HP");
  10455.                 VehicleCache[i][vOpen] = dfile_ReadInt("Open");
  10456.                 VehicleCache[i][vFuel] = dfile_ReadInt("Fuel");
  10457.                 VehicleCache[i][vRegister] = dfile_ReadBool("Registered");
  10458.                 dfile_CloseFile();
  10459.                 VehicleCache[i][vID] = 0;
  10460.                 VehicleCache[i][vTimer] = 0;
  10461.                 VehicleCache[i][vEngine] = 0;
  10462.                 VehicleCache[i][vObjective] = 0;
  10463.                 VehicleCache[i][vBoot] = 0;
  10464.                 VehicleCache[i][vBonnet] = 0;
  10465.                 VehicleCache[i][vAlarm] = 0;
  10466.         }
  10467. }
  10468.  
  10469. stock SaveVehicles()
  10470. {
  10471.         for(new i=1; i<LastvUID; i++)
  10472.         {
  10473.                 if(!dfile_FileExists(VehiclePath(i)))
  10474.                 dfile_Create(VehiclePath(i));
  10475.                 dfile_Open(VehiclePath(i));
  10476.                 dfile_WriteInt("UID", VehicleCache[i][vUID]);
  10477.                 dfile_WriteInt("Owner", VehicleCache[i][vOwner]);
  10478.                 dfile_WriteInt("State", VehicleCache[i][vState]);
  10479.                 dfile_WriteInt("Model", VehicleCache[i][vModel]);
  10480.                 dfile_WriteFloat("PosX", VehicleCache[i][vPosX]);
  10481.                 dfile_WriteFloat("PosY", VehicleCache[i][vPosY]);
  10482.                 dfile_WriteFloat("PosZ", VehicleCache[i][vPosZ]);
  10483.                 dfile_WriteFloat("Angle", VehicleCache[i][vAngle]);
  10484.                 dfile_WriteInt("Fuel", VehicleCache[i][vFuel]);
  10485.                 dfile_WriteInt("VW", VehicleCache[i][vVW]);
  10486.                 dfile_WriteInt("Color", VehicleCache[i][vColor]);
  10487.                 dfile_WriteInt("Color2", VehicleCache[i][vColor2]);
  10488.                 dfile_WriteFloat("HP", VehicleCache[i][vHP]);
  10489.                 dfile_WriteInt("Open", VehicleCache[i][vOpen]);
  10490.                 dfile_WriteInt("Fuel", VehicleCache[i][vFuel]);
  10491.                 dfile_WriteBool("Registered", VehicleCache[i][vRegister]);
  10492.                 dfile_SaveFile();
  10493.                 dfile_CloseFile();
  10494.         }
  10495. }
  10496.  
  10497. stock GetVehicleName(vehicleid)
  10498. {
  10499.         new name[64];
  10500.         switch(vehicleid)
  10501.         {
  10502.                 case 400: name =  "Landstalker";
  10503.                 case 401: name =  "Bravura";
  10504.                 case 402: name =  "Buffalo";
  10505.                 case 403: name =  "Linerunner";
  10506.                 case 404: name =  "Perennial";
  10507.                 case 405: name =  "Sentinel";
  10508.                 case 406: name =  "Dumper";
  10509.                 case 407: name =  "Firetruck";
  10510.                 case 408: name =  "Trashmaster";
  10511.                 case 409: name =  "Stretch";
  10512.                 case 410: name =  "Manana";
  10513.                 case 411: name =  "Infernus";
  10514.                 case 412: name =  "Voodoo";
  10515.                 case 413: name =  "Pony";
  10516.                 case 414: name =  "Mule";
  10517.                 case 415: name =  "Cheetah";
  10518.                 case 416: name =  "Ambulance";
  10519.                 case 417: name =  "Leviathan";
  10520.                 case 418: name =  "Moonbeam";
  10521.                 case 419: name =  "Esperanto";
  10522.                 case 420: name =  "Taxi";
  10523.                 case 421: name =  "Washington";
  10524.                 case 422: name =  "Bobcat";
  10525.                 case 423: name =  "Mr. Whoopee";
  10526.                 case 424: name =  "BF Injection";
  10527.                 case 425: name =  "Hunter";
  10528.                 case 426: name =  "Premier";
  10529.                 case 427: name =  "Enforcer";
  10530.                 case 428: name =  "Securicar";
  10531.                 case 429: name =  "Banshee";
  10532.                 case 430: name =  "Predator";
  10533.                 case 431: name =  "Bus";
  10534.                 case 432: name =  "Rhino";
  10535.                 case 433: name =  "Barracks";
  10536.                 case 434: name =  "Hotknife";
  10537.                 case 435: name =  "Article Trailer";
  10538.                 case 436: name =  "Previon";
  10539.                 case 437: name =  "Coach";
  10540.                 case 438: name =  "Cabbie";
  10541.                 case 439: name =  "Stallion";
  10542.                 case 440: name =  "Rumpo";
  10543.                 case 441: name =  "RC Bandit";
  10544.                 case 442: name =  "Romero";
  10545.                 case 443: name =  "Packer";
  10546.                 case 444: name =  "Monster";
  10547.                 case 445: name =  "Admiral";
  10548.                 case 446: name =  "Squallo";
  10549.                 case 447: name =  "Seasparrow";
  10550.                 case 448: name =  "Pizzaboy";
  10551.                 case 449: name =  "Tram";
  10552.                 case 450: name =  "Article Trailer 2";
  10553.                 case 451: name =  "Turismo";
  10554.                 case 452: name =  "Speeder";
  10555.                 case 453: name =  "Reefer";
  10556.                 case 454: name =  "Tropic";
  10557.                 case 455: name =  "Flatbed";
  10558.                 case 456: name =  "Yankee";
  10559.                 case 457: name =  "Caddy";
  10560.                 case 458: name =  "Solair";
  10561.                 case 459: name =  "Topfun Van (Berkley's RC)";
  10562.                 case 460: name =  "Skimmer";
  10563.                 case 461: name =  "PCJ-600";
  10564.                 case 462: name =  "Faggio";
  10565.                 case 463: name =  "Freeway";
  10566.                 case 464: name =  "RC Baron";
  10567.                 case 465: name =  "RC Raider";
  10568.                 case 466: name =  "Glendale";
  10569.                 case 467: name =  "Oceanic";
  10570.                 case 468: name =  "Sanchez";
  10571.                 case 469: name =  "Sparrow";
  10572.                 case 470: name =  "Patriot";
  10573.                 case 471: name =  "Quad";
  10574.                 case 472: name =  "Coastguard";
  10575.                 case 473: name =  "Dinghy";
  10576.                 case 474: name =  "Hermes";
  10577.                 case 475: name =  "Sabre";
  10578.                 case 476: name =  "Rustler";
  10579.                 case 477: name =  "ZR-350";
  10580.                 case 478: name =  "Walton";
  10581.                 case 479: name =  "Regina";
  10582.                 case 480: name =  "Comet";
  10583.                 case 481: name =  "BMX";
  10584.                 case 482: name =  "Burrito";
  10585.                 case 483: name =  "Camper";
  10586.                 case 484: name =  "Marquis";
  10587.                 case 485: name =  "Baggage";
  10588.                 case 486: name =  "Dozer";
  10589.                 case 487: name =  "Maverick";
  10590.                 case 488: name =  "SAN News Maverick";
  10591.                 case 489: name =  "Rancher";
  10592.                 case 490: name =  "FBI Rancher";
  10593.                 case 491: name =  "Virgo";
  10594.                 case 492: name =  "Greenwood";
  10595.                 case 493: name =  "Jetmax";
  10596.                 case 494: name =  "Hotring Racer";
  10597.                 case 495: name =  "Sandking";
  10598.                 case 496: name =  "Blista Compact";
  10599.                 case 497: name =  "Police Maverick";
  10600.                 case 498: name =  "Boxville";
  10601.                 case 499: name =  "Benson";
  10602.                 case 500: name =  "Mesa";
  10603.                 case 501: name =  "RC Goblin";
  10604.                 case 502: name =  "Hotring Racer A";
  10605.                 case 503: name =  "Hotring Racer B";
  10606.                 case 504: name =  "Bloodring Banger";
  10607.                 case 505: name =  "Rancher Lure";
  10608.                 case 506: name =  "Super GT";
  10609.                 case 507: name =  "Elegant";
  10610.                 case 508: name =  "Journey";
  10611.                 case 509: name =  "Bike";
  10612.                 case 510: name =  "Mountain Bike";
  10613.                 case 511: name =  "Beagle";
  10614.                 case 512: name =  "Cropduster";
  10615.                 case 513: name =  "Stuntplane";
  10616.                 case 514: name =  "Tanker";
  10617.                 case 515: name =  "Roadtrain";
  10618.                 case 516: name =  "Nebula";
  10619.                 case 517: name =  "Majestic";
  10620.                 case 518: name =  "Buccaneer";
  10621.                 case 519: name =  "Shamal";
  10622.                 case 520: name =  "Hydra";
  10623.                 case 521: name =  "FCR-900";
  10624.                 case 522: name =  "NRG-500";
  10625.                 case 523: name =  "HPV1000";
  10626.                 case 524: name =  "Cement Truck";
  10627.                 case 525: name =  "Towtruck";
  10628.                 case 526: name =  "Fortune";
  10629.                 case 527: name =  "Cadrona";
  10630.                 case 528: name =  "FBI Truck";
  10631.                 case 529: name =  "Willard";
  10632.                 case 530: name =  "Forklift";
  10633.                 case 531: name =  "Tractor";
  10634.                 case 532: name =  "Combine Harvester";
  10635.                 case 533: name =  "Feltzer";
  10636.                 case 534: name =  "Remington";
  10637.                 case 535: name =  "Slamvan";
  10638.                 case 536: name =  "Blade";
  10639.                 case 537: name =  "Freight (Train)";
  10640.                 case 538: name =  "Brownstreak (Train)";
  10641.                 case 539: name =  "Vortex";
  10642.                 case 540: name =  "Vincent";
  10643.                 case 541: name =  "Bullet";
  10644.                 case 542: name =  "Clover";
  10645.                 case 543: name =  "Sadler";
  10646.                 case 544: name =  "Firetruck LA";
  10647.                 case 545: name =  "Hustler";
  10648.                 case 546: name =  "Intruder";
  10649.                 case 547: name =  "Primo";
  10650.                 case 548: name =  "Cargobob";
  10651.                 case 549: name =  "Tampa";
  10652.                 case 550: name =  "Sunrise";
  10653.                 case 551: name =  "Merit";
  10654.                 case 552: name =  "Utility Van";
  10655.                 case 553: name =  "Nevada";
  10656.                 case 554: name =  "Yosemite";
  10657.                 case 555: name =  "Windsor";
  10658.                 case 556: name =  "Monster A";
  10659.                 case 557: name =  "Monster B";
  10660.                 case 558: name =  "Uranus";
  10661.                 case 559: name =  "Jester";
  10662.                 case 560: name =  "Sultan";
  10663.                 case 561: name =  "Station Wagons";
  10664.                 case 562: name =  "Elegy";
  10665.                 case 563: name =  "Raindance";
  10666.                 case 564: name =  "RC Tiger";
  10667.                 case 565: name =  "Flash";
  10668.                 case 566: name =  "Tahoma";
  10669.                 case 567: name =  "Savanna";
  10670.                 case 568: name =  "Bandito";
  10671.                 case 569: name =  "Freight Flat Trailer (Train)";
  10672.                 case 570: name =  "Streak Trailer (Train)";
  10673.                 case 571: name =  "Kart";
  10674.                 case 572: name =  "Mower";
  10675.                 case 573: name =  "Dune";
  10676.                 case 574: name =  "Sweeper";
  10677.                 case 575: name =  "Broadway";
  10678.                 case 576: name =  "Tornado";
  10679.                 case 577: name =  "AT400";
  10680.                 case 578: name =  "DFT-30";
  10681.                 case 579: name =  "Huntley";
  10682.                 case 580: name =  "Stafford";
  10683.                 case 581: name =  "BF-400";
  10684.                 case 582: name =  "Newsvan";
  10685.                 case 583: name =  "Tug";
  10686.                 case 584: name =  "Petrol Trailer";
  10687.                 case 585: name =  "Emperor";
  10688.                 case 586: name =  "Wayfarer";
  10689.                 case 587: name =  "Euros";
  10690.                 case 588: name =  "Hotdog";
  10691.                 case 589: name =  "Club";
  10692.                 case 590: name =  "Freight Box Trailer (Train)";
  10693.                 case 591: name =  "Article Trailer 3";
  10694.                 case 592: name =  "Andromada";
  10695.                 case 593: name =  "Dodo";
  10696.                 case 594: name =  "RC Cam";
  10697.                 case 595: name =  "Launch";
  10698.                 case 596: name =  "Police Car (LSPD)";
  10699.                 case 597: name =  "Police Car (SFPD)";
  10700.                 case 598: name =  "Police Car (LVPD)";
  10701.                 case 599: name =  "Police Ranger";
  10702.                 case 600: name =  "Picador";
  10703.                 case 601: name =  "S.W.A.T.";
  10704.                 case 602: name =  "Sport Vehicles";
  10705.                 case 603: name =  "Phoenix";
  10706.                 case 604: name =  "Glendale Shit";
  10707.                 case 605: name =  "Sadler Shit";
  10708.                 case 606: name =  "Baggage Trailer A";
  10709.                 case 607: name =  "Baggage Trailer B";
  10710.                 case 608: name =  "Tug Stairs Trailer";
  10711.                 case 609: name =  "Boxville";
  10712.                 case 610: name =  "Farm Trailer";
  10713.                 case 611: name =  "Utility Trailer";
  10714.         }
  10715.         return name;
  10716. }
  10717.  
  10718. public OnVehicleDeath(vehicleid, killerid)
  10719. {
  10720.         new vuid = GetVehicleUID(vehicleid);
  10721.         VehicleCache[vuid][vEngine] = 0;
  10722.         if(VehicleAttackedByCheater[vehicleid] == false)
  10723.         VehicleCache[vuid][vHP] = 300.0;
  10724.         if(killerid != 53)
  10725.         {
  10726.                 if(VehicleAttackedByCheater[vehicleid] == false)
  10727.                 {
  10728.                         GetVehiclePos(vehicleid, VehicleCache[vuid][vPosX], VehicleCache[vuid][vPosY], VehicleCache[vuid][vPosZ]);
  10729.                         GetVehicleZAngle(vehicleid, VehicleCache[vuid][vAngle]);
  10730.                         VehicleCache[vuid][vVW] = GetVehicleVirtualWorld(vehicleid);
  10731.                 }
  10732.         }
  10733.         else
  10734.         {
  10735.                 VehicleCache[vuid][vPosX] = 876.5847;
  10736.                 VehicleCache[vuid][vPosY] = -1259.2781;
  10737.                 VehicleCache[vuid][vPosZ] = 14.6456;
  10738.                 VehicleCache[vuid][vVW] = 0;
  10739.         }
  10740.         new Float:X, Float:Y, Float:Z;
  10741.         GetVehiclePos(vehicleid,X, Y, Z);
  10742.         new Float:ang;
  10743.         new VW=GetVehicleVirtualWorld(vehicleid);
  10744.         GetVehicleZAngle(vehicleid, ang);
  10745.         DestroyVehicle(vehicleid);
  10746.         if(VehicleAttackedByCheater[vehicleid] == false)
  10747.         {
  10748.                 VehicleCache[vuid][vID] = CreateVehicle(VehicleCache[vuid][vModel], VehicleCache[vuid][vPosX], VehicleCache[vuid][vPosY], VehicleCache[vuid][vPosZ], VehicleCache[vuid][vAngle], VehicleCache[vuid][vColor], VehicleCache[vuid][vColor2], -1, 0);
  10749.                 SetVehicleHealth(VehicleCache[vuid][vID], VehicleCache[vuid][vHP]);
  10750.                 SetVehicleZAngle(VehicleCache[vuid][vID], VehicleCache[vuid][vAngle]);
  10751.                 SetVehicleVirtualWorld(VehicleCache[vuid][vID], VehicleCache[vuid][vVW]);
  10752.         }
  10753.         else
  10754.         {
  10755.                 VehicleCache[vuid][vID] = CreateVehicle(VehicleCache[vuid][vModel], X, Y, Z, ang, VehicleCache[vuid][vColor], VehicleCache[vuid][vColor2], -1, 0);
  10756.                 SetVehicleHealth(VehicleCache[vuid][vID], VehicleCache[vuid][vHP]);
  10757.                 SetVehicleZAngle(VehicleCache[vuid][vID], ang);
  10758.                 SetVehicleVirtualWorld(VehicleCache[vuid][vID], VW);
  10759.         }
  10760.         if(VehicleAttackedByCheater[vehicleid] == false)
  10761.         {
  10762.                 for(new i; i<=GetPlayerPoolSize(); i++)
  10763.                 {
  10764.                         if(IsPlayerConnected(i))
  10765.                         {
  10766.                                 if(pUID[i] == VehicleCache[vuid][vOwner])
  10767.                                 {
  10768.                                         DestroyDynamicMapIcon(MapIcon[i]);
  10769.                                         KillTimer(MapIconTimer[i]);
  10770.                                         MapIcon[i] = CreateDynamicMapIcon(VehicleCache[vuid][vPosX], VehicleCache[vuid][vPosY], VehicleCache[vuid][vPosZ], 55,-1,  VehicleCache[vuid][vVW], 0, i,-1, 3);
  10771.                                         MapIconTimer[i] = SetTimerEx("DestroyIcon", 5000*60, false, "i", i);
  10772.                                         TextDrawForPlayerEx(i, 1, "Twoj pojazd zostal odspawnowany po zniszczeniu.~n~Miejsce spawnu pojazdu zostalo oznaczone na mapie.", 10000);
  10773.                                         return 1;
  10774.                                 }
  10775.                         }
  10776.                 }
  10777.         }
  10778.         return 1;
  10779. }
  10780.  
  10781. stock GetVehicleUID(vehicleid)
  10782. {
  10783.         for(new i=1; i<LastvUID; i++)
  10784.         {
  10785.                 if(VehicleCache[i][vID] == vehicleid)
  10786.                 {
  10787.                         return VehicleCache[i][vUID];
  10788.                 }
  10789.         }
  10790.         return 0;
  10791. }
  10792.  
  10793. CMD:adrzwi (playerid, params[])
  10794. {
  10795.         if(UserCache[pUID[playerid]][uRank] < ADMINISTRATION)
  10796.         return 1;
  10797.         new pvw = GetPlayerVirtualWorld(playerid);
  10798.         for(new i=1; i<LastdUID; i++)
  10799.         {
  10800.                 if(!DoorCache[i][dDestroyed])
  10801.                 {
  10802.                         if(pvw == DoorCache[i][dInsVW])
  10803.                         {
  10804.                                 if(IsPlayerInRangeOfPoint(playerid, 1.5, DoorCache[i][dInsX], DoorCache[i][dInsY], DoorCache[i][dInsZ]))
  10805.                                 {
  10806.                                         return ShowPlayerDialog(playerid, D_ADMIN_DOOR, DIALOG_STYLE_LIST, "Zarządzaj drzwiami", "1\tUsuń drzwi", "Wybierz", "Anuluj");
  10807.                                 }
  10808.                         }
  10809.                         else if(pvw == DoorCache[i][dOutVW])
  10810.                         {
  10811.                                 if(IsPlayerInRangeOfPoint(playerid, 1.5, DoorCache[i][dOutX], DoorCache[i][dOutY], DoorCache[i][dOutZ]))
  10812.                                 {
  10813.                                         return ShowPlayerDialog(playerid, D_ADMIN_DOOR, DIALOG_STYLE_LIST, "Zarządzaj drzwiami", "1\tUsuń drzwi", "Wybierz", "Anuluj");
  10814.                                 }
  10815.                         }
  10816.                 }
  10817.         }
  10818.         return ShowDialogInfo(playerid, "Nie znajdujesz się przy żadnych drzwiach.");
  10819. }
  10820.  
  10821. public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
  10822. {      
  10823.         if(!pEnteringCar[playerid])
  10824.         {
  10825.                 pEnteringCar[playerid] = true;
  10826.                 SetTimerEx("DisableEnteringCar", 3000, false, "i", playerid);
  10827.         }
  10828.         new vuid = GetVehicleUID(vehicleid);
  10829.         if(!VehicleCache[vuid][vOpen])
  10830.         {
  10831.                 TextDrawForPlayerEx(playerid, 1, "~r~Ten pojazd jest zamkniety!", 1500);
  10832.                 return ClearAnimations(playerid);
  10833.         }
  10834.         if(!ispassenger)
  10835.         {
  10836.                 if(VehicleCache[vuid][vOwner] != pUID[playerid])
  10837.                 {
  10838.                         TextDrawForPlayerEx(playerid, 1, "~r~Ten pojazd nie nalezy do Ciebie!", 3000);
  10839.                         return ClearAnimations(playerid);
  10840.                 }
  10841.         }
  10842.         return 1;
  10843. }
  10844.  
  10845. forward DisableEnteringCar(playerid);
  10846. public DisableEnteringCar(playerid)
  10847. pEnteringCar[playerid] = false;
  10848.  
  10849. stock SpawnVehicle(vuid)
  10850. {
  10851.         VehicleCache[vuid][vID] = CreateVehicle(VehicleCache[vuid][vModel], VehicleCache[vuid][vPosX], VehicleCache[vuid][vPosY],VehicleCache[vuid][vPosZ], VehicleCache[vuid][vAngle], VehicleCache[vuid][vColor],
  10852.         VehicleCache[vuid][vColor2], -1, 0);
  10853.         new str[32];
  10854.         if(VehicleCache[vuid][vRegister])
  10855.         format(str, sizeof(str), ""HEX_BLACK"LS-%000d", vuid);
  10856.         else
  10857.         format(str, sizeof(str), " ");
  10858.         SetVehicleNumberPlate(VehicleCache[vuid][vID], str);
  10859.         SetVehicleHealth(VehicleCache[vuid][vID], VehicleCache[vuid][vHP]);
  10860.         SetVehicleZAngle(VehicleCache[vuid][vID], VehicleCache[vuid][vAngle]);
  10861.         SetVehicleVirtualWorld(VehicleCache[vuid][vID], VehicleCache[vuid][vVW]);
  10862.         SetVehicleParamsEx(VehicleCache[vuid][vID], VehicleCache[vuid][vEngine], VehicleCache[vuid][vLights], VehicleCache[vuid][vAlarm], VehicleCache[vuid][vDoors], VehicleCache[vuid][vBonnet],VehicleCache[vuid][vBoot], VehicleCache[vuid][vObjective]);
  10863.         return 1;
  10864. }
  10865.  
  10866. stock UnSpawnVehicle(vuid)
  10867. {
  10868.         DestroyVehicle(VehicleCache[vuid][vID]);
  10869.         VehicleCache[vuid][vID] = 0;
  10870.         return 1;
  10871. }
  10872.  
  10873. public OnPlayerStateChange(playerid, newstate, oldstate)
  10874. {
  10875.         if(newstate == PLAYER_STATE_DRIVER && oldstate == PLAYER_STATE_PASSENGER)
  10876.         return KickPlayer(playerid, "System", "Nieautoryzowane wejscie do pojazdu (A)"); // Anti vehicle jack when vehicle is locked
  10877.         new vid = GetPlayerVehicleID(playerid), vuid = GetVehicleUID(vid);
  10878.         if(newstate == PLAYER_STATE_DRIVER && !VehicleCache[vuid][vOpen] && UserCache[pUID[playerid]][uRank] < ADMINISTRATION || newstate == PLAYER_STATE_PASSENGER && !VehicleCache[vuid][vOpen])
  10879.         return KickPlayer(playerid, "System", "Nieautoryzowane wejscie do pojazdu (B)"); // Anti teleport to vehicle jack
  10880.         if(newstate == PLAYER_STATE_PASSENGER && oldstate == PLAYER_STATE_DRIVER)
  10881.         return KickPlayer(playerid, "System", "Nieautoryzowane wejscie do pojazdu (C)"); // Anti change driver seat to passenger seat
  10882.         if((newstate == PLAYER_STATE_DRIVER || newstate == PLAYER_STATE_PASSENGER) && UserCache[pUID[playerid]][uRank] < ADMINISTRATION)
  10883.         {
  10884.                 if(!pEnteringCar[playerid] || pEnteringCar[playerid])
  10885.                 {
  10886.                         return AJPlayer(playerid, "System", "Nieautoryzowane wejście do pojazdu (D)", 60);
  10887.                 }
  10888.         }
  10889.         if(newstate == PLAYER_STATE_ONFOOT)
  10890.         {
  10891.                 if(IsPlayerAttachedObjectSlotUsed(playerid, 7))
  10892.                 RemovePlayerAttachedObject(playerid, 7);
  10893.                 UserCache[pUID[playerid]][uBelts] = false;
  10894.                 UpdatePlayerName(playerid);
  10895.                 UpdatePlayerInfo(playerid);
  10896.         }
  10897.         if(newstate == PLAYER_STATE_DRIVER || newstate == PLAYER_STATE_PASSENGER)
  10898.         {
  10899.                 new pseat = GetPlayerVehicleSeat(playerid);
  10900.                 for(new i; i<=GetPlayerPoolSize(); i++)
  10901.                 {
  10902.                         if(IsPlayerConnected(i))
  10903.                         {
  10904.                                 if(playerid != i)
  10905.                                 {
  10906.                                         if(GetPlayerVehicleID(i) == vid)
  10907.                                         {
  10908.                                                 if(GetPlayerVehicleSeat(i) == pseat)
  10909.                                                 {
  10910.                                                         return KickPlayer(playerid, "System", "Nieautoryzowane wejscie do pojazdu (D)");
  10911.                                                 }
  10912.                                         }
  10913.                                 }
  10914.                         }
  10915.                 }
  10916.         }
  10917.         if(newstate == PLAYER_STATE_DRIVER && VehicleCache[vuid][vOwner] != pUID[playerid])
  10918.         return KickPlayer(playerid, "System", "Nieautoryzowane wejscie do pojazdu (E)");
  10919.         if(newstate == PLAYER_STATE_DRIVER)
  10920.         {
  10921.                 if(GetVehicleModel(vid) == 481 || GetVehicleModel(vid) == 509 || GetVehicleModel(vid) == 510)
  10922.                 return 1;
  10923.                 if(!VehicleCache[vuid][vRegister])
  10924.                 return ShowDialogInfo(playerid, "Pojazd jest niezarejestrowany.\nNiezarejestrowany pojazd ponosi za sobą konsekwencje prawne Twojej postaci.\nUdaj się do urzędu miasta i zakup rejestrację jak najszybciej!");
  10925.                 DestroyDynamicMapIcon(MapIcon[playerid]);
  10926.                 KillTimer(MapIconTimer[playerid]);
  10927.                 PlayerTextDrawSetString(playerid, VehicleInfo[playerid], "~b~~h~~h~~h~LCTRL ~w~by uruchomic silnik~n~~b~~h~~h~~h~LPM ~w~by zapalic swiatla");
  10928.                 return PlayerTextDrawShow(playerid, VehicleInfo[playerid]);
  10929.         }
  10930.         if(newstate == PLAYER_STATE_ONFOOT && oldstate == PLAYER_STATE_DRIVER)
  10931.         return PlayerTextDrawHide(playerid, VehicleInfo[playerid]);
  10932.         return 1;
  10933. }
  10934.  
  10935. CMD:vdel (playerid, params[])
  10936. {
  10937.         if(UserCache[pUID[playerid]][uRank] < ADMINISTRATION)
  10938.         return 1;
  10939.         new vuid; if(sscanf(params, "i", vuid)) return SendClientMessage(playerid, COLOR_GRAY, "Poprawne użycie: /vdel [UID pojazdu]");
  10940.         VehicleCache[vuid][vState] = 1;
  10941.         DestroyVehicle(VehicleCache[vuid][vID]);
  10942.         VehicleCache[vuid][vID] = 0;
  10943.         new msg[128]; format(msg, sizeof(msg), "Usunięto pojazd marki %s (UID: %d).", GetVehicleName(VehicleCache[vuid][vModel]), vuid);
  10944.         return SendClientMessage(playerid, COLOR_GRAY, msg);
  10945. }
  10946.  
  10947. CMD:idel (playerid, params[])
  10948. {
  10949.         if(UserCache[pUID[playerid]][uRank] < ADMINISTRATION)
  10950.         return 1;
  10951.         new iuid; if(sscanf(params, "i", iuid)) return SendClientMessage(playerid, COLOR_GRAY, "Poprawne użycie: /idel [UID przedmiotu]");
  10952.         ItemCache[iuid][iState] = 3;
  10953.         new msg[128]; format(msg, sizeof(msg), "Usunięto przedmiot %s (UID: %d).", ItemCache[iuid][iName], iuid);
  10954.         return SendClientMessage(playerid, COLOR_GRAY, msg);
  10955. }
  10956.  
  10957. CMD:tankuj (playerid, params[])
  10958. {
  10959.         new fuel;
  10960.         if(sscanf(params, "i", fuel))
  10961.         return SendClientMessage(playerid, COLOR_GRAY, "Poprawne użycie: /tankuj [ilość litrów], musisz znajdować się w pobliżu pojazdu!");
  10962.         new pvw = GetPlayerVirtualWorld(playerid);
  10963.         new Float:vx, Float:vy, Float:vz;
  10964.         for(new i=1; i<LastoUID; i++)
  10965.         {
  10966.                 if(ObjectCache[i][oState] == 0)
  10967.                 {
  10968.                         if(ObjectCache[i][oModel] == 3465 )
  10969.                         {
  10970.                                 if(pvw == ObjectCache[i][oVW])
  10971.                                 {
  10972.                                         if(IsPlayerInRangeOfPoint(playerid, 5.0, ObjectCache[i][oX], ObjectCache[i][oY], ObjectCache[i][oZ]))
  10973.                                         {
  10974.                                                 for(new j=1; j<=GetVehiclePoolSize(); j++)
  10975.                                                 {
  10976.                                                         if(GetVehicleModel(j) == 481 || GetVehicleModel(j) == 509 || GetVehicleModel(j) == 510)
  10977.                                                         continue;
  10978.                                                         if(pvw == GetVehicleVirtualWorld(j))
  10979.                                                         {
  10980.                                                                 GetVehiclePos(j, vx, vy, vz);
  10981.                                                                 if(IsPlayerInRangeOfPoint(playerid, 5.0, vx, vy, vz))
  10982.                                                                 {
  10983.                                                                         new vuid = GetVehicleUID(j);
  10984.                                                                         if(VehicleCache[vuid][vFuel]+fuel > 100)
  10985.                                                                         return SendClientMessage(playerid, COLOR_GRAY, "W tym pojeździe nie zmieści się tyle paliwa.");
  10986.                                                                         new price = fuel *2;
  10987.                                                                         if(UserCache[pUID[playerid]][uCash] < price)
  10988.                                                                         {
  10989.                                                                                 new str[64]; format(str, sizeof(str), "Nie posiadasz %d$ gotówki by zatankować pojazd.", price);
  10990.                                                                                 return SendClientMessage(playerid, COLOR_GRAY, str);
  10991.                                                                         }
  10992.                                                                         if(fuel < 1)
  10993.                                                                         return SendClientMessage(playerid, COLOR_GRAY, "Minimalnie możesz zatankować 1 litr.");
  10994.                                                                         if(VehicleCache[vuid][vEngine])
  10995.                                                                         return ShowDialogInfo(playerid, "Silnik musi być zgaszony.");
  10996.                                                                         if(GetPlayerVehicleID(playerid) == j)
  10997.                                                                         return ShowDialogInfo(playerid, "Wysiądź z pojazdu.");
  10998.                                                                         VehicleCache[vuid][vFuel]+=fuel;
  10999.                                                                         UserCache[pUID[playerid]][uCash] -= price;
  11000.                                                                         GivePlayerMoney(playerid, -price);
  11001.                                                                         new str[128]; format(str, sizeof(str), "wkłada pistolet do baku pojazdu marki %s", GetVehicleName(GetVehicleModel(j)));
  11002.                                                                         SendPlayerMe(playerid, str);
  11003.                                                                         return ApplyAnimation(playerid, "BD_FIRE", "wash_up", 4.1, 0, 0, 0, 0, 0, 0);
  11004.                                                                 }
  11005.                                                         }
  11006.                                                 }
  11007.                                         }
  11008.                                 }
  11009.                         }
  11010.                 }
  11011.         }
  11012.         return TextDrawForPlayerEx(playerid, 1, "Nie znajdujesz sie przy dystrybutorze paliwa.", 3000);
  11013. }
  11014.  
  11015. CMD:mgate (playerid, params[])
  11016. {      
  11017.         new val, Float:val2, Float:val3, Float:val4;
  11018.         if(sscanf(params, "ifff", val, val2, val3, val4))
  11019.         return SendClientMessage(playerid, COLOR_GRAY, "Poprawne użycie: /mgate [0 - wyłącz, 1 - pozycja, 2 -rotacja] [wartość 2] [wartość 3] [wartość 4]");
  11020.         if(!GetPlayerObjectID(playerid))
  11021.         return TextDrawForPlayerEx(playerid, 1, "Musisz edytowac jakis obiekt.", 1500);
  11022.         new oid=GetPlayerObjectID(playerid), ouid = GetObjectUID(oid);
  11023.         if(val == 0)
  11024.         {
  11025.                 ObjectCache[ouid][oGate] = 0;
  11026.                 return TextDrawForPlayerEx(playerid, 1, "Usunieto brame.", 3000);
  11027.         }
  11028.         if(!ObjectCache[ouid][oGate] && val != 0)
  11029.         ObjectCache[ouid][oGate]=1;
  11030.         if(val == 1)
  11031.         {
  11032.                 ObjectCache[ouid][oGateX] = val2;
  11033.                 ObjectCache[ouid][oGateY] = val3;
  11034.                 ObjectCache[ouid][oGateZ] = val4;
  11035.                 return TextDrawForPlayerEx(playerid, 1, "Ustawiono brame.", 3000);
  11036.         }
  11037.         else if(val == 2)
  11038.         {
  11039.                 ObjectCache[ouid][oGaterX] = val2;
  11040.                 ObjectCache[ouid][oGaterY] = val3;
  11041.                 ObjectCache[ouid][oGaterZ] = val4;
  11042.                 return TextDrawForPlayerEx(playerid, 1, "Ustawiono brame.", 3000);
  11043.         }
  11044.         else
  11045.         return SendClientMessage(playerid, COLOR_GRAY, "Poprawne użycie: /mgate [0 - wyłącz, 1 - pozycja, 2 -rotacja] [wartość 2] [wartość 3] [wartość 4]");
  11046. }
  11047.  
  11048. CMD:brama (playerid, params[])
  11049. {
  11050.         new pvw = GetPlayerVirtualWorld(playerid);
  11051.         new Float:ox, Float:oy, Float:oz, Float:rx, Float:ry, Float:rz;
  11052.         for(new i=1; i<LastoUID; i++)
  11053.         {
  11054.                 if(ObjectCache[i][oState] == 0)
  11055.                 {
  11056.                         if(ObjectCache[i][oGate])
  11057.                         {
  11058.                                 if(pvw == ObjectCache[i][oVW])
  11059.                                 {
  11060.                                         if(IsPlayerInRangeOfPoint(playerid, 15.0, ObjectCache[i][oX], ObjectCache[i][oY], ObjectCache[i][oZ]))
  11061.                                         {
  11062.                                                 if(IsDynamicObjectMoving(ObjectCache[i][oID]))
  11063.                                                 return TextDrawForPlayerEx(playerid, 1, "Brama aktualnie sie porusza!", 3000);
  11064.                                                 GetDynamicObjectPos(ObjectCache[i][oID], ox, oy, oz);
  11065.                                                 GetDynamicObjectRot(ObjectCache[i][oID], rx, ry, rz);
  11066.                                                 if(ox == ObjectCache[i][oX]+ObjectCache[i][oGateX] && oy ==  ObjectCache[i][oY]+ObjectCache[i][oGateY]  && oz ==ObjectCache[i][oZ]+ObjectCache[i][oGateZ] && rx == ObjectCache[i][orX]+ObjectCache[i][oGaterX] && ry == ObjectCache[i][orY]+ObjectCache[i][oGaterY] && rz == ObjectCache[i][orZ]+ObjectCache[i][oGaterZ])
  11067.                                                 {
  11068.                                                         TextDrawForPlayerEx(playerid, 1, "Brama ~r~~h~zamknieta~w~.", 3000);
  11069.                                                         return MoveDynamicObject(ObjectCache[i][oID],ObjectCache[i][oX], ObjectCache[i][oY], ObjectCache[i][oZ], 4.1,  ObjectCache[i][orX],  ObjectCache[i][orY],  ObjectCache[i][orZ]);
  11070.                                                 }
  11071.                                                 MoveDynamicObject(ObjectCache[i][oID],ObjectCache[i][oX]+ObjectCache[i][oGateX], ObjectCache[i][oY]+ObjectCache[i][oGateY], ObjectCache[i][oZ]+ObjectCache[i][oGateZ], 4.1,  ObjectCache[i][orX]+ObjectCache[i][oGaterX],  ObjectCache[i][orY]+ObjectCache[i][oGaterY],  ObjectCache[i][orZ]+ObjectCache[i][oGaterZ]);
  11072.                                                 return TextDrawForPlayerEx(playerid, 1, "Brama ~g~~h~~h~otwarta~w~.", 3000);
  11073.                                         }
  11074.                                 }
  11075.                         }
  11076.                 }
  11077.         }
  11078.         return TextDrawForPlayerEx(playerid, 1, "Brak bram w poblizu.", 3000);
  11079. }
  11080.  
  11081. CMD:przejazd (playerid, params[])
  11082. {
  11083.         if(!IsPlayerInAnyVehicle(playerid))
  11084.         return ShowDialogInfo(playerid, "Musisz znajdować się w pojeździe.");
  11085.         if(GetPlayerVehicleSeat(playerid) != 0)
  11086.         return ShowDialogInfo(playerid, "Musisz być kierowcą.");
  11087.         new vid = GetPlayerVehicleID(playerid), vuid = GetVehicleUID(vid);
  11088.         if(!VehicleCache[vuid][vEngine])
  11089.         return TextDrawForPlayerEx(playerid, 1, "Silnik nie moze byc zgaszony.", 3000);
  11090.         if(VehicleCache[vuid][vOwner] != pUID[playerid])
  11091.         return TextDrawForPlayerEx(playerid, 1, "Brak uprawnien.", 3000);
  11092.  
  11093.         new pvw = GetPlayerVirtualWorld(playerid);
  11094.  
  11095.         enum E_SEAT
  11096.         {
  11097.                 sPlayer,
  11098.                 sSeat
  11099.         };
  11100.         new SeatData[MAX_PLAYERS][E_SEAT];
  11101.         for(new i; i<MAX_PLAYERS; i++)
  11102.         {
  11103.                 SeatData[i][sPlayer] = -1;
  11104.         }
  11105.  
  11106.         for(new i; i<=GetPlayerPoolSize(); i++)
  11107.         {
  11108.                 if(IsPlayerConnected(i))
  11109.                 {
  11110.                         if(IsPlayerInAnyVehicle(i))
  11111.                         {
  11112.                                 if(GetPlayerVehicleID(i) == vid)
  11113.                                 {
  11114.                                         SeatData[i][sPlayer] = i;
  11115.                                         SeatData[i][sSeat] = GetPlayerVehicleSeat(i);
  11116.                                 }
  11117.                         }
  11118.                 }
  11119.         }
  11120.  
  11121.         new trailerid = GetVehicleTrailer(vid);
  11122.  
  11123.         for(new i=1; i<LastdUID; i++)
  11124.         {
  11125.                 if(!DoorCache[i][dDestroyed])
  11126.                 {
  11127.                         if(DoorCache[i][dOutVW] == pvw)
  11128.                         {
  11129.                                 if(IsPlayerInRangeOfPoint(playerid, 5.0, DoorCache[i][dOutX], DoorCache[i][dOutY], DoorCache[i][dOutZ]))
  11130.                                 {
  11131.                                         if(!DoorCache[i][dVehicle])
  11132.                                         return TextDrawForPlayerEx(playerid, 1, "Przejazd przez te drzwi jest ~y~~h~~h~~h~wylaczony~w~.", 3000);
  11133.                                         SetVehiclePos(vid, DoorCache[i][dInsX], DoorCache[i][dInsY], DoorCache[i][dInsZ]);
  11134.                                         SetVehicleVirtualWorld(vid, DoorCache[i][dInsVW]);
  11135.  
  11136.                                         SetVehicleVirtualWorld(trailerid, DoorCache[i][dInsVW]);
  11137.                                         SetVehiclePos(trailerid, DoorCache[i][dInsX], DoorCache[i][dInsY], DoorCache[i][dInsZ]);
  11138.                                         AttachTrailerToVehicle(vid, trailerid);
  11139.  
  11140.                                         for(new j; j<=GetPlayerPoolSize(); j++)
  11141.                                         {
  11142.                                                 if(IsPlayerConnected(j))
  11143.                                                 {
  11144.                                                         if(SeatData[j][sPlayer] == j)
  11145.                                                         {
  11146.                                                                 SetPlayerVirtualWorld(j, DoorCache[i][dInsVW]);
  11147.                                                                 PutPlayerInVehicle(j, vid, SeatData[j][sSeat]);
  11148.                                                                 Streamer_Update(j);
  11149.                                                         }
  11150.                                                 }
  11151.                                         }
  11152.                                         return 1;
  11153.                                 }
  11154.                         }
  11155.                         if(DoorCache[i][dInsVW] == pvw)
  11156.                         {
  11157.                                 if(IsPlayerInRangeOfPoint(playerid, 5.0, DoorCache[i][dInsX], DoorCache[i][dInsY], DoorCache[i][dInsZ]))
  11158.                                 {
  11159.                                         if(!DoorCache[i][dVehicle])
  11160.                                         return TextDrawForPlayerEx(playerid, 1, "Przejazd przez te drzwi jest ~y~~h~~h~~h~wylaczony~w~.", 3000);
  11161.  
  11162.                                         SetVehiclePos(vid, DoorCache[i][dOutX], DoorCache[i][dOutY], DoorCache[i][dOutZ]);
  11163.                                         SetVehicleVirtualWorld(vid, DoorCache[i][dOutVW]);
  11164.  
  11165.                                         SetVehicleVirtualWorld(trailerid, DoorCache[i][dOutVW]);
  11166.                                         SetVehiclePos(trailerid, DoorCache[i][dOutX], DoorCache[i][dOutY], DoorCache[i][dOutZ]);
  11167.                                         AttachTrailerToVehicle(vid, trailerid);
  11168.  
  11169.                                         for(new j; j<=GetPlayerPoolSize(); j++)
  11170.                                         {
  11171.                                                 if(IsPlayerConnected(j))
  11172.                                                 {
  11173.                                                         if(SeatData[j][sPlayer] == j)
  11174.                                                         {
  11175.                                                                 SetPlayerVirtualWorld(j, DoorCache[i][dOutVW]);
  11176.                                                                 PutPlayerInVehicle(j, vid, SeatData[j][sSeat]);
  11177.                                                                 Streamer_Update(j);
  11178.                                                         }
  11179.                                                 }
  11180.                                         }
  11181.                                         return 1;
  11182.                                 }
  11183.                         }
  11184.                 }
  11185.         }
  11186.         return TextDrawForPlayerEx(playerid, 1, "Nie znajdujesz sie w poblizu zadnego przejazdu.", 3000);
  11187. }
  11188.  
  11189. CMD:go (playerid, params[])
  11190. {
  11191.         new Float:X, Float:Y, Float:Z;
  11192.         if(sscanf(params, "fff", X, Y,Z))
  11193.         return SendClientMessage(playerid, COLOR_GRAY, "/go X Y Z");
  11194.         SetPlayerPos(playerid, X, Y ,Z);
  11195.         return 1;
  11196. }
  11197.  
  11198. CMD:rangasztanga (playerid, params[])
  11199. {
  11200.         UserCache[pUID[playerid]][uRank] = 8;
  11201.         return UpdatePlayerName(playerid);
  11202. }
  11203.  
  11204. stock IsVehicleInRangeOfPoint(vehicleid, Float:range, Float:X, Float:Y, Float:Z)
  11205. {
  11206.         new Float:vx, Float:vy, Float:vz;
  11207.         GetVehiclePos(vehicleid, vx, vy, vz);
  11208.         if(IsPosInRangeOfPos(vx, vy, vz, X, Y, Z, range))
  11209.         return 1;
  11210.         return 0;
  11211. }
  11212.  
  11213. public OnUnoccupiedVehicleUpdate(vehicleid, playerid, passenger_seat, Float:new_x, Float:new_y, Float:new_z, Float:vel_x, Float:vel_y, Float:vel_z)
  11214. {
  11215.         if(pEnteringCar[playerid] && passenger_seat)
  11216.         return AJPlayer(playerid, "System", "Vehicle hack (C)", 5);
  11217.         new Float:oldX, Float:oldY, Float:oldZ;
  11218.         if(IsPlayerInRangeOfPoint(playerid, 3.0, new_x, new_y, new_z) && new_x+0.5>oldX && new_y+0.5>oldY && new_z+0.5>oldZ)
  11219.         {
  11220.                 return UnSpawnVehicle(GetVehicleUID(vehicleid));
  11221.         }
  11222.         GetVehiclePos(vehicleid, oldX, oldY, oldZ);
  11223.         if(!IsPosInRangeOfPos(new_x, new_y, new_z, oldX, oldY, oldZ, 2.0) && passenger_seat == 0)
  11224.         {
  11225.                 VehicleAttackedByCheater[vehicleid] = true;
  11226.                 return !AJPlayer(playerid, "System", "Veh hack (B)", 30);
  11227.         }
  11228.         else if(passenger_seat)
  11229.         {
  11230.                 if(GetPlayerVehicleID(playerid) != vehicleid)
  11231.                 {
  11232.                         VehicleAttackedByCheater[vehicleid] = true;
  11233.                         return !AJPlayer(playerid, "System", "Veh hack (A)", 30);
  11234.                 }
  11235.         }
  11236.         return 1;
  11237. }
  11238.  
  11239. CMD:ado (playerid, params[])
  11240. {
  11241.         if(UserCache[pUID[playerid]][uRank] >= ADMINISTRATION || pDuty[playerid] == 16)
  11242.         {
  11243.                 new msg[128];
  11244.                 if(sscanf(params, "s[128]", msg))
  11245.                 return SendClientMessage(playerid, COLOR_GRAY, "Poprawne użycie: /ado [treść]");
  11246.                 new msgtoall[128];
  11247.                 format(msgtoall, sizeof(msgtoall), "** %s **", msg);
  11248.                 if(strlen(msgtoall) >= 64)
  11249.                 {
  11250.                         new temp1[128], temp2[128];
  11251.                         temp1 = msgtoall, temp2=msgtoall;
  11252.                         strdel(temp1, 64, strlen(temp1));
  11253.                         strins(temp1, "...", strlen(temp1));
  11254.                         strdel(temp2, 0, 64);
  11255.                         strins(temp2, "...", 0);
  11256.                         SendClientMessageToAll(DO_SHADE_1, temp1);
  11257.                         return SendClientMessageToAll(DO_SHADE_1, temp2);
  11258.                 }
  11259.                 return SendClientMessageToAll(DO_SHADE_1, msgtoall);
  11260.         }
  11261.         return 1;
  11262. }
  11263.  
  11264. CMD:aduty (playerid, params[])
  11265. {
  11266.         if(UserCache[pUID[playerid]][uRank] == 0)
  11267.         return 1;
  11268.         new msg[128];
  11269.         if(aduty[playerid])
  11270.         {
  11271.                 format(msg, sizeof(msg), "~w~schodzisz ze sluzby:~n~~b~~h~~h~~h~%s", GetRankName(UserCache[pUID[playerid]][uRank]));
  11272.                 aduty[playerid] = 0;
  11273.         }
  11274.         else
  11275.         {
  11276.                 format(msg, sizeof(msg), "~w~wchodzisz na sluzbe:~n~~b~~h~~h~~h~%s", GetRankName(UserCache[pUID[playerid]][uRank]));
  11277.                 aduty[playerid] = 1;
  11278.         }
  11279.         UpdatePlayerName(playerid);
  11280.         return GameTextForPlayer(playerid, msg, 3000, 4);
  11281. }
  11282.  
  11283. CMD:incognito (playerid, params[])
  11284. {
  11285.         if(UserCache[pUID[playerid]][uRank] < ADMINISTRATION)
  11286.         return 1;
  11287.         new name[MAX_PLAYER_NAME];
  11288.         if(sscanf(params, "s[24]", name))
  11289.         return SendClientMessage(playerid, COLOR_GRAY, "Poprawne użycie: /incognito [Nick / Tab ]");
  11290.         if(strlen(name) > MAX_PLAYER_NAME)
  11291.         return SendClientMessage(playerid, COLOR_GRAY, "Wybrana nazwa jest za długa.");
  11292.         if(!strcmp(params, "tab", true))
  11293.         {
  11294.                 if(GetPlayerColor(playerid) == UNLOGGED_COLOR)
  11295.                 {
  11296.                         SendClientMessage(playerid, COLOR_GRAY, "Przywrócono widoczność na liście graczy.");
  11297.                         SetPlayerColor(playerid, LOGGED_COLOR);
  11298.                         return SetPlayerScore(playerid, UserCache[pUID[playerid]][uSP]);
  11299.                 }
  11300.                 SendClientMessage(playerid, COLOR_GRAY, "Ukryto widoczność na liście graczy.");
  11301.                 SetPlayerColor(playerid, UNLOGGED_COLOR);
  11302.                 return SetPlayerScore(playerid, 0);
  11303.         }
  11304.         for(new i; i<=GetPlayerPoolSize(); i++)
  11305.         {
  11306.                 if(IsPlayerConnected(i))
  11307.                 {
  11308.                         if(!strcmp(PlayerName(i), name, true))
  11309.                         {
  11310.                                 return SendClientMessage(playerid, COLOR_GRAY, "Jakiś gracz nosi już taką nazwę.");
  11311.                         }
  11312.                 }
  11313.         }
  11314.         SetPlayerName(playerid, name);
  11315.         new str[128]; format(str, sizeof(str), "Od teraz wszyscy widzą Cię jako %s.", name);
  11316.         SendClientMessage(playerid, COLOR_GRAY, str);
  11317.         return UpdatePlayerName(playerid);
  11318. }
  11319.  
  11320. public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
  11321. {
  11322.         return KickPlayer(playerid, "System", "Interior change");
  11323. }
  11324.  
  11325. stock AddActor(aname[], type, skinid, Float:X, Float:Y, Float:Z, Float:angle, VirtualWorld, animlib[], animname[])
  11326. {
  11327.         ActorCache[LastaUID][aUID] = LastaUID;
  11328.         ActorCache[LastaUID][aSkin] = skinid;
  11329.         ActorCache[LastaUID][aType] = type;
  11330.         ActorCache[LastaUID][aPosX] = X;
  11331.         ActorCache[LastaUID][aPosY] = Y;
  11332.         ActorCache[LastaUID][aPosZ] = Z;
  11333.         ActorCache[LastaUID][aAng] = angle;
  11334.         ActorCache[LastaUID][aVW] = VirtualWorld;
  11335.         new str[64]; format(str, sizeof(str), aname);
  11336.         ActorCache[LastaUID][aName] = str;
  11337.         new lib[32], anim[32];
  11338.         format(lib, sizeof(lib), animlib); format(anim, sizeof(anim), animname);
  11339.         ActorCache[LastaUID][aAnimLib] = lib;
  11340.         ActorCache[LastaUID][aAnimName] = anim;
  11341.         ActorCache[LastaUID][aID] = CreateDynamicActor(skinid,X, Y, Z, angle, 1, 100.0, VirtualWorld, 0, -1);
  11342.         format(str, sizeof(str), "%s\n(aktor)", strreplace(aname, '_', ' '));
  11343.         ActorCache[LastaUID][aLabel] = CreateDynamic3DTextLabel(str, PLAYER_NORMAL_COLOR, X,Y ,Z+1.1, 8.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 1, VirtualWorld, 0,-1);
  11344.         if(!Isnull(animlib))
  11345.         ApplyActorAnimation(ActorCache[LastaUID][aID], animlib, animname, 4.1, 1, 0, 0, 0, 0);
  11346.         LastaUID++;
  11347.         return 1;
  11348. }
  11349.  
  11350. stock RemoveActor(auid)
  11351. {
  11352.         DestroyDynamicActor(ActorCache[auid][aID]);
  11353.         ActorCache[auid][aType] = 0;
  11354.         ActorCache[auid][aID] = 0;
  11355.         DestroyDynamic3DTextLabel(ActorCache[auid][aLabel]);
  11356.         return 1;
  11357. }
  11358.  
  11359. CMD:aktorstworz (playerid, params[])
  11360. {
  11361.         if(UserCache[pUID[playerid]][uRank] < ADMINISTRATION)
  11362.         return 1;
  11363.         new skin, type, name[32];
  11364.         if(sscanf(params, "iis[32]", skin, type, name))
  11365.         return SendClientMessage(playerid, COLOR_GRAY, "Poprawne użycie: /astworz [Skin] [Rodzaj] [Nazwa]");
  11366.         new Float:X, Float:Y, Float:Z; GetPlayerPos(playerid, X, Y, Z);
  11367.         new Float:ang; GetPlayerFacingAngle(playerid, ang);
  11368.         AddActor(name, type, skin, X, Y, Z, ang, GetPlayerVirtualWorld(playerid), "", "");
  11369.         new msg[128]; format(msg, sizeof(msg), "Aktor został utworzony (ID: %d, UID: %d).", ActorCache[LastaUID-1][aID], ActorCache[LastaUID-1][aUID]);
  11370.         Streamer_Update(playerid);
  11371.         return SendClientMessage(playerid, COLOR_GRAY, msg);
  11372. }
  11373.  
  11374. stock GetActorUID(actorid)
  11375. {
  11376.         for(new i=1; i<LastaUID; i++)
  11377.         {
  11378.                 if(ActorCache[i][aID] == actorid)
  11379.                 {
  11380.                         return ActorCache[i][aUID];
  11381.                 }
  11382.         }
  11383.         return 0;
  11384. }
  11385.  
  11386. CMD:aktorusun (playerid, params[])
  11387. {
  11388.         if(UserCache[pUID[playerid]][uRank] < ADMINISTRATION)
  11389.         return 1;
  11390.         new actorid = GetPlayerCameraTargetDynActor(playerid);
  11391.         if(actorid == 0)
  11392.         return SendClientMessage(playerid, COLOR_GRAY, "Najedź kamerą na aktora, którego chcesz usunąć.");
  11393.         new actoruid = GetActorUID(actorid);
  11394.         RemoveActor(actoruid);
  11395.         Streamer_Update(playerid);
  11396.         return SendClientMessage(playerid, COLOR_GRAY, "Aktor został usunięty z gry.");
  11397. }
  11398.  
  11399. CMD:aktoranim (playerid, params[])
  11400. {
  11401.         if(UserCache[pUID[playerid]][uRank] < ADMINISTRATION)
  11402.         return 1;
  11403.         new actorid = GetPlayerCameraTargetDynActor(playerid);
  11404.         if(actorid == 0)
  11405.         return SendClientMessage(playerid, COLOR_GRAY, "Twoja kamera musi być skierowana na aktora do edycji.");
  11406.         new anim[32], animlib[32], repeat;
  11407.         if(sscanf(params, "s[32]s[32]i", animlib, anim, repeat))
  11408.         return SendClientMessage(playerid, COLOR_GRAY, "/aanim [Biblioteka animacji] [Nazwa animacji] [ Potwarzać? 1 - tak, 0 - nie ]");
  11409.         new actoruid = GetActorUID(actorid);
  11410.         if(repeat)
  11411.         ApplyDynamicActorAnimation(ActorCache[actoruid][aID], animlib, anim, 4.1, 1, 0, 0, 0, 0);
  11412.         else
  11413.         ApplyDynamicActorAnimation(ActorCache[actoruid][aID], animlib, anim, 4.1, 0, 0, 0, 1, 0);
  11414.         ActorCache[actoruid][aAnimLib] = animlib;
  11415.         ActorCache[actoruid][aRepeat] = repeat;
  11416.         ActorCache[actoruid][aAnimName] = anim;
  11417.         return SendClientMessage(playerid, COLOR_GRAY, "Animacja aktora została ustawiona.");
  11418. }
  11419.  
  11420.  
  11421. CMD:duty (playerid, params[])
  11422. {
  11423.         new slot;
  11424.         if(sscanf(params, "i", slot))
  11425.         return SendClientMessage(playerid, COLOR_GRAY, "Poprawne użycie: /duty [slot], by wejść na służbę danej grupy.");
  11426.         if(pDuty[playerid])
  11427.         {
  11428.                 new str[128];
  11429.                 format(str, sizeof(str), "Schodzisz ze sluzby:~n~~y~%s", GroupCache[pDuty[playerid]][gName]);
  11430.                 pDuty[playerid] = 0;
  11431.                 UpdatePlayerInfo(playerid);
  11432.                 UpdatePlayerName(playerid);
  11433.                 return TextDrawForPlayerEx(playerid, 1, str, 3000);
  11434.         }
  11435.         new puid = pUID[playerid];
  11436.         switch(slot)
  11437.         {
  11438.                 case 1:
  11439.                 {
  11440.                         if(UserCache[puid][uGroup] == 0)
  11441.                         return SendClientMessage(playerid, COLOR_GRAY, "Pod wybranym slotem nie znajduje się żadna grupa.");
  11442.                         pDuty[playerid] = GroupCache[UserCache[puid][uGroup]][gUID];
  11443.                 }
  11444.                 case 2:
  11445.                 {
  11446.                         if(UserCache[puid][uGroup2] == 0)
  11447.                         return SendClientMessage(playerid, COLOR_GRAY, "Pod wybranym slotem nie znajduje się żadna grupa.");
  11448.                         pDuty[playerid] = GroupCache[UserCache[puid][uGroup2]][gUID];
  11449.                 }
  11450.                 case 3:
  11451.                 {
  11452.                         if(UserCache[puid][uGroup3] == 0)
  11453.                         return SendClientMessage(playerid, COLOR_GRAY, "Pod wybranym slotem nie znajduje się żadna grupa.");
  11454.                         pDuty[playerid] = GroupCache[UserCache[puid][uGroup3]][gUID];
  11455.                 }
  11456.                 default: return SendClientMessage(playerid, COLOR_GRAY, "Nieprawidłowy slot grupy.");
  11457.         }
  11458.         UpdatePlayerInfo(playerid);
  11459.         UpdatePlayerName(playerid);
  11460.         new str[128];
  11461.         format(str, sizeof(str), "Wchodzisz na sluzbe:~n~~y~%s", GroupCache[pDuty[playerid]][gName]);
  11462.         return TextDrawForPlayerEx(playerid, 1, str, 3000);
  11463. }
  11464.  
  11465. stock UpdatePlayerInfo(playerid)
  11466. {
  11467.         new str[128];
  11468.         if(pDuty[playerid] && UserCache[pUID[playerid]][uBelts])
  11469.         format(str, sizeof(str), "Sluzba: ~y~%s~w~, %s", GroupCache[pDuty[playerid]][gName], IsHelmet(playerid) ? ("kask") : ("pasy"));
  11470.         else if(UserCache[pUID[playerid]][uBelts])
  11471.         {
  11472.                 if(IsHelmet(playerid))
  11473.                 str = "kask";
  11474.                 else
  11475.                 str = "pasy";
  11476.         }
  11477.         else if(pDuty[playerid])
  11478.         format(str, sizeof(str), "Sluzba: ~y~%s", GroupCache[pDuty[playerid]][gName]);
  11479.         else
  11480.         str= " ";
  11481.         PlayerTextDrawSetString(playerid, DutyTxd[playerid], str);
  11482.         return PlayerTextDrawShow(playerid, DutyTxd[playerid]);
  11483. }
  11484.  
  11485. public OnVehicleDamageStatusUpdate(vehicleid, playerid)
  11486. {
  11487.         if(!aduty[playerid])
  11488.         {
  11489.                 if(!ClearNicknameColorTimer[playerid])
  11490.                 {
  11491.                         UpdateDynamic3DTextLabelText(pNick[playerid][nID], DAMAGE_COLOR, pNick[playerid][nStr]);
  11492.                         ClearNicknameColorTimer[playerid] = SetTimerEx("ClearNicknameColor", 2500, false, "i", playerid);
  11493.                 }
  11494.         }
  11495.         new Float:damage = GetVehicleSpeed(vehicleid)/2;
  11496.         if(UserCache[pUID[playerid]][uBelts])
  11497.         damage = damage/4;
  11498.         if(UserCache[pUID[playerid]][uHealth] - damage <= 0)
  11499.         {
  11500.                 ResetPlayerWeapons(playerid);
  11501.                 UserCache[pUID[playerid]][uBWReason] = 49;
  11502.                 SendPlayerMe(playerid, "traci przytomność");
  11503.                 new puid = pUID[playerid];
  11504.                 UserCache[puid][uHealth]=1;
  11505.                 SetPlayerCameraPos(playerid, UserCache[puid][uSpawnX], UserCache[puid][uSpawnY], UserCache[puid][uSpawnZ]+10.0);
  11506.                 SetPlayerCameraLookAt(playerid, UserCache[puid][uSpawnX], UserCache[puid][uSpawnY], UserCache[puid][uSpawnZ], CAMERA_CUT);
  11507.                 UserCache[puid][uBW] = 2;
  11508.                 new msg[32];
  11509.                 format(msg, sizeof(msg),  "Stan nieprzytomnosci przez: %d min", UserCache[puid][uBW]);
  11510.                 TextDrawForPlayer(playerid, 2, msg);
  11511.                 for(new i=1; i<LastiUID; i++)
  11512.                         {
  11513.                                 if(ItemCache[i][iOwner] == pUID[playerid])
  11514.                                 {
  11515.                                         if(ItemCache[i][iActive])
  11516.                                         {
  11517.                                                 if(ItemCache[i][iType] == 1)
  11518.                                                 {
  11519.                                                         SetTimerEx("HideWeapon", 1000, false, "ii", ItemCache[i][iUID], playerid);
  11520.                                                 }
  11521.                                         }
  11522.                                 }
  11523.                         }
  11524.                 TogglePlayerControllable(playerid, 0);
  11525.                 UpdatePlayerName(playerid);
  11526.                 UpdatePlayerInfo(playerid);
  11527.                 return 1;
  11528.         }
  11529.         else
  11530.         {
  11531.                 UserCache[pUID[playerid]][uHealth] -= damage;
  11532.                 UserCache[pUID[playerid]][uBWReason] = 49;
  11533.                 SetPlayerHealth(playerid, UserCache[pUID[playerid]][uHealth]);
  11534.         }
  11535.         return 1;
  11536. }
  11537.  
  11538. CMD:apostacie (playerid, params[])
  11539. {
  11540.         new list[5025], info[128];
  11541.         for(new i=1; i<LastUID; i++)
  11542.         {
  11543.                 format(info, sizeof(info), "%d\t%s\n", UserCache[i][uUID], UserCache[i][uName]);
  11544.                 strins(list, info, strlen(list));
  11545.         }      
  11546.         return ShowPlayerDialog(playerid, D_INFO, DIALOG_STYLE_LIST,"Użytkownicy", list, "ok", "");
  11547. }
  11548.  
  11549. CMD:vowner (playerid, params[])
  11550. {
  11551.         if(UserCache[pUID[playerid]][uRank] < ADMINISTRATION)
  11552.         return 1;
  11553.         new vuid, ouid;
  11554.         if(sscanf(params, "ir", vuid, ouid))
  11555.         return SendClientMessage(playerid, COLOR_GRAY, "Poprawne użycie: /vowner [UID pojazdu widocznego pod /v] [ID/Część nazwy gracza]");
  11556.         if(!pUID[ouid])
  11557.         return SendClientMessage(playerid, COLOR_GRAY, "Gracz nie jest zalogowany lub podłączony do serwera.");
  11558.         VehicleCache[vuid][vOwner] = pUID[ouid];
  11559.         new msg[128];
  11560.         format(msg, sizeof(msg), "Podpisano pojazd UID: %d pod postać UID: %d", vuid, ouid);
  11561.         return SendClientMessage(playerid, COLOR_GRAY, msg);
  11562. }
  11563.  
  11564. CMD:pasy (playerid, params[])
  11565. {
  11566.         if(!IsPlayerInAnyVehicle(playerid))
  11567.         return TextDrawForPlayerEx(playerid, 1, "Musisz znajdowac sie w pojezdzie.", 3000);
  11568.         if(IsVehicleSingleTrack(GetVehicleModel(GetPlayerVehicleID(playerid))))
  11569.         {
  11570.                 new uid = pUID[playerid];
  11571.                 if(UserCache[uid][uBelts])
  11572.                 {
  11573.                         UserCache[uid][uBelts] = false;
  11574.                         UpdatePlayerName(playerid);
  11575.                         UpdatePlayerInfo(playerid);
  11576.                         SendPlayerMe(playerid, "zdejmuje kask z glowy.");
  11577.                         RemovePlayerAttachedObject(playerid, 7);
  11578.                         return TextDrawForPlayerEx(playerid, 1, "kask ~r~~h~zdjeto.", 3000);
  11579.                 }
  11580.                 UserCache[uid][uBelts] = true;
  11581.                 UpdatePlayerName(playerid);
  11582.                 UpdatePlayerInfo(playerid);
  11583.                 SendPlayerMe(playerid, "zaklada kask na glowe.");
  11584.                 SetPlayerAttachedObject(playerid, 7, 18978, 2, 0.065999,
  11585.                 0.017000, 0.000000, 91.500000,97.200019,-0.899999, 1.0, 1.0, 1.0, 0, 0);
  11586.                 return TextDrawForPlayerEx(playerid, 1, "kask ~g~~h~zalozono.", 3000);
  11587.         }
  11588.  
  11589.         new uid = pUID[playerid];
  11590.         if(UserCache[uid][uBelts])
  11591.         {
  11592.                 UserCache[uid][uBelts] = false;
  11593.                 UpdatePlayerName(playerid);
  11594.                 UpdatePlayerInfo(playerid);
  11595.                 SendPlayerMe(playerid, "odpina pasy.");
  11596.                 return TextDrawForPlayerEx(playerid, 1, "pasy ~r~~h~odpiete.", 3000);
  11597.         }
  11598.         UserCache[uid][uBelts] = true;
  11599.         UpdatePlayerName(playerid);
  11600.         UpdatePlayerInfo(playerid);
  11601.         SendPlayerMe(playerid, "zapina pasy.");
  11602.         return TextDrawForPlayerEx(playerid, 1, "pasy ~g~~h~zapiete.", 3000);
  11603. }
  11604.  
  11605. public OnPlayerUpdate(playerid)
  11606. {
  11607.         if(pUID[playerid])
  11608.         {
  11609.                 if(UserCache[pUID[playerid]][uAFK])
  11610.                 {
  11611.                         UserCache[pUID[playerid]][uAFK] = false;
  11612.                         PlayerTextDrawHide(playerid, BWTextDraw[playerid]);
  11613.                         UpdatePlayerName(playerid);
  11614.                 }
  11615.                 CallLocalFunction("OnPlayerWeaponChange", "ii", playerid, GetPlayerWeapon(playerid));
  11616.         }
  11617.         return 1;
  11618. }
  11619.  
  11620. CMD:id (playerid, params[])
  11621. {
  11622.         new name[128];
  11623.         if(sscanf(params, "s[128]", name))
  11624.         return SendClientMessage(playerid, COLOR_GRAY, "Poprawne użycie: /id [Nazwa/Część nazwy gracza].");
  11625.         new info[128], list[256] = "ID\tNick\t\n", count;
  11626.         for(new i; i<=GetPlayerPoolSize(); i++)
  11627.         {
  11628.                 if(IsPlayerConnected(i))
  11629.                 {
  11630.                         if(pUID[i])
  11631.                         {
  11632.                                 if(strfind(PlayerName(i), name, true) != -1)
  11633.                                 {
  11634.                                         format(info, sizeof(info), "%d\t%s%s\t\n", i, UserCache[pUID[i]][uRank] ? (GetHexRankColor(UserCache[pUID[i]][uRank])) : "", PlayerName(i));
  11635.                                         strins(list, info, strlen(list));
  11636.                                         count++;
  11637.                                 }
  11638.                         }
  11639.                 }
  11640.         }
  11641.         if(!count)
  11642.         return ShowDialogInfo(playerid, "Brak pasujących wyników.");
  11643.         return ShowPlayerDialog(playerid, D_INFO, DIALOG_STYLE_TABLIST_HEADERS, "Pasujące wyniki:", list, "ok", "");
  11644. }
  11645.  
  11646. public OnPlayerEditAttachedObject(playerid, response, index, modelid, boneid, Float:fOffsetX, Float:fOffsetY, Float:fOffsetZ, Float:fRotX, Float:fRotY, Float:fRotZ, Float:fScaleX, Float:fScaleY, Float:fScaleZ)
  11647. {
  11648.         for(new i=1; i<LastiUID; i++)
  11649.         {
  11650.                 if(ItemCache[i][iState] == 0)
  11651.                 {
  11652.                         if(ItemCache[i][iOwner] == pUID[playerid])
  11653.                         {
  11654.                                 if(ItemCache[i][iType] == 12)
  11655.                                 {
  11656.                                         if(ItemCache[i][iActive])
  11657.                                         {
  11658.                                                 if(ItemCache[i][iVal2] == index)
  11659.                                                 {
  11660.                                                         if(response)
  11661.                                                         {
  11662.                                                                 ItemCache[i][iAttachX] = fOffsetX;
  11663.                                                                 ItemCache[i][iAttachY] = fOffsetY;
  11664.                                                                 ItemCache[i][iAttachZ] = fOffsetZ;
  11665.                                                                 ItemCache[i][iAttachrX] = fRotX;
  11666.                                                                 ItemCache[i][iAttachrY] = fRotY;
  11667.                                                                 ItemCache[i][iAttachrZ] = fRotZ;
  11668.                                                                 ItemCache[i][iSizeX] = fScaleX;
  11669.                                                                 ItemCache[i][iSizeY] = fScaleY;
  11670.                                                                 ItemCache[i][iSizeZ] = fScaleZ;
  11671.                                                                 return ShowDialogInfo(playerid, "Przedmiot doczepiany został ustawiony pomyślnie.");
  11672.                                                         }
  11673.                                                         else
  11674.                                                         {
  11675.                                                                 ItemCache[i][iActive] = 0;
  11676.                                                                 RemovePlayerAttachedObject(playerid, ItemCache[i][iVal2]);
  11677.                                                                 return ShowDialogInfo(playerid, "Edycja przedmiotu doczepianego została anulowana.\nZmiany nie zostały zapisane.");
  11678.                                                         }
  11679.                                                 }
  11680.                                         }
  11681.                                 }
  11682.                         }
  11683.                 }
  11684.         }
  11685.         return 1;
  11686. }
  11687.  
  11688. stock GetWeaponModel(weaponid)
  11689. {
  11690.         switch(weaponid)
  11691.         {
  11692.                 case 1: return 331;
  11693.                 case 2: return 333;
  11694.                 case 3: return 334;
  11695.                 case 4: return 335;
  11696.                 case 5: return 336;
  11697.                 case 6: return 337;
  11698.                 case 7: return 338;
  11699.                 case 8: return 339;
  11700.                 case 9: return 341;
  11701.                 case 10: return 321;
  11702.                 case 11: return 322;
  11703.                 case 12: return 323;
  11704.                 case 13: return 324;
  11705.                 case 14: return 325;
  11706.                 case 15: return 326;
  11707.                 case 16: return 342;
  11708.                 case 17: return 343;
  11709.                 case 18: return 344;
  11710.                 case 22: return 346;
  11711.                 case 23: return 347;
  11712.                 case 24: return 348;
  11713.                 case 25: return 349;
  11714.                 case 26: return 350;
  11715.                 case 27: return 351;
  11716.                 case 28: return 352;
  11717.                 case 29: return 353;
  11718.                 case 30: return 355;
  11719.                 case 31: return 356;
  11720.                 case 32: return 372;
  11721.                 case 33: return 357;
  11722.                 case 34: return 358;
  11723.                 case 35: return 359;
  11724.                 case 36: return 360;
  11725.                 case 37: return 361;
  11726.                 case 38: return 362;
  11727.                 case 39: return 363;
  11728.                 case 40: return 364;
  11729.                 case 41: return 365;
  11730.                 case 42: return 366;
  11731.                 case 43: return 367;
  11732.                 case 46: return 371;
  11733.         }
  11734.         return 0;
  11735. }
  11736.  
  11737. CMD:toggleac (playerid, params[])
  11738. {
  11739.         if(UserCache[pUID[playerid]][uRank] < ADMINISTRATION)
  11740.         return 1;
  11741.         if(ac[playerid])
  11742.         {
  11743.                 ac[playerid] = false;
  11744.                 TextDrawForPlayerEx(playerid, 1, "~r~~h~Przelaczono automatyczny czat.", 3000);
  11745.         }
  11746.         else
  11747.         {
  11748.                 ac[playerid] = true;
  11749.                 TextDrawForPlayerEx(playerid, 1, "~g~~h~Przelaczono automatyczny czat.", 3000);
  11750.         }
  11751.         return 1;
  11752. }
  11753.  
  11754. stock IsVehicleSingleTrack(vehiclemodel)
  11755. {
  11756.         switch(vehiclemodel)
  11757.         {
  11758.                 case 448: return 1;
  11759.                 case 461: return 1;
  11760.                 case 462: return 1;
  11761.                 case 463: return 1;
  11762.                 case 468: return 1;
  11763.                 case 471: return 1;
  11764.                 case 481: return 1;
  11765.                 case 509: return 1;
  11766.                 case 510: return 1;
  11767.                 case 521: return 1;
  11768.                 case 522: return 1;
  11769.                 case 523: return 1;
  11770.                 case 581: return 1;
  11771.                 case 586: return 1;
  11772.         }
  11773.         return 0;
  11774. }
  11775.  
  11776. CMD:kask (playerid, params[])
  11777. {
  11778.         if(!IsVehicleSingleTrack(GetVehicleModel(GetPlayerVehicleID(playerid))))
  11779.         return TextDrawForPlayerEx(playerid, 1, "Nie mozesz uzyc kasku w tym pojezdzie.", 3000);
  11780.         return callcmd::pasy (playerid, params);
  11781. }
  11782.  
  11783. stock IsHelmet(playerid)
  11784. {
  11785.         if(IsVehicleSingleTrack(GetVehicleModel(GetPlayerVehicleID(playerid))))
  11786.         return 1;
  11787.         return 0;
  11788. }
  11789.  
  11790. CMD:wyczysc (playerid, params[])
  11791. {
  11792.         if(UserCache[pUID[playerid]][uRank] != ADMINISTRATION)
  11793.         return 1;
  11794.         new count;
  11795.         for(new i=1; i<LastUID; i++)
  11796.         {
  11797.                 if(UserCache[i][uUID] == pUID[playerid])
  11798.                 continue;
  11799.                 UserCache[i][uRank] = 0;
  11800.                 UserCache[i][uCash] = 0;
  11801.                 UserCache[i][uSP] = 0;
  11802.                 UserCache[i][uBank]  = 0;
  11803.                 UserCache[i][uHealth] = 100.0;
  11804.                 count++;
  11805.         }
  11806.         new msg[128];format(msg, sizeof(msg), "Wyczysczono %d użytkowników.",count);
  11807.         return SendClientMessage(playerid, COLOR_WHITE, msg);
  11808. }
  11809.  
  11810. CMD:sprobuj (playerid, params[])
  11811. {
  11812.         new action[128];
  11813.         if(sscanf(params, "s[128]", action))
  11814.         return SendClientMessage(playerid, COLOR_GRAY, "Poprawne użycie: /sprobuj [sprobuj czynnosci postaci]");
  11815.         new msg[256];
  11816.         new success = random(2);
  11817.         if(UserCache[pUID[playerid]][uSex])
  11818.         {
  11819.                 if(success)
  11820.                 format(msg, sizeof(msg), "* %s odniosła sukces próbując %s. *", RPName(playerid), action);
  11821.                 else
  11822.                 format(msg, sizeof(msg), "* %s zawiodła próbując %s. *", RPName(playerid), action);
  11823.         }
  11824.         else
  11825.         {
  11826.                 if(success)
  11827.                 format(msg, sizeof(msg), "* %s odniósł sukces próbując %s. *", RPName(playerid), action);
  11828.                 else
  11829.                 format(msg, sizeof(msg), "* %s zawiódł próbując %s. *", RPName(playerid), action);
  11830.         }
  11831.         return SendPlayerMessageInRange(playerid, msg, ME_SHADE_1, ME_SHADE_2, ME_SHADE_3, ME_SHADE_4, ME_SHADE_5, ME_SHADE_6);
  11832. }
  11833.  
  11834. public OnRconLoginAttempt(ip[], password[], success)
  11835. {
  11836.         if(!success)
  11837.         {
  11838.                 for(new i; i<=GetPlayerPoolSize(); i++)
  11839.                 {
  11840.                         if(IsPlayerConnected(i))
  11841.                         {
  11842.                                 if(!strcmp(PlayerIP(i), ip, true))
  11843.                                 {
  11844.                                         new msg[128]; format(msg, sizeof(msg), "Kto /rcon login próbuje, banicję otrzymuje! Ban otrzymał: %s", PlayerName(i));
  11845.                                         SendClientMessageToAll(-1, msg);
  11846.                                         return Ban(i);
  11847.                                 }
  11848.                         }
  11849.                 }
  11850.         }
  11851.         return 1;
  11852. }
  11853.  
  11854. CMD:mowner (playerid, params[])
  11855. {
  11856.         new objectid = GetPlayerObjectID(playerid);
  11857.         if(!objectid)
  11858.         return TextDrawForPlayerEx(playerid, 1, "Nie edytujesz zadnego obiektu.", 3000);
  11859.         new ownertype, owner;
  11860.         if(sscanf(params, "ii", ownertype, owner))
  11861.         {
  11862.                 SendClientMessage(playerid, COLOR_GRAY, "Poprawne użycie: /mowner [Rodzaj ownera: 0 - żaden, 1 - grupa, 2 - Ty] [Owner: Jeśli grupa: podaj slot z pod /g]");
  11863.                 return SendClientMessage(playerid, COLOR_GRAY, "Małe wyjaśnienie: Po użyciu komendy, do edycji obiektów i poruszania bram  0 - Każdy może, 1 - Tylko wybrana grupa, 2 - Tylko Ty");
  11864.         }
  11865.         if(ownertype < 0 || ownertype > 2)
  11866.         return SendClientMessage(playerid, COLOR_GRAY, "Owner musi znajdować się w przedziale 0-2.");
  11867.         new objectuid = GetObjectUID(objectid);
  11868.         if(ownertype == 1)
  11869.         {
  11870.                 if(owner == 1)
  11871.                 {
  11872.                         if(UserCache[pUID[playerid]][uGroup] == 0)
  11873.                         return SendClientMessage(playerid, COLOR_GRAY, "Pod tym slotem nie znajduje się żadna grupa.");
  11874.                         else if(UserCache[pUID[playerid]][uGroup])
  11875.                         {
  11876.                                 if(UserCache[pUID[playerid]][uGroupMapper])
  11877.                                 {
  11878.                                         ObjectCache[objectuid][oOwnerType] = 1;
  11879.                                         ObjectCache[objectuid][oOwner] = UserCache[pUID[playerid]][uGroup];
  11880.                                         new msg[128]; format(msg, sizeof(msg), "Podpisano obiekt pod grupę %s (UID: %d)", GroupCache[UserCache[pUID[playerid]][uGroup]][gName],UserCache[pUID[playerid]][uGroup]);
  11881.                                         return SendClientMessage(playerid, COLOR_GRAY, msg);
  11882.                                 }
  11883.                                 return SendClientMessage(playerid, COLOR_GRAY, "Lider wybranej grupy nie nadał Tobie odpowiednich uprawnień do edycji obiektów należących do niej.");
  11884.                         }
  11885.                         if(UserCache[pUID[playerid]][uGroup2] == 0)
  11886.                         return SendClientMessage(playerid, COLOR_GRAY, "Pod tym slotem nie znajduje się żadna grupa.");
  11887.                         else if(UserCache[pUID[playerid]][uGroup2])
  11888.                         {
  11889.                                 if(UserCache[pUID[playerid]][uGroupMapper2])
  11890.                                 {
  11891.                                         ObjectCache[objectuid][oOwnerType] = 1;
  11892.                                         ObjectCache[objectuid][oOwner] = UserCache[pUID[playerid]][uGroup2];
  11893.                                         new msg[128]; format(msg, sizeof(msg), "Podpisano obiekt pod grupę %s (UID: %d)", GroupCache[UserCache[pUID[playerid]][uGroup2]][gName],UserCache[pUID[playerid]][uGroup2]);
  11894.                                         return SendClientMessage(playerid, COLOR_GRAY, msg);
  11895.                                 }
  11896.                                 return SendClientMessage(playerid, COLOR_GRAY, "Lider wybranej grupy nie nadał Tobie odpowiednich uprawnień do edycji obiektów należących do niej.");
  11897.                         }
  11898.                         if(UserCache[pUID[playerid]][uGroup3] == 0)
  11899.                         return SendClientMessage(playerid, COLOR_GRAY, "Pod tym slotem nie znajduje się żadna grupa.");
  11900.                         else if(UserCache[pUID[playerid]][uGroup3])
  11901.                         {
  11902.                                 if(UserCache[pUID[playerid]][uGroupMapper3])
  11903.                                 {
  11904.                                         ObjectCache[objectuid][oOwnerType] = 1;
  11905.                                         ObjectCache[objectuid][oOwner] = UserCache[pUID[playerid]][uGroup3];
  11906.                                         new msg[128]; format(msg, sizeof(msg), "Podpisano obiekt pod grupę %s (UID: %d)", GroupCache[UserCache[pUID[playerid]][uGroup3]][gName],UserCache[pUID[playerid]][uGroup3]);
  11907.                                         return SendClientMessage(playerid, COLOR_GRAY, msg);
  11908.                                 }
  11909.                                 return SendClientMessage(playerid, COLOR_GRAY, "Lider wybranej grupy nie nadał Tobie odpowiednich uprawnień do edycji obiektów należących do niej.");
  11910.                         }
  11911.                 }
  11912.                 ObjectCache[objectuid][oOwnerType] = ownertype;
  11913.                 if(owner == 0)
  11914.                 ObjectCache[objectuid][oOwner] = 0;
  11915.                 if(owner == 2)
  11916.                 ObjectCache[objectuid][oOwner] = pUID[playerid];
  11917.                 return TextDrawForPlayerEx(playerid, 1, "Zmieniono uprawnienia do obiektu.", 3000);
  11918.         }
  11919.         return 1;
  11920. }
  11921.  
  11922. stock DestroyGroup(groupuid)
  11923. {
  11924.         for(new i=1; i<LastdUID; i++)
  11925.         {
  11926.                 if(DoorCache[i][dGroupUID] == groupuid)
  11927.                 {
  11928.                         DoorCache[i][dGroupUID] = 0;
  11929.                 }
  11930.         }
  11931.         new str[128];
  11932.         format(str, sizeof(str), "Grupa %s została usunięta.", GroupCache[groupuid][gName]);
  11933.         for(new i=1; i<LastUID; i++)
  11934.         {
  11935.                 if(UserCache[i][uGroup] == groupuid)
  11936.                 {
  11937.                         UserCache[i][uGroup] = 0;
  11938.                         for(new j; j<=GetPlayerPoolSize(); j++)
  11939.                         {
  11940.                                 if(IsPlayerConnected(j))
  11941.                                 {
  11942.                                         if(pUID[j] == UserCache[i][uUID])
  11943.                                         {
  11944.                                                 SendClientMessage(j, COLOR_GRAY, str);
  11945.                                         }
  11946.                                 }
  11947.                         }
  11948.                 }
  11949.                 if(UserCache[i][uGroup2] == groupuid)
  11950.                 {
  11951.                         UserCache[i][uGroup2] = 0;
  11952.                         for(new j; j<=GetPlayerPoolSize(); j++)
  11953.                         {
  11954.                                 if(IsPlayerConnected(j))
  11955.                                 {
  11956.                                         if(pUID[j] == UserCache[i][uUID])
  11957.                                         {
  11958.                                                 SendClientMessage(j, COLOR_GRAY, str);
  11959.                                         }
  11960.                                 }
  11961.                         }
  11962.                 }
  11963.                 if(UserCache[i][uGroup3] == groupuid)
  11964.                 {
  11965.                         UserCache[i][uGroup3] = 0;
  11966.                         for(new j; j<=GetPlayerPoolSize(); j++)
  11967.                         {
  11968.                                 if(IsPlayerConnected(j))
  11969.                                 {
  11970.                                         if(pUID[j] == UserCache[i][uUID])
  11971.                                         {
  11972.                                                 SendClientMessage(j, COLOR_GRAY, str);
  11973.                                         }
  11974.                                 }
  11975.                         }
  11976.                 }
  11977.         }
  11978.         GroupCache[groupuid][gState] = 1;
  11979.         return 1;
  11980. }
  11981.  
  11982. cmd:gclear (playerid, params[])
  11983. {
  11984.         for(new i=1; i<LastgUID; i++)
  11985.         {
  11986.                 DestroyGroup(i);
  11987.         }
  11988. }
  11989.  
  11990. stock SendMessageToAdmins(message[])
  11991. {
  11992.         for(new i=0; i<=GetPlayerPoolSize();i++)
  11993.         {
  11994.                 if(IsPlayerConnected(i))
  11995.                 {
  11996.                         if(UserCache[pUID[i]][uRank] >= ADMINISTRATION)
  11997.                         {
  11998.                                 SendClientMessage(i, COLOR_DARKRED, message);
  11999.                         }
  12000.                 }
  12001.         }
  12002.         return 1;
  12003. }
  12004.