#1 09-01-2011 05:10

VcSaJen
Registered: 25-08-2006
Posts: 217

Трамвай теперь не пустой

Трамвай теперь не пустой, а таскает сидящих внутри него людей.

thread 'trampeople'

{$CLEO}
//{$I Interceptor.txt}

var
  $PLAYER_CHAR: Player
  $PLAYER_ACTOR: Actor
end

//0615: define_AS_pack_begin $8201
//  0A1A: actor -1 perform_animation "SEAT_DOWN" IFP_file "PED" 4.0 loopA 0 lockX 0 lockY 0 lockF 1 -1 ms // versionC 
//  0A1A: actor -1 perform_animation "SEAT_IDLE" IFP_file "PED" 4.0 loopA 1 lockX 0 lockY 0 lockF 0 -1 ms // versionC 
//0616: define_AS_pack_end $8201


while true
  if $PLAYER_CHAR.Defined
  then
    $PLAYER_ACTOR.StorePos(1@, 2@, 3@)
    //$PLAYER_ACTOR.StorePos(3@, 4@, 33@)
    //1@+=100.0
    //2@+=100.0
    //3@-=100.0
    //4@-=100.0
    //09C0: 0@ = get_random_car_in_area 1@ 2@ 3@ 4@ 1.0 with_models #TRAM
    //053E: 0@ = get_random_car_with_model #TRAM in_rectangle 1@ 2@ 3@ 4@
    //0327: 0@ = get_random_car_with_model #TRAM in_rectangle 1@ 2@ 3@ 4@
    0AB1: call_scm_func @FUNC_GETVEHICLE 4 1@ 2@ 3@ 100.0 0@
    //0AB1: call_scm_func @FUNC_GETOBJECT 4 1@ 2@ 3@ 100.0 0@
    
    //if 0@>0 
    //then
    //  0513: show_text_box_1number 'NUMBER' number 777 // ~1~
    //end
  end
  wait 1000 
end

{
Для мода трамвая:
-1.142 1.461 0.239
-1.142 2.675 0.239
-1.142 3.725 0.239
1.177 1.59 0.239
1.177 2.826 0.239
1.177 3.803 0.239
-0.398 -2.56 0.239
-0.398 -1.555 0.239
-0.398 -0.58 0.239
0.437 -2.624 0.239
0.437 -1.539 0.239
0.437 -0.548 0.239

Для мода скамеек:
-1,112 -0,884 -0,337
1,102 0,934 0,781

825.8475, -1863.8035, 12.8672
}


:MyFunc2

0AB2: ret 0

{Object.StorePos(0@, 10@, 11@, 12@)
Object.StorePos(0@, 13@, 14@, 15@)
if 8339: not anything_in_cube 10@ 11@ 12@ 13@ 14@ 15@ solid 0 car 0 actor 1 object 0 particle 0 
then
  Object.StorePos(0@, 10@, 11@, 12@)
  13@ = Object.Angle(0@)
  10@ += -0.48  
  11@ += -0.368
  12@ += 0.281
  0376: 2@ = create_random_actor_at 0.0 0.0 0.0
  0972: put_actor 2@ at 10@ 11@ 12@ ; versionC
  Actor.Angle(2@)=13@
  0A1A: actor 2@ perform_animation "SEAT_IDLE" IFP_file "PED" 4.0 loopA 1 lockX 0 lockY 0 lockF 0 -1 ms // versionC 
  0AB1: call_scm_func @SetActorRef 2 2@ 1
  
  Object.StorePos(0@, 10@, 11@, 12@)  
  13@ = Object.Angle(0@)
  10@ += 0.448  
  11@ += -0.368
  12@ += 0.281
  0376: 2@ = create_random_actor_at 0.0 0.0 0.0
  0972: put_actor 2@ at 10@ 11@ 12@ ; versionC    
  Actor.Angle(2@)=13@
  0A1A: actor 2@ perform_animation "SEAT_IDLE" IFP_file "PED" 4.0 loopA 1 lockX 0 lockY 0 lockF 0 -1 ms // versionC 
  0AB1: call_scm_func @SetActorRef 2 2@ 1
  
  Object.StorePos(0@, 10@, 11@, 12@)  
  13@ = Object.Angle(0@)
  10@ += 0.448 
  11@ += 0.425
  12@ += 0.281
  13@ += 180.0
  0376: 2@ = create_random_actor_at 0.0 0.0 0.0
  0972: put_actor 2@ at 10@ 11@ 12@ ; versionC   
  Actor.Angle(2@)=13@
  0A1A: actor 2@ perform_animation "SEAT_IDLE" IFP_file "PED" 4.0 loopA 1 lockX 0 lockY 0 lockF 0 -1 ms // versionC 
  0AB1: call_scm_func @SetActorRef 2 2@ 1
  
  Object.StorePos(0@, 10@, 11@, 12@)  
  13@ = Object.Angle(0@)
  10@ += -0.414
  11@ += 0.425
  12@ += 0.281
  13@ += 180.0
  0376: 2@ = create_random_actor_at 0.0 0.0 0.0
  0972: put_actor 2@ at 10@ 11@ 12@ ; versionC   
  Actor.Angle(2@)=13@
  0A1A: actor 2@ perform_animation "SEAT_IDLE" IFP_file "PED" 4.0 loopA 1 lockX 0 lockY 0 lockF 0 -1 ms // versionC 
  0AB1: call_scm_func @SetActorRef 2 2@ 1
end}





