Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
0 / 1 / 4
Регистрация: 13.05.2013
Сообщений: 673

Взаимодействие с чатом Warcraft 3

16.04.2020, 17:20. Показов 1595. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добречька всем Форумчане

Расскажу про игру Warcraft III.
Code
1
2
Есть игра Warcraft III в котором, чтобы отправить любой текст(сообщение) в первую очередь нужно сделать следующие действия:
Нажать кнопку Enter в самой игре, потом набрать текст и опять нажать Enter и вывод --> Пример по картинкам


Вторая карнтинка, после отправки текста ,сообщение отправляется игрокам Всем.

У меня есть идея которую я не смог реализовать.
Суть в том что мне нужно чтобы внутренние коды из Windwos.Form1 переправлялись и выводили в WArcraft III т.е как показано в картинках.

Есть классы для соединение с Warcraft III
C#
1
2
3
4
5
6
7
8
9
10
11
 public class WC3Send
    {
        public WC3Send();
        public static IntPtr FindWindow(string lpClassName, string lpWindowName);
        public static IntPtr MakeLParam(int LoWord, int HiWord);
        public static IntPtr PostMessage(IntPtr hWnd, uint Msg, char wParam, IntPtr lParam);
        public static void Send(string text, bool lobby);
        public static void SendK(string text);
        public static void SendMouseClick(int x, int y);
        public static void SendNum(string c);
    }
Теперь о вопросе
Наверно это будет работать через
Code
1
public static void Send(string text, bool lobby);
Как можно сделать так:
1. Вот в игре вводишь слово @pravila, и (каким то образом соединяется с Windows.Form1 ищет есть ли такое слово ).
2. Если, да есть то выводит информацию из софта. типа


Надеюсь вы меня поняли и я смог вам до нести свои вопросы )). Помогите пожалуйста
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
16.04.2020, 17:20
Ответы с готовыми решениями:

Проблемы с чатом
Есть чат, Клиент и Сервер. Клиент отправляет сообщение серверу. помогите что надо написать что бы сервер уже это сообщение...

Подскажите с чатом.
Есть исходники клиента и сервера. Помогите, пожалуйста, запустить их на компе, пошагово. Пытаюсь сделать это на еклипсе. public...

Проблема с чатом!
Привет всем, извините за может быть глупый вопрос, но я только недавно начал учить c# Вот код кнопки отправки: byte buffer =...

5
 Аватар для Enifan
1849 / 1191 / 501
Регистрация: 14.10.2018
Сообщений: 3,211
16.04.2020, 18:34
esenbek, единственный совет который могу дать - это создать статический класс для работы с сообщениями данного чата. В нем будет метод который принимает строку из чата - внутри класса она обрабатывается - возвращается сообщение. Если это команда - вернет команду, в ином случаи вернет само сообщение. Реализовать данный класс можно по разному и по разному делать проверки, я приведу грубую модель
C#
1
2
3
4
5
6
7
8
9
10
11
12
static class ChatMessages
{
    public static string GetMessage(string message)
    {
        switch(message)
        {
            case "@pravila": return "Правила игры - выиграть";
            case "@command": return "/all - сказать всем; /allies - сказать союзникам";
            default: return message;
        }
    }
}
Каким образом вы вытягиваете строку из чата я не знаю, потому не подскажу как быть в данном случаи.
Какие образом вы будете из кода вводить строку в чат - тоже не знаю.

Также надо учесть если например надо будет сразу вывести 10+ строк кода за раз. Сможете ли вы это "впихнуть" в чат игры ?

Не по теме:


Жизнь за Нер'Зула

0
0 / 1 / 4
Регистрация: 13.05.2013
Сообщений: 673
16.04.2020, 19:36  [ТС]
Цитата Сообщение от Enifan Посмотреть сообщение
Каким образом вы вытягиваете строку из чата я не знаю, потому не подскажу как быть в данном случаи.
Какие образом вы будете из кода вводить строку в чат - тоже не знаю.
через этот класс
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
 public class WC3Read
    {
        public static ProcessMemory Mem;
        public static int hProc;
        public static int GDll;
        public static int SDll;
        public static int IDll;
        public static bool cS;
        public static bool cG;
        public static bool cI;
 
        public WC3Read();
 
        public static string about();
        public static bool BaraRun();
        public static float CamX();
        public static float CamY();
        public static int CdItem(int it);
        public static bool Channel();
        public static string Char(bool lvl);
        public static bool Chat();
        public static string GrowUP();
        public static string HP(bool curent);
        public static bool inBattle();
        public static bool InGame();
        public static void Init();
        public static string Item(int n);
        public static string[] Items();
        public static int KillIcc();
        public static string lastmessage();
        public static string LastSkill();
        public static string MP();
        public static string MyNick();
        public static string Player(int slot);
        public static string[] Players();
        public static string version();
        public static bool WActive();
        public static int WC(bool usemyself);
        public static int WC(float x, float y);
    }
