Написание плагинов

WeSTMan

А вот тут текст!
Сообщения
833
Реакции
516
Почему то не работает GivePlayerItem в этом режиме(( Ивент срабатывает действие запускается, но оружие не выдает (

хм... Напиши верное название оружия, которое нужно вызвать и ты знаешь, что оружие не заменяет текущее? Оружие просто падает "к твоим ногам".
 

LeadBit

Участник
Сообщения
31
Реакции
2
Нижние подчеркивания стоят в скрипте, так сюда почему то скопировалось, знаю что падает к ногам его нет на земле я проверял, в этом режиме кстати и поднять ничего нельзя может в этом проблема....?
 

WeSTMan

А вот тут текст!
Сообщения
833
Реакции
516
Нижние подчеркивания стоят в скрипте, так сюда почему то скопировалось, знаю что падает к ногам его нет на земле я проверял, в этом режиме кстати и поднять ничего нельзя может в этом проблема....?

Попробуй вместо p250 и usp-s поставить deagle.
Итог:
PHP:
GivePlayerItem(client, "weapon_deagle");

Плагин-то компилирует?
 
Последнее редактирование модератором:

WeSTMan

А вот тут текст!
Сообщения
833
Реакции
516
Если бы всё было так легко, то я ещё вчера написал. :acute: Оружие нужно дропать, делать больше проверок на "живность" и вообще, через таймер 0,1-0,2 секунды скорей всего.

У тебя геморой. Щас напишу, смотри

Добавлено через 2 минуты
PHP:
#include <sdktools_functions> 

public Plugin:myinfo =  
{ 
    name = "GivePistol", 
    author = "LeadBit", 
    description = "Give pistol P250 on spawn", 
    version = "1.0", 
    url = "www.xxx.ru" 
} 

public OnPluginStart() 
{ 
    HookEvent("player_spawn", Ev_PlayerSpawn); 
} 


public Action:Ev_PlayerSpawn(Handle:event, const String:name[], bool:dontBroadcast) 
{ 
    new client = GetClientOfUserId(GetEventInt(event, "userid")); 
	new slot = GetPlayerWeaponSlot(client, 1); 
    new team = GetClientTeam(client); 
	
    if (team == 2) 
	{
		if (slot != -1) CS_DropWeapon(client, slot, true, false);
		GivePlayerItem(client, "weapon_deagle"); 
	}

    else if (team == 3) 
	{
		if (slot != -1) CS_DropWeapon(client, slot, true, false);
		GivePlayerItem(client, "weapon_deagle"); 
	}
}
 
Последнее редактирование модератором:

AlmazON

Не путать с самим yand3xmail
Сообщения
5,099
Реакции
2,755
Броня и жизнь выше 100 так выдаётся, иначе остаётся просто 100. Сразу при спавне нельзя, не через обычные события - тогда уж через sdkhooks скорее.
CS_DropWeapon(client, slot, true, false);
Таки не геморрой?)
 

WeSTMan

А вот тут текст!
Сообщения
833
Реакции
516
Броня и жизнь выше 100 так выдаётся, иначе остаётся просто 100. Сразу при спавне нельзя, не через обычные события - тогда уж через sdkhooks скорее.

Что-то я тебя не понял. Причём здесь броня и жизни? Если речь идёт о выдаче оружия?
 

WeSTMan

А вот тут текст!
Сообщения
833
Реакции
516
В этот раз пашет, таймер ни к чему. :)
Только IsClientInGame(client) && IsPlayerAlive(client) && следует в спавне добавить. И лучше с методом Post и GetEventInt(event, "team").

Зачем проверять IsPlayerAlive? Он что, при спавне мгновенно убивается?
 

AlmazON

Не путать с самим yand3xmail
Сообщения
5,099
Реакции
2,755
Зачем проверять IsPlayerAlive?
При заходе игрока в игру он тоже как бы "спавнится". Срабатывает зазря.
LeadBit, в общем держи.
Оптимально:
PHP:
#include <cstrike>
#include <sdktools_functions>

public Plugin:myinfo = 
{
	name = "GivePistols",
	author = "LeadBit",
	description = "Give on spawn pistol: T - 228 Compact & CT - Night Hawk .50C",
	version = "1.0.0",
	url = "www.xxx.ru"
}

public OnPluginStart()
{
	HookEvent("player_spawn", PlayerSpawn, EventHookMode_PostNoCopy);
}

public PlayerSpawn(Handle:event, const String:name[], bool:dontBroadcast)
{
	new client = GetClientOfUserId(GetEventInt(event, "userid"));
	if (IsClientInGame(client) && IsPlayerAlive(client))
	{
		new slot = GetPlayerWeaponSlot(client, 1);
		if (slot != -1) CS_DropWeapon(client, slot, true, false);
		GivePlayerItem(client, (GetClientTeam(client) == 2) ? "weapon_p228":"weapon_deagle");
	}
}
Не забудь поставить спасибки WeSTMan'у!
 

Вложения

  • GivePistols.sp
    787 байт · Просмотры: 9
Последнее редактирование:

LeadBit

Участник
Сообщения
31
Реакции
2
Работает, большое спасибо! Только вот не пойму почему первый вариант не робил, из-за cstrike? И еще вопрос реально ли как то разблочить дроп и поднятие оружия в этом режиме? Или только лепить плагином ?
 

AlmazON

Не путать с самим yand3xmail
Сообщения
5,099
Реакции
2,755
почему первый вариант не робил
Такого оружия не существовало. Так же, без кода выше оно бы просто валялось на земле.
разблочить дроп и поднятие оружия в этом режиме?
Переведи, я мысли не читаю.
 

WeSTMan

А вот тут текст!
Сообщения
833
Реакции
516
Такого оружия не существовало. Так же, без кода выше оно бы просто валялось на земле.

Переведи, я мысли не читаю.

В режиме Уничтожение объекта и там оружия нельзя поднимать, кроме бомбы и дефюзера. Ему квар нужен, чтобы могли люди поднимать оружие.
 

LeadBit

Участник
Сообщения
31
Реакции
2
в режиме demolition у меня включены данные кверы

mp_death_drop_defuser 1
mp_death_drop_grenade 2 // 0=none, 1=best, 2=current or best
mp_death_drop_gun 1 // 0=none, 1=best, 2=current or best

Итемы все выпадают при смерти но ничего не поднять с пола кроме дефьюзера вот я и спрашиваю это блокировку можно как то снять?
 

LeadBit

Участник
Сообщения
31
Реакции
2
Это квары в кс го фаил gamemode_demolition.cfg и gamemode_demolition_server.cfg соответственно

Добавлено через 1 минуту
В этом режиме блочится поднятие гранат и пушек, как это перенастроить непойму перерыл уже все фаилы и цфгшники

Добавлено через 3 минуты
я тут на одном форуме вот что нашел

Когда игрок выбрасывает оружие, вызывается такая функция:

public Action:CS_OnCSWeaponDrop(client, weapon_index)
{
return Plugin_Continue;
}


return Plugin_Continue; - разрешить выброс оружия. return Plugin_Handled; - запретить.

может в этом режиме эта функция запускается? ее действие обратить можно?

Хотя нет это не то, выбросить то я могу поднять обратно немогу xD
 
Последнее редактирование:

AlmazON

Не путать с самим yand3xmail
Сообщения
5,099
Реакции
2,755
LeadBit, Оффтоп
 
Сообщения
13
Реакции
0
Нашел плагин для скрытия всех команд в чате после !
C-подобный:
public OnPluginStart()  
{  
     RegConsoleCmd("say", hidetrigger);  
     RegConsoleCmd("say_team", hidetrigger);  
}  

public Action:hidetrigger(client, args)  
{  
     if (args > 0)  
     {  
         decl String:command[65]; GetCmdArg(1, command, 65);  
         if (command[0] == '!') return Plugin_Handled;  
     }  
     return Plugin_Continue;  
}
Как можно сделать так, чтобы только нужные мне команды скрывались. Т.е. например я пишу не !rtv а просто rtv, но тогда уже эта команда не скрывается в чате и смысл от такого плагина? Пробовал "!" изменить на "rtv", выдавало ошибку при компиляции.
 

R1KO

fuck society
Сообщения
9,457
Реакции
7,786
Сверху Снизу