Тепловизор -
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 edi, 0XB6F5F0//Положим указатель на 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;
}