Сейчас 02:12:19 Среда, 27 ноября, 2024 год
[ x ] Главная ⇒ Форум ⇐ RSS Файлы Cтатьи Картинки В о й т и   или   з а р е г и с т р и р о в а т ь с я


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: PUVer, SirNikolas, Ty3uK  
Конвертация букв в строчные или прописные
НаклзДата: Вторник, 28 Октября 2014, 16:56:11 | Сообщение # 1
10 уровень
Группа: Проверенные
Сообщений: 1431
Награды: 0
Репутация: 760
Блокировки:
Ещё раз, добрый день. И снова нуждаюсь в помощи.
Для одного триггера мне надо что бы все буквы в любом слове, которое задаст игрок, становились строчными(маленькими). Однако я ни как не мог заставить это работать...
Для демонстрации проблемы я создал такой триггер
Событие:
Игрок ввёл в чат сообщение
Условие:
Действие:
set udg_LastPlayerMessage[GetConvertedPlayerId(GetTriggerPlayer())] = StringCase(GetEventPlayerChatString(), false)
call DisplayTextToForce( GetPlayersAll(), udg_LastPlayerMessage[GetConvertedPlayerId(GetTriggerPlayer())] )

в итоге если я введу
-ОчИсТкА
оно мне выведет на экран
-ОчИсТкА
хотя должно было вывести -очистка

В чём моя проблема?
 

sumertДата: Вторник, 28 Октября 2014, 17:38:41 | Сообщение # 2
10 уровень
Группа: Проверенные
Сообщений: 2330
Награды: 2
Репутация: 1094
Блокировки:
Цитата Наклз ()
В чём моя проблема?

Оно не работает на русские буквы. Только english, только хардкор.
 

НаклзДата: Вторник, 28 Октября 2014, 18:08:09 | Сообщение # 3
10 уровень
Группа: Проверенные
Сообщений: 1431
Награды: 0
Репутация: 760
Блокировки:
Так что же мне делать?
 

MelodiaДата: Вторник, 28 Октября 2014, 18:29:35 | Сообщение # 4
Группа: Проверенные
Сообщений: 8026
Награды: 5
Репутация: 5051
Блокировки:
Очевидно же - транслитерируй сообщение. переводи в строчные и транслитерируй обратно.

Добавлено (28 Октября 2014, 18:29:35)
---------------------------------------------
Есть решение проще - поставь на чат шрифт, заглавные буквы которого такие же, как строчные.


CM wars 1.15
ЭПОХА АНИМИРОВАННЫХ ТРИГГИРАФ ПРЕШЛА
 

[SeKtOR]Дата: Вторник, 28 Октября 2014, 19:12:13 | Сообщение # 5
Группа: Проверенные
Сообщений: 1143
Награды: 0
Репутация: 1168
Блокировки:
Цитата Melodia ()
Очевидно же - транслитерируй сообщение. переводи в строчные и транслитерируй обратно.

Тогда уж проще на мой взгляд писать свою функцию "заглавные->строчные" русских букв чем транслитации...


 

MelodiaДата: Вторник, 28 Октября 2014, 20:17:08 | Сообщение # 6
Группа: Проверенные
Сообщений: 8026
Награды: 5
Репутация: 5051
Блокировки:
Действительно :D
Но можно просто поменять шрифт чата


CM wars 1.15
ЭПОХА АНИМИРОВАННЫХ ТРИГГИРАФ ПРЕШЛА
 

НаклзДата: Вторник, 28 Октября 2014, 20:38:42 | Сообщение # 7
10 уровень
Группа: Проверенные
Сообщений: 1431
Награды: 0
Репутация: 760
Блокировки:
Шрифт чата не вариант... например для условий, шрифт что-то изменит?

Ну видимо придётся
Цитата [SeKtOR] ()
Тогда уж проще на мой взгляд писать свою функцию "заглавные->строчные" русских букв

Ну мне в принципе приходила такая мысль, но она столь ужасна, что я её вычеркнул...

Что ж, раз больше вариантов нет... спасибо за помощь.
 

MelodiaДата: Вторник, 28 Октября 2014, 20:53:25 | Сообщение # 8
Группа: Проверенные
Сообщений: 8026
Награды: 5
Репутация: 5051
Блокировки:
Цитата Наклз ()
например для условий, шрифт что-то изменит?

не понял вопроса, но отвечу на тот, что мог возникнуть - шрифт можно поменять чисто для чата, а для остальных писанин в игре оставить прежний. Статья в соседнем разделе.


CM wars 1.15
ЭПОХА АНИМИРОВАННЫХ ТРИГГИРАФ ПРЕШЛА
 

