Можете помочь отредактировать плагин для left 4 dead 2?

Тема в разделе "Запросы", создана пользователем Алексей Кашура, 21 янв 2014.

  1. Алексей Кашура

    Алексей Кашура

    Сообщения:
    15
    Симпатии:
    1
    Здравствуйте народ! Нужна ваша помощь с плагином Мне нужно заставить этот плагин сохранять выбранный персонаж каждого игрока на протяжении всей кампании.


    Код:
    #pragma semicolon 1
    #include <sourcemod>
    #include <sdktools>
    
    new String:current_map[55];
    
    public OnPluginStart()
    {
        RegConsoleCmd("sm_rochelle", Command_model);
        RegConsoleCmd("sm_coach", Command_model);
        RegConsoleCmd("sm_nick", Command_model);
        RegConsoleCmd("sm_ellis", Command_model);
        RegConsoleCmd("sm_zoey", Command_model);
        RegConsoleCmd("sm_francis", Command_model);
        RegConsoleCmd("sm_louis", Command_model);
        RegConsoleCmd("sm_bill", Command_model);
    }
    
    public OnMapStart()
    {
        GetCurrentMap(current_map, sizeof(current_map));
        
        CheckPrecacheModel("models/survivors/survivor_gambler.mdl");
        CheckPrecacheModel("models/survivors/survivor_manager.mdl");
        CheckPrecacheModel("models/survivors/survivor_coach.mdl");
        CheckPrecacheModel("models/survivors/survivor_producer.mdl");
        CheckPrecacheModel("models/survivors/survivor_teenangst.mdl");
        CheckPrecacheModel("models/survivors/survivor_biker.mdl");
        CheckPrecacheModel("models/survivors/survivor_namvet.mdl");
        CheckPrecacheModel("models/survivors/survivor_mechanic.mdl");
    }
    
    public Action:Command_model(client, args)
    {
        if (!client || !IsClientInGame(client))
            return Plugin_Continue;
    
        decl String:model[256];
        GetCmdArg(0, model, sizeof(model));
        
        ReplaceString(model, sizeof(model), "sm_", "", false);
    
        if (client)
        {
            if (GetClientTeam(client) == 2)
            {            
                if (L4DMaps() == 2)
                {
                    if (StrEqual(model, "nick"))
                    {
                        SetEntProp(client, Prop_Send, "m_survivorCharacter", 0);
                        SetEntityModel(client, "models/survivors/survivor_gambler.mdl");
                    }
                    else if (StrEqual(model, "rochelle"))
                    {
                        SetEntProp(client, Prop_Send, "m_survivorCharacter", 1);
                        SetEntityModel(client, "models/survivors/survivor_producer.mdl");
                    }
                    else if (StrEqual(model, "coach"))
                    {
                        SetEntProp(client, Prop_Send, "m_survivorCharacter", 2);
                        SetEntityModel(client, "models/survivors/survivor_coach.mdl");
                    }
                    else if (StrEqual(model, "ellis"))
                    {
                        SetEntProp(client, Prop_Send, "m_survivorCharacter", 3);
                        SetEntityModel(client, "models/survivors/survivor_mechanic.mdl");
                    }
                    else
                    {
                        PrintToChat(client, "\x05Changing the skin \x04%s\x05 on this map disabled", model);
                        return Plugin_Continue;
                    }
                }
                else if (L4DMaps() == 1)
                {
                    if (StrEqual(model, "bill"))
                    {
                        SetEntProp(client, Prop_Send, "m_survivorCharacter", 0);
                        SetEntityModel(client, "models/survivors/survivor_namvet.mdl");
                    }
                    else if (StrEqual(model, "zoey"))
                    {
                        SetEntProp(client, Prop_Send, "m_survivorCharacter", 1);
                        SetEntityModel(client, "models/survivors/survivor_teenangst.mdl");
                    }
                    else if (StrEqual(model, "louis"))
                    {
                        SetEntProp(client, Prop_Send, "m_survivorCharacter", 2);
                        SetEntityModel(client, "models/survivors/survivor_manager.mdl");
                    }
                    else if (StrEqual(model, "francis"))
                    {
                        SetEntProp(client, Prop_Send, "m_survivorCharacter", 3);
                        SetEntityModel(client, "models/survivors/survivor_biker.mdl");
                    }
                    else
                    {
                        PrintToChat(client, "\x05Changing the skin \x04%s\x05 on this map disabled", model);
                        return Plugin_Continue;
                    }
                }
                else
                {
                    PrintToChat(client, "\x05Changing the skin \x04%s\x05 on this map disabled", model);
                    return Plugin_Continue;
                }
                
                PrintToChat(client, "\x05Current skin is replaced by the skin \x04%s", model);
            }
        }
        return Plugin_Continue;
    }
    
    L4DMaps()
    {
        if ((StrContains(current_map, "c7m") != -1) || (StrContains(current_map, "c8m") != -1) || (StrContains(current_map, "c9m") != -1) || (StrContains(current_map, "c10m") != -1) || (StrContains(current_map, "c11m") != -1) || (StrContains(current_map, "c12m", false) != -1)) 
            return 1;
            
        if ((StrContains(current_map, "c1m") != -1) || (StrContains(current_map, "c2m") != -1) || (StrContains(current_map, "c3m") != -1) || (StrContains(current_map, "c4m") != -1) || (StrContains(current_map, "c5m") != -1) || (StrContains(current_map, "c6m", false) != -1) || (StrContains(current_map, "c13m", false) != -1)) 
            return 2;
        
        return 0;
    }
    
    public CheckPrecacheModel(String:Model[])
    {
        if (!IsModelPrecached(Model)) 
        {
            PrecacheModel(Model);
        }
    }
    Буду очень благодарен, если поможете…
     
  2. TolikCorp

    TolikCorp

    Сообщения:
    855
    Симпатии:
    271
    Если писал ты, то вот тебе подсказка:
    делаем массив выбора игрока, типа player_choice[client]=0 - не выбирать модель. 1 2 3 4 - в соответствии с моделью.
    И далее: хукаем событие респавн, и делаем:
    if(player_choice[client]==0){принт ВЫ МОЖЕТЕ ВЫБРАТЬ МОДЕЛЬ}
    else if(player_choice[client]==1){MODEL}
    else if(player_choice[client]==2){MODEL}
    else if(player_choice[client]==3){MODEL}
    else if(player_choice[client]==4){MODEL}
    Или кейсом аналогично.

    Добавлено через 5 минут
    Мда.
    http://forums.alliedmods.net/showthread.php?p=2089083
     
    Последнее редактирование: 21 янв 2014
  3. Алексей Кашура

    Алексей Кашура

    Сообщения:
    15
    Симпатии:
    1
    это не я писал но я использую данный плагин. Спасибо что подсказали!