Сейчас 23:11:35 Пятница, 22 ноября, 2024 год
[ x ] Главная ⇒ Форум ⇐ RSS Файлы Cтатьи Картинки В о й т и   или   з а р е г и с т р и р о в а т ь с я


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: PUVer, SirNikolas, Ty3uK  
Помогите с чатом
IncOnesДата: Вторник, 16 Июля 2013, 01:40:39 | Сообщение # 1
1 уровень
Группа: Пользователи
Сообщений: 12
Награды: 0
Репутация: 0
Блокировки:
Всем привет.

Создаю свою карту. Собираюсь убрать возможность видения обычного чата и сделать чат на триггерах, т.е. текст должен отображаться через "Игра - Text message". Вот только одна проблема, я не могу никак кое-что сделать.

У меня получается вывести в чат только то, что указано в событии "Точное совпадение или подстрока", в моем случае точка. Как сделать, чтобы выводился точный текст, который ввел игрок в чат?

Спасибо.
 

ReckitДата: Вторник, 16 Июля 2013, 10:05:00 | Сообщение # 2
3 уровень
Группа: Проверенные
Сообщений: 74
Награды: 0
Репутация: 7
Блокировки:
У тебя есть карта 88_RDZARENA?

Добавлено (16 Июля 2013, 10:05:00)
---------------------------------------------
Если у тебя она есть, то открой посмотри.

 

НаклзДата: Вторник, 16 Июля 2013, 10:25:26 | Сообщение # 3
10 уровень
Группа: Проверенные
Сообщений: 1431
Награды: 0
Репутация: 760
Блокировки:
http://rghost.ru/47452818 - думаю всё поймёшь... ну триггеры так как на гуи понятны, что хотел добавить, как я убрал чат изменил имена игроков... но как убрать [всем], [союзникам] и т.д., это через импорт, файл war3mapskin.txt
Система отлично работает, но только если игроку нельзя сменить цвет... так как цвет его имени в искусственном чате зависит от его положения, ну игрок1 всегда красный, игрок2 всегда синий... если цвет может меняться, напиши, попробую что-то придумать.
 

Q1wAseДата: Вторник, 16 Июля 2013, 10:35:42 | Сообщение # 4
Группа: Проверенные
Сообщений: 1235
Награды: 0
Репутация: 286
Блокировки:
Цитата (Наклз)
http://rghost.ru/47452818 - думаю всё поймёшь... ну триггеры так как на гуи понятны, что хотел добавить, как я убрал чат изменил имена игроков... но как убрать [всем], [союзникам] и т.д., это через импорт, файл war3mapskin.txt
Система отлично работает, но только если игроку нельзя сменить цвет... так как цвет его имени в искусственном чате зависит от его положения, ну игрок1 всегда красный, игрок2 всегда синий... если цвет может меняться, напиши, попробую что-то придумать.

Классно :D


 

IncOnesДата: Вторник, 16 Июля 2013, 13:24:07 | Сообщение # 5
1 уровень
Группа: Пользователи
Сообщений: 12
Награды: 0
Репутация: 0
Блокировки:
Всем спасибо. Буду разбираться.

Добавлено (16 Июля 2013, 13:07:47)
---------------------------------------------

Цитата (Наклз)
http://rghost.ru/47452818 - думаю всё поймёшь... ну триггеры так как на гуи понятны, что хотел добавить, как я убрал чат изменил имена игроков... но как убрать [всем], [союзникам] и т.д., это через импорт, файл war3mapskin.txt
Система отлично работает, но только если игроку нельзя сменить цвет... так как цвет его имени в искусственном чате зависит от его положения, ну игрок1 всегда красный, игрок2 всегда синий... если цвет может меняться, напиши, попробую что-то придумать.

Огромное спасибо, все идеально работает.

Добавлено (16 Июля 2013, 13:24:07)
---------------------------------------------
Нашел один побочный эффект от файла war3mapskin.txt. С ним чат работает отлично, но то, что я указываю в игровом интерфейсе, например изменяю "Нет расходов" не работает, без war3mapskin.txt все работает. В чем может быть проблема?

 

