Русское сообщество по скриптингу

Глобальный оффтоп

Флуд, который не касается других разделов форума.

Модератор: Модераторы

Правила форума
1. Запрещено материться и оскорблять других участников форума.
2. Запрещен флуд, оффтоп, дабл постинг во всех разделах форума, кроме раздела "Болтовня".
3. Запрещено взламывать сайт/форум или наносить любой вред проекту.
4. Запрещено рекламировать другие ресурсы.
5. Запрещено создавать темы без информативного названия. Название темы должно отображать ее смысл.

Re: Глобальный оффтоп

Сообщение Pafos » 10 авг 2017, 16:18

артист666, скинь код :-)
Аватара пользователя
Pafos
 
Сообщения: 574
Зарегистрирован: 07 апр 2014, 18:03
Откуда: pfnClientConnect
Забанен
Благодарил (а): 129 раз.
Поблагодарили: 97 раз.
Опыт программирования: Больше трех лет
Языки программирования: Pawn

Re: Глобальный оффтоп

Сообщение артист666 » 10 авг 2017, 16:32

По взгляду в общем рисует.
Функция там отдельно, координаты, радиус, цвет в ргб, продолжительность жизни линий, толщина линий.
Жаль, что больше 83х линий не рисует, может клиентские квары за это отвечают, х.з, на 1ну хватает в аккурат...
Код можно сократить, сгенерировав нормали через angle_vector в цикле, ну и отрисовку тоже...

Код: Выделить всё
#include <amxmodx>
#include <fakemeta>
#include <hamsandwich>

new sprite_index

new Float:g_normal[42][3] =
{
    {
0.0000000.0000001.000000},        // {90.0, 0.0, 0.0}, // Верх
    
{0.4999990.0000000.866025},        // {60.0, 0.0, 0.0},
    
{0.2499990.4330120.866025},        // {60.0, 60.0, 0.0},
    
{-0.2500000.4330120.866025},    // {60.0, 120.0, 0.0},
    
{-0.4999990.0000000.866025},    // {60.0, 180.0, 0.0},
    
{-0.249999, -0.4330120.866025},    // {60.0, 240.0, 0.0},
    
{0.249999, -0.4330120.866025},    // {60.0, 300.0, 0.0},
    
    
{0.0000000.000000, -1.000000},    // {-90.0, 0.0, 0.0}, // Низ
    
{0.4999990.000000, -0.866025},    // {-60.0, 0.0, 0.0},
    
{0.2499990.433012, -0.866025},    // {-60.0, 60.0, 0.0},
    
{-0.2500000.433012, -0.866025},    // {-60.0, 120.0, 0.0},
    
{-0.4999990.000000, -0.866025},    // {-60.0, 180.0, 0.0},
    
{-0.249999, -0.433012, -0.866025},    // {-60.0, 240.0, 0.0},
    
{0.249999, -0.433012, -0.866025},    // {-60.0, 300.0, 0.0},
    
    
{0.000000, -1.0000000.000000},    // {0.0, 270.0, 0.0}, // Право
    
{0.000000, -0.8660250.500000},    // {30.0, 270.0, 0.0},
    
{0.482962, -0.8365160.258819},    // {15.0, 300.0, 0.0},
    
{0.482962, -0.836516, -0.258819},    // {-15.0, 300.0, 0.0},
    
{0.000000, -0.866025, -0.500000},    // {-30.0, 270.0, 0.0},
    
{-0.482962, -0.836516, -0.258819},    // {-15.0, 240.0, 0.0},
    
{-0.482962, -0.8365160.258819},    // {15.0, 240.0, 0.0},
    
    
{0.0000001.0000000.000000},        // {0.0, 90.0, 0.0}, // Лево
    
{0.0000000.8660250.500000},        // {30.0, 90.0, 0.0},
    
{0.4829620.8365160.258819},        // {15.0, 60.0, 0.0},
    
{0.4829620.836516, -0.258819},    // {-15.0, 60.0, 0.0},
    
{0.0000000.866025, -0.500000},    // {-30.0, 90.0, 0.0},
    
{-0.4829620.836516, -0.258819},    // {-15.0, 120.0, 0.0},
    
{-0.4829620.8365160.258819},    // {15.0, 120.0, 0.0},
    
    
{1.0000000.000000, -0.000000},    // {0.0, 0.0, 0.0}, // Перед
    
{0.836516, -0.2241430.500000},    // {30.0, 345.0, 0.0},
    
{0.866025, -0.500000, -0.000000},    // {0.0, 330.0, 0.0},
    
{0.836516, -0.224143, -0.500000},    // {-30.0, 345.0, 0.0},
    
{0.8365160.224143, -0.500000},    // {-30.0, 15.0, 0.0},
    
{0.8660250.500000, -0.000000},    // {0.0, 30.0, 0.0},
    
{0.8365160.2241430.500000},        // {30.0, 15.0, 0.0},
    
    
{-1.0000000.0000000.000000},    // {0.0, 180.0, 0.0}, // Зад
    
{-0.836516, -0.2241430.500000},    // {30.0, 195.0, 0.0},
    
{-0.866025, -0.499999, -0.000000},    // {0.0, 210.0, 0.0},
    
{-0.836516, -0.224143, -0.500000},    // {-30.0, 195.0, 0.0},
    
{-0.8365160.224143, -0.500000},    // {-30.0, 165.0, 0.0},
    
{-0.8660250.500000, -0.000000},    // {0.0, 150.0, 0.0},
    
{-0.8365160.2241430.500000}        // {30.0, 165.0, 0.0}
}