:MyFunc
Car.StorePos(0@, 10@, 11@, 12@)
Car.StorePos(0@, 13@, 14@, 15@)
10@+=-1.228
11@+=-4.112
12@+=0.798
13@+=1.109
14@+=4.176
15@+=-0.88
if 8339: not anything_in_cube 10@ 11@ 12@ 13@ 14@ 15@ solid 0 car 0 actor 1 object 0 particle 0 
then
  0209: 1@ = random_int_in_ranges 0 1
  if 1@ == 0
  then
    0376: 2@ = create_random_actor_at 0.0 0.0 0.0
    0464: put_actor 2@ into_turret_on_car 0@ at_car_offset -1.142 1.461 0.239 position 1 shooting_angle_limit 0.0 with_weapon 0
    0A1A: actor 2@ perform_animation "SEAT_IDLE" IFP_file "PED" 4.0 loopA 1 lockX 0 lockY 0 lockF 0 -1 ms // versionC 
    0AB1: call_scm_func @SetActorRef 2 2@ 1
  end 
  0209: 1@ = random_int_in_ranges 0 1
  if 1@ == 0
  then
    0376: 2@ = create_random_actor_at 0.0 0.0 0.0
    0464: put_actor 2@ into_turret_on_car 0@ at_car_offset -1.142 2.675 0.239 position 1 shooting_angle_limit 0.0 with_weapon 0
    0A1A: actor 2@ perform_animation "SEAT_IDLE" IFP_file "PED" 4.0 loopA 1 lockX 0 lockY 0 lockF 0 -1 ms // versionC 
    0AB1: call_scm_func @SetActorRef 2 2@ 1
  end 
  0209: 1@ = random_int_in_ranges 0 1
  if 1@ == 0
  then
    0376: 2@ = create_random_actor_at 0.0 0.0 0.0
    0464: put_actor 2@ into_turret_on_car 0@ at_car_offset -1.142 3.725 0.239 position 1 shooting_angle_limit 0.0 with_weapon 0
    0A1A: actor 2@ perform_animation "SEAT_IDLE" IFP_file "PED" 4.0 loopA 1 lockX 0 lockY 0 lockF 0 -1 ms // versionC 
    0AB1: call_scm_func @SetActorRef 2 2@ 1
  end
  0209: 1@ = random_int_in_ranges 0 1
  if 1@ == 0
  then
    0376: 2@ = create_random_actor_at 0.0 0.0 0.0
    0464: put_actor 2@ into_turret_on_car 0@ at_car_offset 1.177 1.59 0.239 position 3 shooting_angle_limit 0.0 with_weapon 0
    0A1A: actor 2@ perform_animation "SEAT_IDLE" IFP_file "PED" 4.0 loopA 1 lockX 0 lockY 0 lockF 0 -1 ms // versionC 
    0AB1: call_scm_func @SetActorRef 2 2@ 1
  end
  0209: 1@ = random_int_in_ranges 0 1
  if 1@ == 0
  then
    0376: 2@ = create_random_actor_at 0.0 0.0 0.0
    0464: put_actor 2@ into_turret_on_car 0@ at_car_offset 1.177 2.826 0.239 position 3 shooting_angle_limit 0.0 with_weapon 0
    0A1A: actor 2@ perform_animation "SEAT_IDLE" IFP_file "PED" 4.0 loopA 1 lockX 0 lockY 0 lockF 0 -1 ms // versionC 
    0AB1: call_scm_func @SetActorRef 2 2@ 1
  end
  0209: 1@ = random_int_in_ranges 0 1
  if 1@ == 0
  then
    0376: 2@ = create_random_actor_at 0.0 0.0 0.0
    0464: put_actor 2@ into_turret_on_car 0@ at_car_offset 1.177 3.803 0.239 position 3 shooting_angle_limit 0.0 with_weapon 0
    0A1A: actor 2@ perform_animation "SEAT_IDLE" IFP_file "PED" 4.0 loopA 1 lockX 0 lockY 0 lockF 0 -1 ms // versionC 
    0AB1: call_scm_func @SetActorRef 2 2@ 1
  end
  0209: 1@ = random_int_in_ranges 0 1
  if 1@ == 0
  then
    0376: 2@ = create_random_actor_at 0.0 0.0 0.0
    0464: put_actor 2@ into_turret_on_car 0@ at_car_offset -0.398 -2.56 0.239 position 3 shooting_angle_limit 0.0 with_weapon 0
    0A1A: actor 2@ perform_animation "SEAT_IDLE" IFP_file "PED" 4.0 loopA 1 lockX 0 lockY 0 lockF 0 -1 ms // versionC 
    0AB1: call_scm_func @SetActorRef 2 2@ 1
  end
  0209: 1@ = random_int_in_ranges 0 1
  if 1@ == 0
  then
    0376: 2@ = create_random_actor_at 0.0 0.0 0.0
    0464: put_actor 2@ into_turret_on_car 0@ at_car_offset -0.398 -1.555 0.239 position 3 shooting_angle_limit 0.0 with_weapon 0
    0A1A: actor 2@ perform_animation "SEAT_IDLE" IFP_file "PED" 4.0 loopA 1 lockX 0 lockY 0 lockF 0 -1 ms // versionC 
    0AB1: call_scm_func @SetActorRef 2 2@ 1
  end
  0209: 1@ = random_int_in_ranges 0 1
  if 1@ == 0
  then
    0376: 2@ = create_random_actor_at 0.0 0.0 0.0
    0464: put_actor 2@ into_turret_on_car 0@ at_car_offset -0.398 -0.58 0.239 position 3 shooting_angle_limit 0.0 with_weapon 0
    0A1A: actor 2@ perform_animation "SEAT_IDLE" IFP_file "PED" 4.0 loopA 1 lockX 0 lockY 0 lockF 0 -1 ms // versionC 
    0AB1: call_scm_func @SetActorRef 2 2@ 1
  end
  0209: 1@ = random_int_in_ranges 0 1
  if 1@ == 0
  then
    0376: 2@ = create_random_actor_at 0.0 0.0 0.0
    0464: put_actor 2@ into_turret_on_car 0@ at_car_offset 0.437 -2.624 0.239 position 1 shooting_angle_limit 0.0 with_weapon 0
    0A1A: actor 2@ perform_animation "SEAT_IDLE" IFP_file "PED" 4.0 loopA 1 lockX 0 lockY 0 lockF 0 -1 ms // versionC 
    0AB1: call_scm_func @SetActorRef 2 2@ 1
  end
  0209: 1@ = random_int_in_ranges 0 1
  if 1@ == 0
  then
    0376: 2@ = create_random_actor_at 0.0 0.0 0.0
    0464: put_actor 2@ into_turret_on_car 0@ at_car_offset 0.437 -1.539 0.239 position 1 shooting_angle_limit 0.0 with_weapon 0
    0A1A: actor 2@ perform_animation "SEAT_IDLE" IFP_file "PED" 4.0 loopA 1 lockX 0 lockY 0 lockF 0 -1 ms // versionC 
    0AB1: call_scm_func @SetActorRef 2 2@ 1
  end
  0209: 1@ = random_int_in_ranges 0 1
  if 1@ == 0
  then
    0376: 2@ = create_random_actor_at 0.0 0.0 0.0
    0464: put_actor 2@ into_turret_on_car 0@ at_car_offset 0.437 -0.548 0.239 position 1 shooting_angle_limit 0.0 with_weapon 0
    0A1A: actor 2@ perform_animation "SEAT_IDLE" IFP_file "PED" 4.0 loopA 1 lockX 0 lockY 0 lockF 0 -1 ms // versionC 
    0AB1: call_scm_func @SetActorRef 2 2@ 1
  end
{else
  Car.StorePos(0@, 10@, 11@, 12@)
  10@ += -1.142
  11@ += 1.461
  12@ += 0.239
  089E: get_actor_in_sphere 10@ 11@ 12@ radius 0.1 handle_as 2@ // versionB
  if 2@>0
  then
    if Actor.Dead(2@) 
    then
      0465: remove_actor 2@ from_turret_mode 
    else
      if 8611: not actor 2@ performing_animation "SEAT_IDLE"
      then
        0618: assign_actor 2@ to_AS_pack $8201
      end
    end
    0AB1: call_scm_func @SetActorRef 2 2@ 1
  end    
  
  Car.StorePos(0@, 10@, 11@, 12@)
  10@ += -1.142  
  11@ += 2.675
  12@ += 0.239
  089E: get_actor_in_sphere 10@ 11@ 12@ radius 0.1 handle_as 2@ // versionB
  if 2@>0
  then
    if Actor.Dead(2@) 
    then
      0465: remove_actor 2@ from_turret_mode 
    else
      if 8611: not actor 2@ performing_animation "SEAT_IDLE"
      then
        0618: assign_actor 2@ to_AS_pack $8201
      end
    end
    0AB1: call_scm_func @SetActorRef 2 2@ 1
  end     
  
  Car.StorePos(0@, 10@, 11@, 12@)
  10@ += -1.142 
  11@ += 3.725 
  12@ += 0.239
  089E: get_actor_in_sphere 10@ 11@ 12@ radius 0.1 handle_as 2@ // versionB
  if 2@>0
  then
    if Actor.Dead(2@) 
    then
      0465: remove_actor 2@ from_turret_mode 
    else
      if 8611: not actor 2@ performing_animation "SEAT_IDLE"
      then
        0618: assign_actor 2@ to_AS_pack $8201
      end
    end
    0AB1: call_scm_func @SetActorRef 2 2@ 1
  end    
  
  Car.StorePos(0@, 10@, 11@, 12@)
  10@ += 1.177 
  11@ += 1.59 
  12@ += 0.239
  089E: get_actor_in_sphere 10@ 11@ 12@ radius 0.1 handle_as 2@ // versionB
  if 2@>0
  then
    if Actor.Dead(2@) 
    then
      0465: remove_actor 2@ from_turret_mode 
    else
      if 8611: not actor 2@ performing_animation "SEAT_IDLE"
      then
        0618: assign_actor 2@ to_AS_pack $8201
      end
    end
    0AB1: call_scm_func @SetActorRef 2 2@ 1
  end    
  
  Car.StorePos(0@, 10@, 11@, 12@)
  10@ += 1.177  
  11@ += 2.826
  12@ += 0.239
  089E: get_actor_in_sphere 10@ 11@ 12@ radius 0.1 handle_as 2@ // versionB
  if 2@>0
  then
    if Actor.Dead(2@) 
    then
      0465: remove_actor 2@ from_turret_mode 
    else
      if 8611: not actor 2@ performing_animation "SEAT_IDLE"
      then
        0618: assign_actor 2@ to_AS_pack $8201
      end
    end
    0AB1: call_scm_func @SetActorRef 2 2@ 1
  end    
  
  Car.StorePos(0@, 10@, 11@, 12@)
  10@ += 1.177 
  11@ += 3.803 
  12@ += 0.239
  089E: get_actor_in_sphere 10@ 11@ 12@ radius 0.1 handle_as 2@ // versionB
  if 2@>0
  then
    if Actor.Dead(2@) 
    then
      0465: remove_actor 2@ from_turret_mode 
    else
      if 8611: not actor 2@ performing_animation "SEAT_IDLE"
      then
        0618: assign_actor 2@ to_AS_pack $8201
      end
    end
    0AB1: call_scm_func @SetActorRef 2 2@ 1
  end    
  
  Car.StorePos(0@, 10@, 11@, 12@)
  10@ += -0.398  
  11@ += -2.56
  12@ += 0.239
  089E: get_actor_in_sphere 10@ 11@ 12@ radius 0.1 handle_as 2@ // versionB
  if 2@>0
  then
    if Actor.Dead(2@) 
    then
      0465: remove_actor 2@ from_turret_mode 
    else
      if 8611: not actor 2@ performing_animation "SEAT_IDLE"
      then
        0618: assign_actor 2@ to_AS_pack $8201
      end
    end
    0AB1: call_scm_func @SetActorRef 2 2@ 1
  end    
  
  Car.StorePos(0@, 10@, 11@, 12@)
  10@ += -0.398 
  11@ += -1.555 
  12@ += 0.239
  089E: get_actor_in_sphere 10@ 11@ 12@ radius 0.1 handle_as 2@ // versionB
  if 2@>0
  then
    if Actor.Dead(2@) 
    then
      0465: remove_actor 2@ from_turret_mode 
    else
      if 8611: not actor 2@ performing_animation "SEAT_IDLE"
      then
        0618: assign_actor 2@ to_AS_pack $8201
      end
    end
    0AB1: call_scm_func @SetActorRef 2 2@ 1
  end    
  
  Car.StorePos(0@, 10@, 11@, 12@)
  10@ += -0.398 
  11@ += -0.58
  12@ += 0.239 
  089E: get_actor_in_sphere 10@ 11@ 12@ radius 0.1 handle_as 2@ // versionB
  if 2@>0
  then
    if Actor.Dead(2@) 
    then
      0465: remove_actor 2@ from_turret_mode 
    else
      if 8611: not actor 2@ performing_animation "SEAT_IDLE"
      then
        0618: assign_actor 2@ to_AS_pack $8201
      end
    end
    0AB1: call_scm_func @SetActorRef 2 2@ 1
  end    
  
  Car.StorePos(0@, 10@, 11@, 12@)
  10@ += 0.437  
  11@ += -2.624
  12@ += 0.239
  089E: get_actor_in_sphere 10@ 11@ 12@ radius 0.1 handle_as 2@ // versionB
  if 2@>0
  then
    if Actor.Dead(2@) 
    then
      0465: remove_actor 2@ from_turret_mode 
    else
      if 8611: not actor 2@ performing_animation "SEAT_IDLE"
      then
        0618: assign_actor 2@ to_AS_pack $8201
      end
    end
    0AB1: call_scm_func @SetActorRef 2 2@ 1
  end    
  
  Car.StorePos(0@, 10@, 11@, 12@)
  10@ += 0.437  
  11@ += -1.539
  12@ += 0.239
  089E: get_actor_in_sphere 10@ 11@ 12@ radius 0.1 handle_as 2@ // versionB
  if 2@>0
  then
    if Actor.Dead(2@) 
    then
      0465: remove_actor 2@ from_turret_mode 
    else
      if 8611: not actor 2@ performing_animation "SEAT_IDLE"
      then
        0618: assign_actor 2@ to_AS_pack $8201
      end
    end
    0AB1: call_scm_func @SetActorRef 2 2@ 1
  end    
  
  Car.StorePos(0@, 10@, 11@, 12@)
  10@ += 0.437  
  11@ += -0.548
  12@ += 0.239
  089E: get_actor_in_sphere 10@ 11@ 12@ radius 0.1 handle_as 2@ // versionB
  if 2@>0
  then
    if Actor.Dead(2@) 
    then
      0465: remove_actor 2@ from_turret_mode 
    else
      if 8611: not actor 2@ performing_animation "SEAT_IDLE"
      then
        0618: assign_actor 2@ to_AS_pack $8201
      end
    end
    0AB1: call_scm_func @SetActorRef 2 2@ 1
  end}
