Перейти к публикации
  • Добавить возможность изменения эффектов предмета


    Electr0
    • Сделано

    В том числе отключение теней, что поможет избежать эффекта черных квадратов в форме модельки там где особенности освещения играют не на руку внешнему виду убеги.


    Отзывы пользователей

    Рекомендованные комментарии

    Прототип 1:

    • Найден способ узнавать текущий статус эффектов предмета, так что можно начинать работу по внедрению контроля параметра в движке стройки.

     

    Ссылка на комментарий
    Поделиться на других сайтах

    Прототип 1:

    Добавлено две команды:

    • sm_fs_add_effect <тип эффекта>
    • sm_fs_remove_effect <тип эффекта>

    Типы эффектов:

    • no_shadow: Без теней. (в движке энумератор  EF_NOSHADOW)

    Добавлена поддержка системой отмены повтора и сохранениями.

     

    Пока что добавлен только один эффект  "Без теней", технически там есть еще:  https://wiki.garrysmod.com/page/Enums/EF но пока что не до них. Во всяком случае код написан таким образом чтобы максимально унифицировать поддержку остальных эффектов без добавления отдельных команд под них.

     

    После обычного спавна:

    20170212211652_1.jpg

     

    После команды  !sm_fs_add_effect 1

    20170212211657_1.jpg

    Ссылка на комментарий
    Поделиться на других сайтах

    Имеется серьезная ошибка в коде из за которой происходит падение сервера.

    CRASH: Wed Feb 15 11:15:17 MSK 2017
    Start Line: ./srcds_linux -game left4dead2 -strictportbind -ip 195.62.53.114 -port 27100 +clientport 27005 +map c2m1_highway -maxplayers 12 +mp_gamemode survival +exec server.cfg -debug -nowatchdog
    [New LWP 7788]
    [New LWP 7806]
    [New LWP 7808]
    [New LWP 7816]
    [New LWP 7818]
    [New LWP 7822]
    [New LWP 8378]
    [New LWP 21917]
    [Thread debugging using libthread_db enabled]
    Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
    Core was generated by `./srcds_linux -game left4dead2 -strictportbind -ip 195.62.53.114 -port 27100 +c'.
    Program terminated with signal SIGSEGV, Segmentation fault.
    #0  0xf74573b9 in vsnprintf () from /lib/i386-linux-gnu/libc.so.6
    [Current thread is 1 (Thread 0xf73d9700 (LWP 7788))]
    #0  0xf74573b9 in vsnprintf () from /lib/i386-linux-gnu/libc.so.6
    #1  0xe8f533cd in UTIL_Format(char*, unsigned int, char const*, ...) () from /home/l4d2_alt_coop/serverfiles/left4dead2/addons/sourcemod/bin/sourcemod.2.l4d2.so
    #2  0xe8defcf5 in ?? () from /home/l4d2_alt_coop/serverfiles/left4dead2/addons/sourcemod/bin/sourcemod.logic.so
    #3  0xe8b94911 in JITX86::InvokeFunction(BaseRuntime*, JitFunction*, int*) () from /home/l4d2_alt_coop/serverfiles/left4dead2/addons/sourcemod/bin/sourcepawn.jit.x86.so
    #4  0x1159f9e8 in ?? ()
    Backtrace stopped: previous frame inner to this frame (corrupt stack?)
    No symbol table info available.
    eax            0xf75a2940	-145086144
    ecx            0xffb754fc	-4762372
    edx            0x0	0
    ebx            0xf75a3000	-145084416
    esp            0xffb753c0	0xffb753c0
    ebp            0xffb753d0	0xffb753d0
    esi            0x134e98	1265304
    edi            0xffb75470	-4762512
    eip            0xf74573b9	0xf74573b9 <vsnprintf+105>
    eflags         0x210286	[ PF SF IF RF ID ]
    cs             0x23	35
    ss             0x2b	43
    ds             0x2b	43
    es             0x2b	43
    fs             0x0	0
    gs             0x63	99
    From        To          Syms Read   Shared Object Library
    0xf76a0590  0xf76d80f7  Yes (*)     /lib/i386-linux-gnu/libm.so.6
    0xf7697a30  0xf7698961  Yes (*)     /lib/i386-linux-gnu/libdl.so.2
    0xf760a914  0xf7650c78  Yes         bin/libstdc++.so.6
    0xf75ab870  0xf75b8ef1  Yes (*)     /lib/i386-linux-gnu/libpthread.so.0
    0xf7408750  0xf753404d  Yes (*)     /lib/i386-linux-gnu/libc.so.6
    0xf76fd860  0xf771661d  Yes (*)     /lib/ld-linux.so.2
    0xf73dce00  0xf73ec0fc  Yes         bin/libgcc_s.so.1
    0xf73aeea0  0xf73c3118  Yes (*)     bin/libtier0_srv.so
    0xf739d840  0xf73a105c  Yes (*)     /lib/i386-linux-gnu/librt.so.1
    0xf72b6e20  0xf72d9084  Yes (*)     bin/libvstdlib_srv.so
    0xf6e01820  0xf6e6fa78  Yes (*)     bin/dedicated_srv.so
    0xf6dbbea0  0xf6dd13d4  Yes (*)     bin/libsteam_api.so
    0xf6a41c80  0xf6c3d5f0  Yes (*)     /home/l4d2_alt_coop/serverfiles/bin/engine_srv.so
    0xf64f4bb0  0xf651dc70  Yes (*)     /home/l4d2_alt_coop/serverfiles/bin/soundemittersystem_srv.so
    0xf6387e00  0xf64442c4  Yes (*)     /home/l4d2_alt_coop/serverfiles/bin/materialsystem_srv.so
    0xf4e4b410  0xf4eee290  Yes (*)     /home/l4d2_alt_coop/serverfiles/bin/studiorender_srv.so
    0xf4c00840  0xf4d984d8  Yes (*)     /home/l4d2_alt_coop/serverfiles/bin/vphysics_srv.so
    0xf4b40a00  0xf4b91f10  Yes (*)     /home/l4d2_alt_coop/serverfiles/bin/datacache_srv.so
    0xf4a86150  0xf4af0998  Yes (*)     /home/l4d2_alt_coop/serverfiles/bin/vscript_srv.so
    0xf4a57340  0xf4a67464  Yes (*)     /home/l4d2_alt_coop/serverfiles/bin/shaderapiempty_srv.so
    0xeec77d00  0xef8f6780  Yes (*)     /home/l4d2_alt_coop/.steam/sdk32/steamclient.so
    0xee4f4af0  0xee56b9a8  Yes (*)     /home/l4d2_alt_coop/serverfiles/left4dead2/bin/matchmaking_ds_srv.so
    0xed825ed0  0xee06822c  Yes (*)     /home/l4d2_alt_coop/serverfiles/left4dead2/bin/server_srv.so
    0xed4bbc10  0xed4cb004  Yes (*)     /home/l4d2_alt_coop/serverfiles/bin/scenefilecache_srv.so
    0xf64d9130  0xf64dae0c  Yes (*)     /home/l4d2_alt_coop/serverfiles/left4dead2/addons/metamod/bin/server.so
    0xe90fe510  0xe91294f8  Yes (*)     /home/l4d2_alt_coop/serverfiles/left4dead2/addons/metamod/bin/metamod.2.l4d2.so
    0xf64c6a50  0xf64ccb62  Yes (*)     /lib/i386-linux-gnu/libnss_files.so.2
    0xf64beb50  0xf64c1933  Yes (*)     /lib/i386-linux-gnu/libnss_dns.so.2
    0xe90d8660  0xe90e4f04  Yes (*)     /lib/i386-linux-gnu/libresolv.so.2
    0xf76f5a10  0xf76f6128  Yes (*)     /home/l4d2_alt_coop/serverfiles/left4dead2/addons/sourcemod/bin/sourcemod_mm_i486.so
    0xe8f462b0  0xe8fad5f8  Yes (*)     /home/l4d2_alt_coop/serverfiles/left4dead2/addons/sourcemod/bin/sourcemod.2.l4d2.so
    0xe8d9fa40  0xe8dec904  Yes (*)     /home/l4d2_alt_coop/serverfiles/left4dead2/addons/sourcemod/bin/sourcemod.logic.so
    0xe8b824e0  0xe8ba2aa4  Yes (*)     /home/l4d2_alt_coop/serverfiles/left4dead2/addons/sourcemod/bin/sourcepawn.jit.x86.so
    0xe8f0eff0  0xe8f24568  Yes (*)     /home/l4d2_alt_coop/serverfiles/left4dead2/addons/l4dtoolz/l4dtoolz_mm_i486.so
    0xf64bb7a0  0xf64bbcd4  Yes (*)     /home/l4d2_alt_coop/serverfiles/left4dead2/addons/stripper/bin/stripper_mm_i486.so
    0xe835d770  0xe83731e0  Yes (*)     /home/l4d2_alt_coop/serverfiles/left4dead2/addons/stripper/bin/stripper.16.l4d2.so
    0xe833a280  0xe834ef14  Yes (*)     /home/l4d2_alt_coop/serverfiles/left4dead2/addons/stripper/bin/stripper.core.so
    0xe8072f40  0xe80940f8  Yes (*)     /home/l4d2_alt_coop/serverfiles/left4dead2/addons/sourcemod/extensions/accelerator.ext.so
    0xe80206f0  0xe80482d0  Yes (*)     /home/l4d2_alt_coop/serverfiles/left4dead2/addons/sourcemod/extensions/webternet.ext.so
    0xe756fac0  0xe76afc80  Yes         /home/l4d2_alt_coop/serverfiles/left4dead2/addons/sourcemod/extensions/curl.ext.so
    0xe74d0800  0xe74dd2e8  Yes (*)     /home/l4d2_alt_coop/serverfiles/left4dead2/addons/sourcemod/extensions/defibfix.ext.so
    0xe78127e0  0xe78151b8  Yes (*)     /home/l4d2_alt_coop/serverfiles/left4dead2/addons/sourcemod/extensions/l4d2_bugfixes.ext.so
    0xe74a8d50  0xe74c1698  Yes (*)     /home/l4d2_alt_coop/serverfiles/left4dead2/addons/sourcemod/extensions/l4d2_meleespawncontrol.ext.so
    0xe7262760  0xe728b434  Yes (*)     /home/l4d2_alt_coop/serverfiles/left4dead2/addons/sourcemod/extensions/sdkhooks.ext.2.l4d2.so
    0xe8f00ab0  0xe8f043a8  Yes (*)     /home/l4d2_alt_coop/serverfiles/left4dead2/addons/sourcemod/extensions/bintools.ext.so
    0xe720a780  0xe723dbf4  Yes (*)     /home/l4d2_alt_coop/serverfiles/left4dead2/addons/sourcemod/extensions/sdktools.ext.2.l4d2.so
    0xe70af4d0  0xe70e1750  Yes (*)     /home/l4d2_alt_coop/serverfiles/left4dead2/addons/sourcemod/extensions/regex.ext.so
    0xe780b970  0xe780db68  Yes (*)     /home/l4d2_alt_coop/serverfiles/left4dead2/addons/sourcemod/extensions/geoip.ext.so
    0xe6fa7750  0xe6fb8b38  Yes         /home/l4d2_alt_coop/serverfiles/left4dead2/addons/sourcemod/extensions/geoipcity.ext.so
    0xe5e50930  0xe5e5a424  Yes         /home/l4d2_alt_coop/serverfiles/left4dead2/addons/sourcemod/extensions/dhooks.ext.so
    0xe5e45450  0xe5e4bd58  Yes (*)     /home/l4d2_alt_coop/serverfiles/left4dead2/addons/sourcemod/extensions/topmenus.ext.so
    0xe5e3c910  0xe5e41274  Yes (*)     /home/l4d2_alt_coop/serverfiles/left4dead2/addons/sourcemod/extensions/clientprefs.ext.so
    0xe5b3c1b0  0xe5c5fba4  Yes (*)     /home/l4d2_alt_coop/serverfiles/left4dead2/addons/sourcemod/extensions/dbi.sqlite.ext.so
    0xe4e61e00  0xe4eecaf0  Yes (*)     /home/l4d2_alt_coop/serverfiles/left4dead2/addons/sourcemod/extensions/dbi.mysql.ext.so
    0xe5e1a670  0xe5e2a17d  Yes (*)     /usr/lib32/libz.so.1
    0xdc976740  0xdc9f984c  Yes (*)     bin/steamclient.so
    0xdb8469c0  0xdc48ba44  Yes (*)     bin/steamclient_alliance.so
    0xde49d6c0  0xde5126b0  Yes (*)     bin/crashhandler.so
    (*): Shared library is missing debugging information.
    Dump of assembler code for function vsnprintf:
       0xf7457350 <+0>:	push   %ebp
       0xf7457351 <+1>:	push   %edi
       0xf7457352 <+2>:	push   %esi
       0xf7457353 <+3>:	push   %ebx
       0xf7457354 <+4>:	call   0xf7510995
       0xf7457359 <+9>:	add    $0x14bca7,%ebx
       0xf745735f <+15>:	sub    $0xfc,%esp
       0xf7457365 <+21>:	mov    0x114(%esp),%edi
       0xf745736c <+28>:	mov    0x110(%esp),%esi
       0xf7457373 <+35>:	movl   $0x0,0x58(%esp)
       0xf745737b <+43>:	test   %edi,%edi
       0xf745737d <+45>:	je     0xf7457400 <vsnprintf+176>
       0xf7457383 <+51>:	lea    -0x1(%edi),%eax
       0xf7457386 <+54>:	lea    0xb0(%esp),%edi
       0xf745738d <+61>:	mov    %eax,0xc(%esp)
       0xf7457391 <+65>:	sub    $0xc,%esp
       0xf7457394 <+68>:	push   $0x0
       0xf7457396 <+70>:	push   $0x0
       0xf7457398 <+72>:	push   $0xffffffff
       0xf745739a <+74>:	push   $0x8000
       0xf745739f <+79>:	lea    0x2c(%esp),%ebp
       0xf74573a3 <+83>:	push   %ebp
       0xf74573a4 <+84>:	call   0xf745c610
       0xf74573a9 <+89>:	lea    -0x6c0(%ebx),%eax
       0xf74573af <+95>:	mov    %eax,0xc4(%esp)
       0xf74573b6 <+102>:	add    $0x20,%esp
    => 0xf74573b9 <+105>:	movb   $0x0,(%esi)
       0xf74573bc <+108>:	push   %esi
       0xf74573bd <+109>:	pushl  0x10(%esp)
       0xf74573c1 <+113>:	push   %esi
       0xf74573c2 <+114>:	push   %ebp
       0xf74573c3 <+115>:	call   0xf745d790
       0xf74573c8 <+120>:	add    $0xc,%esp
       0xf74573cb <+123>:	pushl  0x120(%esp)
       0xf74573d2 <+130>:	pushl  0x120(%esp)
       0xf74573d9 <+137>:	push   %ebp
       0xf74573da <+138>:	call   0xf74330c0 <vfprintf>
       0xf74573df <+143>:	add    $0x10,%esp
       0xf74573e2 <+146>:	cmp    %edi,0x2c(%esp)
       0xf74573e6 <+150>:	je     0xf74573ef <vsnprintf+159>
       0xf74573e8 <+152>:	mov    0x24(%esp),%edx
       0xf74573ec <+156>:	movb   $0x0,(%edx)
       0xf74573ef <+159>:	add    $0xfc,%esp
       0xf74573f5 <+165>:	pop    %ebx
       0xf74573f6 <+166>:	pop    %esi
       0xf74573f7 <+167>:	pop    %edi
       0xf74573f8 <+168>:	pop    %ebp
       0xf74573f9 <+169>:	ret    
       0xf74573fa <+170>:	lea    0x0(%esi),%esi
       0xf7457400 <+176>:	lea    0xb0(%esp),%edi
       0xf7457407 <+183>:	movl   $0x3f,0xc(%esp)
       0xf745740f <+191>:	mov    %edi,%esi
       0xf7457411 <+193>:	jmp    0xf7457391 <vsnprintf+65>
    End of assembler dump.
    Stack level 0, frame at 0xffb754d0:
     eip = 0xf74573b9 in vsnprintf; saved eip = 0xe8f533cd
     called by frame at 0xffb754dc
     Arglist at 0xffb753cc, args: 
     Locals at 0xffb753cc, Previous frame's sp is 0xffb754d0
     Saved registers:
      ebx at 0xffb754bc, ebp at 0xffb754c8, esi at 0xffb754c0, edi at 0xffb754c4, eip at 0xffb754cc
    End of Source crash report

    Пока что не смог определить в чем дело, поэтому придется откатить все последние ченжсеты и начать с начала.

    Ссылка на комментарий
    Поделиться на других сайтах

    Обнаружил возможную проблему, в системе отмены повтора из за смещения энумерации массива данных о предмете скорее всего была нехватка памяти на последнюю ячейку. Как раз во время удаления происходит запуск той функции которой нужно записать и проверить все.

     

    Теперь все стороковые массивы с данными о предмете берут свой размер из константы значение которой задается один раз в шапке плагина с учетом нужного кол-ва хранимых параметров чтобы избежать появления таких проблем в будущем.

    Ссылка на комментарий
    Поделиться на других сайтах

    6 часов назад, Tarakan3000 сказал:

    какие же еще эффекты можно добавить помимо отключения теней?

    https://wiki.garrysmod.com/page/Enums/EF

    на самом деле отключение теней из них самое полезное

    Ссылка на комментарий
    Поделиться на других сайтах



    Присоединяйтесь к обсуждению

    Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.

    Гость
    Добавить комментарий...

    ×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

      Разрешено не более 75 эмодзи.

    ×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

    ×   Ваш предыдущий контент был восстановлен.   Очистить редактор

    ×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.


  • Обозначения статусов

    В обработке = Мы работаем над вашим отзывом.

    Будет сделано = Ваша идея добавлена к плану будущих изменений.

    Тестируется = Изменения внесены, но требуют тестирования.

    Сделано = Ваша идея реализована!

    Отклонено = Отзыв некорректный, бред, либо уже реализовано. Если у вас есть дополнительная информация напишите комментарий и мы снова откроем этот вопрос.

×
×
  • Создать...