Вопросы по CLEO-скриптингу

iGO[R]

Новичок
42
1
Чую, этот код дибильно составлен :D, кто может добавить в него закрытие файла после записи и нормально составить его? :)

Код:
{$CLEO .cs}

0000: NOP            

0B34: samp register_client_command "objc" to_label @Cmd

:Obj1
Wait 0     
If 30@ == 1
Else_jump @Obj1
0A9A: 10@ = openfile "My scripts\ObjectC\ObjectCoords.txt" mode "at"
Jump @Obj2

:Obj2
Actor.StorePos($PLAYER_ACTOR, 0@, 1@, 2@)
If 0AE3: 3@ = random_object_near_point 0@ 1@ 2@ in_radius 300.0 find_next 1
Else_jump @Obj3
4@ = Object.Model(3@)
Object.StorePos(3@, 5@, 6@, 7@)
8@ = Object.Angle(3@) //Координаты по оси Z. 
If Not 4@ == -1
Else_jump @Obj2
0AD9: write_formatted_text "CreateObject(%d, %f, %f, %f, 0, 0, %f, 0.0);%c" in_file 10@ params 4@ 5@ 6@ 7@ 8@ 10
Jump @Obj2  

:Obj3
Wait 0
If Not 30@ == 1
Else_jump @Obj3
Actor.StorePos($PLAYER_ACTOR, 0@, 1@, 2@)
If 0AE3: 3@ = random_object_near_point 0@ 1@ 2@ in_radius 300.0 find_next 1
Else_jump @Obj3
4@ = Object.Model(3@)
Object.StorePos(3@, 5@, 6@, 7@)
8@ = Object.Angle(3@) //Координаты по оси Z. 
If Not 4@ == -1
Else_jump @Obj2
0AD9: write_formatted_text "CreateObject(%d, %f, %f, %f, 0, 0, %f, 0.0);%c" in_file 10@ params 4@ 5@ 6@ 7@ 8@ 10
Jump @Obj1    

:Cmd
0B12: 30@ = 30@ XOR 1
0AF8: samp add_message_to_chat "" color -1
0AF8: samp add_message_to_chat "Сохранено" color -1
SAMP.CmdRet
 
  • Нравится
Реакции: slonoboyko

DarkP1xel

Сила воли наше всё.
BH Team
3,635
4,953
После записи вставлял, не работает :D
PHP:
{$CLEO .CS}
{$NOSOURCE}
0000: NOP
0662: printstring ""
03A4: name_thread "LoL"
0B34: samp register_client_command "objc" to_label @LoL_294
0002: jump @LoL_33

:LoL_33
0001: wait 0 ms
00D6: if
0039:   30@ == 1
004D: jump_if_false @LoL_33
0A9A: 10@ = openfile "My scripts\ObjectC\ObjectCoords.txt" mode "rb+"
00A0: store_actor $PLAYER_ACTOR position_to 0@ 1@ 2@
00D6: if
0AE3: 3@ = random_object_near_point 0@ 1@ 2@ in_radius 300.0 find_next 1
004D: jump_if_false @LoL_282
0B52: samp 9@ = object_id_by_handle 3@
00D6: if
0029:   9@ >= 0
004D: jump_if_false @LoL_282
0984: 4@ = object 3@ model
01BB: store_object 3@ position_to 5@ 6@ 7@
0176: 8@ = object 3@ Z_angle
0AD9: write_formatted_text "CreateObject(%d, %f, %f, %f, 0, 0, %f, 0.0);%c" in_file 10@ 4@ 5@ 6@ 7@ 8@ 10
0002: jump @LoL_282

:LoL_282
0A9B: closefile 10@
0002: jump @LoL_33

:LoL_294
0B12: 30@ = 30@ XOR 1
0AF8: samp add_message_to_chat "+" color -1
0B43: samp cmd_ret
А так?
 
Последнее редактирование:

iGO[R]

Новичок
42
1
PHP:
{$CLEO .CS}
{$NOSOURCE}
0000: NOP
0662: printstring ""
03A4: name_thread "LoL"
0B34: samp register_client_command "objc" to_label @LoL_294
0002: jump @LoL_33

:LoL_33
0001: wait 0 ms
00D6: if
0039:   30@ == 1
004D: jump_if_false @LoL_33
0A9A: 10@ = openfile "My scripts\ObjectC\ObjectCoords.txt" mode "rb+"
00A0: store_actor $PLAYER_ACTOR position_to 0@ 1@ 2@
00D6: if
0AE3: 3@ = random_object_near_point 0@ 1@ 2@ in_radius 300.0 find_next 1
004D: jump_if_false @LoL_282
0B52: samp 9@ = object_id_by_handle 3@
00D6: if
0029:   9@ >= 0
004D: jump_if_false @LoL_282
0984: 4@ = object 3@ model
01BB: store_object 3@ position_to 5@ 6@ 7@
0176: 8@ = object 3@ Z_angle
0AD9: write_formatted_text "CreateObject(%d, %f, %f, %f, 0, 0, %f, 0.0);%c" in_file 10@ 4@ 5@ 6@ 7@ 8@ 10
0002: jump @LoL_282

:LoL_282
0A9B: closefile 10@
0002: jump @LoL_33

:LoL_294
0B12: 30@ = 30@ XOR 1
0AF8: samp add_message_to_chat "+" color -1
0B43: samp cmd_ret
А так?
Неа. Не записывает вообще, думаю это из-за "rb+", сменил на "a" - в файл записывались одни и те же объекты, до тех пор, пока я снова не ввел команду активации :)
 

Niko

Известный
Проверенный
230
267
Как заставить работать опкод 0B6F, с wait, бесконечно, ну то есть если в цикле есть wait, то опкод 0B6F мерцает.
 

Niko

Известный
Проверенный
230
267
c
Не мерцает. wait 0 поставь. Есть вариант без wait 0, но писать лень :D .
Да нет ты не понял.
Мерцает если например
Код:
{$CLEO}
0000:

{$CLEO}
0000:
while true
wait 0
  if 0@ == 1
  then
  0af9: "%s" 1@
  wait 1000
  end

  if 1@ == 1
  then
  0B6F: render font 16@ draw_text "CLEO" pos 13@ 14@ color 0xFFFFFF00
  end
end

На ошибки не обращай внимания, я типо пример сделал, думаю так поймёшь.
Хотя с заддержкой 1000 он вобще не показывается.
 

DarkP1xel

Сила воли наше всё.
BH Team
3,635
4,953
Хотя с заддержкой 1000 он вобще не показывается.
Задержку вообще делать нельзя с опкодами которые нужно использовать в цикле. Wait 0 - Это тоже задержка. Хоть и тут написано 0, но на самом деле это далеко не 0. Сейчас дам пример как использовать цикл без wait 0.


PHP:
:ByiTz_XG4M3R_31199
0A8E: 15@ = 15@ + 1
00D6: if
8039:   not  15@ == 1001
004D: jump_if_false @ByiTz_XG4M3R_31290
00D6: if and
0B23:  samp is_player_connected 15@
8B64:   not samp is_player 15@ npc
004D: jump_if_false @ByiTz_XG4M3R_31199
//
0002: jump @ByiTz_XG4M3R_31199

:ByiTz_XG4M3R_31290
wait 0
0A8E: 15@ = -2 + 1
jump @ByiTz_XG4M3R_31199