randazzo
.
- 1,417
- 1,037
ставить прозрачную текстуру.Как изменить прозрачность диалога?
ставить прозрачную текстуру.Как изменить прозрачность диалога?
Ну типо можно максимум 5 спранков, я ввожу чит код у меня уже есть 5 спранков, скрипт останавливаетсяне останавливаться если в 1 строчке максимум уже куплено
Можно ставить проверку, если этот checkpoint будет на этом месте то срабатывало [/killcp] из сервера. Есть опкод для чего я прошу?
//RED CHECKPOINT
if
call @is_cp_active 0
then
call @get_cp_pos 0 0@ 1@ 2@
0af8: "RedCheckPointPos: %.2f - %.2f - %.2f" -1 0@ 1@ 2@
end
//RACE CHECKPOINT
if
call @is_racecp_active 0
then
call @get_racecp_pos 0 0@ 1@ 2@
0af8: "RaceCheckPointPos: %.2f - %.2f - %.2f" -1 0@ 1@ 2@
end
:is_cp_active
0AA2: 0@ = loadlib "samp.dll"
0A8E: 1@ = 0@ + 0x21A10C
0A8D: 1@ = readMem 1@ sz 4 vp 0
1@ += 0x24
0A8D: 1@ = readMem 1@ sz 4 vp 0
IF 1@ == TRUE
THEN 0485: return_true
ELSE 059A: return_false
END
0AA3: freelib 0@
0AB2: ret 0
:get_cp_pos
0AA2: 0@ = loadlib "samp.dll"
0A8E: 1@ = 0@ + 0x21A10C
0A8D: 1@ = readMem 1@ sz 4 vp 0
1@ += 0xC
0A8D: 2@ = readMem 1@ sz 4 vp 0
1@ += 0x4
0A8D: 3@ = readMem 1@ sz 4 vp 0
1@ += 0x4
0A8D: 4@ = readMem 1@ sz 4 vp 0
0AA3: freelib 0@
0AB2: ret 3 2@ 3@ 4@
:is_racecp_active
if 0AA2: 0@ = loadlib "samp.dll"
then 0A8E: 1@ = 0@ + 0x21A10C
0A8D: 1@ = readMem 1@ sz 4 vp 0
1@ += 0x49
0A8D: 1@ = readMem 1@ sz 4 vp 0
if 1@ == true
then 0485: return_true
else 059A: return_false
end
0AA3: freelib 0@
end
0AB2: ret 0
:get_racecp_pos
if 0AA2: 0@ = loadlib "samp.dll"
then 0A8E: 1@ = 0@ + 0x21A10C
0A8D: 1@ = readMem 1@ sz 4 vp 0
1@ += 0x2C
0A8D: 2@ = readMem 1@ sz 4 vp 0
1@ += 0x4
0A8D: 3@ = readMem 1@ sz 4 vp 0
1@ += 0x4
0A8D: 4@ = readMem 1@ sz 4 vp 0
0AA3: freelib 0@
end
0AB2: ret 3 2@ 3@ 4@
Помогите пожалуйста решить проблему. Как перезапустить цикл по нажатию кнопки Q не дожидаясь конца цикла? Скрипт в данном виде вылетает когда доходит до строчки until false. В чем проблема? Укажите на ошибки, чтобы мне знать на будущее как и что делать. Если можно скиньте каких нибудь обучающих материалов. Очень надо.
{$CLEO}
0000:
while not Samp.Available()
wait 0
end
0B34: samp register_client_command "ibot" to_label @ibot
0B34: samp register_client_command "reload" to_label @reload
while true
wait 0
if 0@ == 1
then
Actor.PutAt($Player_Actor, 1970.91, -1064.89, 975.97)
wait 1000
Actor.PutAt($Player_Actor, 1980.49, -1044.09, 975.97)
wait 7000
Actor.PutAt($Player_Actor, 1987.98, -1025.39, 976.51)
wait 2000
Actor.PutAt($Player_Actor, 1964.91, -1065.25, 975.97)
wait 1000
Actor.PutAt($Player_Actor, 1980.49, -1044.09, 975.97)
wait 7000
Actor.PutAt($Player_Actor, 1987.98, -1025.39, 976.51)
wait 2000
end
end
:ibot
0B12: 0@ = 0@ XOR 1
if 0@ == true
then
chatmsg "iBot активен | для активации нажмите Q | для деактивации удерживать Q (долго)" 0xFF0FFF
else
chatmsg "iBot декативирован" 0xFF0FFF
end
SAMP.CmdRet()
:reload
0A92: create_custom_thread "НАЗВАНИЕ ФАЙЛА.cs"
0A93: end_custom_thread
SAMP.CmdRet()
Для моментальной остановки бота лучше использовать перезапуск потока. У тебя не работал остановка т.к. скрипт не доходил до проверки что была нажата клавиша Q.
CLEO:{$CLEO} 0000: while not Samp.Available() wait 0 end 0B34: samp register_client_command "ibot" to_label @ibot 0B34: samp register_client_command "reload" to_label @reload while true wait 0 if 0@ == 1 then Actor.PutAt($Player_Actor, 1970.91, -1064.89, 975.97) wait 1000 Actor.PutAt($Player_Actor, 1980.49, -1044.09, 975.97) wait 7000 Actor.PutAt($Player_Actor, 1987.98, -1025.39, 976.51) wait 2000 Actor.PutAt($Player_Actor, 1964.91, -1065.25, 975.97) wait 1000 Actor.PutAt($Player_Actor, 1980.49, -1044.09, 975.97) wait 7000 Actor.PutAt($Player_Actor, 1987.98, -1025.39, 976.51) wait 2000 end end :ibot 0B12: 0@ = 0@ XOR 1 if 0@ == true then chatmsg "iBot активен | для активации нажмите Q | для деактивации удерживать Q (долго)" 0xFF0FFF else chatmsg "iBot декативирован" 0xFF0FFF end SAMP.CmdRet() :reload 0A92: create_custom_thread "НАЗВАНИЕ ФАЙЛА.cs" 0A93: end_custom_thread SAMP.CmdRet()
Да, если у тебя не было задержки.Спасибо! А по нажатию клавиши возможно?
И еще хотелось бы узнать что означает в цикле while условие true?:scratch:
Да, если у тебя не было задержки.
while true - бесконечный цикл
Да, если у тебя не было задержки.
while true - бесконечный цикл
При перезагрузке скрипт отключается. В чем проблема? не совсем понял что писать в этой строке 0A92: create_custom_thread "НАЗВАНИЕ ФАЙЛА.cs"
0A92: create_custom_thread "iBot+.cs"
Сначала работал, теперь крашит.. Не понимаю от чего это зависит. Уже голова кругом.{$CLEO} 0000: while not Samp.Available() wait 0 end 0B34: samp register_client_command "ibot" to_label @ibot 0B34: samp register_client_command "reload" to_label @reload while true wait 0 if 0@ == 1 then Actor.PutAt($Player_Actor, 1970.91, -1064.89, 975.97) wait 1000 Actor.PutAt($Player_Actor, 1980.49, -1044.09, 975.97) wait 7000 Actor.PutAt($Player_Actor, 1987.98, -1025.39, 976.51) wait 2000 Actor.PutAt($Player_Actor, 1964.91, -1065.25, 975.97) wait 1000 Actor.PutAt($Player_Actor, 1980.49, -1044.09, 975.97) wait 7000 Actor.PutAt($Player_Actor, 1987.98, -1025.39, 976.51) wait 2000 end end :ibot 0B12: 0@ = 0@ XOR 1 if 0@ == true then chatmsg "iBot активен | для активации нажмите Q | для деактивации удерживать Q (долго)" 0xFF0FFF else chatmsg "iBot декативирован" 0xFF0FFF end SAMP.CmdRet() :reload 0A92: create_custom_thread "НАЗВАНИЕ ФАЙЛА.cs" 0A93: end_custom_thread SAMP.CmdRet()
Крутая задачаСначала работал, теперь крашит.. Не понимаю от чего это зависит. Уже голова кругом.
{$CLEO}
const
bState = 0@
dwArrayMemBlock = 1@
i = 2@
j = 3@
tmp = 4@
array = 5@
array_X = 5@
array_Y = 6@
array_Z = 7@
array_Time = 8@
ARRAY_SIZE = 80
ARRAY_STEP = 16
end
:EntryPoint
0000: NOP
while not Samp.Available()
wait 40
end
0B34: samp register_client_command "ibot" to_label @ibot
while true
wait 0
if bState == true
then
0AC6: dwArrayMemBlock = label @Array offset
for i = 0 to ARRAY_SIZE step ARRAY_STEP
0A8E: tmp = dwArrayMemBlock + i
for j = 0 to 4 step 1
0A8D: array(j,4f) = read_memory tmp size 4 virtual_protect 0
000A: tmp += 4
end
Actor.PutAt($PLAYER_ACTOR, array_X, array_Y, array_Z)
if gosub @IsProcessNotBeingInterrupted
jf break
end
bState = false
end
end
:Array
hex
1F 5D F6 44 7B 1C 85 C4 14 FE 73 44 E8 03 00 00
AE 8F F7 44 E1 82 82 C4 14 FE 73 44 58 1B 00 00
5C 7F F8 44 7B 2C 80 C4 A4 20 74 44 D0 07 00 00
1F 9D F5 44 00 28 85 C4 14 FE 73 44 E8 03 00 00
AE 8F F7 44 E1 82 82 C4 14 FE 73 44 58 1B 00 00
5C 7F F8 44 7B 2C 80 C4 A4 20 74 44 D0 07 00 00
end
:IsProcessNotBeingInterrupted
const
timer = 33@
end
0006: timer = 0
while 001D: array_Time > timer
wait 0
if or
0ab0: 0x51
0039: bState == 0
then
return_false
return
end
end
return_true
return
:ibot
0B12: bState = bState XOR 1
if bState == true
then
chatmsg "iBot активен | для активации нажмите Q | для деактивации удерживать Q (долго)" 0xFF0FFF
else
chatmsg "iBot декативирован" 0xFF0FFF
end
SAMP.CmdRet()
С такими вопросами обычно F12 нажимают в Sanny Builder'е ну и гайды посмотреть CLEO(https://blast.hk/forums/12/?prefix_id=39) + wikiwhile условие true?
Проверка сидит ли актер за рулем транспорта или нет
Actor.Driving($PLAYER_ACTOR)