[Вопрос] Событие - игрок пишет в чат
|
|
FatalBlade | Дата: Пятница, 25 Ноября 2011, 10:13:48 | Сообщение # 1 |
10 уровень
Группа: Проверенные
Сообщений: 1523
Награды: 0
Репутация: 439
Блокировки:
| Code function Trig_Pname_1_Actions takes nothing returns nothing call SetPlayerName( Player(0), SubString(GetEventPlayerChatString(), 6, 25) ) endfunction
//=========================================================================== function InitTrig_Pname_1 takes nothing returns nothing set gg_trg_Pname_1 = CreateTrigger( ) call TriggerRegisterPlayerChatEvent( gg_trg_Pname_1, Player(0), "/name ", false ) call TriggerAddAction( gg_trg_Pname_1, function Trig_Pname_1_Actions ) endfunction
Этот код для замены имя игрока на новое написанное имя. Тут нужно указать игрока который пишет в чат. Можно ли сделать так, что бы этот код действовал на всех игроков, короче сделать этот одним триггеров, а не триггером для каждого игрока?
|
|
|
|
Ty3uK | Дата: Пятница, 25 Ноября 2011, 10:49:50 | Сообщение # 2 |
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
| Дублируй функу события TriggerRegisterPlayerChatEvent ( gg_trg_Pname_1, Player(0), "/ name ", false ) TriggerRegisterPlayerChatEvent ( gg_trg_Pname_1, Player(1), "/ name ", false ) и так далее
|
|
|
|
FatalBlade | Дата: Пятница, 25 Ноября 2011, 10:55:26 | Сообщение # 3 |
10 уровень
Группа: Проверенные
Сообщений: 1523
Награды: 0
Репутация: 439
Блокировки:
| Quote (Ty3uK) Дублируй функу события TriggerRegisterPlayerChatEvent ( gg_trg_Pname_1, Player(0), "/ name ", false ) TriggerRegisterPlayerChatEvent ( gg_trg_Pname_1, Player(1), "/ name ", false ) и так далее
А как указать какие действия выполняются для какого события. Я про call TriggerAddAction( gg_trg_Pname_1, function Trig_Pname_1_Actions ). Тут же нету ссылки на событие, как и в событие нету ссылки на действия.
З.Ы. А нельзя как то через GetLocalPlayer() ?
|
|
|
|
Ty3uK | Дата: Пятница, 25 Ноября 2011, 10:57:30 | Сообщение # 4 |
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
| Можно, но я с телефона, не смогу нормально написать
|
|
|
|
FatalBlade | Дата: Пятница, 25 Ноября 2011, 11:50:12 | Сообщение # 5 |
10 уровень
Группа: Проверенные
Сообщений: 1523
Награды: 0
Репутация: 439
Блокировки:
| А вот с дублёвкой событий, если использовать GetTriggerPlayer(), то оно является ссылкой на все события?
|
|
|
|
Ty3uK | Дата: Пятница, 25 Ноября 2011, 12:01:52 | Сообщение # 6 |
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
| Да
|
|
|
|
FatalBlade | Дата: Пятница, 25 Ноября 2011, 12:14:36 | Сообщение # 7 |
10 уровень
Группа: Проверенные
Сообщений: 1523
Награды: 0
Репутация: 439
Блокировки:
| Значит вот так должно работать? Code function Trig_Pname_1_Actions takes nothing returns nothing local player p = GetTriggerPlayer() call SetPlayerName( p, SubString(GetEventPlayerChatString(), 6, 25) ) call SetSoundVolume(gg_snd_InGameChatWhat1, 127) call StartSound(gg_snd_InGameChatWhat1) endfunction
//=========================================================================== function InitTrig_Pname_1 takes nothing returns nothing set gg_trg_Pname_1 = CreateTrigger( ) call TriggerRegisterPlayerChatEvent( gg_trg_Pname_1, Player(0), "/name ", false ) call TriggerRegisterPlayerChatEvent( gg_trg_Pname_1, Player(1), "/name ", false ) call TriggerRegisterPlayerChatEvent( gg_trg_Pname_1, Player(2), "/name ", false ) call TriggerRegisterPlayerChatEvent( gg_trg_Pname_1, Player(3), "/name ", false ) call TriggerRegisterPlayerChatEvent( gg_trg_Pname_1, Player(4), "/name ", false ) call TriggerRegisterPlayerChatEvent( gg_trg_Pname_1, Player(5), "/name ", false ) call TriggerRegisterPlayerChatEvent( gg_trg_Pname_1, Player(6), "/name ", false ) call TriggerRegisterPlayerChatEvent( gg_trg_Pname_1, Player(7), "/name ", false ) call TriggerRegisterPlayerChatEvent( gg_trg_Pname_1, Player(8), "/name ", false ) call TriggerRegisterPlayerChatEvent( gg_trg_Pname_1, Player(9), "/name ", false ) call TriggerAddAction( gg_trg_Pname_1, function Trig_Pname_1_Actions ) endfunction
|
|
|
|
Ty3uK | Дата: Пятница, 25 Ноября 2011, 12:42:48 | Сообщение # 8 |
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
| Да
|
|
|
|
lawson | Дата: Пятница, 25 Ноября 2011, 14:35:24 | Сообщение # 9 |
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
| А с помощью цикла построить событие?
Nic nie wiem bo mam chuj. редактирую посты! ВСЕ!
|
|
|
|
Ty3uK | Дата: Пятница, 25 Ноября 2011, 14:37:33 | Сообщение # 10 |
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
| lawson, я был с телефона, писал самый простой пример
|
|
|
|
SirNikolas | Дата: Пятница, 25 Ноября 2011, 14:42:35 | Сообщение # 11 |
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
| lawson, в данном случае это не настолько необходимо, ведь цикл выполняется 10 раз => затраты на изменение счетчика и проверку условия выхода себя не окупят. Добавлено (25 Ноябрь 2011, 14:42:35) --------------------------------------------- Плюс - цикл состоит только из одного действия. Было бы 10 - тогда ладно...
|
|
|
|
Hexing | Дата: Пятница, 25 Ноября 2011, 14:57:38 | Сообщение # 12 |
10 уровень
Группа: Проверенные
Сообщений: 1645
Награды: 1
Репутация: 432
Блокировки:
| цикл нужен лишь тогда, когда есть неизвестные переменные, в остальных случаях всё нужно делать руками...
|
|
|
|
FatalBlade | Дата: Пятница, 25 Ноября 2011, 15:13:53 | Сообщение # 13 |
10 уровень
Группа: Проверенные
Сообщений: 1523
Награды: 0
Репутация: 439
Блокировки:
| Quote (lawson) А с помощью цикла построить событие? А чё так можно?:)
|
|
|
|
Ty3uK | Дата: Пятница, 25 Ноября 2011, 15:16:30 | Сообщение # 14 |
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
| Code function Trig_Pname_1_Actions takes nothing returns nothing local player p = GetTriggerPlayer() call SetPlayerName( p, SubString(GetEventPlayerChatString(), 6, 25) ) call SetSoundVolume(gg_snd_InGameChatWhat1, 127) call StartSound(gg_snd_InGameChatWhat1) endfunction
//=========================================================================== function InitTrig_Pname_1 takes nothing returns nothing local integer i = 0 set gg_trg_Pname_1 = CreateTrigger() loop exitwhen i > 11 call TriggerRegisterPlayerChatEvent(gg_trg_Pname_1, Player(i), "/name ", false) set i = i + 1 endloop call TriggerAddAction( gg_trg_Pname_1, function Trig_Pname_1_Actions ) endfunction приблизительно так
|
|
|
|