Здравствуйте, красным я отметил (не везде) отличия от моего первого урока:http://www.c2community.ru/forum/viewtopic.php?f=96&t=9774
Первым делом обновим обьекты Lacewing,а а то мало ли что а потом создадим четыре комнаты(Вы можете написать любое название):
1-Order Room
2 -Join Room
3 -Host Room
4 -Game Room
Затем надо создать четыре глобальные строки:
1 -Server (Бессмысленно, но я поставил равным localhost)
2 -Player1
3 -Player2
4 -Command
5 -AltCommand
1-Order Room
2 -Join Room
3 -Host Room
4 -Game Room
Затем надо создать четыре глобальные строки:
1 -Server (Бессмысленно, но я поставил равным localhost)
2 -Player1
3 -Player2
4 -Command
5 -AltCommand
Создайте обьект Button(Кнопка) в Order Room, назовите его "JoinButton", в текст на кнопке напишите "Join"
(Можете написать по русски), разместите где будет удобно, потом клонируйте нажатием по нему правой кнопки мыши и выбрав "Clone Object"(Клонировать обьект) с Row Spacing(расстояние между клонами) равным 32.
Назовите клон "Host Button", в текст напишите "Host".
После, в Join Room добавьте обьекты:Lacewing Relay Client, Button, два Edit Box и два Static Text. Button назовите "JButton" и впишите в ней "Join".Первый Edit Box разместите высоко над кнопкой и назовите "IPbox", второй Edit Box разместите под первым и над кнопкой, назовите его "NickBox".Static text,ы разместите справа от Edit Box,ов, в верхний впишите "IP для подключения", а в нижний "Ваш ник".
В комнату "Host Room" перетащите все обьекты из второй комнаты кроме "Jbutton" , "IPbox" и верхнего "Static text"/
Создайте кнопку "Hbutton", впишите "Host".Создайте Lacewing Relay Server.
В четвёртую, последнюю комнату "Game Room" перетащите из второй и третьей Lacewing,и. Создайте String Tokenizer, два обьекта Rich Edit ((В скобках я пишу как обьект назвать)Chat Object и PeerList), один Edit Object (SendBox), одну кнопку (SendButton).

Всё, подготовка завершена.
(Можете написать по русски), разместите где будет удобно, потом клонируйте нажатием по нему правой кнопки мыши и выбрав "Clone Object"(Клонировать обьект) с Row Spacing(расстояние между клонами) равным 32.
Назовите клон "Host Button", в текст напишите "Host".
После, в Join Room добавьте обьекты:Lacewing Relay Client, Button, два Edit Box и два Static Text. Button назовите "JButton" и впишите в ней "Join".Первый Edit Box разместите высоко над кнопкой и назовите "IPbox", второй Edit Box разместите под первым и над кнопкой, назовите его "NickBox".Static text,ы разместите справа от Edit Box,ов, в верхний впишите "IP для подключения", а в нижний "Ваш ник".
В комнату "Host Room" перетащите все обьекты из второй комнаты кроме "Jbutton" , "IPbox" и верхнего "Static text"/
Создайте кнопку "Hbutton", впишите "Host".Создайте Lacewing Relay Server.
В четвёртую, последнюю комнату "Game Room" перетащите из второй и третьей Lacewing,и. Создайте String Tokenizer, два обьекта Rich Edit ((В скобках я пишу как обьект назвать)Chat Object и PeerList), один Edit Object (SendBox), одну кнопку (SendButton).

Всё, подготовка завершена.
Для Order Room.
Первая кнопка - это Join Button.
Для Join Room

Для Host Room

