Skip to content

Commit 335f402

Browse files
committed
removed CChrZ since its since a few years no longer needed
1 parent ced9b8a commit 335f402

4 files changed

Lines changed: 190 additions & 183 deletions

File tree

pkg/packethooks/Chat/doChat.src

Lines changed: 109 additions & 108 deletions
Original file line numberDiff line numberDiff line change
@@ -3,129 +3,130 @@ use os;
33
use polsys;
44
use unicode;
55

6-
CONST TYPE_DISPLAY_USERNAME := 0X03EB;
7-
CONST TYPE_USERNAME_ACCEPTED := 0x03ED;
8-
CONST TYPE_JOIN_CHANNEL := 0X03E8;
6+
const TYPE_DISPLAY_USERNAME := 0X03EB;
7+
const TYPE_USERNAME_ACCEPTED := 0x03ED;
8+
const TYPE_JOIN_CHANNEL := 0X03E8;
99

1010
include ":chat:chatIO";
1111
include ":chat:packets";
1212
include ":chat:functions";
1313
include ":chat:settings";
1414

15-
1615
program doChat()
17-
Print("INSTALLING: Chat PH...");
18-
19-
return 1;
16+
Print( "INSTALLING: Chat PH..." );
17+
18+
return 1;
2019
endprogram
2120

22-
exported function handleChatMessage(character, byref packet)
23-
if ( CH_CheckDebug() )
24-
Print("handleChatMessage: "+character.name+" packet: "+packet);
25-
endif
26-
27-
var type := packet.GetInt8(3);
28-
Print("handleChatMessage type: "+type);
21+
exported function handleChatMessage( character, byref packet )
22+
if ( CH_CheckDebug() )
23+
Print( "handleChatMessage: " + character.name + " packet: " + packet );
24+
endif
25+
26+
var type := packet.GetInt8( 3 );
27+
Print( "handleChatMessage type: " + type );
2928
endfunction
3029

31-
exported function handleChatText(character, byref packet)
32-
if ( CH_CheckDebug() )
33-
Print("handleChatText: "+character.name+" packet: "+packet);
34-
endif
30+
exported function handleChatText( character, byref packet )
31+
if ( CH_CheckDebug() )
32+
Print( "handleChatText: " + character.name + " packet: " + packet );
33+
endif
3534

36-
var cmd := packet.GetInt8(3);
37-
Print("handleChatText cmd: "+cmd);
35+
var cmd := packet.GetInt8( 3 );
36+
Print( "handleChatText cmd: " + cmd );
3837
endfunction
3938

40-
exported function handleOpenChatWindow(character, byref packet)
41-
var settings := CH_GetSettingsCfgElem("Settings");
42-
43-
if ( CH_CheckDebug() )
44-
Print("handleOpenChatWindow: "+character.name+" packet: "+packet);
45-
endif
46-
47-
var chat_name;
48-
if ( settings.PermChatName )
49-
chat_name := GetObjProperty(character, "ChatName");
50-
Print("Perm chat name enabled, getting chat name: "+chat_name);
51-
endif
52-
53-
if ( !chat_name )
54-
chat_name := CChrZ(packet.GetUnicodeString(2, 31));
55-
endif
56-
57-
if ( chat_name )
58-
// Validate chat name
59-
if ( chat_name == character.acctname )
60-
SendSysMessage(character, "For security reasons, you can not use your account name for your chat name.");
61-
return 0;
62-
endif
63-
64-
// Chat names are suposed to be permenant, but for now...
65-
SetObjProperty(character, "ChatName", chat_name);
66-
67-
// Display chat
68-
SendChatMessagePacket(character, TYPE_USERNAME_ACCEPTED, chat_name);
69-
70-
// Create Add Player packet and send to character
71-
// TODO: maybe this should be it's own function
72-
var packet := CreatePacket(0xB2, 13 + (Len(chat_name) * 2));
73-
packet.SetInt16(1, 13 + (Len(chat_name) * 2)); // length
74-
packet.SetInt16(3, 0x03EE); // add user
75-
// 0x0030 = user, 0x0031 = moderator, 0x0032 = muted, 0x0034 = me, 0x0035 = system
76-
packet.SetInt16(9, 0x0034); // user type
77-
packet.SetUnicodeString(11, CAscZ(chat_name), 0); // unicode chat name
78-
SendChatPacket(packet, character);
79-
80-
// Modify packet and send it to everyone else
81-
var user_type;
82-
if ( character.cmdlevel )
83-
user_type := 0x31;
84-
else
85-
user_type := 0x30;
86-
endif
87-
packet.SetInt16(9, user_type);
88-
89-
CH_AddPlayerToChat(character.serial); // add user to datafiles
90-
SendChatPacket(packet, "", character.serial);
91-
92-
// Send character the conferences
93-
SendConferences(character);
94-
else
95-
SendChatMessagePacket(character, TYPE_DISPLAY_USERNAME);
96-
endif
39+
exported function handleOpenChatWindow( character, byref packet )
40+
var settings := CH_GetSettingsCfgElem( "Settings" );
41+
42+
if ( CH_CheckDebug() )
43+
Print( "handleOpenChatWindow: " + character.name + " packet: " + packet );
44+
endif
45+
46+
var chat_name;
47+
if ( settings.PermChatName )
48+
chat_name := GetObjProperty( character, "ChatName" );
49+
Print( "Perm chat name enabled, getting chat name: " + chat_name );
50+
endif
51+
52+
if ( !chat_name )
53+
chat_name := packet.GetUnicodeString( 2, 31 );
54+
endif
55+
56+
if ( chat_name )
57+
// Validate chat name
58+
if ( chat_name == character.acctname )
59+
SendSysMessage( character,
60+
"For security reasons, you can not use your account name for your chat name."
61+
);
62+
return 0;
63+
endif
64+
65+
// Chat names are suposed to be permenant, but for now...
66+
SetObjProperty( character, "ChatName", chat_name );
67+
68+
// Display chat
69+
SendChatMessagePacket( character, TYPE_USERNAME_ACCEPTED, chat_name );
70+
71+
// Create Add Player packet and send to character
72+
// TODO: maybe this should be it's own function
73+
var packet := CreatePacket( 0xB2, 13 + ( Len( chat_name ) * 2 ) );
74+
packet.SetInt16( 1, 13 + ( Len( chat_name ) * 2 ) ); // length
75+
packet.SetInt16( 3, 0x03EE ); // add user
76+
// 0x0030 = user, 0x0031 = moderator, 0x0032 = muted, 0x0034 = me, 0x0035 = system
77+
packet.SetInt16( 9, 0x0034 ); // user type
78+
packet.SetUnicodeString( 11, CAscZ( chat_name ), 0 ); // unicode chat name
79+
SendChatPacket( packet, character );
80+
81+
// Modify packet and send it to everyone else
82+
var user_type;
83+
if ( character.cmdlevel )
84+
user_type := 0x31;
85+
else
86+
user_type := 0x30;
87+
endif
88+
packet.SetInt16( 9, user_type );
89+
90+
CH_AddPlayerToChat( character.serial ); // add user to datafiles
91+
SendChatPacket( packet, "", character.serial );
92+
93+
// Send character the conferences
94+
SendConferences( character );
95+
else
96+
SendChatMessagePacket( character, TYPE_DISPLAY_USERNAME );
97+
endif
9798
endfunction
9899

