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


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: PUVer, SirNikolas, Ty3uK  
Форум о Warcraft 3 » Раздел для картостроителей » GUI / Jass » [Вопрос] Событие - игрок пишет в чат (Для всех игроков а не для конкретного)
[Вопрос] Событие - игрок пишет в чат
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 )
и так далее


╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

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
Блокировки:
Можно, но я с телефона, не смогу нормально написать

╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

FatalBladeДата: Пятница, 25 Ноября 2011, 11:50:12 | Сообщение # 5
10 уровень
Группа: Проверенные
Сообщений: 1523
Награды: 0
Репутация: 439
Блокировки:
А вот с дублёвкой событий, если использовать GetTriggerPlayer(), то оно является ссылкой на все события?

 

Ty3uKДата: Пятница, 25 Ноября 2011, 12:01:52 | Сообщение # 6
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
Да

╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

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
Блокировки:
Да

╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

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, я был с телефона, писал самый простой пример

╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

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

приблизительно так


╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

Форум о Warcraft 3 » Раздел для картостроителей » GUI / Jass » [Вопрос] Событие - игрок пишет в чат (Для всех игроков а не для конкретного)
  • Страница 1 из 1
  • 1
Поиск:

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