concepts - message_doc

MudOS v21c2

��Ϣ����� (message document)


message() ��Ϣ�����

message() �� MudOS ��, ����Ƶ��ⲿ���� (efun). �˺�������;��ʹ��Ϣ���ݸ�����, ���ṩ��Ϣ�������ͨ�ı�׼.

������ message ��ʹ��˵��:


��:
    void message( mixed class, string message, mixed targets, mixed exclude);

    �޷���ֵ message( ��� class, �ַ��� message, ��� targets, ��� exclude );

message() �����κν�����Ϣ֮�������� receive_message( ��� class, �ַ��� message ) ���� (target �������ǽ�����Ϣ�����).�� exclude ���г����������Ϣ�����. ������, ����������Ϣ��Ŀ�����.

message ����Ҫ�������Ϣ�ַ���.

class ����Ϣ������ (����Ϣ���������������������) һЩ��������: combat (ս��)��shout (�ź�)��emergency (Σ��) �ȵ�.

target �ǽ�����Ϣ���������. ������һ������ļ����Ƶ��ַ���, Ҳ������һ�����ָ�� (pointer), ������Ƕ��������ļ����ƻ�ָ������� (array).

exclude �Dz����յ���Ϣ���������. ������һ�����ָ����Ƕ�����ָ�������.



message() ��������Ҫ�ĵط�Ӧ���� class ����. �������ȷʹ����, ����������һ���򵥵Ķ����Թ�����Ϣ, ��������Ϣ���������Դ���. class ������message �ַ�����Ϣ�ķ���Ϊ��. һ��ʼ�򵥵ķ���Ӧ���� shout (�ź�)��say (̸��)��write (��ʾ)��tell_object (���������Ϣ) (tell_object ��ģ���ⲿ���� (simul_efun) �е� tell_object() ��������, ���洫ͳ���ⲿ����).

̸������, �������Ҫ��������һ���򵥵Ķ��ֹ��� (�����ź��Ĺ���). ������ʹ���� (���) �����, ��Ҫ�� receive_message() ����. ������һ����򵥵����� (���� mudlib ��ͬ, Ӧ����һЩ�����Է���ʵ�����) :

    void receive_message (string msg, mixed class)
    {
      receive(msg);
    }
����ֻ���յ� message()�� ���������е���Ϣ, ��ԭ�ⲻ����ʾ��ʹ����. ����, �������뵽һ���򵥵Ķ���:

/* �ȳ�ʼ�� muffle �����ֵ, ��Ԥ�� muffle û�ж���ʱ, �� member_array() ��������ָ��������Ϣ. */

    string *muffle = ({});
// ���� muffle_class() ������ʱ���϶��ֵ�����.
    int muffle_class ( string arg )
    {
      muffle += ({ arg });
    }
/* receive_message() �� message() ���õ���Ϣ�����. �ڴ˼�� muffle �������Ƿ��и� class ��ͬ������, û�оͷ���. */
��
    void receive_message ( string msg, string class )
    {
      if ( member_array( class, muffle ) == -1 )
        receive(msg);
    }
�����ڿ��Կ���, ����ض��������Ϣ������ (�����ǡ��ź���), ���ź�����Ϣ��Զ������ʾ����, �����������Ϣ��������ʾ.

����, �ڴ�ͳ�� mud ������, ��������ʹ�� shout() ����Ϣ�����ź�. Ʃ��˵, mud ϵͳ����Ա������е�ʹ�������� mud ��������Ӻ�ر�. ���һ��, ���ܻ��� echo ָ��. �� echo ָ����ʹ�� shout(). ��˵���ʹ���ź����ֵ�ʹ������������Ҫ����Ϣ. �������α�ʾ��Ϣ����Ҫ�ٷ���. ����, ����Ǭ���������Ϣ����Ϊ�µ� broadcast (�㲥) ����. �����ַ��������ÿһ���˶�����������Ҫ��Ϣ. ����Ӧ����ʹ����ʹ�ù㲥����.

�����ǿ�����һ������. ���������������өĻ�ı������ (emotes) �е��ᷳ�Ļ�, ������� ? Ҫ���и�������Ϣ�Ķ��ָ��ж�� ? ����Ȼ, ������Ҫ����Щ��Ϣ����Ϊ emote (����).�� ������Ҳ����뵽: ��ι....�ҿɲ�����ÿ��д���ֱ���ָ���ʱ��, ��Ҫ���Ǹ��������ӵ� message() �������� write() �� say() �ͺܼ�, ����Ը����Щ�����ð�, ��Ҳͬ�����Ļ�. Ҫ�Ը������
��, �ҽ�һ����õ�����Ϣ����д�ɸ����ģ���ⲿ���� (simul_efun) . ����д��һ����Ϊ emote() ��ģ���ⲿ����, ����Щָ��д����Ҫ�������. ��emote() ����ʹ�� message() ���� emote �������Ϣ. �Ҳ��ѳ������, �����ǻ����ĸ���:

    varargs int emote (object emoter, string self_message, string
      other_message, mixed emotee, string target_message, string modifier);
