Guest User

hhl doc

a guest
Jan 22nd, 2011
5,440
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 14.89 KB | None | 0 0
  1. все скрипты должны иметь расширение файла .bot
  2. F2 - старт скрипта test.bot, если уже выполняется ничего не произойдет. надо сначала остановить работающий
  3. F3 - стоп выполнения любого скрипта
  4. :bot <name> - команда набирается просто в окне, не надо ни в чат ни куда либо. это системная консоль хнх включается по символу двоеточие ":". имя указывается без расширения .bot
  5.  
  6. :set_bot1 <NAME>
  7. :set_bot2 <NAME>
  8. ставит имена скриптов для F1 и F2 соответственно.
  9.  
  10. соответственно на F1 F2 вешаем имена скриптов
  11. ****** ОПИСАНИЕ ЯЗЫКА ******
  12. язык основан на Си. синтаксис аналогичен.
  13.  
  14. все ключевые операторы и знаки регистрозависимы! работают только в нижнем регистре! (if, while, return, break...)
  15. переменные. пока только одного типа int
  16. массивы. поддерживаются одномерные массивы
  17. операции: && ! || + - / * (-) < > != == >= <= (все с корректными приоритетами)
  18. применима префиксная и постфиксная запись к переменным целого типа (a++, --b)
  19. функции. объявляются аналогично Си. одно глобальное пространство имен. фукнции возвращают пока только int или ничего (нет return).
  20. можно переопределять фукнции с разными параметрами. т.н. overload
  21. инклуд. можно инклудить файлы. механизм аналогичен Си. директива "#include <name>"  указываются всегда в начале файла
  22. нужный файл просто встраивается на место директивы
  23. блоки. блоки операторов огораживаются {} допускается произвольная вложенность. пространство имен внутри каждого блока локализуется
  24.  
  25. функция void main() - является точкой входа в скрипт. ее наличие обязательно
  26.  
  27. sleep(int time) - приостановить выполнение скрипта на указанное количество милисекунд
  28. print(<что-то>) - вывести в консоль сообщение - либо число либо строку
  29. exit - принудительный выход из скрипта
  30. logout - выход из скрипта и логаут чара
  31. say(string msg) - сказать в area чат
  32.  
  33. специфичные операторы (интегрированы в клиент хнх):
  34.  
  35. void do_click(int objid, int btn, int mod)
  36.     послать клик по объекту на карте. объект указывается по objid. кнопка мыши btn (1 - левая. 3 - правая). дополнительные флаги mod (1-шифт. 2-ктрл. 4-альт. 8-вин)
  37. void map_click(int x, int y, int btn, int mod)
  38.     простой клик по карте. как обычно щелкаем мышью. только координаты относительно игрока
  39. void map_abs_click(int x, int y, int btn, int mod)
  40.     абсолютный клик по карте. как обычно щелкаем мышью. указываем координаты мира
  41. void map_move_step(int x, int y)
  42.     передвинутся на указанное количество тайлов от текущей позиции игрока, фактически это map_click всегда с левой кнопкой
  43. void map_move(int objid, int x, int y)
  44.     бежать к указанной точке. объект и оффсет от него в координатах карты. (1 тайл = 11 точек)
  45. int my_coord_x()
  46. int my_coord_y()
  47.     получить мои мировые координаты (абсолютные)
  48. void map_interact_click(int x, int y, int mod)
  49. void map_interact_click(int objid, int mod)
  50.     кликнуть по карте (взаимодействие, чтото держим в руках) координаты указываются в тайлах от текущей позиции игрока
  51. void map_abs_interact_click(int x, int y, int mod)
  52.     то же самое только указываем абсолютные координаты
  53. void map_place(int x, int y, int btn, int mod)
  54.     поставить объек который хотим построить в указанные координаты относительно игрока. координаты задаем в тайлах
  55. void select_context_menu(string option_name)
  56.     выбрать опцию в контекстном выпадающем меню над объектом
  57. void send_action(string name)
  58.     послать действие из меню внизу справа, с одним параметром. параметр видно при щелчке на кнопку в логе по ф12
  59.     laystone - укладка камней. асфальтирование
  60.     carry - перетаскивание объектов (lift)
  61. void send_action(string name, string name2)
  62.     послать действие из меню внизу справа, если нужно указывать 2 параметра
  63.    
  64. int is_cursor(string cursor_name)
  65.     проверяет стоит ли указанный курсор в данный момент
  66.     dig - лопата
  67.     chi - курсор пипетка. появляется когда хотим чето перетаскивать. и надо указать объект
  68. void drop(int mod)
  69.     дропнуть вещь в руках на землю
  70.    
  71. int input_get_object(string msg);
  72.     сказать игроку выбрать объект мышкой. все объекты подсвечиваются зеленым. пользователь должен щелкнуть на какой нить объект тогда управление вернется в скрипт
  73.     msg - выведет сообщение красным цветом на экран
  74. int find_object_by_name(string name, int radius)
  75.     найти объект по имени, проверяется вхождение имени в имя ресурса, радиус в тайлах
  76. int find_object_by_type(string type, int radius)
  77.     найти объект по типу, радиус в тайлах. доступные типы:
  78.         tree - дерево
  79. int find_map_object(String name, int radius, int x, int y)
  80.     найти объект по оффсету от себя в заданном радиусе и с заданным именем. ВНИМАНИЕ!!! радиус в точках карты. отступ в тайлах
  81.     если имя не указано (пустая строка) ищет любой объект в заданном радиусе
  82.  
  83. int have_inventory(string name)
  84.     проверить наличие инвентаря по имени
  85. void open_inventory()
  86.     открыть мой инвентарь
  87. void set_inventory(string name)
  88.     поставить текущий инвентарь, после автоматически сбрасывается итератор
  89. void reset_inventory()
  90.     сбросить итератор итемов в инвентаре
  91. int next_item()
  92.     вызывать итератор для установки итема
  93.     0 - если вещи нет (прошли весь список). 1 если есть
  94. int get_items_count()
  95.     получить количество вещей в списке
  96. void set_item_index(int index)
  97.     установить текущую вещь по индексу в списке
  98. void set_item_drag()
  99.     установить текущей вещью - то что держим в руках если оно есть. (чтобы получить ее параметры)
  100. void set_item_equip(int index)
  101.     установить текущей вещью - вещь из инвентаря. указываем индекс (чтобы получить ее параметры)
  102. получаем параметры текущей вещи установленной итератором
  103.     int is_item_name(string name) - 0 или 1 совпадает ли имя вещи
  104.     int is_item_tooltip(string name) - 0 или 1 совпадает ли тултип (всплывающая подсказка на вещи)
  105.     int item_quality() - возвращает качество
  106.     void item_click(string action) - щелчок по вещи
  107.     void item_click(string action, int mod) - щелчок по вещи, с модификатором клавиатуры
  108.         команды (action):
  109.             take - взять вещь
  110.             itemact - взаимодействие на вещь. чтото держим в руках и щелкаем правой кнопкой по вещи
  111.             transfer - переместить. щелчек лкм с зажатым шифтом
  112.             iact - фактически правый щелчек по вещи. для вызова контекстного меню
  113.             drop - дропнуть вещь на землю. щелчек лкм с зажатым контролом 
  114.     int item_coord_x() - координаты вещи в инвентаре
  115.     int item_coord_y()
  116.     int item_num() - получить цифру возле итема. пример: стадия червяков шелкопрядов. рисуетя вверху слева у вещи.
  117.     int item_meter() - получить прогресс итема. пример: сушка. круглешок на шкуре. принимаем значения от 0 до 100.
  118.     void item_drop(int x, int y) - положить вещь которую держим в руках в текущий инвентарь установленный set_inventory. в указанные координаты. нумерация клеток с нуля
  119. void inventory(string name, int x, int y, string action)
  120. void inventory(string name, int x, int y, string action, int mod) - тоже самое но с модификатором клавиатуры
  121.     дать команду вещи в инвентаре с указаныым именем. по указанным координатам вещи в этом инвентаре.
  122.             take - взять вещь
  123.             itemact - взаимодействие на вещь. чтото держим в руках и щелкаем правой кнопкой по вещи
  124.             transfer - переместить. щелчек лкм с зажатым шифтом
  125.             iact - фактически правый щелчек по вещи. для вызова контекстного меню
  126.             drop - дропнуть вещь на землю. щелчек лкм с зажатым контролом 
  127.  
  128. void item_drop_to_inventory(String name, int x, int y)
  129.     дропнуть вещь в указанный инвентарь, допустим когда надо из моего инвентаря не закрывая его дропнуть в шкаф или ящик
  130. int check_craft(string wnd)
  131.     проверить есть ли окно крафта с указанным заголовком
  132. void wait_craft(string wnd)
  133.     подождать появления и готовности окна с указанным заголовком
  134. void craft(int all)
  135.     скрафтить вещь. all - 0 или 1. если 1 - то крафтим все. если 0 только одну вещь. перед крафтом надо каким то образом открыть окно крафта
  136. void equip(int slot, string action)
  137.     дать команду в эквип (одевалку), указываем какому слоту даем команду и саму команду
  138.     слоты: hh_slots.png
  139.     команды:
  140.         take - взять вещь из слота
  141.         itemact - взаимодействие на вещь. чтото держим в руках и щелкаем правой кнопкой по вещи
  142.         transfer - переместить. щелчек лкм с зажатым шифтом
  143.         iact - фактически правый щелчек по вещи. для вызова контекстного меню
  144.         drop - дропнуть вещь которую держим в руках в указанный слот.
  145.        
  146. void render_mode(int enabled)
  147.     включить/выключить (0 или 1) рендер в клиенте. нужно для экономии ресурсов
  148.    
  149. int get_object_blob(int id, int index)
  150.     получить данные из мессаги объекта. именно так задаются стадрии роста ( пример: get_object_blob(34676844, 0) вернет стадию роста указанного объекта если там есть данные. либо вернет 0)
  151.  
  152. void reset_buff()
  153.     сбросить итератор бафов
  154. int next_buff()
  155.     перейти на следующий элемент баф листа. вернет либо 0 если уже конец. либо 1 если перешли на след бафф
  156. int buff_meter()
  157.     вернет показатель шкалы под баффом (от 0 до 100)
  158. int buff_time_meter()
  159.     вернет оставшееся время до истечения баффа (от 0 до 100), чем ближе к 0 тем меньше времени осталось
  160. int is_buff_name(string name)
  161.     проверить имя баффа на вхождение строки. вернет 0 или 1
  162. void build_click()
  163.     нажать кнопку строительства в окошке билда
  164.    
  165. игровые переменные:
  166.     int HourGlass - 0 или 1 - есть песочные часы или нет
  167.     int Hungry - абсолютное значение голода
  168.     int HP - хп
  169.     int Stamina - стамина
  170.     int PlayerID - ид моего чара
  171.     int Moving - 0 или 1 двигается ли мой персонаж
  172.     int ContextMenuReady - 0 или 1 готово ли контекстное меню к работе (полностью раскрыто и готово к приему команды)
  173.     int DraggingItem - 0 или 1 есть ли вещь в руках. перетаскиваем ли чего нибудь. НЕ над чаром. а в руках. то что бегает за курсором.
  174.     int CraftReady - 0 или 1 готово ли окно крафта к приему команды
  175.     int BuildReady - есть ли окно билда чего либо. 0 или 1
Advertisement
Add Comment
Please, Sign In to add comment