end
0AB2: ret 0

:SetActorRef
0A96: 2@ = actor 0@ struct
2@+=0x484
0A8C: write_memory 2@ size 1 value 1@ virtual_protect 0  
0AB2: ret 0

:FUNC_GETACTOR
gosub @AIC_GETACTOR
0AB2: ret 1 9@

:FUNC_GETVEHICLE
gosub @AIC_GETVEHICLE
0AB2: ret 1 9@

:FUNC_GETOBJECT
gosub @AIC_GETOBJECT
0AB2: ret 1 9@

:AIC_GETACTOR
0006: 16@ = 305868
0006: 5@ = @AIC_TESTACTORHANDLE
0006: 6@ = 1988
0002: jump @AIC_STARTSEARCH 

:AIC_GETVEHICLE
0006: 16@ = 305869
0006: 5@ = @AIC_TESTVEHICLEHANDLE
0006: 6@ = 2584
0006: 8@ = -1
0256:   player $PLAYER_CHAR defined
004D: jump_if_false @AIC_STARTSEARCH 
00DF:   actor $PLAYER_ACTOR driving
004D: jump_if_false @AIC_STARTSEARCH
03C0: 8@ = actor $PLAYER_ACTOR car
0002: jump @AIC_STARTSEARCH

:AIC_GETOBJECT
0006: 16@ = 305871
0006: 5@ = @AIC_TESTOBJECTHANDLE
0006: 6@ = 412

