- 36
- 0
- Версия 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
			
				Последнее редактирование: 
				
		
	
										
										
											
	
										
									
								 
				
		 
 
		 
 
		 
 
		 
 
		 
 
		