You are not logged in.
Покажи, как ты пытаешься складывать. Учти, что строки занимают не одну, а две или больше переменных в зависимости от их длины.
Offline
@Seemann -
Покажи, как ты пытаешься складывать
например, так -
3@s = 'NUM_9' // 9 4@s = 'hexpref' // 0x 098c: 5@s = 4@s + 3@s 0384: {show_text_1string GXT} 'STRTEXT' {string} 5@s {time} 2000 1
Учти, что строки занимают не одну, а две или больше переменных в зависимости от их длины.
Тогда о функциях IntToStr и IntToHex можно забыть (или как нибудь можно?).
[small][/small]
Offline
Ну вот, я так и думал. Строки-то не могут вмещаться в одну 4-байтовую переменную. Короткие строки ('...', 8 байтов) занимают в памяти 2 переменные (3@s = 3@+4@). Поэтому твоя вторая переменная 4@s затирает кусок строки из 3@s. Тебе вторую строку нужно сохранять минимум в 5@s. А результат, соответственно, в 7@s.
Длинные строки ("...", 16 байтов) "кушают" сразу 4 переменные (0@v = 0@+1@+2@+3@)
С глобальными такое проходит, т.к. компилятор автоматически выделяет нужное кол-во памяти для новых строковых переменных (s$, v$).
Offline
Есть ли какой-нибудь способ вывести строку (опкод или функция) на экран? Опкод
0384: show_text_1string GXT 98@s string 100@s time 15000 1
выводит не саму строку, а ключ GXT.
[small][/small]
Offline
Из темы "Процедуры и функции gta_sa.exe 1.0" sa10funcs.txt нашёл функции:
DrawText .text 0071A700 00000111 R . . . . T . ShowTextA .text 0069F0B0 00000130 R . . . . T . ShowTextOneOutOf .text 00447B80 00000005 R . . . . T . _draw_text .text 0059ACD0 00000016 R . . . . . . j__draw_text .text 0054E8E0 00000005 R . . . . . . j__draw_text_0 .text 0071A8C0 00000005 R . . . . . .
1. Какая-то из них пригодна для прямого вывода строки на экран?
2. Неизвестно кол-во и тип параметров этих функций
[small][/small]
Offline
Какой командой сделать что бы при удерживании на опр.клаву машина стояла на месте но развивала скорость? что то типа сцепления
Last edited by Centrino Duo (04-07-2008 13:43)
Offline
1. Какая-то из них пригодна для прямого вывода строки на экран?
2. Неизвестно кол-во и тип параметров этих функций
Можно использовать эту:
.text:0071A700 ; int __cdecl DrawText(int XPos,int YPos,int* pText)
Offline
А мне не поможещ?
Offline
так. новый вопрос. точнее два.
1. машина на большой скорости врезается "носом" во что-нибудь - как узнать:
а) что столкновение было именно носом... тобишь лбом?
б) что скорость была высокой за секунду ДО этого
2. водитель вылетает "из седла" - как заставить сиджея вылететь из машины через лобовое стекло?
Offline
http://missions.gtamaps.net/readarticle … cle_id=164 вылетает чувак к которому ВРЕЗАЛСЯ в лоб
http://gtamaps.net/forum/index.php?act= … &id=311003 вылетает СИЖИ
Offline
АЛО,НАРОД!!
Offline
Мне нужна помощь Вопрос наверху
Offline
@Centrino Duo -
Мне нужна помощь Вопрос наверху
Какой командой сделать что бы при удерживании на опр.клаву машина стояла на месте но развивала скорость? что то типа сцепления
Команды такой нет.
Сначала ты надежда и гордость,
Потом о спину ломают аршин. (c)БГ
Offline
Хмм.. а тада что есть?
Offline
Люди!!! Можно ли в main.scm вписать уникальный хендл для определенной машины (из handling.cfg!!!)??
Offline
Нет,незя
Offline
Вот сделал начало небольшой миссии (с идеями у меня традиционно дефицит, так что типичная м).
Проблема:
Есть два иногда возникающих зависания: когда камера показывает сидящего копа в участке и когда на крыше полицейского участка есть вертолёт (стоянка, созданная мейном в 27235 строчке) и создаётся на его месте вертолёт (хотя я очищаю куб в котором стоянка вертолёта). Из-за чего эти зависания?
Стартер миссии:
{$CLEO} 0A95: enable_thread_saving Pickup.Destroy(1@) Marker.Disable(0@) 0@ = Marker.CreateIconWithoutSphere(23, 1552.8, -1651.86, 13.5729) Model.Load(1254) while not Model.Available(1254) wait 0 end 1@ = Pickup.Create(1254, 3, 1552.8, -1651.86, 13.5729) Model.Destroy(1254) wait 1000 while true wait $DEFLAUT_WAIT_TIME if Player.Defined($Player_char) then if $OnMission == 0 then if Pickup.Picked_up(1@) then Pickup.Destroy(1@) Marker.Disable(0@) $ONMISSION = 1 00BA: show_text_styled GXT 'RSTART' time 1000 style 2 // Anti-police rampage 0A94: start_custom_mission "rMain" // 0A92: create_custom_thread "rStart.cs" 0A93: end_custom_thread end end end end
Сама миссия:
{$CLEO .cm} :AntiCopMission thread "AntiCop" gosub @MissionStart if wasted_or_busted then gosub @MissionFailed end gosub @MissionCleanup end_thread :MissionStart wait 0 fade 0 1000 while fading wait 0 end #BARRACKS.Load #RHINO.Load #ENFORCER.Load #HUNTER.Load #HYDRA.Load #SWATVAN.Load #COPCARRU.Load #COPCARLA.Load #FBIRANCH.Load #FBITRUCK.Load #COPBIKE.Load #PATRIOT.Load #ARMY.Load #FBI.Load #CHROMEGUN.Load #AK47.Load #CELLPHONE.Load #POLMAV.Load #SWAT.Load #TEC9.Load 03CF: load_wav 23000 as 1 038B: load_requested_models while true if and #BARRACKS.Available #RHINO.Available #ENFORCER.Available #HUNTER.Available #HYDRA.Available #SWATVAN.Available then if and #COPCARRU.Available #COPCARLA.Available #FBIRANCH.Available #FBITRUCK.Available #COPBIKE.Available #PATRIOT.Available #tec9.Available then if and #ARMY.Available #FBI.Available #SWAT.Available #CHROMEGUN.Available #CELLPHONE.Available #POLMAV.Available 03D0: wav 1 loaded then Break end end end wait 0 end var 0@: Integer 1@: Array 10 of Car 11@: Array 10 of Actor 23@: Array 10 of Actor 34@: Array 10 of Actor 45@: Array 10 of Actor 60@: Integer 69@: Integer end const I = 0@ CopCars = 1@ CopDrivers = 11@ CopPassengers1 = 23@ CopPassengers2 = 34@ CopPassengers3 = 45@ N = 60@ TempActor = 61@ CopHeli = 63@ CopPilot = 64@ SWAT1 = 65@ SWAT2 = 66@ SWAT3 = 67@ SWAT4 = 68@ CopCarModel = 69@ end 02A3: enable_widescreen 1 //Player.MakeSafe($PLAYER_CHAR) Player.CanMove($PLAYER_CHAR) = false 00C0: set_current_time_hours_to 0 minutes_to 38 fade 1 500 wait 600 0729: AS_actor $Player_actor hold_cellphone 1 wait 2100 fade 0 500 while fading wait 0 end 0729: AS_actor $Player_actor hold_cellphone 0 //wait 1000 Camera.SetAtPos(230.1451, 71.5056, 1004.0391) select_interior 6 04E4: unknown_refresh_game_renderer_at 232.3102 73.2346 Actor.PutAt($Player_actor, 225.5276, 69.574, 1004.0391) 0860: link_actor $Player_actor to_interior 6 61@ = Actor.Create(Cop, #NULL, 230.1451, 71.5056, 1004.0391) 0860: link_actor 61@ to_interior 6 Camera.SetPosition(232.3102, 73.2346, 1006.42, 0.0, 0.0, 0.0) Camera.OnPed(61@, 15, 2) 0615: define_action_sequences 62@ 0605: actor -1 perform_animation_sequence "SEAT_IDLE" from_file "PED" 4.0 loop 0 0 0 1 3000 ms 0605: actor -1 perform_animation_sequence "SEAT_UP" from_file "PED" 4.0 loop 0 0 0 1 -1 ms 0729: AS_actor -1 hold_cellphone 1 0616: define_action_sequences_end 62@ wait 1000 0618: assign_actor 61@ to_action_sequences 62@ wait 700 fade 1 500 {if 84EE: not animation "PED" loaded then 04ED: load_animation "Ped" while 84EE: not animation "PED" loaded wait 0 end end} //wait 15000 wait 1000 03D1: play_wav 1 03D1: play_wav 1 wait 7000 fade 0 500 while fading wait 0 end Player.WantedLevel($PLAYER_CHAR) = 1 Player.SetMinWantedLevel($PLAYER_CHAR, 1) 01F0: set_max_wanted_level_to 1 select_interior 0 Actor.PutAt($Player_actor, 1549.2495, -1652.6812, -100.0) 0860: link_actor $PLAYER_ACTOR to_interior 0 Actor.Angle($Player_actor) = 90.0 Camera.SetAtPos(1548.4893, -1712.1265, 36.5366) 03BA: clear_cars_from_cube_cornerA 1565.62 -1695.65 27.3474 cornerB 1559.12 -1706.4 32.9474 CopHeli = Car.Create(#POLMAV, 1561.865, -1701.953, 27.948) Camera.SetPosition(1548.4893, -1712.1265, 36.5366, 0.0, 0.0, 0.0) Camera.OnVehicle(CopHeli, 15, 2) SWAT1 = Actor.Create(Cop, #SWAT, 1573.224, -1678.4272, 28.3956) SWAT2 = Actor.Create(Cop, #SWAT, 1575.0664, -1676.5687, 28.3955) SWAT3 = Actor.Create(Cop, #SWAT, 1574.4729, -1674.5979, 28.3955) SWAT4 = Actor.Create(Cop, #SWAT, 1576.5366, -1673.0009, 28.3955) CopPilot = Actor.Create(Cop, #SWAT, 1572.4978, -1681.9807, 28.3956) 05D3: AS_actor SWAT1 goto_point 1561.865 -1701.953 27.948 mode 6 -1 ms 05D3: AS_actor SWAT2 goto_point 1561.865 -1701.953 27.948 mode 6 -1 ms 05D3: AS_actor SWAT3 goto_point 1561.865 -1701.953 27.948 mode 6 -1 ms 05D3: AS_actor SWAT4 goto_point 1561.865 -1701.953 27.948 mode 6 -1 ms 05CB: AS_actor CopPilot enter_car CopHeli as_driver 8000 ms //06C1: create_searchlight 58@ on_car 40@ with_offset 0.0 1.0 -0.5 radius 0.4 target 2228.36 -1171.48 25.82 radius 5.0 fade 1 500 repeat wait 0 until Actor.Driving(CopPilot) Player.CanMove($PLAYER_CHAR) = true wait 2000 fade 0 500 wait 600 // Следующие 12 строк выдраны из оригинального Main.scm 0464: put_actor SWAT1 into_turret_on_car CopHeli at_car_offset 1.4 1.3 -0.1 position 3 shooting_angle_limit 190.0 with_weapon 32 Actor.Health(SWAT1) = 150 07DD: set_actor SWAT1 temper_to 70 05E2: AS_actor SWAT1 kill_actor $Player_actor 0464: put_actor SWAT2 into_turret_on_car CopHeli at_car_offset 1.4 -0.8 -0.1 position 3 shooting_angle_limit 190.0 with_weapon 32 Actor.Health(SWAT2) = 150 07DD: set_actor SWAT2 temper_to 70 05E2: AS_actor SWAT2 kill_actor $Player_actor 0464: put_actor SWAT3 into_turret_on_car CopHeli at_car_offset -1.4 1.3 -0.1 position 1 shooting_angle_limit 190.0 with_weapon 32 Actor.Health(SWAT3) = 150 07DD: set_actor SWAT3 temper_to 70 05E2: AS_actor SWAT3 kill_actor $Player_actor 0464: put_actor SWAT4 into_turret_on_car CopHeli at_car_offset -1.4 -0.8 -0.1 position 1 shooting_angle_limit 190.0 with_weapon 32 Actor.Health(SWAT4) = 150 07DD: set_actor SWAT4 temper_to 70 05E2: AS_actor SWAT4 kill_actor $Player_actor 0727: set_heli CopHeli behavior_to_police_heli_and_follow_actor $Player_actor follow_car -1 radius 10.0 // 072F: enable_car CopHeli stuck_check_distance 1.0 time 2000 and_restore_if stuck 1 flipped 1 unknown 1 to_path -1 // extended 03CC Camera.Restore_WithJumpCut 02A3: enable_widescreen 0 fade 1 500 wait 2000 // // Interoir 6 //while true //I = 0 :Spawn //while true for I = 0 to 9 // wait 0 // if not 1@[i] > 0 // then // if not Car.Wrecked(CopCars[i]) // then 03BA: clear_cars_from_cube_cornerA 1535.88 -1682.11 5.27 cornerB 1541.88 -1676.11 10.27 N = Random(1, 3) if N = 2 then CopCarModel = #COPCARLA else CopCarModel = #PATRIOT end while true wait 0 if 80A4: not actor $PLAYER_ACTOR sphere 0 in_cube_cornerA 1579.04 -1721.85 5.17837 cornerB 1524.631 -1633.711 11.8784 then if 8339: not anything_in_cube_cornerA 1535.88 -1682.11 5.27 cornerB 1541.88 -1676.11 10.27 solid 0 car 1 actor 0 object 0 particle 0 then CopCars[i] = Car.Create(COPCARmodel, 1538.88, -1679.11, 6.27); Break end else if 8339: not anything_in_cube_cornerA 1555.51 -1630.87 12.8784 cornerB 1561.51 -1624.87 14.8784 solid 0 car 1 actor 0 object 0 particle 0 then CopCars[i] = Car.Create(COPCARmodel, 1558.51, -1627.87, 13.8784); Break end end end Car.Angle(CopCars[i]) = 180.0 0129: CopDrivers[i] = create_actor_pedtype 6 model #NULL in_car CopCars[i] driverseat 039E: set_actor CopDrivers[i] locked 1 while_in_car 01C8: CopPassengers1[i] = create_actor_pedtype 6 model #NULL in_car CopCars[i] passenger_seat 0 Actor.Armour(CopPassengers1[i]) = 100 01B2: give_actor CopPassengers1[i] weapon 25 ammo 999999 0713: actor CopPassengers1[i] driveby_actor $Player_actor car -1 point 0.0 0.0 0.0 radius 100.0 4 1 firing_rate 99999 039E: set_actor CopPassengers1[i] locked 1 while_in_car 01C8: CopPassengers2[i] = create_actor_pedtype 6 model #NULL in_car CopCars[i] passenger_seat 1 Actor.Armour(CopPassengers2[i]) = 100 01B2: give_actor CopPassengers2[i] weapon 25 ammo 999999 0713: actor CopPassengers2[i] driveby_actor $Player_actor car -1 point 0.0 0.0 0.0 radius 100.0 4 1 firing_rate 99999 039E: set_actor CopPassengers2[i] locked 1 while_in_car 01C8: CopPassengers3[i] = create_actor_pedtype 6 model #NULL in_car CopCars[i] passenger_seat 2 Actor.Armour(CopPassengers3[i]) = 100 01B2: give_actor CopPassengers3[i] weapon 25 ammo 999999 0713: actor CopPassengers3[i] driveby_actor $Player_actor car -1 point 0.0 0.0 0.0 radius 100.0 4 1 firing_rate 99999 039E: set_actor CopPassengers3[i] locked 1 while_in_car Car.SetDriverBehaviour(CopCars[i], 2) Car.SetMaxSpeed(CopCars[i], 38.5) 00AE: unknown_set_car CopCars[i] to_ignore_traffic_lights 2 072F: enable_car CopCars[i] stuck_check_distance 1.0 time 2000 and_restore_if stuck 1 flipped 1 unknown 1 to_path -1 // extended 03CC 020A: set_car CopCars[i] door_status_to 4 Car.SetImmunities(CopCars[i], 0, 0, 0, 1, 0) Car.ImmuneToNonPlayer(CopCars[i]) = true // else //else // if Car.Wrecked(CopCars[i]) // then // Car.RemoveReferences(CopCars[i]) // Actor.RemoveReferences(CopDrivers[i]) // Actor.RemoveReferences(CopPassengers1[i]) // Actor.RemoveReferences(CopPassengers2[i]) // Actor.RemoveReferences(CopPassengers3[i]) // end //end//if end//for //end//while {05D6: clear_scmpath 05D7: add_point_to_scmpath 1542.83 -1699.74 7.27 05D7: add_point_to_scmpath 1592.67 -1703.72 7.27 05D7: add_point_to_scmpath 1596.45 -1661.46 7.27 05D7: add_point_to_scmpath 1588.35 -1638.34 12.97 05D7: add_point_to_scmpath 1585.49 -1627.12 12.97 05D7: add_point_to_scmpath 1544.88 -1620.65 12.97 05D7: add_point_to_scmpath 1534.26 -1630.19 12.97 05D7: add_point_to_scmpath 1535.21 -1654.29 12.97 06BB: set_actor 2@ drive_car 1@ speed 17.0 along_SCM_path} fade 1 500 //0555: remove_weapon 38 from_actor $Player_actor //wait 20000 wait 120000 gosub @MissionPassed return :MissionPassed 01E3: text_1number_styled 'M_PASSD' 0 5000 ms 1 // MISSION PASSED! //$MyMission_Passed = 1 076C: set_zone 'PER1' gang 1 density_to 40 09B7: set_zone 'PER1' disable_footcops 1 076A: set_zone 'per1' dealer_density_to 0 return :MissionFailed 00BA: text_styled 'M_FAIL' 5000 ms 1 // ~r~MISSION FAILED! return :MissionCleanup $ONMISSION = 0 // integer values 0A92: create_custom_thread "rStart.cs" mission_cleanup #BARRACKS.Destroy #RHINO.Destroy #ENFORCER.Destroy #HUNTER.Destroy #HYDRA.Destroy #SWATVAN.Destroy #COPCARRU.Destroy #COPCARLA.Destroy #FBIRANCH.Destroy #FBITRUCK.Destroy #COPBIKE.Destroy #PATRIOT.Destroy #ARMY.Destroy #FBI.Destroy #CHROMEGUN.Destroy #AK47.Destroy #CELLPHONE.Destroy #POLMAV.Destroy #SWAT.Destroy #TEC9.Destroy 040D: unload_wav 1 return
P.S. Не обращайте внимание на мусор внутри комметариев.
[small][/small]
Offline
создаётся на его месте вертолёт (хотя я очищаю куб в котором стоянка вертолёта)
Тут надо пойти путём R* и отключить генерацию вертолёта.
Offline
@flashTrash - Если отключить вообще, то нехорошо, а если за секунду до этого, то он всё равно не пропадёт. 03BA: clear_cars_from_cube_cornerA 1565.62 -1695.65 27.3474 cornerB 1559.12 -1706.4 32.9474 не очищает припаркованные автомобили?
[small][/small]
Offline
VcSaJen
не очищает припаркованные автомобили?
Очищать то может и очищает, да вертолёт опять сгенерируется . Отключи генерацию, потом очисть територию, а перед завершением скрипта опять включи генерацию.
Offline
Люди!!! Кто знает как повесить копов на актера (не игрока)???
Offline
0467: clear_actor $PLAYER_ACTOR last_weapon_damage сбрасивает только сведения о повреждении, или еще и востанавливает хелса?
-=YariK=-
http://my-mods.org.ua/
Offline
@flashTrash - на всякий случай так и сделал. Зависаний больше я не добился, частично они были кажется из-за dbmu_cleo.
[small][/small]
Offline