99-
function SendChatMessagePacket(targ, type, param:="")
100-
var packet := CreatePacket(0xB2, MSGLEN_VARIABLE);
101-
packet.SetInt16(3, type);
102-
103-
case ( type )
104-
TYPE_DISPLAY_USERNAME:
105-
packet.SetInt32(5, 0); // unknown
106-
packet.SetInt32(9, 0); // unknown
107-
break;
108-
TYPE_USERNAME_ACCEPTED:
109-
packet.SetInt32(5, 0); // unknown
110-
packet.SetUnicodeString(9, CAscZ(param), 1); // chat name
111-
packet.SetInt32(packet.GetSize() - 1, 0); // unknown
112-
break;
113-
TYPE_JOIN_CHANNEL:
114-
packet.SetInt32(5, 0); // unknown
115-
packet.SetUnicodeString(9, CAscZ(param), 1);
116-
packet.SetInt16(packet.GetSize() - 1, 0); // unknown
117-
packet.SetInt16(packet.GetSize() - 1, 30); // unknown
118-
packet.SetInt16(packet.GetSize() - 1, 0); // unknown
119-
break;
120-
endcase
121-
122-
packet.SetInt16(1, packet.GetSize()); // packet length
123-
124-
if ( CH_CheckDebug() )
125-
Print("SendChatMessagePacket(): "+type+" "+param);
126-
Print("Send CM: "+packet);
127-
endif
128-
129-
packet.SendPacket(targ);
100+
function SendChatMessagePacket( targ, type, param := "" )
101+
var packet := CreatePacket( 0xB2, MSGLEN_VARIABLE );
102+
packet.SetInt16( 3, type );
103+
104+
case ( type )
105+
TYPE_DISPLAY_USERNAME:
106+
packet.SetInt32( 5, 0 ); // unknown
107+
packet.SetInt32( 9, 0 ); // unknown
108+
break;
109+
TYPE_USERNAME_ACCEPTED:
110+
packet.SetInt32( 5, 0 ); // unknown
111+
packet.SetUnicodeString( 9, CAscZ( param ), 1 ); // chat name
112+
packet.SetInt32( packet.GetSize() - 1, 0 ); // unknown
113+
break;
114+
TYPE_JOIN_CHANNEL:
115+
packet.SetInt32( 5, 0 ); // unknown
116+
packet.SetUnicodeString( 9, CAscZ( param ), 1 );
117+
packet.SetInt16( packet.GetSize() - 1, 0 ); // unknown
118+
packet.SetInt16( packet.GetSize() - 1, 30 ); // unknown
119+
packet.SetInt16( packet.GetSize() - 1, 0 ); // unknown
120+
break;
121+
endcase
122+
123+
packet.SetInt16( 1, packet.GetSize() ); // packet length
124+
125+
if ( CH_CheckDebug() )
126+
Print( "SendChatMessagePacket(): " + type + " " + param );
127+
Print( "Send CM: " + packet );
128+
endif
129+
130+
packet.SendPacket( targ );
130131
endfunction
131132

