Иконка ресурса

Kill Bonus 1.0.3 - 1.0.5.3

Maus

Участник
Сообщения
125
Реакции
6
Re: Kill Bonus v.1.0.4

Impulse72, в версии которую сделал Серый™ есть недоработка небольшая) нужно сделать чтобы скидывался бонус в следующем раунде который накопился в предыдущем) либо чтобы не скидывался)
например:

заход на сервер.
появление на карте.
100 хп
0 брони
бегаешь стреляешь убиваешь копишь бонусы хп и брони за убийство
следующий раунд (хп скинулось с бонусного значения до 100 а броня не скидывается до 100 а остаётся скажем 110 (учитывая бонус) вот такая недоработка. надо дописать чтобы скидывалась броня также как и хп. но учесть тот факт что игрок может и не купить броню (т.е. чтобы броня не устанавливалась в значение 100 при следющем респауне а оставалась в том значении сколько ты накопишь бонусами)
 

Maus

Участник
Сообщения
125
Реакции
6
Re: Kill Bonus v.1.0.4

Никто не поправит плагин?(
 

Серый™

CS:S Server
Сообщения
2,925
Реакции
1,376
Re: Kill Bonus v.1.0.4

Вобщем изменил поведение плагина на броню, если у игрока в начале раунда больше 100 брони то она скидывается до 100.
Квар kb_100ar включает и отключает такую фишку.

Перезалил.
 

Вложения

  • killbonus v.1.0.5.4.zip
    19.8 КБ · Просмотры: 30
Последнее редактирование:

R1KO

fuck society
Сообщения
9,457
Реакции
7,786
Re: Kill Bonus v.1.0.4

Серый™,
PHP:
for (new i = 1; i <= MaxClients; i++)
{
	if (IsClientInGame(i))
	{
		new	CurrentAr = GetClientArmor(i);
		new ar = 100;

		if(CurrentAr > ar)
			SetEntProp(i, Prop_Send, "m_ArmorValue", ar);
	}
}

Проверяй команду игрока.
А лучше было бы сделать вообще так:

PHP:
ResetAll()
{
	new ar = 100;
	for (new i = 1; i <= MaxClients; i++)
	{
		if (IsClientInGame(i))
		{
			ResetClient(i);
			if(GetClientTeam(i)>1)
			{
				if(GetClientArmor(i) > ar)
					SetEntProp(i, Prop_Send, "m_ArmorValue", ar);
			}
		}
	}
}

ResetClient(client)
{
	for (new j = 0; j < 3; j++)
	{
		g_list[client][j][0] = 0;
		g_list[client][j][1] = 0;
	}
	g_kills[client] = 0;
}

public Event_RoundStart(Handle:event, const String:name[], bool:dontBroadcast)
{
	if(!me_enable)
		return;

	ResetAll();
}
 

acik_traiks

Что нибудь напишем?)
Сообщения
770
Реакции
627
Помогите подправить)

вообщем отредактировал killbonus под себе при компиляции было хорошо
PHP:
#pragma semicolon 1

#include <sourcemod>
#include <sdktools>
#include <colors>
#include <zombiereloaded>
new g_list[65][3][2]; //stores how many grenades of what type have exploded for every client - 0 grenades used, 1 kills
new String: weaponlist[][] = { "hegrenade", "flashbang"};
new neededlist[3] = {3,5}; //needed kills to get another item of the type listed above
new nademode = 1;
new me_enable = 1;

new HpAdd = 100;
new MaxHp = 1000;
new Announce = 1;

new Handle:cv_Enabled; 
new Handle:cv_HpAdd; 
new Handle:cv_MaxHp; 
new Handle:cv_Announce;
new Handle:cv_needed_HE;
new Handle:cv_needed_flash;
//new Handle:cv_needed_smoke;
new Handle:cv_nademode;

#define PLUGIN_VERSION "1.0.5"

public Plugin:myinfo =  
{ 
	name = "Kill Bonus", 
	author = "", 
	description = "Gives someone Hp & Grenade on a kill", 
	version = PLUGIN_VERSION, 
	url = "www.hlmod.ru" 
} 

