Перейти к публикации
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...
  • Нужна помощь?

    Создайте тему в соответствующем разделе
    Не нужно писать всё в чат!
  • Загляните на торговую площадку

    Там вы можете купить
    всё что касается игровых серверов
  • Не хотите бан?

    Пожалуйста, ознакомьтесь с нашими правилами
    Не нарушайте порядок!
  • Продаёте или покупаете?

    Пользуйтесь услугами гаранта
    Мы сделаем вашу сделку безопасной
  • 0
Tematika

Помогите найти мод

Нужен мод трейдера чтобы открывалось окно трейда по кнопке. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Рекомендованные сообщения

  • 0

Тип в любой точке карты? 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
MagicByte MagicByte MagicByte
  • 0
11.11.2023 в 00:03, Tematika сказал:

@_PIONERда

так есть такое)

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

 

2 часа назад, _PIONER сказал:

так есть такое)

 

Так подскажи пожалуйста)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0
12.11.2023 в 04:16, Tematika сказал:

 

Так подскажи пожалуйста)

В конфиге самого трейдера разве такого нет? 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

@Tematika чтобы открывалось окно трейда по кнопке. Может ясней опишешь или скрин приложишь что именно нужно тебе ?
Как я понимаю по твоим вопросом, есть мод Trader и TraderPlus. Для Trader есть моды WSP-TraderLayout, LayoutTrader, TraderMenu и т.д

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

@Irkutsk86  Он имеет ввиду что при нажатии определенной кнопки игроком появляется меню трейдера (не находясь при этом перед трейдером). Зачем ты ему Layyout (Модифицированные меню) перечисляешь не совсем понятно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

@Tematika  Такого мода не существует, если только сам сделаешь
Вот пример стандартного вызова меню через Action у Trader от Jonesa
 

Скрытый текст

class ActionTrade: ActionInteractBase
{
	void ActionTrade()
	{
		m_CommandUID = DayZPlayerConstants.CMD_ACTIONMOD_INTERACTONCE;
		m_StanceMask = DayZPlayerConstants.STANCEMASK_ERECT | DayZPlayerConstants.STANCEMASK_CROUCH;
		m_HUDCursorIcon = CursorIcons.CloseHood;
	}

    override void CreateConditionComponents()  
	{
		m_ConditionTarget = new CCTObject(10);//CCTMan(10);
		m_ConditionItem = new CCINone;
	}

	override string GetText()
	{
		return "Trade";
	}

	override bool ActionCondition( PlayerBase player, ActionTarget target, ItemBase item )
    {
        if ( GetGame().IsServer() )
            return true;

		if ( player.m_Trader_RecievedAllData == false )
        {            
            player.MessageStatus("[Trader] MISSING TRADER DATA FROM SERVER!");                
            return false;
        }
        
        bool isTraderNPCCharacter = false;

        PlayerBase ntarget = PlayerBase.Cast( target.GetObject() );
        
        if ( ntarget )
            isTraderNPCCharacter = ntarget.m_Trader_IsTrader;

        bool isTraderNPCObject = false;
        for ( int i = 0; i < player.m_Trader_NPCDummyClasses.Count(); i++ )
        {
            if ( target.GetObject().GetType() == player.m_Trader_NPCDummyClasses.Get(i) )
                isTraderNPCObject = true;
        }

        if ( !isTraderNPCCharacter && !isTraderNPCObject )
            return false;

        vector playerPosition = player.GetPosition();

        // only call these after we made sure the client has all trader data loaded!
        int traderUID = getNearbyTraderUID(playerPosition);
        bool canOpenTraderMenu = getCanOpenTraderMenu( playerPosition, traderUID );

        if ( !canOpenTraderMenu )
            return false;

        return true;
    }
    
    override void OnStartClient(ActionData action_data)
    {
        handleTraderMenuOpenRequest();
    }

    void handleTraderMenuOpenRequest()
	{
		PlayerBase player = GetGame().GetPlayer();
		vector playerPosition = player.GetPosition();

		if (player.m_Trader_RecievedAllData == false)
		{			
			player.MessageStatus("[Trader] MISSING TRADER DATA FROM SERVER!");				
			return;
		}

		// only call these after we made sure the client has all trader data loaded!
		int traderUID = getNearbyTraderUID(playerPosition);
		bool canOpenTraderMenu = getCanOpenTraderMenu(playerPosition, traderUID);

		if (!canOpenTraderMenu)
			return;

		openTraderMenu(traderUID);
	}

    bool getCanOpenTraderMenu(vector position, int traderUID)
	{		
		PlayerBase player = GetGame().GetPlayer();
		bool playerIsInSafezoneRange = getIsInSafezoneRange(position);
		
		if (traderUID == -1 && playerIsInSafezoneRange)
		{
			//TraderMessage.PlayerWhite("#tm_no_trader_nearby", player, 5);
			return false;
		}

		if (!playerIsInSafezoneRange)
			return false;	

		return true;
	}

    int getNearbyTraderUID(vector position)
	{
		PlayerBase player = GetGame().GetPlayer();

		for ( int traderUID = 0; traderUID < player.m_Trader_TraderPositions.Count(); traderUID++ )
		{
			if (getIsTraderNearby(position, traderUID))
				return traderUID;
		}

		return -1;
	}

    bool getIsInSafezoneRange(vector position)
	{
		PlayerBase player = GetGame().GetPlayer();

		for ( int traderUID = 0; traderUID < player.m_Trader_TraderPositions.Count(); traderUID++ )
		{
			if (getDistanceToTrader(position, traderUID) <= player.m_Trader_TraderSafezones.Get(traderUID) || getIsTraderNearby(position, traderUID))
				return true;
		}

		return false;
	}

    int getTraderID(int traderUID)
	{
		PlayerBase player = GetGame().GetPlayer();

		return player.m_Trader_TraderIDs.Get(traderUID);
	}

    float getDistanceToTrader(vector position, int traderUID)
	{
		PlayerBase player = GetGame().GetPlayer();

		return vector.Distance(position, player.m_Trader_TraderPositions.Get(traderUID));
	}

    bool getIsTraderNearby(vector position, int traderUID)
	{
		return getDistanceToTrader(position, traderUID) <= 1.7;
	}

    vector getTraderVehicleSpawnPosition(int traderUID)
	{
		PlayerBase player = GetGame().GetPlayer();

		return player.m_Trader_TraderVehicleSpawns.Get(traderUID);
	}

	vector getTraderVehicleSpawnOrientation(int traderUID)
	{
		PlayerBase player = GetGame().GetPlayer();

		return player.m_Trader_TraderVehicleSpawnsOrientation.Get(traderUID);
	}

	void initializeTraderMenu(int traderUID)
	{
		PlayerBase player = GetGame().GetPlayer();

		player.m_TraderMenu = new TraderMenu;
		player.m_TraderMenu.m_TraderID = getTraderID(traderUID);
		player.m_TraderMenu.m_TraderUID = traderUID;
		player.m_TraderMenu.m_TraderVehicleSpawn = getTraderVehicleSpawnPosition(traderUID);
		player.m_TraderMenu.m_TraderVehicleSpawnOrientation = getTraderVehicleSpawnOrientation(traderUID);
		player.m_TraderMenu.m_buySellTime = player.m_Trader_BuySellTimer;
		player.m_TraderMenu.Init();
	}

	void openTraderMenu(int traderUID)
	{
        PlayerBase player = GetGame().GetPlayer();

		if ( g_Game.GetUIManager().GetMenu() == NULL )
		{					
			initializeTraderMenu(traderUID);

			GetGame().GetUIManager().ShowScriptedMenu( player.m_TraderMenu, NULL );
		}
	}
}

 


Советую обратить внимание на void openTraderMenu(int traderUID)
И уже через него завязывать на какую то кнопку вызов этой функции

Изменено пользователем alex_good_kaban (история изменений)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
  • 0

@alex_good_kaban Хоть один понимает китайский язык , а то многие не поняли

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

×
×
  • Создать...

Важная информация

Используя этот сайт, вы автоматически обязуетесь соблюдать наши Правила и Политика конфиденциальности.
Чтобы сделать этот веб-сайт лучше, мы разместили cookies на вашем устройстве. Вы можете изменить свои настройки cookies, в противном случае мы будем считать, что вы согласны с этим.

Поддержка