Не компилируется плагин

Тема в разделе "Программирование / Скриптинг", создана пользователем Hejter, 23 июн 2014.

  1. Hejter

    Hejter Mapper Source Engine

    Сообщения:
    1.771
    Симпатии:
    259
    Собственно.

    Код:

    Код:
    public Action:OnPlayerSpawn(Handle:event, const String:name[], bool:dontBroadcast)
    {
        new client = GetClientOfUserId(GetEventInt(event, "userid"));  
    
    	if (client > 0 && args < 1 && IsPlayerAlive(client))
    	{
    		if (g_MyPos[client][0] == 0.0) PrintToChat(client, "\x04Позиция не сохранена");
    		else if (g_BackCount[client] > 2) PrintToChat(client, "\x04Доступно 3 раза за раунд");
    		else
    		{
    			g_BackCount[client]++;
    			TeleportEntity(client, g_MyPos[client], NULL_VECTOR, NULL_VECTOR);
    		}
    	}
    	return Plugin_Handled;
    }
    Ошибка:
    (55) : error 017: undefined symbol "args"

    как создается args?
     
  2. AlmazON

    AlmazON деревянный © yand3xmail

    Сообщения:
    4.590
    Симпатии:
    1.995
    Насколько я знаю, args - это аргументы.
    Например:
    Код:
    public OnPluginStart()
    {
    AddCommandListener(Say, "say");
    }
    
    public Action:Say(client, const String:command[], [B]args[/B])
    {
    ...
    }

    Как видишь выше, для функции обратного вызова Say они могут быть нужны. А у тебя такого в функции нет, не употребляются.
     
    Hejter нравится это.
  3. Hejter

    Hejter Mapper Source Engine

    Сообщения:
    1.771
    Симпатии:
    259
    ага это я уже разобрал, спасибо.
     
  4. AlmazON

    AlmazON деревянный © yand3xmail

    Сообщения:
    4.590
    Симпатии:
    1.995
    Не нужен. Ты хоть знаешь, что этим делаешь в условии? Возможно, твои "аргументы" выглядят иначе.
    IsClientInGame(client) && IsPlayerAlive(client)
    У тебя 3 или более "раза за раунд".
    В конце функции обязателен return Plugin_Continue;
     
    Hejter нравится это.
  5. R1KO

    R1KO Супер-модератор

    Сообщения:
    6.005
    Симпатии:
    2.994
    PHP:
    public OnPlayerSpawn(Handle:event, const String:name[], bool:dontBroadcast)
    {
        new 
    client GetClientOfUserId(GetEventInt(event"userid"));  

        if (
    client && IsPlayerAlive(client))
        {
            if (
    g_MyPos[client][0] == 0.0PrintToChat(client"\x04Позиция не сохранена");
            else if (
    g_BackCount[client] > 2PrintToChat(client"\x04Доступно 3 раза за раунд");
            else
            {
                
    g_BackCount[client]++;
                
    TeleportEntity(clientg_MyPos[client], NULL_VECTORNULL_VECTOR);
            }
        }
    }
     
    Hejter нравится это.
  6. R1KO

    R1KO Супер-модератор

    Сообщения:
    6.005
    Симпатии:
    2.994
    AlmazON, шта?? как??

    Попробуй
    PHP:
    if (client && IsPlayerAlive(client))
     
  7. AlmazON

    AlmazON деревянный © yand3xmail

    Сообщения:
    4.590
    Симпатии:
    1.995
    R1KO,
    PHP:
    if (client && IsClientInGame(client) && IsPlayerAlive(client))
    А клиент всё равно может быть не верен (редко).
     
  8. R1KO

    R1KO Супер-модератор

    Сообщения:
    6.005
    Симпатии:
    2.994
    Оффтоп