:AIC_STARTSEARCH
008B: 16@ = &0(16@,1i) // CPool*
0AB1: call_scm_func @AIC_READMEMOFFSET 2 ( 16@ + 8 )^ = 7@  // CPool.Size
0A8D: 11@ = read_memory 16@ size 4 virtual_protect 0        // CPool.pUnits
0006: 9@ = -1 
0006: 10@ = 0

:AIC_SEARCHLOOPMAIN
0AB1: call_scm_func @AIC_READMEMOFFSET 2 ( 11@ + 20 )^ = 4@  // xyz*
8039:   not  4@ == 0 
004D: jump_if_false @AIC_SEARCHLOOPNEXT 
0AB1: call_scm_func @AIC_READMEMOFFSET 2 ( 4@ + 48 )^ = 12@  // x
0AB1: call_scm_func @AIC_READMEMOFFSET 2 ( 4@ + 52 )^ = 13@  // y
0AB1: call_scm_func @AIC_READMEMOFFSET 2 ( 4@ + 56 )^ = 14@  // z
050A: 15@ = distance_between_XYZ 0@ 1@ 2@ and_XYZ 12@ 13@ 14@ 
0025:   3@ > 15@ // (float) 
004D: jump_if_false @AIC_SEARCHLOOPNEXT 
0085: 9@ = 10@ // (int) // counter
0AB1: call_scm_func @AIC_READMEMOFFSET 2 ( 16@ + 4 )^ = 4@ // CPool.flags
005A: 4@ += 9@ // (int) 
0A8D: 4@ = read_memory 4@ size 1 virtual_protect 0 
0012: 9@ *= 256 
005A: 9@ += 4@ // (int)
0002: jump 5@

