SA-MP Forums Archive
Тепловизор - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Русский/Russian (https://sampforum.blast.hk/forumdisplay.php?fid=32)
+---- Thread: Тепловизор (/showthread.php?tid=523438)



Тепловизор - Dreamerzzz - 02.07.2014

Приветствую, недавно лазил по "SA-MP wiki", и обнаружил следующее:

Quote:

Thermal ******s | - | id | slot | model | Visual effects show for all players (fix available)
Вот мне интересна выделенная строчка, что за фикс доступен, кто нибудь знает?


Re: Тепловизор - Stepashka - 02.07.2014

Quote:
Originally Posted by Dreamerzzz
Посмотреть сообщение
Приветствую, недавно лазил по "SA-MP wiki", и обнаружил следующее:



Вот мне интересна выделенная строчка, что за фикс доступен, кто нибудь знает?
Это значит что будет доступно в будущем.


Re: Тепловизор - DartfoL - 02.07.2014

Я думаю, что это про fixes.inc


Re: Тепловизор - OKStyle - 02.07.2014

Нет, available - это УЖЕ доступен. А в fixes только название модели кооректное исправили в функции GetWeaponName. Фикс я делал когда-то для ночного видения и для этого, но я не помню уже, на чём он был основан. Главная идея - рассинхронизация. Возможно, в onplayerupdate return 0 при надевании, а потом spawnplayer при снятии.


Re: Тепловизор - DartfoL - 02.07.2014

Как вариант использовать GetPlayerKeys в OnPlayerUpdate, и если в руках тепловизор && нажата лкм -> return 0


Re: Тепловизор - OKStyle - 02.07.2014

Или при нажатии SetPlayerArmedWeapon... Надо пробовать))


Re: Тепловизор - Dreamerzzz - 02.07.2014

Оу! Хорошая дискуссия и варианты) Отвлечемся от mySQL и т.д. обсуждаем обычный тепловизер)


Re: Тепловизор - White_116 - 03.07.2014

У клиента(В самой GTA) это банально лечится хуком, правда очечи игроку не крепятся, да и это не так критично с учётом их не синхронизированости.
PHP код:
DWORD HOOKPOS_FixNTV 0x634F60;
DWORD HOOKRET_FixNTV 0x634F65;
DWORD HOOKRET2_FixNTV 0x634F7C;
void _declspec naked HOOK_FixNTV()
{
    
__asm
    
{    
        
push esi//хвост
        
mov esi, [esp 0x8]//хвост
        
mov edi0XB6F5F0//Положим указатель на CPed (Сам игрок)
        
cmp esi, [edi]//Сравним CPed-ы
        
jne fixcode//Если CPed одевшего очки не равен CPed игрока, выпрыгиваем из функции
        
jmp HOOKRET_FixNTV        
    fixcode
:
        
jmp HOOKRET2_FixNTV
    
}




Re: Тепловизор - ZiGGi - 03.07.2014

Должно работать.
pawn Код:
public OnPlayerUpdate(playerid)
{
    new weaponid = GetPlayerWeapon(playerid);

    if (weaponid == 43 || weaponid == 44 || weaponid == 45) {
        new key[3];
        GetPlayerKeys(playerid, key[0], key[1], key[2]);
       
        if (key[0] & KEY_FIRE) {
            return 0;
        }
    }
    return 1;
}



Re: Тепловизор - Makar93 - 23.07.2014

Quote:
Originally Posted by ZiGGi
Посмотреть сообщение
Должно работать.
pawn Код:
public OnPlayerUpdate(playerid)
{
    new weaponid = GetPlayerWeapon(playerid);

    if (weaponid == 43 || weaponid == 44 || weaponid == 45) {
        new key[3];
        GetPlayerKeys(playerid, key[0], key[1], key[2]);
       
        if (key[0] & KEY_FIRE) {
            return 0;
        }
    }
    return 1;
}
В машине если заюзать в рассинхрон улетит же игрок.


Re: Тепловизор - eakwarp - 23.07.2014

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


Re: Тепловизор - long76 - 29.07.2014

pawn Код:
public OnPlayerUpdate(playerid)
{
    switch(GetPlayerWeapon(playerid))
    {
      case 44, 45:
      {
        new keys, ud, lr;
        GetPlayerKeys(playerid, keys, ud, lr);
        if((keys & KEY_FIRE) && (!IsPlayerInAnyVehicle(playerid)))
            {
              return 0;
            }
        }
    }
    return 1;
}