Advertisement
Guest User

d

a guest
Jan 22nd, 2018
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 14.60 KB | None | 0 0
  1. {$CLEO}
  2. {$INCLUDE SF}
  3. 0000:
  4. repeat
  5. wait 0
  6. until 0AFA:
  7. 0BE3: raknet setup_incoming_rpc_hook @hook
  8.  
  9. while true
  10. wait 0
  11.     IF 0ADC: test_cheat "1" // frisk key
  12.     then
  13.         0AC8: 15@ = allocate_memory_size 64
  14.         0AB1: call @nearid 0 0@ 19@
  15.         if 0B24: samp 8@ = get_player_struct_ptr 19@    
  16.         then
  17.             0A8D: 8@ = read_memory 8@ size 4 virtual_protect 0
  18.             0C0C: 8@ = struct 8@ offset 0xB3 size 2 // che za adress?
  19.             if 8@ == true
  20.             then
  21.                 24@ = 1
  22.                 0AF9: "/frisk %d" 19@
  23.             else
  24.                 0af8: "{FF3300}x{AFAFAF} Игрок в маске." 0xAFAFAF
  25.             end
  26.             wait 2000
  27.             24@ = 0
  28.         end
  29.     end
  30. end
  31.  
  32. :hook
  33. 0BE5: raknet 10@ = get_hook_param PARAM_PACKETID
  34. IF AND
  35. 0039: 24@ == 1
  36. 0039: 10@ == 93
  37.     THEN
  38.     0BE5: raknet 2@ = get_hook_param PARAM_BITSTREAM
  39.     0BE7: raknet 3@ = bit_stream_read 2@ type BS_TYPE_INT
  40.     0BE7: raknet 4@ = bit_stream_read 2@ type BS_TYPE_INT
  41.     0AC8: 5@ = allocate_memory_size 260
  42.     0BE8: raknet bit_stream 2@ read_array 5@ size 4@
  43.     0C0D: struct 5@ offset 4@ size 1 = 0
  44.     IF 0C29: 6@ = stristr string1 5@ string2 "Наркотики"  
  45.     THEN
  46.         say "/su %d Наркотики" 19@
  47.         24@ = 0
  48.     END
  49.     free 5@
  50. END
  51. 0BE0: raknet hook_ret TRUE
  52.  
  53. :nearid
  54. 3@ = 1000.0
  55. 4@ = 0xFFFFFF
  56. 0A8D: 0@ = read_memory 0xB74490 size 4 virtual_protect 0
  57. 0@ += 4
  58. 0A8D: 0@ = read_memory 0@ size 4 virtual_protect 0
  59. for 1@ = 0 to 35584 step 0x100
  60.     0A8D: 2@ = read_memory 0@ size 1 virtual_protect 0
  61.     0@++
  62.     if and
  63.         2@ >= 0x00
  64.         2@ < 0x80
  65.     then
  66.         005A: 2@ += 1@
  67.         if or
  68.             003C: $PLAYER_ACTOR == 2@
  69.             856D: NOT actor 2@ defined
  70.         then continue
  71.         end
  72.         0AB1: call @dist 1 remote_player_handle 2@ retr_dist_to 5@
  73.         if 0025: 3@ > 5@
  74.         then
  75.             0087: 3@ = 5@
  76.             0085: 4@ = 2@
  77.         end
  78.     end
  79. end
  80. if 4@ = SAMP.GetSAMPPlayerIDByActorHandle(4@)
  81. then
  82.     0485:  return_true
  83. else
  84.     059A:  return_false
  85. end
  86. 0AB2: ret 2 3@ 4@
  87.  
  88. :dist
  89. Actor.StorePos(0@, 1@, 2@, 3@)
  90. Actor.StorePos($PLAYER_ACTOR, 4@, 5@, 6@)
  91. 050A: 7@ = distance_between_XYZ 4@ 5@ 6@ and_XYZ 1@ 2@ 3@
  92. 0AB2: ret 1 7@
  93.  
  94.  
  95.  
  96.  
  97. ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  98. ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  99. ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  100. ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  101. ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  102. /////////////////////////////////////////sand//////////////////////////////////////////////////////////////////////////////
  103. ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  104. ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  105. ///////////////////////////////////////////////////////////////////////////////////////////////////gbljh///////////////////
  106. ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  107. ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  108. ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  109.  
  110.  
  111. // MAPC x sand
  112.  
  113.  
  114. { ===========================================
  115.  
  116. 0@ - дистанция, не используется
  117. 1@ - id
  118. 2@ - диалог -> кнопка
  119. 3@ - диалог -> пункт
  120. 4@ - итератор
  121. 8@ - структура игрока
  122. 9@ - клавиша для frisk          // вырезано
  123. 10@ - клавиша для выдачи звезд  // вырезано
  124. 11@ - ник
  125. 12@ - заголовок диалога
  126. 13@ - контент диалога
  127.  
  128. =========================================== }
  129.  
  130.  
  131. {$CLEO}
  132. 0000:
  133.  
  134. repeat
  135.     wait 0
  136. until samp.Available()
  137. alloc 12@ 64
  138.  
  139. 0b34: "rpd" @rpd
  140. 0b34: "pd" @cmd
  141.  
  142. while true
  143. wait 0
  144. if 8B21: not samp is_chat_opened
  145. then
  146. if 0ADC: test_cheat "1" // frisk key
  147. then
  148. 0AB1: call @nearid 0 0@ 1@
  149. 0B24: samp 8@ = get_player_struct_ptr 1@
  150. if 8@ <> 0
  151. then
  152. 0A8D: 8@ = read_memory 8@ size 4 virtual_protect 0
  153. 0C0C: 8@ = struct 8@ offset 0xB3 size 2
  154. if 8@ == true
  155. then
  156. 0AF9: "/frisk %d" 1@
  157. else
  158. 0af8: "{FF3300}x{AFAFAF} Игрок в маске." 0xAFAFAF
  159. end
  160. end
  161.  
  162. else if 0ADC: test_cheat "P" // menu key
  163. then
  164. 0AB1: call @nearid 0 0@ 1@
  165. 0B24: samp 8@ = get_player_struct_ptr 1@
  166. if 8@ <> 0
  167. then
  168. 0A8D: 8@ = read_memory 8@ size 4 virtual_protect 0
  169. 0C0C: 8@ = struct 8@ offset 0xB3 size 2
  170. if 8@ == true
  171. then
  172. 0B36: samp 11@ = get_player_nickname 1@
  173. format 12@ "Наказание для: %s[%d]" 11@ 1@
  174. 0AC6: 13@ = label @dialog offset
  175. 0B3B: samp show_dialog id 2018 caption 12@ text 13@ button_1 "Наказать" button_2 "Закрыть" style 2
  176. else
  177. 0af8: "{FF3300}x{AFAFAF} Игрок в маске." 0xAFAFAF
  178. end
  179. end
  180.                
  181. else if 0ADC: test_cheat "2" // incar key
  182. then
  183. 0AB1: call @nearid 0 0@ 1@
  184. 0B24: samp 8@ = get_player_struct_ptr 1@
  185. if 8@ <> 0
  186. then
  187. 0A8D: 8@ = read_memory 8@ size 4 virtual_protect 0
  188. 0C0C: 8@ = struct 8@ offset 0xB3 size 2
  189. if 8@ == true
  190. then
  191. 0AF9: "/incar %d" 1@
  192. else
  193. 0af8: "{FF3300}x{AFAFAF} Игрок в маске." 0xAFAFAF
  194. end
  195. end
  196.  
  197. else if 0ADC: test_cheat "3" // take d/m key
  198. then
  199. 0AB1: call @nearid 0 0@ 1@
  200. 0B24: samp 8@ = get_player_struct_ptr 1@
  201. if 8@ <> 0
  202. then
  203. 0A8D: 8@ = read_memory 8@ size 4 virtual_protect 0
  204. 0C0C: 8@ = struct 8@ offset 0xB3 size 2
  205. if 8@ == true
  206. then
  207. 0AF9: "/take drugs %d" 1@
  208. 0AF9: "/take materials %d" 1@
  209. else
  210. 0af8: "{FF3300}x{AFAFAF} Игрок в маске." 0xAFAFAF
  211. end
  212. end
  213.  
  214. else if 0ADC: test_cheat "0" // take w key
  215. then
  216. 0AB1: call @nearid 0 0@ 1@
  217. 0B24: samp 8@ = get_player_struct_ptr 1@
  218. if 8@ <> 0
  219. then
  220. 0A8D: 8@ = read_memory 8@ size 4 virtual_protect 0
  221. 0C0C: 8@ = struct 8@ offset 0xB3 size 2
  222. if 8@ == true
  223. then
  224. 0AF9: "/take weapons %d" 1@
  225. else
  226. 0af8: "{FF3300}x{AFAFAF} Игрок в маске." 0xAFAFAF
  227. end
  228. end
  229. end
  230. end
  231. end
  232. end
  233. end
  234. end
  235.  
  236.    
  237.     IF 0B3C:  samp is_dialog_responded id 2018 button 2@ list_item 3@ input_text 0
  238.     THEN
  239.         IF 2@ == 1
  240.         THEN
  241.             IF 3@ == 0
  242.             THEN
  243.                 0AF9: "/su %d Наркотики" 1@                      
  244.             END
  245.             IF 3@ == 1
  246.             THEN
  247.                 0AF9: "/su %d Материалы" 1@
  248.             END
  249.             IF 3@ == 2
  250.             THEN
  251.                 0AF9: "/su %d Наркотики" 1@
  252.                 0AF9: "/su %d Материалы" 1@
  253.             END
  254.             IF 3@ == 3
  255.             THEN
  256.                 0AF9: "/su %d Нападение на гражданского" 1@
  257.                 0AF9: "/su %d Нападение на гражданского" 1@
  258.             END
  259.             IF 3@ == 4
  260.             THEN
  261.                 for 4@ = 0 to 2
  262.                     0AF9: "/su %d Нападение на СПО" 1@
  263.                 end
  264.             END
  265.             IF 3@ == 5
  266.             THEN
  267.                 for 4@ = 0 to 3
  268.                     0AF9: "/su %d Убийство гражданского" 1@
  269.                 end
  270.             END
  271.             IF 3@ == 6
  272.             THEN
  273.                 for 4@ = 0 to 5
  274.                     0AF9: "/su %d Убийство СПО" 1@
  275.                 end
  276.             END
  277.             IF 3@ == 7
  278.             THEN
  279.                 0AF9: "/su %d Угон Т/С у СПО" 1@
  280.                 0AF9: "/su %d Угон Т/С у СПО" 1@
  281.             END                
  282.             IF 3@ == 8
  283.             THEN
  284.                 0AF9: "/su %d Угон Т/С у гражданского" 1@
  285.             END
  286.             IF 3@ == 9
  287.             THEN
  288.                 for 4@ = 0 to 3
  289.                     0AF9: "/su %d Взятка" 1@
  290.                 end
  291.             END
  292.             IF 3@ == 10
  293.             THEN
  294.                 for 4@ = 0 to 5
  295.                     0AF9: "/su %d Терроризм/Захват" 1@
  296.                 end
  297.             END
  298.             IF 3@ == 11
  299.             THEN
  300.                 for 4@ = 0 to 5
  301.                     0AF9: "/su %d Проникновение" 1@
  302.                 end
  303.             END
  304.             IF 3@ == 12
  305.             THEN
  306.                 0AF9: "/su %d Продажа наркотиков/материалов" 1@
  307.                 0AF9: "/su %d Продажа наркотиков/материалов" 1@
  308.             END
  309.             IF 3@ == 13
  310.             THEN
  311.                 0AF9: "/su %d Нахождение у наркопритона" 1@
  312.             END
  313.             IF 3@ == 14
  314.             THEN
  315.                 0AF9: "/su %d Ограбление гражданского" 1@
  316.                 0AF9: "/su %d Ограбление гражданского" 1@  
  317.             END
  318.             IF 3@ == 15
  319.             THEN
  320.                 for 4@ = 0 to 3
  321.                     0AF9: "/su %d Ограбление СПО" 1@
  322.                 end
  323.             END
  324.             IF 3@ == 16
  325.             THEN
  326.                 0AF9: "/su %d Изнасилование гражданского" 1@
  327.                 0AF9: "/su %d Изнасилование гражданского" 1@
  328.             END
  329.             IF 3@ == 17
  330.             THEN
  331.                 for 4@ = 0 to 4
  332.                     0AF9: "/su %d Изнасилование СПО" 1@
  333.                 end
  334.             END
  335.             IF 3@ == 18
  336.             THEN
  337.                 0AF9: "/su %d Проституция" 1@
  338.                 0AF9: "/su %d Проституция" 1@
  339.             END
  340.             IF 3@ == 19
  341.             THEN
  342.                 0AF9: "/su %d Нарушение ПДД" 1@
  343.             END
  344.             IF 3@ == 20
  345.             THEN
  346.                 0AF9: "/su %d Оскорбление гражданского" 1@
  347.             END
  348.             IF 3@ == 21
  349.             THEN
  350.                 for 4@ = 0 to 5
  351.                     0AF9: "/su %d Оскорбление СПО" 1@
  352.                 end
  353.             END
  354.             IF 3@ == 22
  355.             THEN
  356.                 for 4@ = 0 to 4
  357.                     0AF9: "/su %d Хулиганство (/piss)" 1@
  358.                 end
  359.             END
  360.             IF 3@ == 23
  361.             THEN
  362.                 for 4@ = 0 to 2
  363.                     0AF9: "/su %d Уход/неподчинение СПО" 1@
  364.                 end
  365.             END
  366.             IF 3@ == 24
  367.             THEN
  368.                 for 4@ = 0 to 2
  369.                     0AF9: "/su %d Стрельба в общественном месте" 1@
  370.                 end
  371.             END
  372.         END
  373.     END
  374. end
  375.  
  376. :cmd
  377. 0B35: samp 0@ = get_last_command_params
  378. IF 0AD4: 33@ = scan_string 0@ format "%d" 1@
  379. THEN
  380.     IF 0B23:  samp is_player_connected 1@
  381.     THEN
  382.         0AC6: 30@ = label @dialog offset
  383.         alloc 29@ 30
  384.         0B36: samp 28@ = get_player_nickname 1@
  385.         format 29@ "Наказание для: %s[%d]" 28@ 1@
  386.         0B3B: samp show_dialog id 2018 caption 29@ text 30@ button_1 "Наказать" button_2 "Закрыть" style 2
  387.         free 29@
  388.     ELSE
  389.         chatmsg "{FF3300}x{AFAFAF} Игрока с ID %d нет на сервере." color 11513775 1@
  390.     END
  391. ELSE
  392.     chatmsg "{FF3300}x{AFAFAF} Не введен ID игрока." color 11513775
  393. END
  394. 0B43: samp cmd_ret
  395.  
  396. // не трогать
  397. :nearid
  398. 3@ = 1000.0
  399. 4@ = 0xFFFFFF
  400. 0A8D: 0@ = read_memory 0xB74490 size 4 virtual_protect 0
  401. 0@ += 4
  402. 0A8D: 0@ = read_memory 0@ size 4 virtual_protect 0
  403. for 1@ = 0 to 35584 step 0x100
  404.     0A8D: 2@ = read_memory 0@ size 1 virtual_protect 0
  405.     0@++
  406.     if and
  407.         2@ >= 0x00
  408.         2@ < 0x80
  409.     then
  410.         005A: 2@ += 1@
  411.         if or
  412.             003C: $PLAYER_ACTOR == 2@
  413.             856D: NOT actor 2@ defined
  414.         then continue
  415.         end
  416.    
  417.         0AB1: call @dist 1 remote_player_handle 2@ retr_dist_to 5@
  418.         if 0025: 3@ > 5@
  419.         then
  420.             0087: 3@ = 5@
  421.             0085: 4@ = 2@
  422.         end
  423.     end
  424. end
  425. if 4@ = SAMP.GetSAMPPlayerIDByActorHandle(4@)
  426. then
  427.     0485:  return_true
  428. else
  429.     059A:  return_false
  430. end
  431. 0AB2: ret 2 3@ 4@
  432. :dist
  433. Actor.StorePos(0@, 1@, 2@, 3@)
  434. Actor.StorePos($PLAYER_ACTOR, 4@, 5@, 6@)
  435. 050A: 7@ = distance_between_XYZ 4@ 5@ 6@ and_XYZ 1@ 2@ 3@
  436. 0AB2: ret 1 7@
  437.  
  438.  
  439. :rpd
  440. 0AF8: samp add_message_to_chat "Скрипт {00FF00}pd.cs {ffffff}перезагружен" color -1  
  441. 0A92: "pd.cs" // точное название скрипта  
  442. 0A93: end_custom_thread
  443. cmdret
  444.  
  445.  
  446. :dialog
  447. hex
  448. "{7cfc00}Хранение наркотиков — {FF0000}(1 звезда)" A
  449. "{7cfc00}Хранение материалов — {FF0000}(1 звезда)" A
  450. "{7cfc00}Хранение нарко + маты — {FF0000}(2 звезды)" A
  451. "{7cfc00}Напад на гр. — {FF0000}(2 звезды)" A
  452. "{7cfc00}Напад на СПО. — {FF0000}(3 звезды)" A
  453. "{7cfc00}Килл гр. — {FF0000}(4 звезды)" A
  454. "{7cfc00}Килл СПО. — {FF0000}(6 звезд)" A
  455. "{7cfc00}Угон Т/С у СПО. — {FF0000}(2 звезды)" A
  456. "{7cfc00}Угон Т/С у гр. — {FF0000}(1 звезда)" A
  457. "{7cfc00}Взятка — {FF0000}(4 звезды)" A
  458. "{7cfc00}Терроризм — {FF0000}(6 звезд)" A
  459. "{7cfc00}Проникновение — {FF0000}(6 звезд)" A
  460. "{7cfc00}Продажа нарко/матов — {FF0000}(2 звезды)" A
  461. "{7cfc00}Нахождение у наркопритона — {FF0000}(1 звезда)" A
  462. "{7cfc00}Граб гр. — {FF0000}(2 звезды)" A
  463. "{7cfc00}Граб СПО. — {FF0000}(4 звезды)" A
  464. "{7cfc00}Изнасилование гр. — {FF0000}(2 звезды)" A
  465. "{7cfc00}Изнасилование СПО. — {FF0000}(5 звезд)" A
  466. "{7cfc00}Проституция — {FF0000}(2 звезды)" A
  467. "{7cfc00}Нарушение ПДД — {FF0000}(1-2 звезд)" A
  468. "{7cfc00}Оскорбление гр. — {FF0000}(1 звезд)" A
  469. "{7cfc00}Оскорбление СПО. — {FF0000}(6 звезд)" A
  470. "{7cfc00}Хулиганство (/piss) — {FF0000}(6 звезд)" A
  471. "{7cfc00}Уход/неподчинение — {FF0000}(3 звезды)" A
  472. "{7cfc00}Стрельба в общ. месте— {FF0000}(3 звезды)" 00
  473. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement