You are not logged in.
ну её конечно можно использовать например, провеить если актёр в тачке то открыть файл handling.cfg, прочитать, найти нужную тачку и цену и взять эту цену занести в переменную, вычесть это значение из денег игрока, или прибавить...
Для этого есть опкод:
09E1: get_car_model $IMPORT_CARS_MODEL(4@,6i) price_to $IMPORT_CAR_PRICE
.text:005DE680 _initGangWeapons proc near ; CODE XREF: sub_53BCF0+F1p .text:005DE680 ; sub_5BA1A0+1A5p .text:005DE680 000 xor eax, eax .text:005DE682 000 mov ecx, 16h .text:005DE687 000 mov edx, 1Ch .text:005DE68C 000 mov _gangsWeapons.field_4, ecx .text:005DE692 000 mov _gangsWeapons.field_8, edx .text:005DE698 000 mov _gangsWeapons.field_C, eax .text:005DE69D 000 mov _gangsWeapons.field_4+10h, ecx .text:005DE6A3 000 mov _gangsWeapons.field_8+10h, eax .text:005DE6A8 000 mov _gangsWeapons.field_C+10h, eax .text:005DE6AD 000 mov _gangsWeapons.field_4+20h, ecx .text:005DE6B3 000 mov _gangsWeapons.field_8+20h, eax .text:005DE6B8 000 mov _gangsWeapons.field_C+20h, eax .text:005DE6BD 000 mov _gangsWeapons.field_4+40h, ecx .text:005DE6C3 000 mov _gangsWeapons.field_8+40h, edx .text:005DE6C9 000 mov _gangsWeapons.field_C+40h, eax .text:005DE6CE 000 mov _gangsWeapons.field_4+50h, 18h .text:005DE6D8 000 mov _gangsWeapons.field_8+50h, eax .text:005DE6DD 000 mov _gangsWeapons.field_C+50h, eax .text:005DE6E2 000 mov _gangsWeapons.field_4+60h, ecx .text:005DE6E8 000 mov _gangsWeapons.field_8+60h, 1Eh .text:005DE6F2 000 mov _gangsWeapons.field_C+60h, eax .text:005DE6F7 000 mov _gangsWeapons.field_4+70h, ecx .text:005DE6FD 000 mov _gangsWeapons.field_8+70h, edx .text:005DE703 000 mov _gangsWeapons.field_C+70h, eax .text:005DE708 000 retn .text:005DE708 _initGangWeapons endp
{$CLEO}
0A95: enable_thread_saving
if
0@ == 0
then
014B: 1@ = init_parked_car_generator #ADMIRAL color -1 -1 1 alarm 0 door_lock 0 0 10000 at -2035.194 170.770 28.462 angle 90.0
014C: set_parked_car_generator 1@ cars_to_generate_to 101
014B: 2@ = init_parked_car_generator #BULLET color -1 -1 1 alarm 0 door_lock 0 0 10000 at -2035.194 170.770 28.462 angle 90.0
014C: set_parked_car_generator 2@ cars_to_generate_to 101
// ...
014B: 31@ = init_parked_car_generator #NRG500 color -1 -1 1 alarm 0 door_lock 0 0 10000 at -2035.194 170.770 28.462 angle 90.0
014C: set_parked_car_generator 31@ cars_to_generate_to 101
0@ = 1
end
0A93: end_custom_thread
{$CLEO}
const
i = 12@
playerCar = 13@
end
var
0@: Array 6 of Integer
6@: Array 6 of Integer
end
0@ = 0x68
1@ = 0x62
2@ = 0x67
3@ = 0x69
4@ = 0x61
5@ = 0x63
{
for i = 0 to 5
6@[i] = 0
end
}
while true
wait 0
if
Player.Defined($PLAYER_CHAR)
then
if
Actor.Driving($PLAYER_ACTOR)
then
03C0: playerCar = actor $PLAYER_ACTOR car
gosub @Proc
end
end
end
:Proc
for i = 0 to 5
if and
0AB0: key_pressed 0x11
0AB0: key_pressed 0@[i]
then
{
if
88A7: not car playerCar componentA i opened_or_not_present
then
0657: car playerCar open_componentA i
else
068A: set_car playerCar repair_componentA i
end
}
if
6@[i] == 0
then
6@[i] = 1
0657: car playerCar open_componentA i
wait 100
return
end
if
6@[i] == 1
then
6@[i] = 0
068A: set_car playerCar repair_componentA i
wait 100
return
end
end
end
returnОткрывает капот, багажник и двери. Клавиши: Ctrl + Num123789. Можешь поменять на свои.
{$CLEO}
0@ = 0
while true
wait 0
if
Player.Defined($PLAYER_CHAR)
then
if
Actor.Driving($PLAYER_ACTOR)
then
03C0: 1@ = actor $PLAYER_ACTOR car
if and
00E1: player 0 pressed_key 17
0@ == 0
then
0@ = 1
0657: car 1@ open_componentA 0
wait 100
end
if and
00E1: player 0 pressed_key 17
0@ == 1
then
0@ = 0
068A: set_car 1@ repair_componentA 0
wait 100
end
end
end
end
Поставил его, там можно короче включать фары и открывать капот с багажником, но блин, нельзя никак закрыть их, кроме как долбануть по ней (а если тачка бронированная?), как это переделать?
Как вариант использовать опкод:
068A: set_car $RYDER_CAR repair_componentA 2
@Treeble - посмотри в подписи у PARAÐOXON'а.
@cooler21 - добавь проверку еще на это событие:
EVENT_KNOCK_OFF_BIKE 8
while true
wait 0
080E: get_actor 0@ ped_event_to 1@
if
1@ == 9
then
//
end
end
Здоровье машины и время целые, а не дробные величины.
Для прверки жизней существует опкод:
0185: car 73@ health >= 700 8185: not car $SWEET_CAR health >= 250
{$CLEO}
0000:
while true
wait 0
if
Player.Defined($PLAYER_CHAR)
then
if
Actor.Driving($PLAYER_ACTOR)
then
03C0: 0@ = actor $PLAYER_ACTOR car
while true
wait 0
if
not Actor.InCar($PLAYER_ACTOR, 0@)
then
Car.RemoveReferences(0@)
Break
end
if
8185: not car 0@ health >= 500
then
0209: 1@ = random_int_in_ranges 1000 5000
wait 1@
02D4: car 0@ turn_off_engine
Car.RemoveReferences(0@)
end
end
end
end
end
До компиляции:
var
$Car1: Car
$Car2: Array 3 of Car
end
$Car1.Health = 100
Car.Health($Car1) = 100
$Car2[0].Health = 100
Car.Health($Car2[0]) = 100После:
Car.Health($4) = 100 Car.Health($4) = 100 $5 = 100 // !!! Car.Health($5) = 100
Стоит ли перейти на эту версию форума (даже скорее портала)?
ИМХО из всего вышеперечисленного нужно только RSS, хотя можно установить, но только как форум, для сайта лучше какую-нибудь CMS выбрать.
я вообще думаю что короны создаются этим циклом
Без этого куска миссия прекрасно работает, он вообще там не нужен, смотри на координаты.
если в родных скриптах миссии 'KIKSTA' сана все кароны создаются 1 раз циклом
В оригинальной миссии короны создаться вот здесь (KICKSTA_7904):
:KICKSTA_8084 024F: create_corona_with_radius 249@ type 0 lensflares 0 with_color 250@ 251@ 252@ at 50@(253@,33f) 83@(253@,33f) 116@(253@,33f) if 00FE: actor $PLAYER_ACTOR sphere 0 in_sphere 50@(253@,33f) 83@(253@,33f) 116@(253@,33f) radius 1.5 1.5 1.5 else_jump @KICKSTA_8425
тут сразу идет проверка, находиться ли игрок около короны или нет.
если просто открвть меин родной и снова скомпилить его санни корон уже нет
У меня все работает и короны создаються.
2MIXAZZZ:
Корона должна постоянно создаваться, т.е. используй опкод в цикле:
while true
wait 0
024F: create_corona_with_radius 1.5 type 0 lensflares 0 with_color 255 0 0 at 2488.56 -1666.84 18.38
end
Попробуй опкодом 06D5 с типами 3 или 4.
06D5: 449@ = create_racing_checkpoint_at $TEMPVAR_FLOAT_1 $TEMPVAR_FLOAT_2 $TEMPVAR_FLOAT_3 point_to $TEMPVAR_FLOAT_1 $TEMPVAR_FLOAT_2 $TEMPVAR_FLOAT_3 type 205@ radius 6.0
Первый элемент массивы должен быть с индексом 0:
$corona_X[0] = -1388.63 $corona_Y[0] = 1486.48 $corona_Z[0] = 305.919 $corona_X[1] = -1437.12 $corona_Y[1] = 1434.81 $corona_Z[1] = 315.836 $corona_X[2] = -1417.71 $corona_Y[2] = 1544.8 $corona_Z[2] = 302.693
На главной странице хрень прицепилась. Смотри html код. Троян какой-то.
BOOL APIENTRY DllMain( HANDLE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
case DLL_THREAD_ATTACH:
case DLL_THREAD_DETACH:
case DLL_PROCESS_DETACH:
break;
}
return TRUE;
}
В потоке NONAME_68 проверка выполниться один раз.
Поток NONAME_301 представляет собой цикл, из которого игра выйдет, когда игрок окажется около машины, так вот пока машина к нему едет и нужно проверять повреждена она или нет.
как заставить Техпом цепануть твою тачку крюком а потом отцепить
0893: put_trailer 37@ on_cab 34@ 07AC: detach_trailer 37@ from_cab 34@
А также как выбрать ближайшую заправку? Не знаю команд?
А команды такой и нет, все придется делать вручную.
единственная проблемма с техпом, это когда вызываешь и она по дороге к тебе переворачивается то маркер над ней не пропадает хотя вроде как проверка на целостность машины стоит?
Проверяй на целостность машины в потоке NONAME_301:
00D6: if 8119: not car $10289 wrecked 004D: jump_if_false @NONAME_394
К стате насчет глобальных переменных при написании 00A5: $10289 = create_car #TOWTRUCK at $10296 $10297 $10298 если в место $10289 поставить к примеру 1@ то компилятор ругаеться. и приходиться ставить глобальную.
Должно все быть нормально. Какую ошибку выдает компилятор?
Только вместо пикапов жизни, ментовской звезды и брони, появляются инфо-значок, карточка и какая-то вращающаяся дверь. И игра не сохраняется, хотя сейвы грузятся
Читай ФАК: http://sannybuilder.com/forums/viewtopic.php?id=90
И ещё вопрос вдогонку: как сделать, чтобы при подъезде к определённой точке там происходил бы взрыв (ака мина, только чтобы и когда на машине подъезжаешь тоже)?
if
00EC: actor $PLAYER_ACTOR 0 near_point 1812.369 -1929.922 radius 80.0 80.0
then
020C: create_explosion_with_radius 0 at 72@ 73@ 74@
endp.s.
Топик в Общие вопросы