Заказать Сервер Заказать Плагин Контакты Поиск

[ вход ]
[ последние сообщения ]

  • Страница 1 из 1
  • 1
Форум » SourceMod - Counter Strike Source && CS GO » Уроки/Статьи/Функции/Задачи » SourceMod странности
SourceMod странности
_wS_ Дата: Суббота, 06.05.2017, 02:00:58 | Сообщение # 1
Частенько нелогичная ерунда встречается в SM скриптинге, думаю пригодится эта темка со списком найденных глупостей.
Вы если наткнулись, тоже можете поделиться.

1

Похоже если удалить entity, то перед удалением чистится m_iName (targetname).

1. AcceptEntityInput(index, "Kill"); index был тут "1.0 2.0 3.0" (origin x y z)
2. Старт трасировки с "1.0 2.0 5.0" до "1.0 2.0 0.0" (по идее entity не должна встретиться лучу)
3. entity встречается, ну и ладно, но тут странно то, что удаётся узнать её classname, но в m_iName всегда пустота ''

RequestFrame не помогает
Пришлось делать CreateTimer(0.15, чтобы entity не встретилась лучу.
 
_wS_ Дата: Суббота, 27.01.2018, 06:54:19 | Сообщение # 2
2

Пишешь код, придерживаясь логики, и думаешь что SM покажет:
3
3
3

Но у SM своя логика, и он показывает:
3
4
5

Код
stock X(v[])
{
   static key = 0;
   if (!key) key = 1;
   v[0] += key;
   PrintToServer("%d", v[0]);
}

public OnPluginStart()
{
   xz();
   xz();
   xz();
}

stock xz()
{
   X({2});
}

Но если сделать

Код
public OnPluginStart()
{
   X({2});
   X({2});
   X({2});
}

Или

Код
public OnPluginStart()
{
   xz();
}

stock xz()
{
   X({2});
   X({2});
   X({2});
}

То увидим
3
3
3
 
_wS_ Дата: Воскресенье, 04.03.2018, 12:29:12 | Сообщение # 3
3

Код
public OnPluginStart()
{
    new Handle:hPack = CreateDataPack();
    WritePackCell(hPack, 1);
    WritePackCell(hPack, 2);
    
    ResetPack(hPack);
    PrintToServer("%d\n%d", ReadPackCell(hPack), ReadPackCell(hPack));
    // результат:
    // 2
    // 1
    // SM, ты серьёзно? Ну ок, придётся записывать в обратном порядке или делать так:
    
    ResetPack(hPack);
    new v1 = ReadPackCell(hPack);
    new v2 = ReadPackCell(hPack);
    PrintToServer("%d\n%d", v1, v2);
    // результат:
    // 1
    // 2
    // Спасибо SM, да, так и нужно, молодец..

    CloseHandle(hPack);
}


SDKHooks_TakeDamage тоже тупой.
Нанес боту 75 dmg, через сек проверил, у него осталось 25 (все правильно).
Нанес 100, у него осталось 27, пздц.
 
Форум » SourceMod - Counter Strike Source && CS GO » Уроки/Статьи/Функции/Задачи » SourceMod странности
  • Страница 1 из 1
  • 1
Поиск: