Jump to content
Korean Random
lenz

Прошу помощи по реализации мода

Recommended Posts

Хочу сделать мод но не умею ) И в программировании не силен, если кто нибудь сможет помочь буду признателен.

Суть мода (скорее даже не мода в целом ) повторить реализацию подсветки клавиатуры от алиенвара.

Тестовый блок для управления подсветкой уже готов. Теперь мне нужно каким то образом от танков получить данные о состоянии здоровья на ком порт. То есть принцип мода примитивный и простой, начался бой выкинули на ком порт два числа, текущее ХП и максимальное ХП.

А на ком порту будет висеть ардуина которая банально получив два числа будет включать ту или иную подсветку, а если ХП критичное тихонько моргать красным, убили, подсветка совсем вырубилась.

Share this post


Link to post

Short link
Share on other sites

Делал когда-то подобное, только выводил ХП на семисегментные индикаторы.

'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 by Olegansv
  • Upvote 1

Share this post


Link to post

Short link
Share on other sites

 

os.write(ser, '<%s>' % (speed))

 

А самое интересное не написали)

Может, я упустил что-то очевидное, но подключить serial в клиенте у меня не получилось.

Edited by Kotyarko_O

Share this post


Link to post

Short link
Share on other sites

А самое интересное не написали)

Может, я упустил что-то очевидное, но подключить serial в клиенте у меня не получилось.

Обновил.

Edited by Olegansv

Share this post


Link to post

Short link
Share on other sites

Всем спс. :) Получилось правда немного по другому. Пиво и чипсы направили мышление в другую сторону :)

Share this post


Link to post

Short link
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...