НаклзДата: Вторник, 28 Октября 2014, 22:19:15 | Сообщение # 9
10 уровень
Группа: Проверенные
Сообщений: 1431
Награды: 0
Репутация: 760
Блокировки:
Я понял. Но вот смотри: Я меняю шрифт как ты и сказал, теперь в чате строчные и прописные буквы одинаковые. Далее игрок вводит в чат ПрЮвЕт
В одном из триггеров есть проверка на "(введённое сообщение) == прювет", ты хочешь сказать что после замена шрифта условие вернётся как "тру" ? Вот по этому замена шрифта не годиться.

Перегон прописных в строчные я уже сделал, теперь остался вопрос - как узнать есть ли в слове текст который я укажу, но не обязательно вся строка должна быть этим текстом. Ну вот смотрите: игрок вводит в чат "ПаБлИк", после работы моего триггера получается "паблик", как мне узнать есть ли в этой "строке" частичка "паб". Сравнение через сабстринг не выйдет, ибо может быть и "чтожезапабликужасный", и проверка всё равно должна сработать... как такое можно сделать?

Я знаю что через событие такое можно сделать, то есть событие "Игрок 1 ввёл в чат сообщение "текст" подстрока", тогда сработает даже если игрок напишет "сраныйтекст", можно ли такое сделать не через это событие?

Кстати, хочу предупредить что все написанные мною в этом примере "строки" являются лишь примером, я не сошёл с ума...


Сообщение отредактировал Наклз - Вторник, 28 Октября 2014, 22:20:08
 

MelodiaДата: Среда, 29 Октября 2014, 08:25:10 | Сообщение # 10
Группа: Проверенные
Сообщений: 8026
Награды: 5
Репутация: 5051
Блокировки:
Цитата Наклз ()
ты хочешь сказать что после замена шрифта условие вернётся как "тру" ?

ээээээээээээээммммммм. А с чего бы нет? Лол. Шрифт - чисто визуальная фигня, она не повлияет на твои кондишны.
Цитата Наклз ()
как такое можно сделать?

опять чета намудрил с вопросом. Через сабстринг всё делается перкрасно, с 1 условие, что русская буква - это 2 символа.
Значит сабстринг(стринг, 5, 11) = паб


CM wars 1.15
ЭПОХА АНИМИРОВАННЫХ ТРИГГИРАФ ПРЕШЛА
 

ExtrematorДата: Среда, 29 Октября 2014, 09:11:37 | Сообщение # 11
10 уровень
Группа: Проверенные
Сообщений: 3199
Награды: 0
Репутация: 1018
Блокировки:
if StringCase(GetEventPlayerChatString(), false) == "-ms" then

пиши хоть -MS или -Ms -mS - условие всё равно пройдёт
 

MelodiaДата: Среда, 29 Октября 2014, 09:28:14 | Сообщение # 12
Группа: Проверенные
Сообщений: 8026
Награды: 5
Репутация: 5051
Блокировки:
^ lol

CM wars 1.15
ЭПОХА АНИМИРОВАННЫХ ТРИГГИРАФ ПРЕШЛА
 

НаклзДата: Среда, 29 Октября 2014, 10:09:38 | Сообщение # 13
10 уровень
Группа: Проверенные
Сообщений: 1431
Награды: 0
Репутация: 760
Блокировки:
Боже, или я схожу с ума, или вы реально издеваетесь надо мною, а ?
Цитата Melodia ()
ээээээээээээээммммммм. А с чего бы нет? Лол. Шрифт - чисто визуальная фигня, она не повлияет на твои кондишны.

Вот ИМЕННО! об этом я и говорю, по этому метод со шрифтом и НЕ ПОДХОДИТ, я пишу это всю дорогу.
Цитата Melodia ()
сабстринг(стринг, 5, 11) = паб

А что если введут "пабэтомойрай" проверка через сабстринг сработает? слово может быть любое, главное что бы в нём была частичка которую я ищу, в данном случае "паб", я же всё доходчиво объяснил...
Цитата Extremator ()
пиши хоть -MS или -Ms -mS - условие всё равно пройдёт

Окей, а если я напишу -МаНа то пройдет? Нет. Забей на это, этот вопрос я уже решил сделав триггер который перегонит русские буквы, я же уже написал выше...

Теперь другой вопрос мучает. Все знакомы с работой события "Игрок Х написал в чат "текст" подстрока \ точное совпадение" ? Так вот, мне нужно сравнить две строки по принципу "подстрока", то есть я сравниваю свою переменную со строкой "паб", и результат условия должен вернуться тру даже если слово будет "пабгавно" или "суперпаб", не важно в каком слове и в каком месте слова стоит частичка "паб", условие всё равно должно вернуться тру если частичка "паб" есть где-то в текстовой переменной которую я указал. Я знаю что событие "Игрок Х написал в чат "текст" подстрока" делают такую проверку, но как её сделать в ручную?

Добавлено (29 Октября 2014, 10:09:38)
---------------------------------------------
Хотя знаете, забейте, забудьте...
Конвертация для "команд" уже есть, а получить корень из слова... ну и ладно. Я вообще пытался сделать "авто-мут" систему в карте, за маты, типо если в слове будет частичка "бля" то всё слово является матом. Но я тут подумал, ведь можно писать маты на украинском и на английском, поддержку всех языков я всё равно не сделаю, а чисто на русский.... смысла нет.

 

VladSekretДата: Среда, 29 Октября 2014, 10:15:41 | Сообщение # 14
6 уровень
Группа: Проверенные
Сообщений: 198
Награды: 0
Репутация: -50
Блокировки:
Цитата Наклз ()
set udg_LastPlayerMessage[GetConvertedPlayerId(GetTriggerPlayer())] = StringCase(GetEventPlayerChatString(), false)
call DisplayTextToForce( GetPlayersAll(), udg_LastPlayerMessage[GetConvertedPlayerId(GetTriggerPlayer())] )

ого я и не знал что на джассе есть команда, то что напишит игрок, так можно и мут игроку выдать))
Оффтоп

Добавлено (29 Октября 2014, 10:15:41)
---------------------------------------------
А вообще если серьезно, то вот тебе совет, тормоши сектора в личку, он тебе сделает такое.

 

ExtrematorДата: Среда, 29 Октября 2014, 10:23:09 | Сообщение # 15
10 уровень
Группа: Проверенные
Сообщений: 3199
Награды: 0
Репутация: 1018
Блокировки:
Так пойдёт?
 

MelodiaДата: Среда, 29 Октября 2014, 10:31:12 | Сообщение # 16
Группа: Проверенные
Сообщений: 8026
Награды: 5
Репутация: 5051
Блокировки:
Цитата Наклз ()
я же всё доходчиво объяснил...

да нет, ни фига не доходчиво.
Ты хочешь ловить сабстринг "паб", при этом какие то слова с этим сабстрингом тебя устраивают а какие то нет, какие тебя устраивают - определяешь ты и в частном порядке, без какого-то принципа. Объясни мне принцип или что ты хочешь сделать.

Так и не понял чем тебя не устраивает шрифт.
Цитата Наклз ()
Вот ИМЕННО! об этом я и говорю, по этому метод со шрифтом и НЕ ПОДХОДИТ, я пишу это всю дорогу

То есть тебе надо, чтобы шрифт МЕНЯЛ восприятие кондишнов что ли????7 А если бы я про шрифт не написал, что бы по твоему хотело менять кондишны???????

Добавлено (29 Октября 2014, 10:31:12)
---------------------------------------------

Цитата Наклз ()
Я вообще пытался сделать "авто-мут" систему в карте, за маты, типо если в слове будет частичка "бля" то всё слово является матом. Но я тут подумал, ведь можно писать маты на украинском и на английском, поддержку всех языков я всё равно не сделаю, а чисто на русский.... смысла нет.

Ааа, ну так бы и сказал блин))
Я делал такую фигню года 3-4 назад в снайпер арене.
Выставлял String[1]=мат и так штук 40 слов.
и двойным циклом добавлял в триггер события игроков с этими стрингами.
Работало исправно, правда иногда всё же кикало за левые слова, но это уже издержки и недогляделки.
Правда с писаниной забориком я не заморачивался - как и те, которые тупо заходят в игру поматериться.


CM wars 1.15
ЭПОХА АНИМИРОВАННЫХ ТРИГГИРАФ ПРЕШЛА
 

НаклзДата: Среда, 29 Октября 2014, 10:33:14 | Сообщение # 17
10 уровень
Группа: Проверенные
Сообщений: 1431
Награды: 0
Репутация: 760
Блокировки:
Блин, ты что пить начал? Об этом я и говорю, мне нужно это для условий, ты мне предложил сменить шрифт, я тебе объяснял почему смена шрифта здесь не поможет, а ты понимаешь меня каждый раз на оборот...
 

MelodiaДата: Среда, 29 Октября 2014, 10:35:14 | Сообщение # 18
Группа: Проверенные
Сообщений: 8026
Награды: 5
Репутация: 5051
Блокировки:
Сделай муты в карте - чтобы за строчные/прописные маты, а также вручную, хостом, имя нарушителя становилось "многомногоцветов" тогда его сообщения не будут видны другим играющим, а отнять у крикунов внимание - самое большое наказание.