emoter - ������������.
self_message - �����������������յ�����Ϣ.
other_message -�� ���������������յ�����Ϣ.
emotee - ���������Ϣ�Ķ��� (���� kick huthar)
target_message - �����յ�����Ϣ.
string modifier - �κμ�����Ϣβ�˵����δ�. (���Ǹ���: smile happily, cheerfully�� �ȵ�) - ��ֻ�кܸ��ӵı���ָ���õõ� (���������һ������ָ�����ж�����δʵĻ�). (�밴: ����Ӣ�ĵ��ķ�, �������ķ���ͬ)

�ڴ�, ��Щ�˿��ܻ��뵽: ����....�������������ǿ��Ķ���;���֣����������������������ûɶ�ô�����˵�ú�, Ŀǰ��ֻ�����ö��ֹ���һЩ��Ϣ����. �е����а취д����������Ϣ�������, ����������ܵ� message() �����ô�. ������ʵ�ʵ�����:

������, Ҫ�Ѵ��ݸ�ʹ���ߵ���Ϣ�������ݷ���. ���Լ�������һ�� combat ���ࡢһ�� stat (���) ���ࡢһ�� room_description (��������) ���ࡢһ�� help (��������) ����. �ڿ�ʼ֮ǰ, ������дһ���µ� receive_message().

    int has_smart_client;

    void receive_message (string msg, string class)
    {

      if (member_array(class,muffle) == -1) {
        if (has_smart_client)
          receive (class + " : " + msg);
        else
          receive (msg);
      }
    }

��. ������������Щ����ʲô. ���һ��ʹ������������� has_smart_client > 0, �����е���Ϣǰ�涼����Ϸ�������. ����, �������дһ����������Ϣ�������������е���Ϣ, �����԰ѷ���������һ���Ӵ���, ̸��������һ���Ӵ�, ս����Ϣ������һ���Ӵ�, �Դ�����. ���������԰�һ��״̬��, ������ʾĿǰ��ķ������� (��Ϊ�����뷿��ʱ, �յ�һ�� room_name (��������) �������Ϣ) . ���������� heart_beat() ����, ��״̬������ʾĿǰ������. ��Щ�������Ϣ�����������ַ�ʽ��ʾ���ն˵�ʹ����.

����������ʹ�ô˷���д��һ���򵥵�ͼ�ν�����û��˳���. BSX ͼ�� mud ���û��˳�������� MudOS �� message()�� �������ڲ�����. ��Ҳ���Դ���һ��С�ĵ���ͼ�� (bitmap) ���� BSX �Ķ����������ͼ (polygon-based line drawing). message() ����;����.

����������̸������֮��, �����и�������������. ��Ȼÿ���˶�Ҫ�Լ�׫д��������Щ��Ϣ, Ҳû����д������õ��û��˳��� (client) �Է�����Щ��Ϣ����ij���. һ����Ϣ�������д������, ���� mudlib ��ƾʲô��֤����˳������ ? �ð�, ��������˵���ļ����ص�����. ��ϣ���ܸ��Խ���һ���򵥵���ϢЭ���ô�ҽ���, ����û��˳�����һ�����д������, ֻҪ���� mudlib �������µ�Э�鼴��.

��ϢЭ��:

���д��ݸ������û��˳������Ϣ��ʽ����:

"class:msg_length:msg"

msg_len �� msg�� �ַ����ij���. ��������������û��˳���֪����Ϣ���״��������û.

ʹ�õ��µķ����嵥, ʹ�û��˳��������ʹ����Щ�������Ϣ.

say���� ʹ�� say�� ָ��
shout���� ʹ�� shout�� ָ��
tell���� ʹ�� tell ָ��
emote���� ����ָ��
broadcast�� ��ÿһ���˹㲥����Ϣ
combat���� ��ͨ��ս����Ϣ
combat_self�� ʹ�����Լ�������ս����Ϣ
combat_other�� ���˲�����ս����Ϣ
combat_*�� �����ض���ս����Ϣ
room_description �����ص�ij����
room_name�� ����ļ������
inventory�� �����ϴ��ŵĶ���
item_description ��Ʒ�����
status���� ��ͨ��״̬��Ϣ
status_hp�� Ŀǰ������
status_sp�� Ŀǰ�ķ���
status_sobriety�� Ŀǰ�ľ���״��
status_*�� ������״̬
score���� ��ͨ��������Ϣ
score_exp�� ����ֵ
score_money�� ��Ǯ���������ҵ�����
developer�� ��������ʦ��չ�����߹㲥
class_fighter�� ��ȫ��սʿ����Ϣ
class_mage�� ��ȫ�巨ʦ����Ϣ
class_thief�� ��ȫ�������Ϣ
class_priest�� ��ȫ�����̵���Ϣ
class_*���� ������ְҵȫ�����Ϣ
race_human�� ��ȫ���������Ϣ
race_elf�� ��ȫ�徫�����Ϣ
race_dwarf�� ��ȫ�尫�˵���Ϣ
race_*���� ����������ȫ�����Ϣ

*** �����ڲ���ѡ�� ***
bitmap���� ��ͨ�ĵ���ͼ
bitmap_*�� �ض��ĵ���ͼ
drawing���� ��ͨ�Ļ�ͼ
drawing_*�� �ض����͵Ļ�ͼ


����: Spock @ FF 97.Aug.8.

�ص���һҳ