pkg/packethooks/Chat/handleCreateNewConference.src

Lines changed: 29 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -7,29 +7,32 @@ include ":chat:packets";
77
include ":chat:functions";
88
include ":chat:settings";
99

10-
program CreateNewConference(params)
11-
var character := params[1];
12-
var packet := params[2];
13-
params := "";
14-
15-
if ( CH_CheckDebug() )
16-
Print("CreateNewConference: "+character.name+" "+packet);
17-
endif
18-
19-
var conference_name := CChrZ(packet.GetUnicodeString(9, (packet.GetSize() / 2) - 5));
20-
var conference_pass := "";
21-
22-
if ( Find(conference_name, "{", 1) )
23-
conference_pass := conference_name[Find(conference_name, "{", 1) + 1, Find(conference_name, "}", 1) - 2];
24-
conference_name := conference_name[1, Find(conference_name, "{", 1) - 1];
25-
endif
26-
27-
Print("Recieved conference: "+conference_name+" "+conference_pass);
28-
29-
// Create conference and automaticly join player (if valid) since confs are destroyed when all leave.
30-
if ( CreateConference(conference_name, conference_pass, character) )
31-
AddPlayerToConference(character, conference_name, conference_pass);
32-
endif
33-
34-
return 1;
35-
endprogram
10+
program CreateNewConference( params )
11+
var character := params[1];
12+
var packet := params[2];
13+
params := "";
14+
15+
if ( CH_CheckDebug() )
16+
Print( "CreateNewConference: " + character.name + " " + packet );
17+
endif
18+
19+
var conference_name := packet.GetUnicodeString( 9, ( packet.GetSize() / 2 ) - 5 );
20+
var conference_pass := "";
21+
22+
if ( Find( conference_name, "{", 1 ) )
23+
conference_pass := conference_name[Find( conference_name, "{", 1 ) + 1,
24+
Find( conference_name, "}", 1 ) - 2];
25+
conference_name := conference_name[1, Find( conference_name, "{", 1 ) - 1];
26+
endif
27+
28+
Print( "Recieved conference: " + conference_name + " " + conference_pass );
29+
30+
// Create conference and automaticly join player (if valid) since confs are destroyed when all leave.
31+
if ( CreateConference( conference_name, conference_pass, character ) )
32+
AddPlayerToConference( character, conference_name, conference_pass );
33+
endif
34+
35+
return 1;
36+
endprogram
37+
38+

pkg/packethooks/Chat/handleJoinConference.src

Lines changed: 29 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -7,30 +7,32 @@ include ":chat:packets";
77
include ":chat:functions";
88
include ":chat:settings";
99

10-
program JoinConference(params)
11-
var character := params[1];
12-
var packet := params[2];
13-
params := "";
14-
15-
if ( CH_CheckDebug() )
16-
Print("JoinConference: "+character.name+" "+packet);
17-
endif
18-
19-
// Sent like this: "ConferenceName" password, split them up
20-
// comeback: Shouldn't the offset be 13 and not 11??
21-
var conference_name := CChrZ(packet.GetUnicodeString(11, (packet.GetSize() / 2) - 5));
22-
conference_name := SplitWords(conference_name, CChr(0x22));
23-
24-
var conference_pass;
25-
if ( conference_name[2] )
26-
conference_pass := conference_name[2];
27-
conference_pass := conference_pass[2, Len(conference_pass) - 2];
28-
endif
29-
30-
conference_name := conference_name[1];
31-
32-
// AddPlayerToConference() checks password
33-
AddPlayerToConference(character, conference_name, conference_pass);
34-
35-
return 1;
36-
endprogram
10+
program JoinConference( params )
11+
var character := params[1];
12+
var packet := params[2];
13+
params := "";
14+
15+
if ( CH_CheckDebug() )
16+
Print( "JoinConference: " + character.name + " " + packet );
17+
endif
18+
19+
// Sent like this: "ConferenceName" password, split them up
20+
// comeback: Shouldn't the offset be 13 and not 11??
21+
var conference_name := packet.GetUnicodeString( 11, ( packet.GetSize() / 2 ) - 5 );
22+
conference_name := SplitWords( conference_name, CChr( 0x22 ) );
23+
24+
var conference_pass;
25+
if ( conference_name[2] )
26+
conference_pass := conference_name[2];
27+
conference_pass := conference_pass[2, Len( conference_pass ) - 2];
28+
endif
29+
30+
conference_name := conference_name[1];
31+
32+
// AddPlayerToConference() checks password
33+
AddPlayerToConference( character, conference_name, conference_pass );
34+
35+
return 1;
36+
endprogram
37+
38+

0 commit comments

Comments
 (0)