Добро пожаловать на Pawno-Info.Ru - Портал о программировании №1

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

Переход в группу "Пользователь"

300.00
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Скачивать файлы
Создавать темы
Быть полноправным участником форума
Доступ к архиву Pawno-Info
Нормальное копирование кода

Маппинг для сервера

Если вы хотите обновить Ваш сервер новыми доработками - то зайдите в наш раздел. Большой выбор готовых решений от наших пользователей

Моды для сервера

Огромный выбор различных модификаций для Вашего сервера. Пролистайте эти темы! Возможно именно там Вы найдете то, что искали уже давно.

Модификации SA

Хотите разнообразить свою игру в San Andreas? Смелее в наш раздел. Отличный сборник готовых решений. Играйте с удовольствием

Статус
В этой теме нельзя размещать новые ответы.

Barni

Изучающий
Пользователь
Регистрация
10 Фев 2011
Сообщения
725
Лучшие ответы
0
Репутация
293
Адрес
Северодвинск
В начало мода, ко всем переменным:
PHP:
new PlayerWeapons[MAX_PLAYERS][46];
new PlayerWeapon[MAX_PLAYERS];
new NewPlayerWeapon[MAX_PLAYERS];

В public OnPlayerUpdate
PHP:
	NewPlayerWeapon[playerid] = GetPlayerWeapon(playerid);
	if(NewPlayerWeapon[playerid] != PlayerWeapon[playerid])
	{
		OnPlayerWeaponChange(playerid, NewPlayerWeapon[playerid], PlayerWeapon[playerid]);
		PlayerWeapon[playerid] = NewPlayerWeapon[playerid];
	}
Добовляем функции в концем мода
PHP:
forward OnPlayerWeaponChange(playerid, newweapon, oldweapon);
public OnPlayerWeaponChange(playerid, newweapon, oldweapon)
{
	if(PlayerWeapons[playerid][newweapon] == 0 && GetPlayerWeapon(playerid) != 0)
	{
		ResetPlayerWeaponEx(playerid);
                      Kick(playerid);
	}
	return 1;
}

GivePlayerWeaponAC(playerid,id,ammo)
{
	PlayerWeapons[playerid][0] = 1;
	PlayerWeapons[playerid][id] = 1;
	if(id == 39) PlayerWeapons[playerid][40] = 1;
	GivePlayerWeapon(playerid,id,ammo);
	return true;
}

forward AntiNopResetPlayerWeapon(playerid);
public AntiNopResetPlayerWeapon(playerid)
{
    new Guns[13][2];
	for (new i = 0; i < 13; i++)
	{
    	GetPlayerWeaponData(playerid, i, Guns[i][0], Guns[i][1]);
		if(Guns[i][0] > 0)
		{
		    SendClientMessage(playerid,COLOR_LIGHTRED,"Вы были кикнуты по подозрению в читерстве #(682)");
		    Kick(playerid);
		}
	}
}

stock ResetPlayerWeaponEx(playerid)
{
    for(new i = 0; i < 46; i++)
	{
		PlayerWeapons[playerid][i] = 0;
	}
	PlayerWeapons[playerid][0] = 1;
	ResetPlayerWeapons(playerid);
	SetTimerEx("AntiNopResetPlayerWeapon" , 3000, false, "i", playerid);
}
Всё, теперь заменяем функцию выдачи оружия GivePlayerWeapon на GivePlayerWeaponAC
И функцию ResetPlayerWeapon на ResetPlayerWeaponEx
 

илюха

Изучающий
Пользователь
Регистрация
7 Авг 2011
Сообщения
682
Лучшие ответы
0
Репутация
57
Адрес
Кузнецк-Sity
100% будет работать?
 

lord-david

Нуль
Пользователь
Регистрация
8 Фев 2012
Сообщения
8
Лучшие ответы
0
Репутация
0
проверял на собейте. оружие не рисуется. на клео оружие канает!
 

илюха