public 
plugin_init()
{
    
register_clcmd("ppfire""functions")
}
public 
plugin_precache()
{
    
sprite_index precache_model("sprites/laserbeam.spr")
}
public 
functions(id)
{
    static 
Float:origin[3]; pev(idpev_originorigin)
    static 
Float:view_ofs[3]; pev(idpev_view_ofsview_ofs)
    static 
Float:angles[3]; pev(idpev_v_angleangles)
    
angle_vector(anglesANGLEVECTOR_FORWARDangles)
    
    static 
Float:end[3]
    
end[0] = (view_ofs[0] += origin[0]) + (angles[0] * 8989.0)
    
end[1] = (view_ofs[1] += origin[1]) + (angles[1] * 8989.0)
    
end[2] = (view_ofs[2] += origin[2]) + (angles[2] * 8989.0)
    
    
engfunc(EngFunc_TraceLineview_ofsendDONT_IGNORE_MONSTERSid0)
    
get_tr2(0TR_vecEndPosend); end[2] += 1.0
    
    set_task
(0.1"functions2"1_:endsizeof(end), "a"1)
    return 
PLUGIN_HANDLED
}
public 
functions2(Float:origin[3], radius)
{
    if(
radius 300)
    {
        
create_geo_sphere(originfloat(radius), 002551005)
        return
    }
    
origin[2] += 2.0
    radius 
+= 2
    create_geo_sphere
(originfloat(radius), 2550015)
    
set_task(0.1"functions2"radius_:originsizeof(origin), "a"1)
}
public 
create_geo_sphere(Float:origin[3], Float:radiusrgblifewidth)
{
    static 
Float:normal[42][3], i= -1
    
    
while(++sizeof(normal))
    {
        
normal[i][0] = g_normal[i][0]
        
normal[i][1] = g_normal[i][1]
        
normal[i][2] = g_normal[i][2]
        
        
vector_mull(normal[i], radiusnormal[i])
        
vector_add(normal[i], originnormal[i])
    }
    
0
    
    
while(sizeof(normal))
    {
        
create_line(normal[i], normal[1], rgblifewidth)
        
create_line(normal[i], normal[2], rgblifewidth)
        
create_line(normal[i], normal[3], rgblifewidth)
        
create_line(normal[i], normal[4], rgblifewidth)
        
create_line(normal[i], normal[5], rgblifewidth)
        
create_line(normal[i], normal[6], rgblifewidth)
        
        
create_line(normal[1], normal[2], rgblifewidth)
        
create_line(normal[2], normal[3], rgblifewidth)
        
create_line(normal[3], normal[4], rgblifewidth)
        
create_line(normal[4], normal[5], rgblifewidth)
        
create_line(normal[5], normal[6], rgblifewidth)
        
create_line(normal[6], normal[1], rgblifewidth)
        
        
+= 7
    
}
    
create_line(normal[1], normal[29], rgblifewidth)
    
create_line(normal[1], normal[34], rgblifewidth)
    
create_line(normal[2], normal[22], rgblifewidth)
    
create_line(normal[3], normal[22], rgblifewidth)
    
create_line(normal[4], normal[36], rgblifewidth)
    
create_line(normal[4], normal[41], rgblifewidth)
    
create_line(normal[5], normal[15], rgblifewidth)
    
create_line(normal[6], normal[15], rgblifewidth)
    
    
create_line(normal[8], normal[31], rgblifewidth)
    
create_line(normal[8], normal[32], rgblifewidth)
    
create_line(normal[9], normal[25], rgblifewidth)
    
create_line(normal[10], normal[25], rgblifewidth)
    
create_line(normal[11], normal[38], rgblifewidth)
    
create_line(normal[11], normal[39], rgblifewidth)
    
create_line(normal[12], normal[18], rgblifewidth)
    
create_line(normal[13], normal[18], rgblifewidth)
    
    
create_line(normal[16], normal[30], rgblifewidth)
    
create_line(normal[17], normal[30], rgblifewidth)
    
create_line(normal[19], normal[37], rgblifewidth)
    
create_line(normal[20], normal[37], rgblifewidth)
    
create_line(normal[23], normal[33], rgblifewidth)
    
create_line(normal[24], normal[33], rgblifewidth)
    
create_line(normal[26], normal[40], rgblifewidth)
    
create_line(normal[27], normal[40], rgblifewidth)
    
    
create_line(normal[2], normal[23], rgblifewidth)
    
create_line(normal[3], normal[27], rgblifewidth)
    
create_line(normal[5], normal[20], rgblifewidth)
    
create_line(normal[6], normal[16], rgblifewidth)
    
create_line(normal[9], normal[24], rgblifewidth)
    
create_line(normal[10], normal[26], rgblifewidth)
    
create_line(normal[12], normal[19], rgblifewidth)
    
create_line(normal[13], normal[17], rgblifewidth)
    
    
create_line(normal[16], normal[29], rgblifewidth)
    
create_line(normal[17], normal[31], rgblifewidth)
    
create_line(normal[19], normal[38], rgblifewidth)
    
create_line(normal[20], normal[36], rgblifewidth)
    
create_line(normal[23], normal[34], rgblifewidth)
    
create_line(normal[24], normal[32], rgblifewidth)
    
create_line(normal[26], normal[39], rgblifewidth)
    
create_line(normal[27], normal[41], rgblifewidth)
    
    
create_line(normal[2], normal[34], rgblifewidth)
    
create_line(normal[3], normal[41], rgblifewidth)
    
create_line(normal[5], normal[36], rgblifewidth)
    
create_line(normal[6], normal[29], rgblifewidth)
    
create_line(normal[9], normal[32], rgblifewidth)
    
create_line(normal[10], normal[39], rgblifewidth)
    
create_line(normal[12], normal[38], rgblifewidth)
    
create_line(normal[13], normal[31], rgblifewidth)
}
stock vector_mull(Float:in[3], Float:mul 1.0Float:out[3])
{
    
out[0] = in[0] * mul
    out
[1] = in[1] * mul
    out
[2] = in[2] * mul
}
stock vector_add(Float:vec1[3], Float:vec2[3], Float:out[3])
{
    
out[0] = vec1[0] + vec2[0]
    
out[1] = vec1[1] + vec2[1]
    
out[2] = vec1[2] + vec2[2]
}
stock create_line(Float:start[3], Float:end[3], rgblifewidth)
{
    
message_begin(MSG_BROADCASTSVC_TEMPENTITY)
    
write_byte(TE_BEAMPOINTS)
    
engfunc(EngFunc_WriteCoordstart[0])
    
engfunc(EngFunc_WriteCoordstart[1])
    
engfunc(EngFunc_WriteCoordstart[2])
    
engfunc(EngFunc_WriteCoordend[0])
    
engfunc(EngFunc_WriteCoordend[1])
    
engfunc(EngFunc_WriteCoordend[2])
    
write_short(sprite_index)
    
write_byte(0)
    
write_byte(1)
    
write_byte(life)
    
write_byte(width)
    
write_byte(0)
    
write_byte(r)
    
write_byte(g)
    
write_byte(b)
    
write_byte(255)
    
write_byte(0)
    
message_end()
Если вы хотите чему-то научиться, задавайте вопросы.
Иначе компенсируйте потраченное время на ваши "проблемы".
Аватара пользователя
артист666
 
Сообщения: 2301
Зарегистрирован: 09 апр 2013, 17:46
Благодарил (а): 276 раз.
Поблагодарили: 515 раз.
Опыт программирования: Больше трех лет

Re: Глобальный оффтоп

Сообщение Subb98 » 12 авг 2017, 15:43

артист666 писал(а):Немножко лоханулся со степенью. :ROFL:
Ну и умножение отрицательного числа на отрицательное, даёт тоже отрицательное число, abs надо.

Вот что получилось:
Код: Выделить всё
#include <amxmodx>
#include <fakemeta>
#include <hamsandwich>

new bool:g_is_jump[33][2]
new Float:g_jump_dist[33]

public plugin_init()
{
    RegisterHam(Ham_Spawn, "player", "player_spawn", 1)
    register_forward(FM_PlayerPreThink, "player_think")
}
public player_spawn(id)
{
    if(!is_user_alive(id)) return
    
    g_is_jump
[id][0] = false
    g_is_jump
[id][1] = false
}
public player_think(id)
{
    if(!is_user_alive(id)) return
    
    static bt
; bt = pev(id, pev_button) & IN_JUMP
    static obt
; obt = pev(id, pev_oldbuttons) & IN_JUMP
    static fl
; fl = pev(id, pev_flags) & FL_ONGROUND
    static Float
:start[3], Float:end[3]
    
    if
(fl) // Игрок стоит на поверхности
    {
        if(g_is_jump[id][0]) // Приземление, точка C
        {
            g_is_jump[id][0] = false
            g_is_jump
[id][1] = false
            
            pev
(id, pev_origin, start)
            static Float:bc; bc = get_distance2d_f(start, end)
            client_print(id, print_chat, "C= %f %f %f BC= %f AC= %f", start[0], start[1], start[2], bc, g_jump_dist[id] + bc)
        }
        else if(bt && !obt)  // Старт прыжка, точка A
        {
            g_is_jump[id][0] = true
            g_jump_dist
[id] = 0.0
            
            pev
(id, pev_origin, start)
            client_print(id, print_chat, "A= %f %f %f", start[0], start[1], start[2])
        }
    }
    else if(g_is_jump[id][0]) // Полет, где-то здесь точка B
    {
        static Float:velocity[3]; pev(id, pev_velocity, velocity)
        
        if
(velocity[2] <= 0.0 && !g_is_jump[id][1]) // Вот точка B, когда игрок начал падать.
        {
            g_is_jump[id][1] = true
            
            pev
(id, pev_origin, end)
            
            g_jump_dist
[id] = get_distance3d_f(start, end) // Получаем расстояние от A до B в 3х плоскостях
            client_print(id, print_chat, "B= %f %f %f AB= %f", end[0], end[1], end[2], g_jump_dist[id])
        }
    }
}
Float:get_distance2d_f(const Float:s[3], const Float:e[3])
{
    return floatsqroot(floatabs(floatpower(e[0] - s[0], 2.0)) + floatabs(floatpower(e[1] - s[1], 2.0)))
}
Float:get_distance3d_f(const Float:s[3], const Float:e[3])
{
    return floatsqroot(floatabs(floatpower(e[0] - s[0], 2.0)) + floatabs(floatpower(e[1] - s[1], 2.0)) + floatabs(floatpower(e[2] - s[2], 2.0)))
}

Значит буква вначале, это точка(понятно и так), потом идут координаты игрока в этой точке.
AB - расстояние от точки A до точки B в 3х плоскостях.
BC - расстояние от точки B до точки C в 2х плоскостях(без учёта высоты).
AC - оба расстояния вместе.

A= 1161.478881 3453.010742 -91.968750
B= 1075.998291 3463.737548 -46.977180 AB= 97.191757
C= 991.214965 3465.099121 -91.968750 BC= 84.794258 AC= 181.986022


A= 283.747772 3450.412353 28.990543
B= 197.715637 3453.085449 73.982116 AB= 97.123199
C= 120.986198 3440.712890 36.031250 BC= 77.720565 AC= 174.843765


get_distance3d_f полный аналог get_distance_f:
Код: Выделить всё
#include <amxmodx>

new Float:s[] = {10.0, 10.0, 10.0}
new Float:e[] = {-10.0, -10.0, -10.0}

public plugin_init()
{
    register_clcmd("say y", "functions")
}
public functions(id)
{
    client_print(id, print_chat, "%f %f - %f %f", get_distance_f(s, e), get_distance_f(e, s), get_distance3d_f(s, e), get_distance3d_f(e, s))
}
Float:get_distance3d_f(const Float:s[3], const Float:e[3])
{
    return floatsqroot(floatabs(floatpower(e[0] - s[0], 2.0)) + floatabs(floatpower(e[1] - s[1], 2.0)) + floatabs(floatpower(e[2] - s[2], 2.0)))
}

Получилось:
34.641017 34.641017 - 34.641017 34.641017


Не знаю верно ли я понял условие...

П.с. если привести координату Z т.е. высоту к одному значению - будет тоже самое, просто зря будет рассчитываться...

Я сильно извиняюсь, не смог проверить плагин в прошлые выходные, как планировал. Сегодня показал его человеку, которому он изначально и был нужен, он сказал, что протестирует и отпишется о результатах. :-)
«Очень хорошо. Лучше вы, чем я» © Donald J. Trump
Аватара пользователя
Subb98
Модератор
 