НаклзДата: Вторник, 16 Июля 2013, 13:33:22 | Сообщение # 6
10 уровень
Группа: Проверенные
Сообщений: 1431
Награды: 0
Репутация: 760
Блокировки:
В том что war3mapskin это игровой интерфейс в текстовом документе, сделай вот что:
1.Убери мой war3mapskin.txt из карты;
2.Измени "Игровой интерфейс" как тебе угодно;
3.Сохрани;
4.Открой карту программой Ladik’s MPQ
5.Вытащи из карты файл war3mapskin.txt , не тот мой, а после изменения игрового интерфейса, которые ты произведёшь, он появится сам, но видно его только через программу, в редакторе импорта его нет.
6.Открой вытащенный файл war3mapskin.txt блокнотом, найди там [FrameDef] и под ним на следующей строчке напиши
CHAT_RECIPIENT_ALL=
CHAT_RECIPIENT_ALLIES=
CHAT_RECIPIENT_OBSERVERS=
CHAT_RECIPIENT_PRIVATE=
CHAT_RECIPIENT_REFEREES=
(именно так, они в разных строчках по очереди, а не все в одну запихни, и после равно там пробел стоит)
Если ты не нашёл [FrameDef] то допиши его в конце файла(на новой строчке последней) и под ним напиши эти строки
CHAT_RECIPIENT_ALL=
CHAT_RECIPIENT_ALLIES=
CHAT_RECIPIENT_OBSERVERS=
CHAT_RECIPIENT_PRIVATE=
CHAT_RECIPIENT_REFEREES=
(пробелы тут так же есть)
7.С помощью уже названной программы засунь файл war3mapskin.txt обратно в карту.


Сообщение отредактировал Наклз - Вторник, 16 Июля 2013, 13:45:08
 

IncOnesДата: Вторник, 16 Июля 2013, 14:03:48 | Сообщение # 7
1 уровень
Группа: Пользователи
Сообщений: 12
Награды: 0
Репутация: 0
Блокировки:
Цитата (Наклз)
В том что war3mapskin это игровой интерфейс в текстовом документе, сделай вот что:
1.Убери мой war3mapskin.txt из карты;
2.Измени "Игровой интерфейс" как тебе угодно;
3.Сохрани;
4.Открой карту программой Ladik’s MPQ
5.Вытащи из карты файл war3mapskin.txt , не тот мой, а после изменения игрового интерфейса, которые ты произведёшь, он появится сам, но видно его только через программу, в редакторе импорта его нет.
6.Открой вытащенный файл war3mapskin.txt блокнотом, найди там [FrameDef] и под ним на следующей строчке напиши
CHAT_RECIPIENT_ALL=
CHAT_RECIPIENT_ALLIES=
CHAT_RECIPIENT_OBSERVERS=
CHAT_RECIPIENT_PRIVATE=
CHAT_RECIPIENT_REFEREES=
(именно так, они в разных строчках по очереди, а не все в одну запихни, и после равно там пробел стоит)
Если ты не нашёл [FrameDef] то допиши его в конце файла(на новой строчке последней) и под ним напиши эти строки
CHAT_RECIPIENT_ALL=
CHAT_RECIPIENT_ALLIES=
CHAT_RECIPIENT_OBSERVERS=
CHAT_RECIPIENT_PRIVATE=
CHAT_RECIPIENT_REFEREES=
(пробелы тут так же есть)
7.С помощью уже названной программы засунь файл war3mapskin.txt обратно в карту.

Спасибо, помогло.

Можно еще вопросик?
Зачем мы в инициализации сражения используем Set name с большим количеством пробелов? Что это дает? У меня получается при выводе в чат сообщение появляется через 1 пробел, хотелось бы сделать также ровно, как и текст, выводимый игрой.

Добавлено (16 Июля 2013, 14:03:48)
---------------------------------------------
http://imgdepo.ru/id/i4279324

 

