PDA

Просмотр полной версии : [Вопрос] Урор без прицела



BomBiLa
15.01.2018, 19:09
Всем привет.Помогите пожалуста.Как на своем сервере самп в .(pawno) Убрать урон без прицела(тоисть если не нажал "ПКМ"(ПРИЦЕЛИЛСЯ) Hp не сносило.Зарание спасиба!

Nexius_Tailer
15.01.2018, 21:01
#if !defined KEY_AIM
#define KEY_AIM 128
#endif

new bool:IsAiming[MAX_PLAYERS];

public OnPlayerSpawn(playerid)
{
IsAiming[playerid] = false;
return 1;
}

public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if((newkeys & KEY_AIM))
{
new weapon = GetPlayerWeapon(playerid);
if(22 <= weapon <= 34 || weapon == 38) IsAiming[playerid] = true;
else IsAiming[playerid] = false;
}
else IsAiming[playerid] = false;
return 1;
}

public OnPlayerWeaponShot(playerid, weaponid, hittype, hitid, Float:fX, Float:fY, Float:fZ)
{
if(!IsAiming[playerid] && !IsPlayerInAnyVehicle(playerid)) return 0;
return 1;
}

BomBiLa
15.01.2018, 21:36
Ето все надо вписать? и жолтое?

Nexius_Tailer
15.01.2018, 22:10
Ето все надо вписать? и жолтое?
Можешь также выдвинуть свои предположения касательно этого кода, что с ним можно было бы ещё сделать, кроме как "вписать". Если вариантов будет немного, то да, вписывай.

BomBiLa
17.01.2018, 20:20
Немогу вписать.можеш помоч???

Nexius_Tailer
17.01.2018, 21:35
Что именно не получается?

BomBiLa
19.01.2018, 18:53
Все вписываю.ошыбок нет,включаю сервер и все спавны збиваются тоисть должен спавнится(около балас а спавнюсь воще хз где!)

TimoXa32
19.01.2018, 21:02
Все вписываю.ошыбок нет,включаю сервер и все спавны збиваются тоисть должен спавнится(около балас а спавнюсь воще хз где!)

Видимо ты свой public OnPlayerSpawn полностью заменил на вариант, который был предложен



public OnPlayerSpawn(playerid)
{
IsAiming[playerid] = false;
//тут должны быть все твои данные спавна и т.д.
return 1;
}


Конечно может быть это не так, так что лучше скинь свой public OnPlayerSpawn

BomBiLa
19.01.2018, 21:54
Можеш помоч вписать все ето??

BomBiLa
20.01.2018, 13:30
можеш?

TimoXa32
20.01.2018, 13:35
Можеш помоч вписать?

Так в чем конкретно проблема можешь объяснить, то спавн у тебя не работает, то вписать помочь

Что касается "Можеш помоч вписать", тебе дали готовый вариант

Вот это вставляешь в начало мода к остальным #define

#if !defined KEY_AIM
#define KEY_AIM 128
#endif


Вот это вставляешь ко всем new(они будут тоже в начале мода)


new bool:IsAiming[MAX_PLAYERS];



Далее находишь (Ctrl + F) public OnPlayerSpawn и вставляешь в него

IsAiming[playerid] = false;

Должно быть так

public OnPlayerSpawn(playerid)
{
IsAiming[playerid] = false;
//тут остальной твой код
return 1;
}

Далее находишь public OnPlayerKeyStateChange и вставляешь в него


if((newkeys & KEY_AIM))
{
new weapon = GetPlayerWeapon(playerid);
if(22 <= weapon <= 34 || weapon == 38) IsAiming[playerid] = true;
else IsAiming[playerid] = false;
}
else IsAiming[playerid] = false;


Должно быть так


public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if((newkeys & KEY_AIM))
{
new weapon = GetPlayerWeapon(playerid);
if(22 <= weapon <= 34 || weapon == 38) IsAiming[playerid] = true;
else IsAiming[playerid] = false;
}
else IsAiming[playerid] = false;
//тут остальной твой код
return 1;
}


Далее находишь public OnPlayerWeaponShot и в него вставляешь


if(!IsAiming[playerid] && !IsPlayerInAnyVehicle(playerid)) return 0;


Должно получится вот так


public OnPlayerWeaponShot(playerid, weaponid, hittype, hitid, Float:fX, Float:fY, Float:fZ)
{
if(!IsAiming[playerid] && !IsPlayerInAnyVehicle(playerid)) return 0;
//тут твой остальной код, если он есть конечно
return 1;
}


Если вдруг public OnPlayerWeaponShot нет, то сам вставь его ко всем public
_

Что касается спавна, то можешь поподробнее рассказать что не так и скинь SetPlayerSpawn(playerid)