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

p1cador

cerf
Проверенный
220
359
Если клиент отправит с задержкой - рассинхрон. Если клиент отправит и сервер примет, далее отправит другому клиенту - тоже может быть задержка. От этого ты никак не избавишься, если только не через lan сеть. Вроде логично, нет? Все твои проблемы из-за сервера, который принимает. Если была бы p2p, то всё зависело от самих клиентов, а не от сервера.
Я согласен, задержка есть, справедливо. Но! Но ведь в любом случае информация должна доходить до другого игрока, хоть и с задержкой. Пакеты ведь не должны теряться? Т.е. если я отправил три раза нажатие "D", то рано или поздно, но эти пакеты дойдут до другого игрока и я все таки должен сдвинуться на 3 квадрата вправо, как ни крути, хоть и с задержкой. Или я чего-то не понимаю?
 
  • Нравится
Реакции: 4el0ve4ik

itsLegend

Фонд борьбы за жуков 🐞
Администратор
2,696
1,460
Я согласен, задержка есть, справедливо. Но! Но ведь в любом случае информация должна доходить до другого игрока, хоть и с задержкой. Пакеты ведь не должны теряться? Т.е. если я отправил три раза нажатие "D", то рано или поздно, но эти пакеты дойдут до другого игрока я должен сдвинуться на 3 квадрата вправо, как ни крути, хоть и с задержкой. Или я чего-то не понимаю?
Ты не можешь утверждать точно, что сервер не отклонил пакет, т.к. он в любое время может дать сбой или отклонить пакет потому что он не нужен(мэйби флуд). Кстати в сампе есть задержка на отправку пакетов, возможно самп/сервер фильтрует каким-нибудь образом в это время, чтобы дубликаты удалялись.

UPD: можешь заюзать RakNet Manager для сервера и узнать, какие данные приходят, а какие не доходят.
 
  • Нравится
Реакции: p1cador

SR_team

like pancake
BH Team
4,720
6,372
Решил написать режим да двоих через ракнет. На видео видно, что все нормально - мне приходит сообщение, что со мной хотят сыграть, я принимаю - у нас обоих открывается окно, где мы оба можем передвигаться. Проблема в том, что если двигаться очень быстро - может произойти небольшой рассинхрон, на 1-2 клетки (очень редко, но случается).
Перепроверил код 2048 раз, все правильно.
Мой квадратик перемещается только в случае, если установленный outcoming packet хук возвращает нажатую клавишу
Код:
//PACKET_PLAYER_SYNC = 212 | +55
// uint16_t sLeftRightKeys;
// uint16_t sUpDownKeys; + 2
То есть никаких 0ab0, 0c89, 0adc нет. Действие происходит ТОЛЬКО если оно отправляется на сервер => если его может увидеть второй игрок.
Перепроверил код 512 раз, все правильно. В чем,сука,дело?

П.С. да-да, знаю, писать такое на клео это полный бдсм, но мне нравится, хоть это и затрах, но интересно.
передавай вместо нажатия кнопок квадраты в которых находишься и направление, тогда будет небольшой рассинхрон при поворотах, но в целом все будет нормально
 
  • Нравится
Реакции: p1cador

p1cador

cerf
Проверенный
220
359
Ты не можешь утверждать точно, что сервер не отклонил пакет, т.к. он в любое время может дать сбой или отклонить пакет потому что он не нужен(мэйби флуд). Кстати в сампе есть задержка на отправку пакетов, возможно самп/сервер фильтрует каким-нибудь образом в это время, чтобы дубликаты удалялись.
Спасибо! Вот этого я не знал. Значит все-таки придется раз в некоторое время обмениваться точными координатами по х/у, чтоб небыло херни такой.
передавай вместо нажатия кнопок квадраты в которых находишься и направление, тогда будет небольшой рассинхрон при поворотах, но в целом все будет нормально
да-да, была такая идея, но, ска, до последнего не хотел передавать координаты, слишком геморно.
Спасибо)
 

ackman31

Новичок
35
0
Код:
{$CLEO}
thread 'Karlik_B'

0000:

if 8AF7: get_samp_base_to 33@
then 0A93: end_custom_thread
end
repeat
wait 400
until 0AFA: is_samp_structures_available
0AF8: samp add_message_to_chat "[FMW]: {EAEAEA}Чтобы положить на счёт мафии введите {ff9a0a}/fmw [кол-во]{EAEAEA}." 0xff9a0a
0B34: samp register_client_command "fmw" to_label @fmw
0AF8: samp add_message_to_chat "[FMEW]: {EAEAEA}Чтобы положить на склад металл введите {ff9a0a}/fmew [кол-во]{EAEAEA}." 0xff9a0a
0B34: samp register_client_command "fmew" to_label @fmew
0AF8: samp add_message_to_chat "[FPW]: {EAEAEA}Чтобы положить на склад патроны введите {ff9a0a}/fpw [кол-во]{EAEAEA}." 0xff9a0a
0B34: samp register_client_command "fpw" to_label @fpw
0AF8: samp add_message_to_chat "[FPW]: {EAEAEA}Чтобы положить патроны с ящика введите {ff9a0a}/fpt {EAEAEA}." 0xff9a0a
0B34: samp register_client_command "fpw" to_label @fpt
0AC8: 6@ = allocate_memory_size 60
0AF4: 6@ = read_string_from_ini_file "CLEO\Fskl.ini" section "Fskl" key "Ранг"
while true
wait 0
end

:fmw
0AF4: 6@ = read_string_from_ini_file "CLEO\INI\Fskl.ini" section "Fskl" key "Ранг"         
0B2B: samp 2@ = get_player_id_by_actor_handle $player_actor
0B36: samp 0@ = get_player_nickname 2@
0B35: samp 5@ = get_last_command_params
0AD4: 3@ = scan_string 5@ format "%d" 4@
0AF8: samp add_message_to_chat "%s %s[%d] положил на счёт мафии {00ff66}%d$" 0x3399ff 6@ 0@ 2@ 4@ 
SAMP.CmdRet()
:fmew
0AF4: 6@ = read_string_from_ini_file "CLEO\INI\Fskl.ini" section "Fskl" key "Ранг"         
0B2B: samp 2@ = get_player_id_by_actor_handle $player_actor
0B36: samp 0@ = get_player_nickname 2@
0B35: samp 5@ = get_last_command_params
0AD4: 3@ = scan_string 5@ format "%d" 4@
0AF8: samp add_message_to_chat "%s %s[%d] положил на склад мафии {e3eb20}%d кг металла" 0x3399ff 6@ 0@ 2@ 4@)
SAMP.CmdRet()
:fpw
0AF4: 6@ = read_string_from_ini_file "CLEO\INI\Fskl.ini" section "Fskl" key "Ранг"         
0B2B: samp 2@ = get_player_id_by_actor_handle $player_actor
0B36: samp 0@ = get_player_nickname 2@
0B35: samp 5@ = get_last_command_params
0AD4: 3@ = scan_string 5@ format "%d" 4@
0AF8: samp add_message_to_chat "%s %s[%d] положил патроны на склад мафии {e3eb20}(%d шт.)" 0x3399ff 6@ 0@ 2@ 4@
SAMP.CmdRet()
:fpt
0AF8: samp add_message_to_chat "{00B2EE}Вы принесли на склад ящик патронов (+300 шт.)"
SAMP.CmdRet()
Неизвестная команда SAMP.CmdRet()
 

SR_team

like pancake
BH Team
4,720
6,372
Спасибо! Вот этого я не знал. Значит все-таки придется раз в некоторое время обмениваться точными координатами по х/у, чтоб небыло херни такой.

да-да, была такая идея, но, ска, до последнего не хотел передавать координаты, слишком геморно.
Спасибо)
геморно? Так же ловишь пакет и вместо клавишь пишешь туда координаты
 
  • Нравится
Реакции: 4el0ve4ik

itsLegend

Фонд борьбы за жуков 🐞
Администратор
2,696
1,460
Код:
{$CLEO}
thread 'Karlik_B'

0000:

if 8AF7: get_samp_base_to 33@
then 0A93: end_custom_thread
end
repeat
wait 400
until 0AFA: is_samp_structures_available
0AF8: samp add_message_to_chat "[FMW]: {EAEAEA}Чтобы положить на счёт мафии введите {ff9a0a}/fmw [кол-во]{EAEAEA}." 0xff9a0a
0B34: samp register_client_command "fmw" to_label @fmw
0AF8: samp add_message_to_chat "[FMEW]: {EAEAEA}Чтобы положить на склад металл введите {ff9a0a}/fmew [кол-во]{EAEAEA}." 0xff9a0a
0B34: samp register_client_command "fmew" to_label @fmew
0AF8: samp add_message_to_chat "[FPW]: {EAEAEA}Чтобы положить на склад патроны введите {ff9a0a}/fpw [кол-во]{EAEAEA}." 0xff9a0a
0B34: samp register_client_command "fpw" to_label @fpw
0AF8: samp add_message_to_chat "[FPW]: {EAEAEA}Чтобы положить патроны с ящика введите {ff9a0a}/fpt {EAEAEA}." 0xff9a0a
0B34: samp register_client_command "fpw" to_label @fpt
0AC8: 6@ = allocate_memory_size 60
0AF4: 6@ = read_string_from_ini_file "CLEO\Fskl.ini" section "Fskl" key "Ранг"
while true
wait 0
end

:fmw
0AF4: 6@ = read_string_from_ini_file "CLEO\INI\Fskl.ini" section "Fskl" key "Ранг"        
0B2B: samp 2@ = get_player_id_by_actor_handle $player_actor
0B36: samp 0@ = get_player_nickname 2@
0B35: samp 5@ = get_last_command_params
0AD4: 3@ = scan_string 5@ format "%d" 4@
0AF8: samp add_message_to_chat "%s %s[%d] положил на счёт мафии {00ff66}%d$" 0x3399ff 6@ 0@ 2@ 4@
SAMP.CmdRet()
:fmew
0AF4: 6@ = read_string_from_ini_file "CLEO\INI\Fskl.ini" section "Fskl" key "Ранг"        
0B2B: samp 2@ = get_player_id_by_actor_handle $player_actor
0B36: samp 0@ = get_player_nickname 2@
0B35: samp 5@ = get_last_command_params
0AD4: 3@ = scan_string 5@ format "%d" 4@
0AF8: samp add_message_to_chat "%s %s[%d] положил на склад мафии {e3eb20}%d кг металла" 0x3399ff 6@ 0@ 2@ 4@)
SAMP.CmdRet()
:fpw
0AF4: 6@ = read_string_from_ini_file "CLEO\INI\Fskl.ini" section "Fskl" key "Ранг"        
0B2B: samp 2@ = get_player_id_by_actor_handle $player_actor
0B36: samp 0@ = get_player_nickname 2@
0B35: samp 5@ = get_last_command_params
0AD4: 3@ = scan_string 5@ format "%d" 4@
0AF8: samp add_message_to_chat "%s %s[%d] положил патроны на склад мафии {e3eb20}(%d шт.)" 0x3399ff 6@ 0@ 2@ 4@
SAMP.CmdRet()
:fpt
0AF8: samp add_message_to_chat "{00B2EE}Вы принесли на склад ящик патронов (+300 шт.)"
SAMP.CmdRet()
Неизвестная команда SAMP.CmdRet()
Правильно установи SF SDK для Sanny Builder'а
 

p1cador

cerf
Проверенный
220
359
геморно? Так же ловишь пакет и вместо клавишь пишешь туда координаты
Ну не то, чтобы геморно, просто впадлу писать функцию перевода номера квадрата по х/у в экранные координаты (т.к. позиции игрового поля на разных мониторах отличаются) :D
 

Danya1338

Новичок
1
0
Люди добрые, кто может заменить зажимную активацию на обычную вкл/выкл, свяжитесь со мной пожалуйста в лс. Скрипт - автошот.
 

Костя)

Новичок
5
0
Народ, подскажите, можно ли сделать такой скрипт, который будет телепортировать на респу, как в собе на сочетание клавиш SHIFT + 7?
 

4el0ve4ik

Известный
Всефорумный модератор
1,548
1,339
Народ, подскажите, можно ли сделать такой скрипт, который будет телепортировать на респу, как в собе на сочетание клавиш SHIFT + 7?
Можно, правда даже на большинстве нубоРП будет кикать, не говоря уже о топовых проектах.