public OnPluginStart() 
{ 
	CreateConVar("kb_version", PLUGIN_VERSION, "Kill Bonus Version", FCVAR_PLUGIN|FCVAR_SPONLY|FCVAR_REPLICATED|FCVAR_NOTIFY);

	cv_Enabled  =	 CreateConVar("kb_enabled",     "1",   "Enables - Disables the Kill bonus plugin", FCVAR_NOTIFY);

	cv_HpAdd    =    CreateConVar("kb_hp",          "100",   " when the someone kills someone", FCVAR_NOTIFY); 
	cv_MaxHp    =    CreateConVar("kb_maxhp",       "1000", "the max hp that", FCVAR_NOTIFY);
	cv_needed_HE =   CreateConVar("kb_needed_HE",   "3",   "Kills needed to recieve hegrenade, 0 = disable", FCVAR_NOTIFY);
	cv_needed_flash = CreateConVar("kb_needed_flash", "5", "Kills needed to recieve flashbang, 0 = disable", FCVAR_NOTIFY);
	//cv_needed_smoke = CreateConVar("kb_needed_smoke", "0", "Kills needed to recieve smokegrenade, 0 = disable", FCVAR_NOTIFY);
	cv_nademode =     CreateConVar("kb_nademode",     "1", "0 = replenish used nades only, 1 = always give nade /n(useful in conjunction with SM plugin 'Grenade Pack')", FCVAR_NOTIFY);
	cv_Announce  =    CreateConVar("kb_announce",     "1", "Enables - Disables announce", FCVAR_NOTIFY); 

	if(me_enable)
	{
		HookEvent("player_death", Event_PlayerDeath);
		HookEvent("round_start", Event_RoundStart);
		//HookEvent("weapon_fire", EventWeaponFire);
	}

	LoadTranslations("plugin.killbonus");


	HpAdd = GetConVarInt(cv_HpAdd);
	MaxHp = GetConVarInt(cv_MaxHp);
	nademode = GetConVarInt(cv_nademode);
	Announce = GetConVarInt(cv_Announce);
	neededlist[0] = GetConVarInt(cv_needed_HE);
	neededlist[1] = GetConVarInt(cv_needed_flash);
	//neededlist[2] = GetConVarInt(cv_needed_smoke);
	me_enable = GetConVarInt(cv_Enabled);

	AutoExecConfig(true, "Kill_Bonus");
}

public OnConfigsExecuted()
{
	me_enable = GetConVarInt(cv_Enabled);
	//HsAdd = GetConVarInt(cv_HsAdd);
	//HgAdd = GetConVarInt(cv_HgAdd);
	//HkAdd = GetConVarInt(cv_HkAdd);
	HpAdd = GetConVarInt(cv_HpAdd);
	MaxHp = GetConVarInt(cv_MaxHp);
	nademode = GetConVarInt(cv_nademode);
	Announce = GetConVarInt(cv_Announce);
	neededlist[0] = GetConVarInt(cv_needed_HE);
	neededlist[1] = GetConVarInt(cv_needed_flash);
	//neededlist[2] = GetConVarInt(cv_needed_smoke);
}
public EnableChanged(Handle:convar, const String:oldValue[], const String:newValue[])
{
	new iNew = StringToInt(newValue);
	new iOld = StringToInt(oldValue);
	if (iNew == iOld)
		return;
	if (iNew == 1)
	{
		me_enable = 1;
		ResetAll();
	}
	else
		me_enable = 0;
}

get_weapon_index(const String: weapon_name[])
{
	new loop_break = 0;
	new index = 0;
	
	while ((loop_break == 0) && (index < sizeof(weaponlist)))
	{
		if (strcmp(weapon_name, weaponlist[index], true) == 0)
			loop_break++;
		index++;
	}

	if (loop_break == 0)
		return -1;
	else
		return index - 1;
}

public Action:EventWeaponFire(Handle:event, const String:name[], bool:dontBroadcast)
{
	if (me_enable == 0 || nademode == 1)
		return Plugin_Continue;
	
	new client = GetClientOfUserId(GetEventInt(event, "userid"));
	if (client < 1)
		return Plugin_Continue;
	
	new String:weapon[64];
	GetEventString(event, "weapon", weapon, 64);
	new weapon_index = get_weapon_index(weapon);
	if (weapon_index == -1)
		return Plugin_Continue;

	g_list[client][weapon_index][0]++;
	
	return Plugin_Continue;
}
public OnClientPutInServer(client)
{
	if(me_enable == 0)
		return;
	
	ResetClient(client);
}

ResetAll()
{
	for (new i = 1; i <= MaxClients; i++)
	{
		ResetClient(i);
	}
}
ResetClient(client)
{
	for (new j = 0; j < 3; j++)
	{
		g_list[client][j][0] = 0;
		g_list[client][j][1] = 0;
	}
}

public Event_RoundStart(Handle:event, const String:name[], bool:dontBroadcast)
{
	if(me_enable == 0)
		return;
	
	ResetAll();
}

