lenz 0 Posted December 29, 2016 Хочу сделать мод но не умею ) И в программировании не силен, если кто нибудь сможет помочь буду признателен. Суть мода (скорее даже не мода в целом ) повторить реализацию подсветки клавиатуры от алиенвара. Тестовый блок для управления подсветкой уже готов. Теперь мне нужно каким то образом от танков получить данные о состоянии здоровья на ком порт. То есть принцип мода примитивный и простой, начался бой выкинули на ком порт два числа, текущее ХП и максимальное ХП. А на ком порту будет висеть ардуина которая банально получив два числа будет включать ту или иную подсветку, а если ХП критичное тихонько моргать красным, убили, подсветка совсем вырубилась. Quote Share this post Link to post Short link Share on other sites
Olegansv 10 #372355 Posted December 29, 2016 (edited) Делал когда-то подобное, только выводил ХП на семисегментные индикаторы. 'Python' import os import BigWorld import gui.Scaleform.daapi.view.battle.shared.damage_panel as damage_panel port = 'COM5' ser = os.open(port, os.O_RDWR) _old_updateHealth = damage_panel.DamagePanel._updateHealth def _new_updateHealth(self, health): _old_updateHealth(self, health) hp = str(health) if len(hp) == 3: hp = '?' + hp elif len(hp) == 2: hp = '??' + hp elif len(hp) == 1: hp = '???' + hp elif len(hp) == 0: hp = '????' os.write(ser, '<%s>' % (speed)) damage_panel.DamagePanel._updateHealth = _new_updateHealth 'Arduino' int latchPin = 2; //ST_CP int dataPin = 3; //DS int clockPin = 4; //SH_CP char ser; byte num; byte disabled_segm = 0b00000000; byte none = 0b10000000; byte number[10] = { 0b01110111, 0b00010100, 0b10110011, 0b10110110, 0b11010100, 0b11100110, 0b11100111, 0b00110100, 0b11110111, 0b11110110, }; void setup() { Serial.begin(19200); Serial.setTimeout(0); pinMode(latchPin, OUTPUT); pinMode(clockPin, OUTPUT); pinMode(dataPin, OUTPUT); digitalWrite(latchPin, LOW); shiftOut(dataPin, clockPin, MSBFIRST, none); shiftOut(dataPin, clockPin, MSBFIRST, none); shiftOut(dataPin, clockPin, MSBFIRST, none); shiftOut(dataPin, clockPin, MSBFIRST, none); digitalWrite(latchPin, HIGH); } void loop() { if (Serial.available() > 0) { ser = Serial.read(); if (ser == '<') //[<] { digitalWrite(latchPin, LOW); } else if (ser == '>') //[>] { digitalWrite(latchPin, HIGH); } else if (ser == '?') //[?] { num = disabled_segm; } else if (ser == '0') //[0] { num = number[0]; } else if (ser == '1') //[1] { num = number[1]; } else if (ser == '2') //[2] { num = number[2]; } else if (ser == '3') //[3] { num = number[3]; } else if (ser == '4') //[4] { num = number[4]; } else if (ser == '5') //[5] { num = number[5]; } else if (ser == '6') //[6] { num = number[6]; } else if (ser == '7') //[7] { num = number[7]; } else if (ser == '8') //[8] { num = number[8]; } else if (ser == '9') //[9] { num = number[9]; } else if (ser == '-') //[-] { num = none; } shiftOut(dataPin, clockPin, MSBFIRST, num); } } Edited December 29, 2016 by Olegansv 1 Quote Share this post Link to post Short link Share on other sites
Kotyarko_O 1,906 #372369 Posted December 29, 2016 (edited) os.write(ser, '<%s>' % (speed)) А самое интересное не написали) Может, я упустил что-то очевидное, но подключить serial в клиенте у меня не получилось. Edited December 29, 2016 by Kotyarko_O Quote Share this post Link to post Short link Share on other sites
Olegansv 10 #372371 Posted December 29, 2016 (edited) А самое интересное не написали) Может, я упустил что-то очевидное, но подключить serial в клиенте у меня не получилось. Обновил. Edited December 29, 2016 by Olegansv Quote Share this post Link to post Short link Share on other sites
lenz 0 #372486 Posted December 30, 2016 Всем спс. :) Получилось правда немного по другому. Пиво и чипсы направили мышление в другую сторону :) Quote Share this post Link to post Short link Share on other sites