Для GameRoom
Во всех условиях фигурирует Lacewing Relay Client
1 - - Lacewing Relay Server-On error (В случае ошибки)
Rich Edit Object > Control > Append Text (Добавить текст)>"У хоста проблемы..."
2 - Storyboard Controls(Коник) > Start of Frame(в начале уровня)
Player 2 -Ignore Control
Lacewing Relay Client(LRC) >Connect > Server+":6121".Server > это глобальная строка
3 - On connect
LRC > Set name > (Строка)Player1
Rich Edit Object(REO) > Append Text-NewLine$+"Connected"
4 - On Name Set
LRC>Channel>Join>"Lobby">0>1
5 - On error
REO>Control>Append Text>NewLine$ + Error$( "Lacewing Relay Server" )
6 - On Connection Denion
REO > Append Text > NewLine$ + DenyReason$( "Lacewing Relay Client" )
7 - On text message from channel on subchannel 0(Sent)
OR
On text message from channel on subchannel 0(Blasted)
Special Conditions (Шестерёнка(Первый обьект)) > set global string > command >Received$( "Lacewing Relay Client" )
String Tokenizer(Ножницы) > Split String > Command - "#"
8 - On Peer connect
REO - Append Text - (Строка)Player2 +" Connected..."
LRC - Channel- Peer-Loop Peers on Channel
PeerList > Append (Строка) Player 1 to text
9 - On Channel Join
LRC - Channel- Peer-Loop Peers on Channel
10 - Channel-Peers-On Loop
Шестерёнки - Set global String - Player2 - Peer_Name$( "Lacewing Relay Client" )
11 - Коник -End of application
OR
Channel - Peers -On peer disconnect
OR
Channel - Peers- On peer Changed Name
REO(Rich Edit Object) - Append Text- (Строка)Player2 + "Leave Chatroom :)" (Немного садизма)
LRC(Lacewing Relay Client) - Disconnect
Шестерни > Change a Global Value > Set > AltCommand > Peer_Name$( "Lacewing Relay Client" )
12 - SendButton > On clicked
LRC > IS Connected
EditBox > Has entry zone just been modified?
ChatObject > Control > Append text > "NewLine$ + Self_Name$( "Lacewing Relay Client" ) + ":" + Edittext$( "SendBox" )" (NewLine$ значит "новая линия", ":" прибавляется к имени что - бы вы видели всё как если бы кто - то написал вам)
LRC > Blast > Text > To Channel > 0 > Self_Name$( "Lacewing Relay Client" ) + ":" + Edittext$( "SendBox" )
EditBox > Set Text > "" (Ничего, пустота)
13 - LRC > Chamnnel > Peers > On Peer Connect
LRC > Channel > You Are the channel master (вы Хост?)
Шестерни > Global Values > Set value > Player2 > Peer_Name$( "Lacewing Relay Client" )
PeerList > Control > Goto > Character number > GetNChars( "PeerList" ) (Число символов в обьекте)
PeerList > Control > Append text > "NewLine$ + (Строка) Player2"
LRC > Blast > Text > To channel > 1 > "GetText$( "Chat Object", 0, GetNChars( "Chat Object" ) ) + "#" + GetText$( "PeerList", 0, GetNChars( "PeerList" ) ) " (Только без кавычек, Токенизер (Ножницы) при получении сообщения с первого канала (в последнем действии) на который мы сейчас отправили сообщение, разрежет это сообщение на две части :весь чат от Хоста и список пользователей)
14 - LRC > Chamnnel > Peers > On Peer Disconnect
LRC > Channel > You Are the channel master
PeerList > Set Read Only > Off
Шестерни > Global Values > Set value > Player2 > Peer_Name$( "Lacewing Relay Client" )
PeerList > Control > Find > Find Text > (Строка) Player2 > 0
PeerList > Block > Select Text > GetChar( "PeerList" ) - 1 > GetChar( "PeerList" ) + Len(Player2 ) (Len, значит Lenght - длина, то есть это выражение даст нам количество символов в строке, её размер.)
PeerList > Block > Clear
LRC > Blast > Text > To Channel > 1 > GetText$( "Chat Object", 0, GetNChars( "Chat Object" ) ) + "#" + GetText$( "PeerList", 0, GetNChars( "PeerList" ) )
PeerList > Set Read Only > On
PeerList > Control > Goto > Character number > GetNChars( "PeerList" )
15 - LRC > Message > Blasted > On Any Message From Channel
Шестерни > Global Value > Set > AltCommand > Received$( "Lacewing Relay Client" )
Ножницы > Split String > "#"
ChatObject > Control > Set Text > Element$( "String tokenizer", 0 ) (Установим текст в чате равным первой части сообщения с первого канала)
PeerList > Control > Set Text > Element$( "String tokenizer", 1 ) (Установим текст в чате равным второй части сообщения с первого канала)

Получилось? Хорошо! Вопросы в студию!!!

Для Join Room

Для Host Room