Изучающий
Пользователь
Регистрация
7 Авг 2011
Сообщения
682
Лучшие ответы
0
Репутация
57
Адрес
Кузнецк-Sity
Не робит!Когда я из тачки выхажу спидак остается или когда покупаю /buygun в ammo аружие не поевляется!
 

Barni

Изучающий
Пользователь
Регистрация
10 Фев 2011
Сообщения
725
Лучшие ответы
0
Репутация
293
Адрес
Северодвинск
Не робит!Когда я из тачки выхажу спидак остается или когда покупаю /buygun в ammo аружие не поевляется!
Всё, теперь заменяем функцию выдачи оружия GivePlayerWeapon на GivePlayerWeaponAC
 

loci

Начинающий
Пользователь
Регистрация
7 Окт 2011
Сообщения
11
Лучшие ответы
0
Репутация
0
forward AntiNopResetPlayerWeapon(playerid);
public AntiNopResetPlayerWeapon(playerid)
{
new Guns[13][2];
for (new i = 0; i < 13; i++)
{
GetPlayerWeaponData(playerid, i, Guns[0], Guns[1]);
if(Guns[0] > 0)
{
SendClientMessage(playerid,COLOR_LIGHTRED,"Вы были кикнуты по подозрению в читерстве #(682)");
Kick(playerid);
}
}
}




vot zdes est oshibka! naprimer kogda y tebya na rykah 3 oryzia to kogda naprimer lozish 1 oryzie v bagazhnik to ostalnie oruzia ostaytsya v rukah i togda anticheat dymaet chto ne otobral i kickaet! sori chto tak pishy.komp slomalya yazik ne menaetsya)
 

Barni

Изучающий
Пользователь
Регистрация
10 Фев 2011
Сообщения
725
Лучшие ответы
0
Репутация
293
Адрес
Северодвинск
forward AntiNopResetPlayerWeapon(playerid);
public AntiNopResetPlayerWeapon(playerid)
{
new Guns[13][2];
for (new i = 0; i < 13; i++)
{
GetPlayerWeaponData(playerid, i, Guns[0], Guns[1]);
if(Guns[0] > 0)
{
SendClientMessage(playerid,COLOR_LIGHTRED,"Вы были кикнуты по подозрению в читерстве #(682)");
Kick(playerid);
}
}
}




vot zdes est oshibka! naprimer kogda y tebya na rykah 3 oryzia to kogda naprimer lozish 1 oryzie v bagazhnik to ostalnie oruzia ostaytsya v rukah i togda anticheat dymaet chto ne otobral i kickaet! sori chto tak pishy.komp slomalya yazik ne menaetsya)

Ну дак ты не забирай оружие у игрока, когда он ложит его в багажник, а просто обнуляй патроны у слота оружия..
 

Nevedimka

Изучающий
Пользователь
Регистрация
13 Мар 2012
Сообщения
278
Лучшие ответы
0
Репутация
25
Возраст
24
Адрес
Donetsk
спасмбо проверю.спасибку дам.
 

loci

Начинающий
Пользователь
Регистрация
7 Окт 2011
Сообщения
11
Лучшие ответы
0
Репутация
0
Barni

а функция в собейте nop setplayerammo если будет врублена то не будет отбирать патроны а значит и ствол.не подходит твой вариант.
 

Murder

Изучающий
Пользователь
Регистрация
14 Янв 2012
Сообщения
280
Лучшие ответы
0
Репутация
226
Адрес
Екатеринбург
Barni молодец! всё работает отлично, у кого мод rls удалите stock GiveRichGun и меняйте все GiveRichGun на GivePlayerWeaponAC.

Barni можно было бы сделать чтобы в паблике OnPlayerWeaponChange кикало и писало "Вы были кикнуты по подозрению в читерстве #(682)", а в паблике AntiNopResetPlayerWeapon не кикало а удаляло оружее.А то так когда перезаходишь тебя снова кикает.
 

Flexe