НаклзДата: Вторник, 16 Июля 2013, 14:26:34 | Сообщение # 8
10 уровень
Группа: Проверенные
Сообщений: 1431
Награды: 0
Репутация: 760
Блокировки:
За тем, что бы твои сообщения которые ты пишешь в чат не выводились стандартным путём, куча пробелов и сообщение и имя игрока не выводится в чат, ну не влазит оно в месте с пробелами, по этому когда ты пишешь в чат ничего не происходит... только триггерное сообщение опявляется

Добавлено (16 Июля 2013, 14:26:34)
---------------------------------------------
А по поводу пробела перед именем игрока, найди в наработке в втором триггере число 153, замени на 154 и пробел пропадёт

 

IncOnesДата: Вторник, 16 Июля 2013, 14:43:52 | Сообщение # 9
1 уровень
Группа: Пользователи
Сообщений: 12
Награды: 0
Репутация: 0
Блокировки:
А можете объяснить для чего требуются числа 153/154, 170? Не совсем понимаю с этим сабстрингом.
 

НаклзДата: Вторник, 16 Июля 2013, 14:57:10 | Сообщение # 10
10 уровень
Группа: Проверенные
Сообщений: 1431
Награды: 0
Репутация: 760
Блокировки:
Объясняю: Что бы сообщения не выводились в чат, я вставил в начало имени всех игроков пробелы, но второй триггер, он же выводит "Игра - сообщение: "Имя игрока": "Сообщение" , нам же не нужно что бы тут перед именем игрока куча куча пробеллов была, так что мы берём сабстринг Имя игрока, то есть действие работает со строкой "Имя игрока", я знаю что там стоит 153(теперь уже понял что 154) пробелла, по этому я ставлю 153(154) - 170, это означает что действие возмёт символы из "Имени игрока" с 154-того по 170, как-то не понятно получилось, вот на всякий случай пример:

Игрок 1 вводит сообщение в чат: "-dak" (вводит без ковычек)
Я беру substring(Реакция на событие - Введённое в чат сообщение) 2,4
Результат равен второму, третьему и четвёртому символу "Введённому в чат", а значит результат = dak , таким образом мы упускаем первый символ, минус(чёрточку), который нам не нужен.

Добавлено (16 Июля 2013, 14:57:10)
---------------------------------------------
Всё?

Сообщение отредактировал Наклз - Вторник, 16 Июля 2013, 14:56:58
 

IncOnesДата: Вторник, 16 Июля 2013, 20:56:03 | Сообщение # 11
1 уровень
Группа: Пользователи
Сообщений: 12
Награды: 0
Репутация: 0
Блокировки:
Спасибо. Очень хорошо и понятно объясняете.
У меня есть вопрос не к этой теме, мне нужно заблокировать камеру для игрока, т.е. чтобы он не смог вертеть ей, но не к юниту, а именно к камере. Это возможно?
 

НаклзДата: Вторник, 16 Июля 2013, 21:37:44 | Сообщение # 12
10 уровень
Группа: Проверенные
Сообщений: 1431
Награды: 0
Репутация: 760
Блокировки:
С:
Время - Каждые 1.0 сек.
У:
Д:
Применить камеру, весь фокус в том что бы применять постоянно, каждую секунду, ну или даже меньше секунды, и тогда он ничего не сможет сделать.

А по поводу сабстринг я немного был не прав, там таки 153 пробелла, просто если поставить там число 153 то он с 153-тего символа ВКЛЮЧИТЕЛЬНО, а 153 = пробел, а 154 уже начало ника

Добавлено (16 Июля 2013, 21:37:44)
---------------------------------------------
Кстати, по поводу наработки с чатом, если игрок каким-то образом сменить цвет... ну красный станет синим, то он в чате будет писать всё равно красным цветом, сейчас исправлю, 5 мин.

 

IncOnesДата: Вторник, 16 Июля 2013, 21:44:53 | Сообщение # 13
1 уровень
Группа: Пользователи
Сообщений: 12
Награды: 0
Репутация: 0
Блокировки:
Спасибо Вам за помощь.

Я и делал таймер на 0.50 секунд, но игра начала подтормаживать.
 

НаклзДата: Вторник, 16 Июля 2013, 21:54:40 | Сообщение # 14
10 уровень
Группа: Проверенные
Сообщений: 1431
Награды: 0
Репутация: 760
Блокировки:
Cделай на 1 сек

Добавлено (16 Июля 2013, 21:54:40)
---------------------------------------------
Вот вторая версия


Сообщение отредактировал Наклз - Вторник, 16 Июля 2013, 21:55:54
 

IncOnesДата: Среда, 17 Июля 2013, 01:34:39 | Сообщение # 15
1 уровень
Группа: Пользователи
Сообщений: 12
Награды: 0
Репутация: 0
Блокировки:
Нашел еще один баг с чатом, при наведении на игрока выводит табличку с уровнем, но там большое количество пробелов и потом ник... Т.е. табличка получается огромных размеров в широту. Это можно исправить?
 

НаклзДата: Среда, 17 Июля 2013, 09:40:12 | Сообщение # 16
10 уровень
Группа: Проверенные
Сообщений: 1431
Награды: 0
Репутация: 760
Блокировки:
Увы никак, это ж имя игрока... что бы его не было в чате там куча пробелов... но можно сделать так, вставить пробелы все в эти строчки
CHAT_RECIPIENT_ALL=
CHAT_RECIPIENT_ALLIES=
CHAT_RECIPIENT_OBSERVERS=
CHAT_RECIPIENT_PRIVATE=
CHAT_RECIPIENT_REFEREES=
в файле war3mapskin.txt вытащить опять, и к тому 1 пробелу что там уже стоит ДОБАВИТЬ ещё эти 153(можешь взять из переменной JumpLine153 там в нач. значении эти все пробелы, скопируй и вставь в эти строчки... так как там уже 1 был + 153 = 154 пробела, когда сделаешь это, действие SetName(изменить имя игрока) можно будет удалить.

Добавлено (17 Июля 2013, 09:40:12)
---------------------------------------------
И сабстринг заменить на имя игрока(триггерный игрок)

 

[SeKtOR]Дата: Среда, 17 Июля 2013, 09:40:50 | Сообщение # 17
Группа: Проверенные
Сообщений: 1143
Награды: 0
Репутация: 1168
Блокировки:
Можно добавить и убрать москиты, табличка с именем игрока конечно уберётся(как хорошая альтернатива гигантской таблички), но и прочие последствия останутся...

 

НаклзДата: Среда, 17 Июля 2013, 09:44:36 | Сообщение # 18
10 уровень
Группа: Проверенные
Сообщений: 1431
Награды: 0
Репутация: 760
Блокировки:
Вот, надеюсь был последний баг. - Убрал set name , заменил substirng на имя игрока, и обновил war3mapskin , там после = теперь ещё куча пробеллов, 157 .

Добавлено (17 Июля 2013, 09:44:36)
---------------------------------------------
Цитата (|SeKtOR|)
Можно добавить и убрать москиты, табличка с именем игрока конечно уберётся(как хорошая альтернатива гигантской таблички), но и прочие последствия останутся...

разве если москитов убрать, то юнит всё равно останется не выделяемым? ну у меня по крайней мере получается так


Сообщение отредактировал Наклз - Среда, 17 Июля 2013, 09:46:50
 

Q1wAseДата: Среда, 17 Июля 2013, 09:47:59 | Сообщение # 19
Группа: Проверенные
Сообщений: 1235
Награды: 0
Репутация: 286
Блокировки:
Цитата (|SeKtOR|)
Можно добавить и убрать москиты,

как? только через РО.


 

НаклзДата: Среда, 17 Июля 2013, 09:51:13 | Сообщение # 20
10 уровень
Группа: Проверенные
Сообщений: 1431
Награды: 0
Репутация: 760
Блокировки:
Пахаххахаа
Через джасс добавить, код способности Aloc
 

Q1wAseДата: Среда, 17 Июля 2013, 09:53:20 | Сообщение # 21
Группа: Проверенные
Сообщений: 1235
Награды: 0
Репутация: 286
Блокировки:
Цитата (Наклз)
Через джасс добавить, код способности Aloc

А ну да. "Джасс" я не знал. На гуи такого не было :D
код способности Aloc значит. Ну ок. Это поможет мне с некоторыми скилами.


 

НаклзДата: Среда, 17 Июля 2013, 10:43:04 | Сообщение # 22
10 уровень
Группа: Проверенные
Сообщений: 1431
Награды: 0
Репутация: 760
Блокировки:
Но забрать не получится скилл... ну как ты то заберёшь, но его эффект останется
 

FEARKILLERДата: Среда, 17 Июля 2013, 11:41:40 | Сообщение # 23
6 уровень
Группа: Проверенные
Сообщений: 175
Награды: 0
Репутация: 149
Блокировки:
Цитата (Наклз)
но его эффект останется

Скорей это абилка осталась цела и невредима у юнита, а не эффект. Москитов не заберёшь так просто, если удалять через UnitRemoveAbility() без скрытия б\е. Функция в таком случае просто игнорирует эту абилку.
Цитата (Наклз)
Но забрать не получится скилл...

Удаление москитов:
Код
call ShowUnit(u,false)
call ShowUnit(u,true)
call UnitRemoveAbility(u,'Aloc')


А теперь для тех кто в танке и считает что даммику для москитов нужна в паре ещё и неуязвимость(нейтральный), советую дать юниту только москитов и сделать так:
Код
call ShowUnit(u,false)
call ShowUnit(u,true)

А после выделить его и посмотреть на защиту, там будет написано НЕУЯЗВИМЫЙ, потому что мы не отбирали москитов, а просто функциями скрыть\показать стряхнули боевой единице её невыделяемость для того, чтобы выделить и убедиться что москиты и так делают юнита не только невыделяемым, но и максимально неуязвимым.


Делаю из воды вино, хожу по воде...
 

IncOnesДата: Среда, 17 Июля 2013, 12:12:14 | Сообщение # 24
1 уровень
Группа: Пользователи
Сообщений: 12
Награды: 0
Репутация: 0
Блокировки:
Цитата (Наклз)
Увы никак, это ж имя игрока... что бы его не было в чате там куча пробелов... но можно сделать так, вставить пробелы все в эти строчки
CHAT_RECIPIENT_ALL=
CHAT_RECIPIENT_ALLIES=
CHAT_RECIPIENT_OBSERVERS=
CHAT_RECIPIENT_PRIVATE=
CHAT_RECIPIENT_REFEREES=
в файле war3mapskin.txt вытащить опять, и к тому 1 пробелу что там уже стоит ДОБАВИТЬ ещё эти 153(можешь взять из переменной JumpLine153 там в нач. значении эти все пробелы, скопируй и вставь в эти строчки... так как там уже 1 был + 153 = 154 пробела, когда сделаешь это, действие SetName(изменить имя игрока) можно будет удалить.
Добавлено (17 Июля 2013, 09:40:12)
---------------------------------------------
И сабстринг заменить на имя игрока(триггерный игрок)

Тогда текст чата становится виден стандартным путем :(
 

НаклзДата: Среда, 17 Июля 2013, 12:37:07 | Сообщение # 25
10 уровень
Группа: Проверенные
Сообщений: 1431
Награды: 0
Репутация: 760
Блокировки:
я же наработку кинул... у меня не виден...

Добавлено (17 Июля 2013, 12:30:16)
---------------------------------------------
http://warcraft3ft.info/go?http://rghost.ru/47474948
Там сделал всё что написал, PS сылка уже была выше..

Добавлено (17 Июля 2013, 12:37:07)
---------------------------------------------
Цитата (IncOnes)
Тогда текст чата становится виден стандартным путем

понял же в чём смысл, пробелы которые я раньше в ник ставил, поставить вместо [всем] , [союзникам], получается пробелы сохранятся, и ники не надо менять.


Сообщение отредактировал Наклз - Среда, 17 Июля 2013, 12:39:04
 

  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

Copyright © 2006 - 2024 Warcraft3FT.info При копировании материалов c сайта ставьте, пожалуйста, активную обратную ссылку на нас • Design by gReeB04ki ©
Хостинг от uCoz