Обучение и помощь по скриптингу для: wellasgood

Статус
В этой теме нельзя размещать новые ответы.

RockTheStreet

Саппорт года
Сообщения
1,743
Реакции
346
Помог
40 раз(а)
Обратите внимание, если вы хотите заключить сделку с этим пользователем, он заблокирован
Сообщения
1,408
Реакции
182
Помог
2 раз(а)
Ну это ты так видишь.
Хотя, мне нравится что ты думаешь, мол ты постоянно в говне. Продолжай в том же духе.
RockTheStreet ,ну я кончено могу оставить плагин molotov как есть, но хотелось бы сделать этот момент. (для юзверов)
14 Май 2021
скорость получения урона игроком не должно зависить от скорости анимации огня, по хорошему, а то игроки ставят хотят что бы быстрей дамаг наносился от огня, а анимация очень быстрая становится из-за этого и и смотрится плохо.
 
Сообщения
2,288
Реакции
1,738
Помог
31 раз(а)
wellasgood, ты бы лучше привел код в порядок и исправил текущие ошибки прежде чем что-то новое добавлять. И не надо мне про деньги за доработку говорить, так любой скриптер бы гавно писал специально, а потом деньги просил.
 
Сообщения
1,408
Реакции
182
Помог
2 раз(а)
Pokemoshka , это то понятно, но хотелось бы решить сначало важные вопросы)
 
Сообщения
1,408
Реакции
182
Помог
2 раз(а)
В общем суть в том, что нужно разделить 1 событие на 2 (скорость анимации и скорость получения урона игроку)

В плагине есть такая строка кода:

C++:
 if(pev_valid(iEntity)) set_entvar(iEntity, var_dmgtime, flCurTime + eCvarData[DMG_TICK])
Тут выставляется скорость анимации огня +скорость получения урона (тикрейт)



ВОПРОС


Как сделать это событие в 2 разных, что бы одно от другого не зависело) ?

Т.е если ставить очень малое значение, то анимация становится ужасно стремной.
Актуально, не могу понять как решить.
 
Сообщения
225
Реакции
90
Помог
1 раз(а)
wellasgood, сделать аниму огня не зависимой от квара, а нанесение урона тачем, синком, таском определять.
 
Сообщения
1,408
Реакции
182
Помог
2 раз(а)
irrumabo_me_nomen, ну как вариант, осталось только что-бы не было костылем сделать))

по идее это и так в синке глобальном

C++:
@FireMolotov_Think_Post(iEntity)
{
    if(is_nullent(iEntity)) return

    if(get_entvar(iEntity, var_chain) != OBJECT_MOLOTOV_FIRE) return

    new Float:flCurTime = get_gametime(), Float:vecOrigin[3]
    get_entvar(iEntity, var_origin, vecOrigin)

    if(eCvarData[EXTINGUISHING])
    {
        if(CheckGrenade(iEntity))
        {
            set_task(eCvarData[EXTINGUISHING_TIME], "@KillFireEnt", iEntity)
        }
    }

    if(Float:get_entvar(iEntity, var_teleport_time) <= flCurTime)
    {
        TE_SetupSmoke(vecOrigin, Float:{ 0.0, 0.0, 0.0 }, g_iModelIndex[3], 7, 15)
        set_entvar(iEntity, var_flags, FL_KILLME)
    }

    new iOwner = get_entvar(iEntity, var_owner)

    if(!is_user_connected(iOwner)) return

    if(Float:get_entvar(iEntity, var_dmgtime) <= flCurTime)
    {
        if(pev_valid(iEntity)) set_entvar(iEntity, var_dmgtime, flCurTime + eCvarData[DMG_TICK])

        TE_SetupExplosion(vecOrigin, Float:{ 0.0, 0.0, 24.0 }, g_iModelIndex[2], 8, 20, TE_EXPLFLAG_NODLIGHTS | TE_EXPLFLAG_NOSOUND | TE_EXPLFLAG_NOPARTICLES)

        static iVictim = -1
        static Float:flHealth

        while((iVictim = engfunc(EngFunc_FindEntityInSphere, iVictim, vecOrigin, eCvarData[RADIUS])))
        {
            if(!is_user_alive(iVictim)) continue

            if(!eCvarData[DMG_TM])
            {
                if(iOwner != iVictim && get_member(iOwner, m_iTeam) == get_member(iVictim, m_iTeam)) continue
            }

            flHealth = Float:get_entvar(iVictim, var_health)

            if(flHealth <= eCvarData[DMG])
            {
                ExecuteHamB(Ham_Killed, iVictim, iOwner, 0)
            }
            else
            {
                set_entvar(iVictim, var_health, flHealth - eCvarData[DMG])
                rh_emit_sound2(iVictim, 0, CHAN_STATIC, "player/pl_pain2.wav", VOL_NORM, ATTN_NORM, 0, PITCH_NORM)
            }
        }
    }

    new iFireNum = get_entvar(iEntity, var_iuser1)

    if(iFireNum < 15)
    {
        new Float:flFraction, Float:vecStart[3], Float:vecEnd[3], Float:vecAngles[3], Float:vecViewForward[3], Float:vecPlaneNormal[3]

        get_entvar(iEntity, var_vuser1, vecPlaneNormal)

        vecAngles[0] = random_float(-45.0, -135.0)
        vecAngles[1] = random_float(0.0, 360.0)

        engfunc(EngFunc_MakeVectors, vecAngles)
        global_get(glb_v_forward, vecViewForward)

        for(new i = 0; i < 3; i++)
        {
            vecStart[i] = vecOrigin[i] + vecPlaneNormal[i] * 64.0
            vecEnd[i] = vecStart[i] + vecViewForward[i] * 128.0
        }

        engfunc(EngFunc_TraceLine, vecStart, vecEnd, IGNORE_MONSTERS, iEntity, 0)

        get_tr2(0, TR_flFraction, flFraction)
        get_tr2(0, TR_vecEndPos, vecEnd)
        get_tr2(0, TR_vecPlaneNormal, vecPlaneNormal)

        if(flFraction >= 1.0 || vecPlaneNormal[2] == -1.0)
        {
            set_entvar(iEntity, var_iuser1, iFireNum + 1)
            Molotov_CreateDebris(iEntity, vecEnd)
        }
    }
}
Видишь тут завязано так, что оно одно действует сразу и на скорость того и скорость другого (анимки и урона)

Делать дополнительный синк и тп, а как оно должно быть тогда? не понимаю
14 Май 2021
нужно по итогу, что бы сделать 2 квара разных, отвечающих за скорость анимки огня и скорость урона от огня
 
Последнее редактирование:
Сообщения
1,668
Реакции
1,495
Помог
24 раз(а)
Делать дополнительный синк и тп, а как оно должно быть тогда? не понимаю
Можно завести ещё одну переменную со временем (лучше использовать entvar), и делать как dmgtime делаешь.
 
Сообщения
1,408
Реакции
182
Помог
2 раз(а)
fl0wer , так свойство то одно на ентитю присваевается, и это свойство действует на то и на другое (скорости)
 
Сообщения
1,668
Реакции
1,495
Помог
24 раз(а)
wellasgood, ну синк часто сделай, а переменные как время действия придет проверяй.
 
Сообщения
1,408
Реакции
182
Помог
2 раз(а)
fl0wer , кажется понял :D
14 Май 2021
Я просто еще болею, не могу сосредоточиться и тп, сконцентрироваться и думать.
 
Сообщения
1,408
Реакции
182
Помог
2 раз(а)
Всем спасибо за помощь. Получилось сделать как запланировал.
 
Статус
В этой теме нельзя размещать новые ответы.

Пользователи, просматривающие эту тему

Сейчас на форуме нет ни одного пользователя.
Сверху Снизу