Дополнительные деньги для админа

Черная вдова

Участник
Сообщения
2,795
Реакции
670
скрипт нужен для того что бы игрок с флагом ban получал доп 2 к бабла при спавне
не знаю что писать после new OldMoney =
И вообще если какие-нибудь ошибки в скрипте?

C-подобный:
#include <sourcemod>
#pragma semicolon 1

new Handle:c_cash;
new Handle:c_max;

new cash;
new max;

public OnPluginStart()
{
    
    c_cash = CreateConVar("money_amount", "2000", "x = Cash");
    c_max = CreateConVar("money_max", "0", "1 = Give not more than the max. Money, 0 = Off");
    
    AutoExecConfig(true, "cash", "sourcemod");
    
    HookEvent("player_spawn", eventPlayerSpawn);
}

public OnConfigsExecuted()
{
    cash = GetConVarInt(c_cash);
    max = GetConVarInt(c_max);
}


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

    if(GetUserFlagBits(client) & ADMFLAG_BAN)
    {
        if ((GetClientTeam(client) == 2 || GetClientTeam(client) == 3))
        {
            new OldMoney = 
            new NewMoney = cash + OldMoney;
            
            if (NewMoney > 16000 && max) NewMoney = 16000;
            {
                new MaxMoney = GetConVarInt(FindConVar("mp_maxmoney"));
                if (NewMoney > MaxMoney) NewMoney = MaxMoney;
            }
        }
    }
}
 

semjef

semjef.ru
Сообщения
993
Реакции
444
PHP:
new Cash = GetEntProp(client, Prop_Send, "m_iAccount");
			Cash += addMoneyclient[client];
			if (Cash > 16000)
			{
				Cash = 16000;
			}
			SetEntProp(client, Prop_Send, "m_iAccount", Cash);

просто рабочий код, думаю сможешь подменить пару вещей
 

The End Is Near...

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

public OnPluginStart() HookEvent("player_spawn", Event_OnPlayerSpawn);

public Action:Event_OnPlayerSpawn(Handle:event, const String:name[], bool:dontBroadcast) {
	new client = GetClientOfUserId(GetEventInt(event, "userid"));
	if(GetUserFlagBits(client) & ADMFLAG_BAN) {
	new Cash = GetEntProp(client, Prop_Send, "m_iAccount");
	if(Cash < 16000) SetEntProp(client, Prop_Send, "m_iAccount", Cash + 2000);
	else if(Cash >= 16000) SetEntProp(client, Prop_Send, "m_iAccount", 16000);
	}
}
 
Последнее редактирование:

semjef

semjef.ru
Сообщения
993
Реакции
444
DoK_1997, кривая неверная последовательность действий
 

Черная вдова

Участник
Сообщения
2,795
Реакции
670
А у меня :D?
C-подобный:
#include <sourcemod>
#pragma semicolon 1

new Handle:c_cash;

new cash;

public OnPluginStart()
{
    
    c_cash = CreateConVar("money_amount", "2000", "x = Cash");
    
    AutoExecConfig(true, "cash", "sourcemod");
    
    HookEvent("player_spawn", eventPlayerSpawn);
}

public OnConfigsExecuted()
{
    cash = GetConVarInt(c_cash);
}


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

    if(GetUserFlagBits(client) & ADMFLAG_RESERVATION)
    {
        if ((GetClientTeam(client) == 2 || GetClientTeam(client) == 3))
        {
            new OldMoney = GetEntProp(client, Prop_Send, "m_iAccount"); 
            new NewMoney = cash + OldMoney;
            if (NewMoney > 20000)
                {
                    NewMoney = 20000;
                } 
            SetEntProp(client, Prop_Send, "m_iAccount", NewMoney);  
        }
    }
}
Кста ведь создает еще конфиг
 

semjef

semjef.ru
Сообщения
993
Реакции
444
Черная вдова, ну если у тебя реально иметь 20000 на серве, то норм)

new NewMoney = cash + GetEntProp(client, Prop_Send, "m_iAccount");

сделай одной строкой))
 

The End Is Near...

Russian Roulette
Сообщения
874
Реакции
691
И, может что то неправильно, но зачем проверка команд? И, вместо
C-подобный:
new userid = GetEventInt(event, "userid");
    new client = GetClientOfUserId(userid);
сделать
C-подобный:
new client = GetClientOfUserId(GetEventInt(event, "userid"));
 
Сверху Снизу