Пополнение до 100 XP

mihaput

Участник
Сообщения
694
Реакции
166
Ребят, кому не трудно, может кто напишет или покажет на плагин где он есть, если таковой имеется.
Суть такова, что при установке игроком бомбы ему пополняются жизни до 100 XP. Не дополняются, а пополняются :)
Заранее благодарю :)
 

R1KO

fuck society
Сообщения
9,457
Реакции
7,786
  • Команда форума
  • #2
PHP:
#pragma semicolon 1

#include <sourcemod>
#include <sdktools>

public OnPluginStart()
	HookEvent("bomb_planted", EventBombPlanted);
	
public EventBombPlanted(Handle:event, const String:name[],bool:dontBroadcast)
{
	new client = GetClientOfUserId(GetEventInt(event, "userid"));
		
	SetEntityHealth(client, 100);
}
 

mihaput

Участник
Сообщения
694
Реакции
166
R1KO, Я извиняюсь, а можно все тоже самое только еще и с пополнением брони до 100 ? И с каким нибудь не большим текстовым сопровождением игроку в чате, типа:
"Пополнение XP за установку бомбы" если конечно не трудно :)
 

R1KO

fuck society
Сообщения
9,457
Реакции
7,786
  • Команда форума
  • #4
PHP:
#pragma semicolon 1

#include <sourcemod>
#include <sdktools_functions>

public OnPluginStart()
	HookEvent("bomb_planted", EventBombPlanted);
	
public EventBombPlanted(Handle:event, const String:name[],bool:dontBroadcast)
{
	new client = GetClientOfUserId(GetEventInt(event, "userid"));
		
	SetEntityHealth(client, 100);
	SetEntProp(client, Prop_Send, "m_ArmorValue", 100, 1);
}
 

R1KO

fuck society
Сообщения
9,457
Реакции
7,786
  • Команда форума
  • #6
mihaput, какой тебе текст нужен ?

Пиши сразу всё ТЗ, а то по 1 действию добавлять....
 

September

Участник
Сообщения
5,238
Реакции
2,742
  • Команда форума
  • #7
mihaput, какой тебе текст нужен ?

Пиши сразу всё ТЗ, а то по 1 действию добавлять....
Он написал)
И с каким нибудь не большим текстовым сопровождением игроку в чате, типа:
"Пополнение XP за установку бомбы" если конечно не трудно
 

R1KO

fuck society
Сообщения
9,457
Реакции
7,786
  • Команда форума
  • #8
September, или он потом добавил или я слепой))

mihaput, будет выводится только тому, кто заложил
PHP:
#pragma semicolon 1

#include <sourcemod>
#include <sdktools_functions>

public OnPluginStart()
	HookEvent("bomb_planted", EventBombPlanted);
	
public EventBombPlanted(Handle:event, const String:name[],bool:dontBroadcast)
{
	new client = GetClientOfUserId(GetEventInt(event, "userid"));
		
	SetEntityHealth(client, 100);
	SetEntProp(client, Prop_Send, "m_ArmorValue", 100, 1);
	PrintToChat(client, "Вам пополнено XP за установку бомбы");
}
 

mihaput

Участник
Сообщения
694
Реакции
166
R1KO, Благодарствую, все как надо.
Единственное подскажи что нужно тут добавить чтобы текст цветным был.
Делаю так
C-подобный:
PrintToChat(client, "x07\  Вам пополнено XP за установку бомбы");
Текст почему то не полный становится :(
 

KorDen

Atra esterní ono thelduin!
Сообщения
2,142
Реакции
1,424
mihaput, какой цвет нужен?
\x01 - стандартный
\x04 - зеленый
\x05 - темно-зеленый
\x07RRGGBB - вместо RRGGBB шестнадцатеричный код цвета (FF0000 для красного например)
 

R1KO

fuck society
Сообщения
9,457
Реакции
7,786
  • Команда форума
  • #11
mihaput,
PHP:
PrintToChat(client, "\x07цвет  Вам пополнено XP за установку бомбы");
 

djeck993

Участник
Сообщения
40
Реакции
8
Объясните пожалуйста куда этот код вставлять?
 

R1KO

fuck society
Сообщения
9,457
Реакции
7,786
  • Команда форума
  • #13
djeck993, создаешь текстовый документ, назваешь как угодно и расширение .sp
Вставляешь это в него и компилируешь.

P.S. Кодировку UTF 8 без BOM не забудь
 

The End Is Near...

Russian Roulette
Сообщения
874
Реакции
691
Пробуй
PHP:
#include <sourcemod>

#define HEALTH 100
#define ARMOR 100

new hHealth = -1,
	hArmor = -1;

public OnPluginStart()
{
	hHealth = FindSendPropOffs("CSSPlayer", "m_iHealth");
	hArmor = FindSendPropOffs("CSSPlayer", "m_ArmorValue");

	HookEvent("bomb_planted", Event_OnBombPlanted);
}

public Event_OnBombPlanted(Handle:event, const String:name[], bool:silent)
{
	new client = GetClientOfUserId(GetEventInt(event, "userid"));

	if (client > 0)
	{
		decl String:message[100];

		new bool:check = false;

		new hp = GetEntData(client, hHealth, 4);

		if (hp < HEALTH)
		{
			SetEntData(client, hHealth, HEALTH, 4, true);

			Format(message, sizeof(message), "%d Здоровья. ", HEALTH - hp);

			check = true;
		}

		new am = GetEntData(client, hArmor, 4);

		if (am < ARMOR)
		{
			SetEntData(client, hArmor, ARMOR, 4, true);

			Format(message, sizeof(message), "%s%d Брони", message, ARMOR - am);

			if (!check)
			{
				check = true;
			}
		}

		if (check)
		{
			PrintToChat(client, "За установку бомбы вам добавлен бонус. Добавлено: %s", message);
		}		
	}
}
 
Последнее редактирование:

mihaput

Участник
Сообщения
694
Реакции
166
The End Is Near..., Плагин показывает что работает, но не пополняет + в чате ничего не пишет.
За старания спасибо, но предыдущего более чем достаточно :)
 

Reiko1231

AlexTheRegent
Сообщения
508
Реакции
1,336
Попробуй так:
C-подобный:
#include <sourcemod>

public OnPluginStart()
{
    HookEvent("bomb_planted", Event_BombPlanted);
}

public Event_BombPlanted(Handle:event, const String:name[], bool:silent)
{
	new iClient = GetClientOfUserId(GetEventInt(event, "userid"));

	decl String:szMessage[128];

	new bool:bHealth = false, bool:bArmor = false;

	new iHealth = GetClientHealth(iClient);
	if ( iHealth < 100 )
	{
		SetEntProp(iClient, Prop_Send, "m_iHealth", 100);
		bHealth = true;
		
		Format(szMessage, sizeof(szMessage) - 1, "%d здоровья", 100 - iHealth);
	}

	new iArmor = GetClientArmor(iClient);
	if ( iArmor < 100 )
	{
		SetEntProp(iClient, Prop_Send, "m_ArmorValue", 100);
		bArmor = true;
		
		if ( bHealth )
		{
			Format(szMessage, sizeof(szMessage) - 1, "%s, %d брони", szMessage, 100 - iArmor);
		}
		else
		{
			Format(szMessage, sizeof(szMessage) - 1, "%d брони", 100 - iArmor);
		}
	}

	if ( bHealth || bArmor )
	{
		PrintToChat(iClient, "\x03За установку бомбы \x04добавлено\x03: %s", szMessage);
	}
}
 

mihaput

Участник
Сообщения
694
Реакции
166
Reiko1231, Этот пободрее будет :)
Как то так разукрасил:



P/S Еще раз всем спасибо кто откликнулся и помог :)
 
Сверху Снизу