Изучающий
Пользователь
Регистрация
17 Ноя 2011
Сообщения
631
Лучшие ответы
0
Репутация
82
Barni можно было бы сделать чтобы в паблике OnPlayerWeaponChange кикало и писало "Вы были кикнуты по подозрению в читерстве #(682)
Ты не можешь заменить кик на SendClientMessage?

у кого мод rls удалите stock GiveRichGun и меняйте все GiveRichGun на GivePlayerWeaponAC.
Отличный совет, оружия при кике обнулятся не будут и снова будет кикать при коннекте.
а в паблике AntiNopResetPlayerWeapon не кикало а удаляло оружее.
Каким способом ты удалишь оружие у того, кто юзает NopResetPlayerWeapon?
 
Последнее редактирование:

Murder

Изучающий
Пользователь
Регистрация
14 Янв 2012
Сообщения
280
Лучшие ответы
0
Репутация
226
Адрес
Екатеринбург
Я всё сделал у себя и так же посоветовал вам, кикать при коннекте не будет, а функция для удаления оружия есть в моде rls. Кикнет один раз когда сделаешь в собейте оружие, если ничего не менять то когда зайдёшь оно останется и снова кикнет!

---------- Post added at 17:27 ---------- Previous post was at 17:23 ----------

Ты не можешь заменить кик на SendClientMessage?
Я имею ввиду в одном паблике сделать чтобы кикало, а в другом удаляло оружие! если ничего не менять то AntiNopResetPlayerWeapon будет кикать за то оружие, за которое тебя кикнуло в OnPlayerWeaponChange т.к оно не исчезает

---------- Post added at 17:31 ---------- Previous post was at 17:27 ----------

Отличный совет, оружия при кике обнулятся не будут и снова будет кикать при коннекте.
Причём тут это? ты вообще знаешь для чего этот stock?
 

Flexe

Изучающий
Пользователь
Регистрация
17 Ноя 2011
Сообщения
631
Лучшие ответы
0
Репутация
82
Я всё сделал у себя и так же посоветовал вам, кикать при коннекте не будет, а функция для удаления оружия есть в моде rls. Кикнет один раз когда сделаешь в собейте оружие, если ничего не менять то когда зайдёшь оно останется и снова кикнет!

---------- Post added at 17:27 ---------- Previous post was at 17:23 ----------



Я имею ввиду в одном паблике сделать чтобы кикало, а в другом удаляло оружие! если ничего не менять то AntiNopResetPlayerWeapon будет кикать за то оружие, за которое тебя кикнуло в OnPlayerWeaponChange т.к оно не исчезает

---------- Post added at 17:31 ---------- Previous post was at 17:27 ----------


Причём тут это? ты вообще знаешь для чего этот stock?
Кикать не будет, это я перепутал.Зато пропадет сохранение оружия. Что мешает 1 из kick, заменить на SendClientMessage?
 

tryp

Изучающий
Пользователь
Регистрация
17 Авг 2011
Сообщения
483
Лучшие ответы
0
Репутация
161
Адрес
Тольятти
все норм но тут пишет ошибку GivePlayerWeaponAC ты забыл добавить stock
PHP:
stock GivePlayerWeaponAC(playerid,id,ammo) 
{ 
    PlayerWeapons[playerid][0] = 1; 
    PlayerWeapons[playerid][id] = 1; 
    if(id == 39) PlayerWeapons[playerid][40] = 1; 
    GivePlayerWeapon(playerid,id,ammo); 
    return true; 
}
 

Eler

Нуль
Пользователь
Регистрация
7 Апр 2012
Сообщения
2
Лучшие ответы
0
Репутация
0
:af: думаю пашет ещё непроверял
 

komar98

Начинающий
Пользователь
Регистрация
13 Май 2012
Сообщения
15
Лучшие ответы
0
Репутация
0
НИШТЯК ВОЩЕ
 
Статус
В этой теме нельзя размещать новые ответы.
shape1
shape2
shape3
shape4
shape7
shape8
Сверху Снизу