home *** CD-ROM | disk | FTP | other *** search
- /* comroomenv.pkg */
-
- defcom ChatACK = ChatACK S;;
- defcom NewUser = NewUser S I S;;
- defcom DelUser = DelUser S I S;;
- defcom Hear = Hear S;;
- defcom GetAudio= GetAudio S;;
- defcom Info = Info S S;;
-
- typeof thischn=Chn;;
- typeof thisenv=Env;;
-
- var servernick="";;
- var serverIP="";;
- var MyNick="";;
- var Nusers=0;;
- var IsAServer=1;;
-
- struct TPlayer = [ PlayerChannel : Chn, PlayerNick : S , PlayerID : I , PlayerIP : S ] Const_Player ;;
-
- typeof Players=[TPlayer r1];;
- typeof CurrentUser=TPlayer;;
- typeof tempuser=TPlayer;;
-
- fun AddPlayer(player)=
- {
- set Players=player::Players;
- };;
-
- fun PlayerNickcmp (player,nick)=
- if !(strcmp player.PlayerNick nick) then 1 else 0;;
-
- fun PlayerIPcmp (player,IP) =
- if !(strcmp player.PlayerIP IP) then 1 else 0;;
-
- fun PlayerIDcmp (player,ID) =
- if player.PlayerID==ID then 1 else 0;;
-
- fun PlayerChcmp (player,ch) =
- if player.PlayerChannel==ch then 1 else 0;;
-
- fun GetPlayerByNick (s) =
- searchlist Players @PlayerNickcmp s;;
-
- fun GetPlayerByChannel (s)=
- searchlist Players @PlayerChcmp s;;
-
- fun GetPlayerByID (s) =
- searchlist Players @PlayerIDcmp s;;
-
- fun GetPlayerByIP (s) =
- searchlist Players @PlayerIPcmp s;;
-
- fun DelPlayerByID(id) =
- set Players=deletelist Players GetPlayerByID id;;
-
- fun DelPlayerByIP(ip) =
- set Players=deletelist Players GetPlayerByIP ip;;
-
- fun DelPlayerByNick(n) =
- set Players=deletelist Players GetPlayerByNick n;;
-
- fun DelPlayerByChannel(ch)=
- set Players=deletelist Players GetPlayerByChannel ch;;
-
- fun UpdateCurrentUser ()=
- {
- 0
- };;
-
- fun print(s)=
- {
- _status s;
- };;
-
- typeof temptext=S;;
-
- fun BroadHear (p,p2)=
- {
- if (p!=p2) then _on p.PlayerChannel Hear [temptext]
- else nil
- };;
-
- fun __Hear (s)=
- {
- set temptext=s;
- apply_on_list Players @BroadHear GetPlayerByChannel _channel;
- };;
-
- fun __Info (s1,s2)=
- {
- let GetPlayerByChannel _channel -> player in
- print strcat strcat strcat s1 player.PlayerNick s2 "\n";
- };;
-
- fun BroadUser (p,p2)=
- {
- _on p.PlayerChannel NewUser [p2.PlayerNick p2.PlayerID p2.PlayerIP];
- };;
-
- fun BroadDelUser (p,p2)=
- {
- _on p.PlayerChannel DelUser [p2.PlayerNick p2.PlayerID p2.PlayerIP];
- };;
-
- fun BroadList (p,p2)=
- {
- _on p2.PlayerChannel NewUser [p.PlayerNick p.PlayerID p.PlayerIP];
- };;
-
- typeof tempaudio =S;;
-
- fun BroadAudio (p,p2)=
- {
- if (p!=p2) then _on p.PlayerChannel GetAudio [tempaudio]
- else nil
- };;
-
- defcom AddLink = AddLink S S;;
-
- fun __NewUser (nick,ID,IP)=
- {
- print strloc loc "JOIN" nick::IP::(_channelIP _channel)::nil;
- set tempuser=Const_Player [_channel nick ID IP];
- apply_on_list Players @BroadUser tempuser;
- apply_on_list Players @BroadList tempuser;
- AddPlayer tempuser;
- set Nusers=Nusers+1;
- };;
-
- fun GetUserInfos (obj,r)=
- {
- 0
- };;
-
- defcom PhoneOK=PhoneOK;;
-
- defcom PhoneDENY=PhoneDENY;;
-
- var AskPhone=0;;
-
- typeof PhoneChn=Chn;;
-
- fun __GetPhone ()=
- {
- if (AskPhone==0) then
- {
- _on _channel PhoneOK [];
- set PhoneChn=_channel;
- set AskPhone=1
- }
- else
- {
- _on _channel PhoneDENY [];
- 0
- }
- };;
-
- fun __ReleasePhone ()=
- {
- if PhoneChn==_channel then
- {
- set AskPhone=0
- }
- else 0
- };;
-
- fun InitChat (nick,room)=
- {
- set servernick=nick;
- set serverIP=_channelIP _channel;
- set MyNick=_GETtext nickname;
- _status strcat strcat "On server: " nick ".\n";
- set thischn=_channel;
- set thisenv=_envchannel _channel;
- _status "Module OK\n";
- _on _channel ChatACK [MyNick];
- 0
- };;
-
- fun __ChatACK (nick)=
- {
- 0
- };;
-
- fun _connected ()=
- {
- _fooS "comroomenv connected";
- _status "Connected.\n"
- };;
-
- fun _closed ()=
- {
- _fooS "SERVER PART CLOSE";
- let GetPlayerByChannel _channel->p in
- {
- _status strcat strcat strcat strcat "Disconnected from " p.PlayerNick " (" p.PlayerIP ").\n";
- set Nusers=Nusers-1;
- DelPlayerByChannel _channel;
- apply_on_list Players @BroadDelUser p;
- }
- };;
-
- fun __GetAudio (audio)=
- {
- set tempaudio=audio;
- apply_on_list Players @BroadAudio GetPlayerByChannel _channel;
- };;
-
- fun __ChatStart (nick)=
- {
- InitChat nick ChatRoom;
- };;
-