public Event_PlayerDeath(Handle:event, const String:name[], bool:dontBroadcast)
{
	new victim = GetClientOfUserId(GetEventInt(event, "userid"));
	new attacker =  GetClientOfUserId(GetEventInt(event, "attacker"));

	if(attacker == 0)
	{
		return;
	}
	new Max = MaxHp;
	new CurrentHp    = GetClientHealth(attacker);
	new adverts =  Announce;
	new client = GetClientOfUserId(GetEventInt(event, "attacker"));
	if(IsPlayerAlive(client) && ZR_IsClientZombie(client))
	{
		new Hp     = HpAdd;
		if((CurrentHp + Hp) > Max)
		{        
			SetEntProp(attacker, Prop_Send, "m_iHealth", Max);
		} 
		else 
		{
			SetEntProp(attacker, Prop_Send, "m_iHealth", Hp + CurrentHp);
			if (adverts)
				CPrintToChat(attacker, "%t", "killhp", Hp);
        	}
		
	
	}
	
	//new client = attacker;
	//new client = GetClientOfUserId(GetEventInt(event, "attacker"));
	if(IsPlayerAlive(client) && ZR_IsClientHuman(client))
	{
		for (new j = 0; j < 3; j++)
		{
			if(neededlist[j] == 0)
			continue;
		
			g_list[client][j][1]++;
		
			if(g_list[client][j][1] >= neededlist[j])
			{
				if((g_list[client][j][0] > 0 && nademode == 0) || nademode == 1)
				{
					g_list[client][j][1] = 0;
					if(nademode == 0)
						g_list[client][j][0]--;
					new String:ent_weapon[64];
					Format(ent_weapon, sizeof(ent_weapon), "weapon_%s", weaponlist[j]);
					GivePlayerItem(client, ent_weapon);
					if (adverts)
					{
						CPrintToChat(attacker, "%t", "Giving Grenade", weaponlist[j]);
					}
				}
			}
		}
	}
	ResetClient(victim);
}

но вот при игре с ботами ошибки выдает
L 01/23/2014 - 08:40:20: [SM] Plugin encountered error 4: Invalid parameter or parameter type
L 01/23/2014 - 08:40:20: [SM] Native "VFormat" reported: Language phrase "killhp" not found
L 01/23/2014 - 08:40:20: [SM] Displaying call stack trace for plugin "killbonus.smx":
L 01/23/2014 - 08:40:20: [SM] [0] Line 65, D:\CEPBEP\cstrike\addons\sourcemod\scripting\include\colors.inc::CPrintToChat()
L 01/23/2014 - 08:40:20: [SM] [1] Line 195, D:\CEPBEP\cstrike\addons\sourcemod\scripting\killbonus.sp::Event_PlayerDeath()
 

MFS

Участник
Сообщения
1,533
Реакции
787
Re: Kill Bonus v.1.0.4

Граждане, проверьте кто нибудь kb_enabled, переменная не действует, версия 1,0,5,3
 

wolodyawggu

Участник
Сообщения
20
Реакции
1
Re: Kill Bonus v.1.0.4

Поставил плагин, прописал Cvar-ы, но он не слушает их, например везде поставил 0, кроме убийства с ножа. Так он все равно все делает по старому что делать?
 

wolodyawggu

Участник
Сообщения
20
Реакции
1
Re: Kill Bonus v.1.0.5.3rus