Сообщения: 4783
Зарегистрирован: 24 мар 2011, 19:42
Откуда: г. Пермь
Благодарил (а): 1263 раз.
Поблагодарили: 2170 раз.
Опыт программирования: Больше трех лет
Языки программирования: Pawn, PHP

Re: Глобальный оффтоп

Сообщение артист666 » 18 авг 2017, 00:26

Кто знает где можно посмотреть исходники движка cs1.6(ну или hl1, как угодно) ?
Именно движка, не мода.
pfn. функции интересуют, нигде найти не могу...
Если вы хотите чему-то научиться, задавайте вопросы.
Иначе компенсируйте потраченное время на ваши "проблемы".
Аватара пользователя
артист666
 
Сообщения: 2301
Зарегистрирован: 09 апр 2013, 17:46
Благодарил (а): 276 раз.
Поблагодарили: 515 раз.
Опыт программирования: Больше трех лет

Re: Глобальный оффтоп

Сообщение Subb98 » 18 авг 2017, 19:54

артист666, в Вы должны зарегистрироваться, чтобы видеть ссылки., если я правильно понял вопрос.
«Очень хорошо. Лучше вы, чем я» © Donald J. Trump
Аватара пользователя
Subb98
Модератор
 
Сообщения: 4783
Зарегистрирован: 24 мар 2011, 19:42
Откуда: г. Пермь
Благодарил (а): 1263 раз.
Поблагодарили: 2170 раз.
Опыт программирования: Больше трех лет
Языки программирования: Pawn, PHP