Добавлено (29 Октябрь 2014, 10:34:40)
---------------------------------------------

Цитата Наклз ()
Блин, ты что пить начал?

:D

Добавлено (29 Октября 2014, 10:35:14)
---------------------------------------------
хиъНаклзх.иъб я тя уже понял вторую часть сообщения 16 смотри) простоя потом дочитал


CM wars 1.15
ЭПОХА АНИМИРОВАННЫХ ТРИГГИРАФ ПРЕШЛА
 

VladSekretДата: Среда, 29 Октября 2014, 10:44:13 | Сообщение # 19
6 уровень
Группа: Проверенные
Сообщений: 198
Награды: 0
Репутация: -50
Блокировки:
Цитата Melodia ()
Блин, ты что пить начал?

Да естественно он начал пить! Он же анимешник, все анимешники сутками напролёт бухают. :D
 

НаклзДата: Среда, 29 Октября 2014, 10:44:54 | Сообщение # 20
10 уровень
Группа: Проверенные
Сообщений: 1431
Награды: 0
Репутация: 760
Блокировки:
Цитата Extremator ()
Так пойдёт?

Да, это то что нужно, спасибо, просто идеально работает.

А теперь вернёмся к мелодии, надеюсь этого примера(JPNG with UMSWE) ты меня поймёшь. Попробуй в чат написать слова "паботстой", "суперпаб", "ужаспабкласс", да что угодно напиши, лишь бы там был кусочек "паб", в любом месте, и триггер сработает. Мне надо такую же проверку сделать, не через событие, а через действия или условия.


Сообщение отредактировал Наклз - Среда, 29 Октября 2014, 10:48:53
 

MelodiaДата: Среда, 29 Октября 2014, 10:47:28 | Сообщение # 21
Группа: Проверенные
Сообщений: 8026
Награды: 5
Репутация: 5051
Блокировки:
Наклз, да понял я тебя , УЗБАГОЙСЯ

Добавлено (29 Октября 2014, 10:47:28)
---------------------------------------------
Изначально я ваще думал, что тебе нужно запретить капс в карте, понимаешь? :D


CM wars 1.15
ЭПОХА АНИМИРОВАННЫХ ТРИГГИРАФ ПРЕШЛА
 

НаклзДата: Среда, 29 Октября 2014, 10:52:24 | Сообщение # 22
10 уровень
Группа: Проверенные
Сообщений: 1431
Награды: 0
Репутация: 760
Блокировки:
Цитата Melodia ()
я тя уже понял

слава богу) сообщение с "примером" я написал до того как увидел твоё о том что ты меня понял)

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

Добавлено (29 Октября 2014, 10:52:24)
---------------------------------------------
Цитата Melodia ()
Ааа, ну так бы и сказал блин))
Я делал такую фигню года 3-4 назад в снайпер арене.
Выставлял String[1]=мат и так штук 40 слов.
и двойным циклом добавлял в триггер события игроков с этими стрингами.
Работало исправно, правда иногда всё же кикало за левые слова, но это уже издержки и недогляделки.
Правда с писаниной забориком я не заморачивался - как и те, которые тупо заходят в игру поматериться.


В том то и дело, мне нужно что бы можно было провести проверку строки после того как её обработала система Extremator’а, а не через событие, это реально?
Кстати, Extremator, спасибо) плюсик через 2 дня смогу кинуть.


Сообщение отредактировал Наклз - Среда, 29 Октября 2014, 10:53:16
 

MelodiaДата: Среда, 29 Октября 2014, 11:01:32 | Сообщение # 23
Группа: Проверенные
Сообщений: 8026
Награды: 5
Репутация: 5051
Блокировки:
Только непонятно, зачем в этом триггере было заводить отдельные глобалки для счётчиков.
Так как игроки не смогут чатить в синематик-режиме, то integerA и integerB глючить не будут.


CM wars 1.15
ЭПОХА АНИМИРОВАННЫХ ТРИГГИРАФ ПРЕШЛА
 

НаклзДата: Среда, 29 Октября 2014, 11:07:47 | Сообщение # 24
10 уровень
Группа: Проверенные
Сообщений: 1431
Награды: 0
Репутация: 760
Блокировки:
Что?

Extremator, ввёл -модератор2 игра закрашилась


Сообщение отредактировал Наклз - Среда, 29 Октября 2014, 11:10:26
 

ExtrematorДата: Среда, 29 Октября 2014, 11:34:18 | Сообщение # 25
10 уровень
Группа: Проверенные
Сообщений: 3199
Награды: 0
Репутация: 1018
Блокировки:
Цитата Наклз ()
ввёл -модератор2 игра закрашилась
Странно...

 

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

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