Для GameRoom
Во всех условиях фигурирует Lacewing Relay Client
1 - - Lacewing Relay Server-On error (В случае ошибки)
Rich Edit Object > Control > Append Text (Добавить текст)>"У хоста проблемы..."
2 - Storyboard Controls(Коник) > Start of Frame(в начале уровня)
Player 2 -Ignore Control
Lacewing Relay Client(LRC) >Connect > Server+":6121".Server > это глобальная строка
3 - On connect
LRC > Set name > (Строка)Player1
Rich Edit Object(REO) > Append Text-NewLine$+"Connected"
4 - On Name Set
LRC>Channel>Join>"Lobby">0>1
5 - On error
REO>Control>Append Text>NewLine$ + Error$( "Lacewing Relay Server" )
6 - On Connection Denion
REO > Append Text > NewLine$ + DenyReason$( "Lacewing Relay Client" )
7 - On text message from channel on subchannel 0(Sent)
OR
On text message from channel on subchannel 0(Blasted)
Special Conditions (Шестерёнка(Первый обьект)) > set global string > command >Received$( "Lacewing Relay Client" )
String Tokenizer(Ножницы) > Split String > Command - "#"
8 - On Peer connect
REO - Append Text - (Строка)Player2 +" Connected..."
LRC - Channel- Peer-Loop Peers on Channel
PeerList > Append (Строка) Player 1 to text
9 - On Channel Join
LRC - Channel- Peer-Loop Peers on Channel
10 - Channel-Peers-On Loop
Шестерёнки - Set global String - Player2 - Peer_Name$( "Lacewing Relay Client" )
11 - Коник -End of application
OR
Channel - Peers -On peer disconnect
OR
Channel - Peers- On peer Changed Name
REO(Rich Edit Object) - Append Text- (Строка)Player2 + "Leave Chatroom :)" (Немного садизма)
LRC(Lacewing Relay Client) - Disconnect
Шестерни > Change a Global Value > Set > AltCommand > Peer_Name$( "Lacewing Relay Client" )
12 - SendButton > On clicked
LRC > IS Connected
EditBox > Has entry zone just been modified?
ChatObject > Control > Append text > "NewLine$ + Self_Name$( "Lacewing Relay Client" ) + ":" + Edittext$( "SendBox" )" (NewLine$ значит "новая линия", ":" прибавляется к имени что - бы вы видели всё как если бы кто - то написал вам)
LRC > Blast > Text > To Channel > 0 > Self_Name$( "Lacewing Relay Client" ) + ":" + Edittext$( "SendBox" )
EditBox > Set Text > "" (Ничего, пустота)
13 - LRC > Chamnnel > Peers > On Peer Connect
LRC > Channel > You Are the channel master (вы Хост?)
Шестерни > Global Values > Set value > Player2 > Peer_Name$( "Lacewing Relay Client" )
PeerList > Control > Goto > Character number > GetNChars( "PeerList" ) (Число символов в обьекте)
PeerList > Control > Append text > "NewLine$ + (Строка) Player2"
LRC > Blast > Text > To channel > 1 > "GetText$( "Chat Object", 0, GetNChars( "Chat Object" ) ) + "#" + GetText$( "PeerList", 0, GetNChars( "PeerList" ) ) " (Только без кавычек, Токенизер (Ножницы) при получении сообщения с первого канала (в последнем действии) на который мы сейчас отправили сообщение, разрежет это сообщение на две части :весь чат от Хоста и список пользователей)
14 - LRC > Chamnnel > Peers > On Peer Disconnect
LRC > Channel > You Are the channel master
PeerList > Set Read Only > Off
Шестерни > Global Values > Set value > Player2 > Peer_Name$( "Lacewing Relay Client" )
PeerList > Control > Find > Find Text > (Строка) Player2 > 0
PeerList > Block > Select Text > GetChar( "PeerList" ) - 1 > GetChar( "PeerList" ) + Len(Player2 ) (Len, значит Lenght - длина, то есть это выражение даст нам количество символов в строке, её размер.)
PeerList > Block > Clear
LRC > Blast > Text > To Channel > 1 > GetText$( "Chat Object", 0, GetNChars( "Chat Object" ) ) + "#" + GetText$( "PeerList", 0, GetNChars( "PeerList" ) )
PeerList > Set Read Only > On
PeerList > Control > Goto > Character number > GetNChars( "PeerList" )
15 - LRC > Message > Blasted > On Any Message From Channel
Шестерни > Global Value > Set > AltCommand > Received$( "Lacewing Relay Client" )
Ножницы > Split String > "#"
ChatObject > Control > Set Text > Element$( "String tokenizer", 0 ) (Установим текст в чате равным первой части сообщения с первого канала)
PeerList > Control > Set Text > Element$( "String tokenizer", 1 ) (Установим текст в чате равным второй части сообщения с первого канала)

Получилось? Хорошо! Вопросы в студию!!!
Данный урок не был бы создан если бы не Microtoon, который оказывал всевозможную помощь в первом уроке по Лэйсвингу http://www.c2community.ru/forum/viewtopic.php?f=96&t=9774. Также мне помог в этом уроке мой брат, который пожелал остаться для "публики" неизвестным.
P.S Чтобы общаться на Русском языке, добавьте в информацию о исходнике, а именно страну, в нашем случае конечно-же россию, тогда вы сможете общаться на русском.