:AIC_TESTVEHICLEHANDLE
056E:   is 9@ valid_vehicle_handle
004D: jump_if_false @AIC_NOHANDLE
00D6: if or
003B:   8@ == 9@ // (int) 
0119:   car 9@ wrecked
004D: jump_if_false @AIC_NEWSEARCHRADIUS
0002: jump @AIC_NOHANDLE

:AIC_TESTACTORHANDLE
056D:   is 9@ valid_actor_handle
004D: jump_if_false @AIC_NOHANDLE 
00D6: if or
003C:   $PLAYER_ACTOR == 9@ // (int) 
0118:   actor 9@ dead 
004D: jump_if_false @AIC_NEWSEARCHRADIUS
0002: jump @AIC_NOHANDLE

:AIC_TESTOBJECTHANDLE
83CA:   not object 9@ exists 
004D: jump_if_false @AIC_NEWSEARCHRADIUS

:AIC_NOHANDLE
0006: 9@ = -1 
0002: jump @AIC_SEARCHLOOPNEXT 

:AIC_NEWSEARCHRADIUS
{  
   use 0051: return to break the loop
   immediately when found at least one actor/car/object, 
   does not matter if he's nearest one. 
}

// v EXTRA SEARCH CRITERIA GOES HERE v

{
  21@ contains the handle of an actor/car/object 
  that should be excluded from the search result 
  (for example a handle found previously). 
}
//803B:   21@ <> 9@
//004D: jump_if_false @AIC_NOHANDLE 
if 056E: car 9@ defined
then
  if 0137: car 9@ model == #TRAM
  then
    0AB1: call_scm_func @MyFunc 1 9@
  end