Re: Глобальный оффтоп

Сообщение Fedcomp » 18 авг 2017, 22:33

артист666 писал(а):Кто знает где можно посмотреть исходники движка cs1.6(ну или hl1, как угодно) ?
Именно движка, не мода.
pfn. функции интересуют, нигде найти не могу...

Еще вариант: Вы должны зарегистрироваться, чтобы видеть ссылки.
Не помогаю в ЛС - есть форум.
Плагины тоже не пишу, на форуме достаточно хороших скриптеров.


"я ставлю зависимости потому что мне приятно" - subb98 @ 2017
Аватара пользователя
Fedcomp
Администратор
 
Сообщения: 4491
Зарегистрирован: 28 авг 2009, 20:47
Благодарил (а): 717 раз.
Поблагодарили: 1221 раз.
Языки программирования: =>
pawn / php / python / ruby
javascript

Re: Как изменить тип дня на JBE?

Сообщение KOTOKU » 19 авг 2017, 18:56

О, прЫват!

Оффтоп. Устное предупреждение // liFe iS GoOD
Разрабатываю мод "JailBreak" с нуля
Last Update: 0.3 Alpha [6.04.17]
LEGENDARY MOD | ВК
Готовность: 65%
Аватара пользователя
KOTOKU
 
Сообщения: 498
Зарегистрирован: 10 фев 2013, 00:53
Благодарил (а): 4 раз.
Поблагодарили: 82 раз.
Опыт программирования: Больше трех лет