Полностью русифицированная версия: отредактированный перевод из шапки темы вставлен внутрь плагина и теперь файл настроек также содержит русский язык. Сам файл перевода сообщений от плагина тоже немного подправлен и добавлен новый цвет (всё тот же colors) к фразам на слова "HP" и "броня", а также при получении гранат на сами типы гранат.
Будьте внимательны! Название файла перевода и конфига теперь немного изменились.
Спасибо, что выложил. А куда квары писать и какие? Пишу в killbonus.cfg но он не слушает его (((
 

wolodyawggu

Участник
Сообщения
20
Реакции
1
Re: Kill Bonus v.1.0.4

wolodyawggu, продублируй в server.cfg например.

Как то сам заработал, только щас фенька при убиустве: стоит 0, а дает 5 хп. Я везде поставил 0, кроме убийства ножом. При ноже все правильно делает, но при убийстве 5 хп зачисляет (при простом). Бьюсь часа 2 не хочет гад, работать. Может другой какой параметр нужен ему.


Все нашел ошибку, спасибо тебе не тот пункт поставил 5. Посмотри пж в теме gungame мое сообщение, может подскажешь.
 
Последнее редактирование:

AlmazON

Не путать с самим yand3xmail
Сообщения
5,099
Реакции
2,755
Re: Kill Bonus v.1.0.4

Все нашел ошибку, спасибо тебе не тот пункт поставил 5
Ну ты даёшь! :) Вообще-то баги плагина ко мне не относятся, я только его перевёл, а дописал Серый™.
Кстати, заметил такую "фишку" - за несколько убийств подряд здоровье резко подскакивает до максимума (который прописан в кваре). Броня тоже подскакивает, но не так.
 

Серый™

CS:S Server
Сообщения
2,925
Реакции
1,376
Re: Kill Bonus v.1.0.4

AlmazON, этот баг я нашёл, но пока не знаю как так написать оптимизировано. Плюс ещё его часть стараюсь переписать и учесть недостатки которые сам нашёл. А насчёт бага с резким восстановление хп и брони, это из-за того что код добавления чуть не верный.
 

AlmazON

Не путать с самим yand3xmail
Сообщения
5,099
Реакции
2,755
Re: Kill Bonus v.1.0.4

не знаю как так написать оптимизировано
Я тем более, почти всё забыл, как пишется. Так что, думать придётся только вам, друзья.
А вообще, сойдёт, если считать такой баг именно "фишкой": много убил - и приз в максимум HP получил! :-D Наверное, некоторым понравилось. Надо делать отдельный квар на это, пожалуй.
 

Серый™

CS:S Server
Сообщения
2,925
Реакции
1,376
Re: Kill Bonus v.1.0.4

Новая версия плагина
Изменения:
  • Переписана часть кода.
  • Исправлен баг пополнения хп или брони.
  • Убрал королс и сделал изменения цветов по другому, можно менять в транслите(тока для OB).
  • Убран наде мод. Теперь всегда пополняет гранаты.
  • Переведены гранаты.
Пред установкой удаляем старый плагин полностью вместе с конфигом.

Или качайте эту версию.
 

Вложения

  • KillBonus_v1.0.5.5.zip
    18.5 КБ · Просмотры: 91
Последнее редактирование:

Arthur Don

Участник
Сообщения
1,696
Реакции
256
Re: Kill Bonus v.1.0.4

Серый™, сейчас протестирую :)

Добавлено через 14 минут
Серый™, работает все супер
 
Последнее редактирование:

Серый™

CS:S Server
Сообщения
2,925
Реакции
1,376
Re: Kill Bonus v.1.0.4

AlmazON, такс начнём объяснять:
- как я сделал очень сложно сделать правильно запятые в нужном месте и от этого лишние пробелы. По этом и сделал выделение цветом.
- английские буквы есть везде, это сделано для совмещение в одно сообщение. Ты наверно скриптер и знаешь что в сообщение есть максимальная длина, так английская буква занимает в два раза меньше места чем русская. И того получаем длине сообщение.
- напиши где не верный перевод в кофиге.
 

AlmazON

Не путать с самим yand3xmail
Сообщения
5,099
Реакции
2,755
SM_KillBonus_v1.0.5.5rus

Оффтоп
Исправленная версия:
- отсутствуют лишние пробелы, почти везде проставлены запятые, как положено;
- английские буквы в слове "скорость" (и чуть укорочен русский) для вместимости длинного сообщения в чате;
- создаваемая конфигурация переведена верно, включая новый квар kb_100ar - на английский.
Выглядит это в чате так:
fe0c42b9337b.jpg

Не забываем ставить "Спасибо" Серый™.
 

Вложения

  • CSS-SM_KillBonus_v1.0.5.5rus.rar
    18 КБ · Просмотры: 135
Последнее редактирование:

Серый™

CS:S Server
Сообщения
2,925
Реакции
1,376
Re: Kill Bonus v.1.0.4

AlmazON, надо сделать в начале
PHP:
public Event_PlayerDeath
так
PHP:
	new victim = GetClientOfUserId(GetEventInt(event, "userid")),
		attacker =  GetClientOfUserId(GetEventInt(event, "attacker"));
	
	if(!b_Enable || attacker == 0)
		return;
		
	new	CurrentHp    = GetClientHealth(attacker),
		CurrentAr    = GetClientArmor(attacker),
		bool:b_headshot = GetEventBool(event, "headshot");
 

Серый™

CS:S Server
Сообщения
2,925
Реакции
1,376
Re: Kill Bonus v.1.0.4

AlmazON, эта ошибка, то что игрок бот. Просто последовательность не верна была.
 
Сверху Снизу