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
returnP.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