- 92
- 4
- Версия SA-MP
-
- Другая
Сделал такой скрипт
Проблема в том что танец, который включается при вводе команды /cdance, немного не работает, в том смысле что из них видно только одну, а да, скрипт я портировал на monetloader с исходного клео скрипта, и по идеи танец должен работать но 2 из них не видны, а вот если включить этот же скрипт только на клео, на пк то к удивлению все танцы будут нормально видны, возможно проблема из за мобильного лаунчера или же из за Lua который не может нормально отобразить их игрокам, или я хз че еще могло произойти, если что вот видео с этим самым танцем
, кстати, вот если что исходник клео
Lua:
script_name("canim")
script_description("Анимации /canim [1-42] + /cdance (RUNNINGMAN, WOP, GFUNK по кругу)")
script_author("I'm")
local anims = {
[1] = {"SHOT_partial", "PED", "Вашего перса будет колбасить"},
[2] = {"PARA_Rip_Loop_O", "PARACHUTE", "Ваш перс превратится в страхолюдную хреновину"},
[3] = {"DOOR_RHinge_O", "PED", "Угол наклона перса будет менятся"},
[4] = {"FALL_skyDive", "PED", "Анимация полета с парашюта"},
[5] = {"FALL_SkyDive_Accel", "PARACHUTE", "Анимация полета с парашюта 2"},
[6] = {"endchat_02", "PED", "Анимация окончания чата/отказа"},
[7] = {"FALL_back", "PED", "Ваш перс будет падать лицом вверх"},
[8] = {"KART_drive", "PED", "Ваш перс будет сидеть в воображаемой тачке"},
[9] = {"KO_shot_stom", "PED", "Анимация попадания пули"},
[10] = {"Shove_Partial", "PED", "Ваш перс будет че то разрывать"},
[11] = {"Swim_Tread", "PED", "Ваш перс будет плавать"},
[12] = {"CAR_dead_RHS", "PED", "Ваш перс будет сидеть со сломанной шеей *он сдох в тачке*"},
[13] = {"abseil", "PED", "Анимация стояния"},
[14] = {"SitnWait_loop_W", "BEACH", "Ваш перс будет лежать"},
[15] = {"gym_bp_up_smooth", "BENCHPRESS", "Ваш перс будет отжиматься"},
[16] = {"bk_rdy_in", "BIKELEAP", "Ваш перс будет сидя передвигатся"},
[17] = {"BIKEd_Back", "BIKED", "Ваш перс будет ебать.. ой, тоесть смешить людей"},
[18] = {"BIKEs_Back", "BIKES", "Ваш перс будет ебать.. ой, тоесть смешить людей"},
[19] = {"bk_rdy_in", "BIKELEAP", "Ваш перс будет сидя передвигатся"},
[20] = {"bxhipwlk", "BOX", "Ваш перс будет что то нести с сломанной шеей"},
[21] = {"BBALL_Net_Dnk_O", "BSKTBALL", "Ваш перс превратится в страхолюдную хреновину"},
[22] = {"Tyd2car_TurnR", "CAR", "Ваш перс будет лежа сдвигатся"},
[23] = {"DAM_Dive_Loop", "DAM_JUMP", "Ваш перс будет лететь вниз головой"},
[24] = {"GYMshadowbox", "GYMNASIUM", "Ваш перс будет драться с воздухом"},
[25] = {"gym_bike_fast", "GYMNASIUM", "Ваш перс будет ехать на воображаемом велосипеде"},
[26] = {"Knife_G", "KNIFE", "Ваш перс будет кому то вставлять нож"},
[27] = {"lrgirl_l2_bnce", "LOWRIDER", "Ваш перс будет тянуть за что то"},
[28] = {"PARA_Land_Water", "PARACHUTE", "Ваш перс будет падать в воду всплывая на поверхность"},
[29] = {"PARA_float", "PARACHUTE", "Ваш перс будет держатся за воображаемый открытый парашют"},
[30] = {"wank_loop", "PAULNMAC", "Ваш перс будет чесаться за яйца"},
[31] = {"swt_vnt_sht_loop", "SWAT", "Ваш перс провалится под текстуру и будет сосать чей то хуй"},
[32] = {"HIT_walk", "PED", "РАЗ РАЗ РАЗ ЭТО ХАРДБАСС ВСЕ В СПОРТИВКАХ АДИДАС *вас будет качать в разные стороны*"},
[33] = {"TEC_fire", "TEC", "Ваш перс будет указывать рукой влево"},
[34] = {"TEC_reload", "TEC", "Ваш перс будет перезаряжать оружие со скоростью света *или же сломает руку*"},
[35] = {"idlestance_old", "PED", "Ваш перс будет стоять как дряхлый дед"},
[36] = {"BD_Panic_01", "BD_FIRE", "Ваш персонаж будет махать рукой"},
[37] = {"JUMP_launch", "PED", "Вашего перса будет качать в прыжке"},
[38] = {"FLOOR_hit_f", "PED", "Вашему персу будет плохо"},
[39] = {"BBALL_Dnk_Gli", "BSKTBALL", "Ваш перс станет персом из Friday Night Funkin и будет бешенно прыгать"},
[40] = {"FALL_skyDive_DIE", "PARACHUTE", "Вашему персу будет плохо"},
[41] = {"PARA_Decel_O", "PARACHUTE", "Ваш перс превратится в страхолюдную хреновину"},
[42] = {"Laugh_01", "RAPPING", "Ваш перс будет ржать"},
}
-- Танцы IFP
local dance_ifps = {"RUNNINGMAN", "WOP", "GFUNK"}
-- Внутренние анимации (одинаковы для всех IFP)
local dance_names = {
"DANCE_G1","DANCE_G2","DANCE_G3","DANCE_G4",
"DANCE_G5","DANCE_G6","DANCE_G7","DANCE_G8",
"DANCE_G9","DANCE_G10","DANCE_G11","DANCE_G12",
"DANCE_G13","DANCE_G14","DANCE_G15","DANCE_G16"
}
local dance_active = false
local dance_thread = nil
local DANCE_INTERVAL_MS = 250 -- как в CLEO
local GREEN_COLOR = 0x00FF00
local RED_COLOR = 0xFF0000
-- Новая константа для пагинации
local ANIMS_PER_PAGE = 20
local function chat(msg, color)
color = color or -1
sampAddChatMessage(msg, color)
end
local function play_anim(anim, ifp, looped)
if not anim or not ifp then return end
if requestAnimation then requestAnimation(ifp) end
if taskPlayAnim then
taskPlayAnim(PLAYER_PED, anim, ifp, 4.0, looped or false, false, false, false, -1)
end
end
local function cmd_canim(param)
local id = tonumber(param)
local max_anim = #anims
if not id or not anims[id] then
chat(string.format("Использование: /canim [1-%d]", max_anim), GREEN_COLOR)
return
end
-- [1] - anim, [2] - ifp, [3] - description
local anim, ifp = anims[id][1], anims[id][2]
chat(string.format("Включена анимация %d: %s (IFP: %s)", id, anim, ifp), GREEN_COLOR)
play_anim(anim, ifp, true)
end
local function cmd_cdance()
if dance_active then
dance_active = false
if dance_thread then
dance_thread:terminate()
dance_thread = nil
end
clearCharTasksImmediately(PLAYER_PED)
chat("Анимации отключены.", RED_COLOR)
return
end
dance_active = true
dance_thread = lua_thread.create(function()
local ifp_index = 1
local anim_index = 1
while dance_active do
local anim = dance_names[anim_index]
local ifp = dance_ifps[ifp_index]
play_anim(anim, ifp, false)
local waited = 0
while waited < DANCE_INTERVAL_MS and dance_active do
wait(50)
waited = waited + 50
end
anim_index = anim_index + 1
if anim_index > #dance_names then
anim_index = 1
ifp_index = ifp_index + 1
if ifp_index > #dance_ifps then
ifp_index = 1
end
end
end
end)
chat("Включены танцы по кругу! (RUNNINGMAN > WOP > GFUNK, если что видно только WOP)", GREEN_COLOR)
end
local function cmd_chelp(param)
local page = tonumber(param)
if not page or page < 1 then
page = 1
end
local total_anims = #anims
local total_pages = math.ceil(total_anims / ANIMS_PER_PAGE)
if page > total_pages then
chat(string.format("Ошибка: Страницы %d не существует. Всего страниц: %d.", page, total_pages), RED_COLOR)
return
end
local start_index = ((page - 1) * ANIMS_PER_PAGE) + 1
local end_index = math.min(page * ANIMS_PER_PAGE, total_anims)
chat(string.format("--- Список анимаций (Страница %d/%d) ---", page, total_pages), GREEN_COLOR)
for i = start_index, end_index do
local data = anims[i]
if data then
-- data[3] - description
local description = data[3]
local msg = string.format("Anim (%d - %s)", i, description)
chat(msg, GREEN_COLOR)
end
end
if page < total_pages then
chat(string.format("--- Используйте /chelp %d для следующей страницы ---", page + 1), GREEN_COLOR)
else
chat(string.format("--- Это последняя страница. Всего: %d ---", total_anims), GREEN_COLOR)
end
end
function main()
while not isSampAvailable() do wait(100) end
sampRegisterChatCommand("canim", cmd_canim)
sampRegisterChatCommand("cdance", cmd_cdance)
sampRegisterChatCommand("chelp", cmd_chelp)
chat(string.format("Скрипт canim+cdance загружен. /canim [1-%d], /cdance, /chelp [страница]", #anims), -1)
while true do wait(1000) end
end
Проблема в том что танец, который включается при вводе команды /cdance, немного не работает, в том смысле что из них видно только одну, а да, скрипт я портировал на monetloader с исходного клео скрипта, и по идеи танец должен работать но 2 из них не видны, а вот если включить этот же скрипт только на клео, на пк то к удивлению все танцы будут нормально видны, возможно проблема из за мобильного лаунчера или же из за Lua который не может нормально отобразить их игрокам, или я хз че еще могло произойти, если что вот видео с этим самым танцем
CLEO:
{$CLEO .cs}
script_name 'MDC'
06D1: v$DANCE_ANIM_IFP = "RUNNINGMAN" // v$ = string
17@ = 1
$MDSQ1 = 0
$MDSQ2 = 0
:MDC_49
wait 0
if
Player.Defined($PLAYER_CHAR)
jf @MDC_49
if
$ONMISSION == 0
jf @MDC_49
if and
09E7: player $PLAYER_CHAR not_frozen
not Actor.Driving($PLAYER_ACTOR)
is_key_pressed 220
jf @MDC_49
0826: enable_hud 0
0581: enable_radar 0
:MDC_121
04ED: load_animation v$DANCE_ANIM_IFP
if
84EE: not animation v$DANCE_ANIM_IFP loaded
jf @MDC_153
wait 0
jump @MDC_121
:MDC_153
MDC_426()
jump @MDC_167
:MDC_167
if
17@ == 17
jf @MDC_373
if
$MDSQ2 == 0
jf @MDC_234
06D1: v$DANCE_ANIM_IFP = "WOP" // v$ = string
17@ = 1
$MDSQ2 = 1
jump @MDC_341
:MDC_234
if
$MDSQ2 == 1
jf @MDC_285
06D1: v$DANCE_ANIM_IFP = "GFUNK" // v$ = string
17@ = 1
$MDSQ2 = 2
jump @MDC_341
:MDC_285
if
$MDSQ2 == 2
jf @MDC_341
06D1: v$DANCE_ANIM_IFP = "RUNNINGMAN" // v$ = string
17@ = 1
$MDSQ2 = 0
jump @MDC_341
:MDC_341
04ED: load_animation v$DANCE_ANIM_IFP
if
84EE: not animation v$DANCE_ANIM_IFP loaded
jf @MDC_373
wait 0
jump @MDC_341
:MDC_373
if and
09E7: player $PLAYER_CHAR not_frozen
not Actor.Driving($PLAYER_ACTOR)
is_key_pressed 220
jf @MDC_406
jump @MDC_49
:MDC_406
04EF: release_animation v$DANCE_ANIM_IFP
0826: enable_hud 1
0581: enable_radar 1
jump @MDC_49
:MDC_426
if
$MDSQ1 == 0
jf @MDC_470
$MDSQ1 = 1
wait 250
$MDSQ1 = 0
jump @MDC_472
:MDC_470
return
:MDC_472
0871: init_jump_table 17@ total_jumps 15 default_jump 1 @MDC_600 jumps 2 @MDC_629 3 @MDC_658 4 @MDC_687 5 @MDC_716 6 @MDC_745 7 @MDC_774 8 @MDC_803
0872: jump_table_jumps 9 @MDC_832 10 @MDC_861 11 @MDC_891 12 @MDC_921 13 @MDC_951 14 @MDC_981 15 @MDC_1011 16 @MDC_1041 -1 @MDC_1071
:MDC_600
06D1: v$DANCE_ANIM = "DANCE_G1" // v$ = string
17@ = 2
jump @MDC_1071
:MDC_629
06D1: v$DANCE_ANIM = "DANCE_G2" // v$ = string
17@ += 1
jump @MDC_1071
:MDC_658
06D1: v$DANCE_ANIM = "DANCE_G3" // v$ = string
17@ += 1
jump @MDC_1071
:MDC_687
06D1: v$DANCE_ANIM = "DANCE_G4" // v$ = string
17@ += 1
jump @MDC_1071
:MDC_716
06D1: v$DANCE_ANIM = "DANCE_G5" // v$ = string
17@ += 1
jump @MDC_1071
:MDC_745
06D1: v$DANCE_ANIM = "DANCE_G6" // v$ = string
17@ += 1
jump @MDC_1071
:MDC_774
06D1: v$DANCE_ANIM = "DANCE_G7" // v$ = string
17@ += 1
jump @MDC_1071
:MDC_803
06D1: v$DANCE_ANIM = "DANCE_G8" // v$ = string
17@ += 1
jump @MDC_1071
:MDC_832
06D1: v$DANCE_ANIM = "DANCE_G9" // v$ = string
17@ += 1
jump @MDC_1071
:MDC_861
06D1: v$DANCE_ANIM = "DANCE_G10" // v$ = string
17@ += 1
jump @MDC_1071
:MDC_891
06D1: v$DANCE_ANIM = "DANCE_G11" // v$ = string
17@ += 1
jump @MDC_1071
:MDC_921
06D1: v$DANCE_ANIM = "DANCE_G12" // v$ = string
17@ += 1
jump @MDC_1071
:MDC_951
06D1: v$DANCE_ANIM = "DANCE_G13" // v$ = string
17@ += 1
jump @MDC_1071
:MDC_981
06D1: v$DANCE_ANIM = "DANCE_G14" // v$ = string
17@ += 1
jump @MDC_1071
:MDC_1011
06D1: v$DANCE_ANIM = "DANCE_G15" // v$ = string
17@ += 1
jump @MDC_1071
:MDC_1041
06D1: v$DANCE_ANIM = "DANCE_G16" // v$ = string
17@ += 1
jump @MDC_1071
:MDC_1071
0812: AS_actor $PLAYER_ACTOR perform_animation v$DANCE_ANIM IFP v$DANCE_ANIM_IFP framedelta 4.0 loopA 0 lockX 0 lockY 0 lockF 0 time 0 // versionB
return
Последнее редактирование: