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

hnnssy

Известный
Друг
2,684
2,768
Не выходит сравнить два ник нейма, в чем причина?
Код:
format 23@ "RingoPidar"
  for 0@ = 0 to 1000
  if 0B23: samp is_player_connected 0@
  then
  0B36: samp 2@ = get_player_nickname 0@
  format 24@ "%s" 2@
  if 0C18: 6@ = strstr string1 24@ string2 23@
  then
  chatmsg "%s в сети" color -1 23@
Код:
for 1@ = 0 to 999 step 1
  if 0B23:  samp is_player_connected 1@
  then
  0B36: samp 2@ = get_player_nickname 1@
  if
  0C18: 0 = strstr string1 2@ string2 "_prokhorov"
  then
  msg "ПАПКА НА СЕРВЕРЕ" 0xFF0000
  end
  end
end
 

Art4D

Новичок
87
13
Какими опкодами или нопами заставить сервер думать, что перс НЕ в машине (хотя он в машине)?
 

Stas07

Известный
Проверенный
266
113
Как получит рандомного игрока в зоне стрима?
 

AWRage

Активный
642
141
Render опкоды, а именно опкод рисующий "box" требует координаты в пикселях. У меня экран 1680x1050, и чтобы разместить коробок 100x100 пикселей в центре экрана, нужно в координатах вписать примерно X - 740, Y - 425. Но, если мое клео установят на другом компе, где разрешение экрана будет меньше, то этот коробок будет рисоваться не в центре экрана, а будет смещен в сторону из-за другого разрешения.. Как мне обойти данную систему?
 

itsLegend

Фонд борьбы за жуков 🐞
Администратор
2,696
1,469
Render опкоды, а именно опкод рисующий "box" требует координаты в пикселях. У меня экран 1680x1050, и чтобы разместить коробок 100x100 пикселей в центре экрана, нужно в координатах вписать примерно X - 740, Y - 425. Но, если мое клео установят на другом компе, где разрешение экрана будет меньше, то этот коробок будет рисоваться не в центре экрана, а будет смещен в сторону из-за другого разрешения.. Как мне обойти данную систему?
Конвертировать игровые экранные координаты(640x480) в мониторные.
0B60: convert_game_screen_coords 1@ 2@ to_window_screen_coords 3@ 4@
 

Vovich

HOT
Проверенный
717
197
Код:
for 1@ = 0 to 999 step 1
  if 0B23:  samp is_player_connected 1@
  then
  0B36: samp 2@ = get_player_nickname 1@
  if
  0C18: 0 = strstr string1 2@ string2 "_prokhorov"
  then
  msg "ПАПКА НА СЕРВЕРЕ" 0xFF0000
  end
  end
end
Слышь ты, голова у меня не рабочая.
На сам попробуй, я посмотрю как у тебя оно будет работать.
Код:
{$CLEO .cs}
0000:
repeat
wait 150
until 0afa:
alloc 2@ 128

while true
wait 0
if 0B61:  samp is_local_player_spawned
then
  for 1@ = 0 to 999 step 1
  if 0B23:  samp is_player_connected 1@
  then
  0B36: samp 2@ = get_player_nickname 1@
  if
  0C18: 0 = strstr string1 2@ string2 "_prokhorov"
  then
  msg "ПАПКА НА СЕРВЕРЕ" 0xFF0000
  end
  end
end
end
end
А потом пизди на разные стороны, нашелся умник сука.
 

itsLegend

Фонд борьбы за жуков 🐞
Администратор
2,696
1,469
А зачем выделять память? В 2@ будет храниться указатель в структуре на никнейм.
Сравнивают strcmp, а не с помощью strstr
 

Vovich

HOT
Проверенный
717
197
А зачем выделять память? В 2@ будет храниться указатель в структуре на никнейм.
Сравнивают strcmp, а не с помощью strstr
Даже если не выделять, оно все равно не работает, в админ чекере например почему то два цикла for, но зачем я так и не понял.
 

itsLegend

Фонд борьбы за жуков 🐞
Администратор
2,696
1,469
Даже если не выделять, оно все равно не работает, в админ чекере например почему то два цикла for, но зачем я так и не понял.
Каком админ-чекере?
Если ты именно так сравниваешь, то должно работать(if strcmp 0@ = "MyNickname").
Если ты читаешь из файла, к примеру, то есть нюанс.
Весь код, пжлста.
 

Vovich

HOT
Проверенный
717
197
Каком админ-чекере?
Если ты именно так сравниваешь, то должно работать(if strcmp 0@ = "MyNickname").
Если ты читаешь из файла, к примеру, то есть нюанс.
Весь код, пжлста.
я пока что просто без файла делаю, так тестово просто:
Код:
{$CLEO .cs}
0000:
repeat
wait 150
until 0afa:
0B34: samp register_client_command "acheck" to_label @acheck
alloc 23@ 128
alloc 24@ 128
while true
wait 0
if 22@ == 0
then
  format 23@ "Rusell_Hart"
  for 0@ = 0 to 1000
  if 0B23: samp is_player_connected 0@
  then
  0B36: samp 2@ = get_player_nickname 0@
  format 24@ "%s" 2@
  if 0C18: 6@ = strstr string1 24@ string2 23@
  then
  chatmsg "%s â ñåòè" color -1 23@
  end
  end
end
end

:acheck
if 22@ == 0
then
22@ = 1
0ACC: show_text_lowpriority "Acheck ~g~ON" time 2000
else
22@ = 0
0ACC: show_text_lowpriority "Acheck ~r~OFF" time 2000
end
SAMP.CmdRet()
 

itsLegend

Фонд борьбы за жуков 🐞
Администратор
2,696
1,469
Создаю диалог, надо добавить несколько кнопок. Но как узнать координаты? Пытался как-то узнать через Interface Editor, потом через Paint. Но толку нет. Так вот, как их узнавать?
Какой диалог?
 

san0

Известный
Друг
411
268
1. Координаты считаются от верхнего левого угла заголовка диалога, точнее говоря диалогXY + posXY. Лучший способ легко и быстро настроить положение - поставить на кнопку перезагрузку скрипта и через альт-таб быстро подобрать нужные цифры.