Re: Глобальный оффтоп

Сообщение артист666 » 20 авг 2017, 19:35

Subb98 писал(а):артист666, в Вы должны зарегистрироваться, чтобы видеть ссылки., если я правильно понял вопрос.




Не, нету...
Да хотел посмотреть саму функцию TraceMonsterHull.
Если вы хотите чему-то научиться, задавайте вопросы.
Иначе компенсируйте потраченное время на ваши "проблемы".
Аватара пользователя
артист666
 
Сообщения: 2301
Зарегистрирован: 09 апр 2013, 17:46
Благодарил (а): 276 раз.
Поблагодарили: 515 раз.
Опыт программирования: Больше трех лет

Re: Глобальный оффтоп

Сообщение Subb98 » 20 авг 2017, 21:39

артист666 писал(а):Не, нету...
Да хотел посмотреть саму функцию TraceMonsterHull.

Вы должны зарегистрироваться, чтобы видеть ссылки. Вы должны зарегистрироваться, чтобы видеть ссылки.
«Очень хорошо. Лучше вы, чем я» © Donald J. Trump
Аватара пользователя
Subb98
Модератор
 
Сообщения: 4783
Зарегистрирован: 24 мар 2011, 19:42
Откуда: г. Пермь
Благодарил (а): 1263 раз.
Поблагодарили: 2170 раз.
Опыт программирования: Больше трех лет
Языки программирования: Pawn, PHP

Re: Глобальный оффтоп

Сообщение артист666 » 22 авг 2017, 11:08

Не, всё не то, тут только названия меняются, а функция одна и таже, и нигде нет её...
Она же не может быть библиотечечной, ну directX или винды...

Код: Выделить всё
int mm_TraceMonsterHull(edict_t *pEdict, const float *v1, const float *v2, int fNoMonsters, edict_t *pentToSkip, TraceResult *ptr) {
    META_ENGINE_HANDLE(int, 0, FN_TRACEMONSTERHULL, pfnTraceMonsterHull, (pEdict, v1, v2, fNoMonsters, pentToSkip, ptr));
    RETURN_API()
}
Если вы хотите чему-то научиться, задавайте вопросы.
Иначе компенсируйте потраченное время на ваши "проблемы".
Аватара пользователя
артист666
 
Сообщения: 2301
Зарегистрирован: 09 апр 2013, 17:46
Благодарил (а): 276 раз.
Поблагодарили: 515 раз.
Опыт программирования: Больше трех лет

Пред.След.

Вернуться в Болтовня

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1