Raven
������������
������: ������ �����������: ����. 2004
�����: 408 ���������
|
��� ��� ���, � � ����� ��� ������ � ������������� msg-������ � ����� ���������, ������ ������������ ����� :-) ��������, ������ �������� ����������� � �������������� ������������ "������" ��� �� ��������. ˸����� ������������ ������ ��� ����� �� ����������, ����������� �������� ���� animate_move_to � ���������� timed_event/map_update/critter_p_proc. � ��������� ������� ������������� ������� - � �������������� ����� ������� ����� :-) ����, ����. ���� � �����: ����������� ����� �������� ������� ����� ��������� � � ����� ����������� ����������. ����������, ��� ��������������. ��� �����������. ���� ������� � msg ���������� �������: {n}{}{X|COORD_1|COORD_2|COORD_3|...|COORD_X} X - ����� ����������, COORD_I - ���������� i-�� ���������. ���. ��������� ������� ���������� atoimar. ��� ��������� �������� ��� ��������� - ������-��������, ������-������� � ����� ������. ���������� ����� (int, �� str) �� ��������� ������. ������������ ������ ������ "|". ������-������� - ������������ ����� �������� �� ������ �������, �� ����� ��������. ������-�������� ������ ����� ���: {n}{}{���������:1|2|3|4} ����� �������� ���������� ������ ������, �� ������ ������� � ���: atoimar(mstr(n),"���������:",1). ����� "1" - �.�. ������ ���������� � ����. ��� ���������: ---------------------------------------- procedure atoimar(var ostr, var bstr, var cell) begin var i;var val; var str:=""; var c_cell; var j; var flag; str:=bstr; while c_cell<=cell do begin val:=0; flag:=1; j:=0; while ((ostr!=str) and (flag)) and j<32 do begin while not((ostr>str+i and ostr<str+(i+1)) or ostr==str+i) and i<9 do i+=1; if i==9 and ostr>str+"|" and ostr<str+"}" then begin flag:=0; str+="|"; end else begin str+=i; val:=val*10+i; end j+=1; i:=0; end c_cell+=1; end return val; end ---------------------------------------- ���� �� ����������� � ������ atoi, �� ������ � ��� ���������. ������ ���������� ������ �� ��������. ������ �������. ���� ����� ����. ���� ������� ����� (������� � ���������� ���������� ����������). ���� �� �� ����� - �������� ��������� �� ������ ���������� � ��� ����. ���� �� �� ����� (� ������ - � ��������) - ������ �� ������. ��������� ������ ��������� �������� ���� ����, ����� ���������� ������ ��������. �������� ���: ---------------------------------------- #define var variable var next_place; procedure walk; procedure start begin end procedure map_enter_p_proc begin add_timer_event(self_obj,0,1); end procedure walk begin var aim_tile; var place_num; //�������� ����� ����� ���������� place_num:=atoimar(mstr(10),"",0); //�������������� ������, �������� ������� � ������� ��������� if not next_place then begin aim_tile:=atoimar(mstr(10),"",1); animate_move_to_tile(aim_tile); next_place:=1; end aim_tile:=atoimar(mstr(10),"",next_place); //�������� ��������� �������� � ��� � ���� if tile_num(self_obj)==aim_tile then begin if next_place<place_num then next_place+=1; else next_place:=1; aim_tile:=atoimar(mstr(10),"",next_place); animate_move_to_tile(aim_tile); end add_timer_event(self_obj,10,1); end procedure timed_event_p_proc begin if fixed_param==1 then call walk; end ---------------------------------------- �������� ������� ��� artemple.map: {10}{}{4|18494|18888|20292|19898} ��. �������, ����� ��������.
|