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

Тема в разделе "Программирование / Скриптинг", создана пользователем Черная вдова, 18 окт 2012.

  1. Черная вдова

    Черная вдова

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

    Код:
    #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;
                }
            }
        }
    }
     
  2. semjef

    semjef semjef.ru

    Сообщения:
    1.031
    Симпатии:
    473
    PHP:
    new Cash GetEntProp(clientProp_Send"m_iAccount");
                
    Cash += addMoneyclient[client];
                if (
    Cash 16000)
                {
                    
    Cash 16000;
                }
                
    SetEntProp(clientProp_Send"m_iAccount"Cash);
    просто рабочий код, думаю сможешь подменить пару вещей
     
    Черная вдова и NagarD нравится это.
  3. The End Is Near...

    The End Is Near... Russian Roulette

    Сообщения:
    893
    Симпатии:
    659
    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(clientProp_Send"m_iAccount");
        if(
    Cash 16000SetEntProp(clientProp_Send"m_iAccount"Cash 2000);
        else if(
    Cash >= 16000SetEntProp(clientProp_Send"m_iAccount"16000);
        }
    }
     
    Последнее редактирование: 23 окт 2012
  4. semjef

    semjef semjef.ru

    Сообщения:
    1.031
    Симпатии:
    473
    DoK_1997, кривая неверная последовательность действий
     
  5. Черная вдова

    Черная вдова

    Сообщения:
    1.621
    Симпатии:
    234
    А у меня :D?
    Код:
    #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);  
            }
        }
    }
    Кста ведь создает еще конфиг
     
  6. semjef

    semjef semjef.ru

    Сообщения:
    1.031
    Симпатии:
    473
    Черная вдова, ну если у тебя реально иметь 20000 на серве, то норм)

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

    сделай одной строкой))
     
    Черная вдова нравится это.
  7. The End Is Near...

    The End Is Near... Russian Roulette

    Сообщения:
    893
    Симпатии:
    659
    И, может что то неправильно, но зачем проверка команд? И, вместо
    Код:
    new userid = GetEventInt(event, "userid");
        new client = GetClientOfUserId(userid);
    сделать
    Код:
    new client = GetClientOfUserId(GetEventInt(event, "userid"));
     
    Черная вдова нравится это.