end
if 03CA: object 9@ exists 
then
  if 09CC: object 9@ model_is 1281 ; #parktable1
  then
    0AB1: call_scm_func @MyFunc2 1 9@
  end
end    
0085: 3@ = 15@ 

:AIC_SEARCHLOOPNEXT 
005A: 11@ += 6@ // (int) 
000A: 10@ += 1 
002D:   10@ >= 7@ // (int)
004D: jump_if_false @AIC_SEARCHLOOPMAIN
0051: return 

:AIC_READMEMOFFSET
0A8E: 0@ = 0@ + 1@ // int
0A8D: 0@ = read_memory 0@ size 4 virtual_protect 0
0AB2: ret 1 0@

Баги:
Если ездят два прицеплённых трамвая, то при повороте с хрустом костей умирают два человека :-0
Людей нельзя убить пулевым оружием, только огнём или взрывом
Чтобы люди появились, иногда нужно подойти к трамваю вплотную из-за известного бага интерцептора (Радиус поиска каждый раз уменьшается)
_Tram1.JPG
_Tram2.JPG

Last edited by VcSaJen (09-01-2011 09:02)


[small][/small]

Offline

#2 09-01-2011 07:27

Seemann
Registered: 07-08-2006
Posts: 2,155

Re: Трамвай теперь не пустой

из-за известного бага интерцептора (Радиус поиска каждый раз уменьшается)

Оо а можно поподробнее?

наверно, стоит создать отдельную тему со списком модов, повышающих реалистичность окружающего мира

Offline

#3 09-01-2011 14:37

Sergey81
Registered: 19-12-2008
Posts: 654

Re: Трамвай теперь не пустой

@VcSaJen - у тебя есть строка

if 09CC: object 9@ model_is 1281 ; #parktable1

"; #parktable1" - не лишнее случайно?
А так, щас посмотрю как в игре работает.
UPD. Не работает, возможно конфликтует с другими скриптами, или ещё чего.

Last edited by Sergey81 (09-01-2011 14:46)

Offline

#4 09-01-2011 21:19

3Doomer
From: КаZан
Registered: 14-05-2008
Posts: 659
Website

Re: Трамвай теперь не пустой

странно, что компилятор на неё не ругается, ; не является символом комментария...


GIMS developer

Offline

#5 09-01-2011 21:51

Sergey81
Registered: 19-12-2008
Posts: 654

Re: Трамвай теперь не пустой

А, извиняюсь, скрипт работает, просто я не думал что подойти к трамваю нужно настолько вплотную.
6fe384ef3968c5789bbcad54a6352f45.jpeg 
Кстати о моих багах, спрашиваю уже второй раз, если кто знает как модель трамвая опустить ниже к земле, напишите способ. А то воздушный трамвай какой-то получается.

Offline

#6 09-01-2011 21:59

Den_spb
From: Ленинград
Registered: 23-11-2008
Posts: 941
Website

Re: Трамвай теперь не пустой

кто знает как модель трамвая опустить ниже к земле

Через handling (вроде 13 параметр - высота расположения вагона).

Offline

#7 09-01-2011 22:16

Sergey81
Registered: 19-12-2008
Posts: 654

Re: Трамвай теперь не пустой

@Den_spb - Точняк, спс. Оказывается handling - копия.cfg в моей папке data и не оригинал совсем, скопировал строку tram из оригинального файла и трамвай вернулся с небес на землю.

Offline

#8 10-01-2011 00:48

~AquaZ~
Registered: 01-03-2010
Posts: 726

Re: Трамвай теперь не пустой

Извините за оффтоп, где взять обнову текстур, как на скрине?

Offline

#9 10-01-2011 01:29

Sergey81
Registered: 19-12-2008
Posts: 654

Re: Трамвай теперь не пустой

@~AquaZ~ - если вопрос ко мне, то тебе нужен SRT3 v1.7.

Offline

#10 10-01-2011 01:37

Seemann
Registered: 07-08-2006
Posts: 2,155

Re: Трамвай теперь не пустой

3Doomer wrote:

странно, что компилятор на неё не ругается, ; не является символом комментария...

если компилятор находит достаточное кол-во параметров для текущего опкода (в данном случае 2), он бросает обработку строки и переходит на следующую. Неочевидная возможность smile

Offline

#11 10-01-2011 03:14

VcSaJen
Registered: 25-08-2006
Posts: 217

Re: Трамвай теперь не пустой

странно, что компилятор на неё не ругается, ; не является символом комментария...

; не является комментарием официально, но практически является комментарием.
Попробуй в самом начале строки написать ; и эта строка не скомпилируется.
Ещё можно закомментировать конец комментария: в начале скрипта если написать {;} то скрипт не скомпилируется.


[small][/small]

Offline

#12 10-01-2011 03:24

~AquaZ~
Registered: 01-03-2010
Posts: 726

Re: Трамвай теперь не пустой

(продолжение оффтопа)

Sergey81 wrote:

@~AquaZ~ - если вопрос ко мне, то тебе нужен SRT3 v1.7.

Блин, его нельзя использовать в своих модах и он ставится как-то отдельно от игры...

Offline

Board footer

Powered by FluxBB