» TeamX (����� ������)«


����� TeamX » ������������ » Patroling mode (...��� ���� NPC ����� �� ����������)

������� �� �����
<< ����. ����. >>
������������ �������� ���� ����

 
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}

��. �������, ����� ��������.

����������: 9:12 - 26 ���., 2005
 

������� �� �����
<< ����. ����. >>
������������ �������� ���� ����


Powered by Ikonboard 2.1.9 RUS
Modified by RU.Board Team
© 2000 Ikonboard.com