опишу
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
Init() - проверяет доступность библиотек 'Game.dll','Storm.dll'. От этого зависит работа остальных функций.
Далее везде используем 'WC3Read.Функция'.
 
Массивы:
Items() - вернёт тип string[5] (от 0 до 5) айтемы текущего героя.
Players() - вернёт тип string[11] (от 0 до 11) - ники игроков. (Вроде работает ток в battle.net).
 
Строковые:
MyNick() - вернёт ваш nickname.
Item(int id) - вернёт item в id слоте (0-5).
Player(int slot) - вернёт никнейм игрока под номером который мы укажем (0-11).
HP(bool current) - вернёт ваше HP (true = текущее, false = максимальное).
GrowUP() - возвращает текущее количество лвлапа(О_о). Сколько способностей вы можете прокачать.
Char(bool l) - вернёт название выбранного в данный момент чара. (l = true - попутно впереди появится текущий лвл).
LastSkill() - возвращает int параметр в виде строки. Возвращает последний использованный(Или только прожатый) скилл (1093750840 - разбег бары,дота).
version() - возвращает текущую версию библиотеки.
about() - небольшой копирайт :).
 
Булы:
BaraRun() - вернёт true/false. Бежит ли бара (на кого-либо).
Chat() - вернёт true/false. Открыт ли чат или нет (в лоби возвращает как true постоянно) в игре в зависимости от статуса чата.
Channel() - вернёт true/false. На канале ли мы.
inBattle() - вернёт true/false. В battle.net'e ли мы.
InGame() - вернёт true/false. В игре ли мы.
 
Тестовые:
MP() - тестовый оффсет. Вернёт мп в формате 'current/max'. (Не всегда срабатывает).
CdItem(int i) - тестовый оффсет. Пока-что не работает.
Добавлено через 14 минут
Цитата Сообщение от Enifan Посмотреть сообщение
Также надо учесть если например надо будет сразу вывести 10+ строк кода за раз. Сможете ли вы это "впихнуть" в чат игры ?
10 поместиться в чат. не помню где то до 32 нужно ввести

Добавлено через 1 минуту
примерный код который будет выводится в чат игры
C#
1
2
3
4
    if (WC3Read.Chat() == false)
            {
                if (WGame.WC3Read.BaraRun() == true) { WGame.WC3Send.Send("BARA бежит xD", true); }
}
Добавлено через 26 секунд
примерный код который будет выводится в чат игры
C#
1
2
3
4
    if (WC3Read.Chat() == false)
            {
                if (WGame.WC3Read.BaraRun() == true) { WGame.WC3Send.Send("BARA бежит xD", true); }
}
0
0 / 1 / 4
Регистрация: 13.05.2013
Сообщений: 673
17.04.2020, 09:10  [ТС]
up!
0
 Аватар для Enifan
1849 / 1191 / 501
Регистрация: 14.10.2018
Сообщений: 3,211
17.04.2020, 12:24
Цитата Сообщение от esenbek Посмотреть сообщение
Как можно сделать так:
1. Вот в игре вводишь слово @pravila, и (каким то образом соединяется с Windows.Form1 ищет есть ли такое слово ).
2. Если, да есть то выводит информацию из софта. типа
Разве ответ вы не получили ? WinForm тут вообще не причем. Получили строку из чата - обработали через метод - вернули в чат. Вот и все.
0
0 / 1 / 4
Регистрация: 13.05.2013
Сообщений: 673
13.10.2021, 13:42  [ТС]
Цитата Сообщение от Enifan Посмотреть сообщение
Сообщение от esenbek
Как можно сделать так:
1. Вот в игре вводишь слово @pravila, и (каким то образом соединяется с Windows.Form1 ищет есть ли такое слово ).
2. Если, да есть то выводит информацию из софта. типа
Разве ответ вы не получили ? WinForm тут вообще не причем. Получили строку из чата - обработали через метод - вернули в чат. Вот и все.
как можно получить из чата? Chat()
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
13.10.2021, 13:42
Помогаю со студенческими работами здесь

Что не так с чатом?
Почему у меня не отображаются и не отправляются message????? Chat.php <!DOCTYPE html> <html lang="en"> <head> ...

Помогите пожалуйста с чатом
Привет всем помогите пожалуйста где взять двиг чата или чтото на этой теме просто чтобы чат был если еще можно к этому Админ панель

Клиент-серверное приложение с чатом
Добрый вечер! Собираюсь писать многопользовательское клиент-серверное приложения для Android. Проблема в том, что я не знаю как...

Начало работы с онлайн чатом
Вот появилась идея создать чат. В общаге есть сеть VPN, через нее мы подключаемся к интернету. Надо пример клиента и сервера с БД на...

Клиент-сервер. Ошибка с чатом
На просторах сайбера нашел чат, но у меня он не запускается, не знаю почему. Помогите: подправьте чтобы запускалось или укажите на ошибку....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
Контроль уникальности заводского номера
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере нетипового документа выдачи шин для спецтехники с табличной частью, разработанного в конфигурации КА2. Данные берутся из. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru