Sancezz063

Старт лут

Вопрос

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

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


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

39 ответов на этот вопрос

выдать на персонажа - createInInventory "classname"

Пример есть в стандартном ините по выдаче бинтов.

Фишка вся в том, что если слот сумки занят уже, предмет выдастся в руки. Если не занят, то на спину сам упадет.

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


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


Как бы еще бинты в слоты одежды или рюкзака положить

Всегда а руках оказываются

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


Ссылка на сообщение
Поделиться на других сайтах
3 часа назад, BorizzK сказал:

Как бы еще бинты в слоты одежды или рюкзака положить

Всегда а руках оказываются

Бинты или тряпка? 

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


Ссылка на сообщение
Поделиться на других сайтах
3 часа назад, BorizzK сказал:

Как бы еще бинты в слоты одежды или рюкзака положить

Всегда а руках оказываются

EntitiAI Item_player = player.CreateInInventory "Alice_Bag";
EntitiAI subItem = Item_player.CreateInInventory "Rag";

ну как-то так это работает, только корреткность классов и кода сверху не гарантирую, по памяти писал. Возможно, перед использованием 2 строки надо Item_player преобразовать в класс ItemBase

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

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


Ссылка на сообщение
Поделиться на других сайтах
4 часа назад, BorizzK сказал:

adler14k Rag

 

Это тряпка, а именно с Rag баг и она всегда берётся в руки. Ждем обновы и фиксов. А так можешь смело брать бинты
Например

		EntityAI bandageEnt;
		ItemBase bandageBs;
		bandageEnt = player.GetInventory().CreateInInventory("BandageDressing");
		bandageBs = ItemBase.Cast(bandageEnt);

Бинт лежит у нас в инверторе 

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

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


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

123new 

 

    itemEnt = player.GetInventory().CreateInInventory("CoyoteBag_Green");
    itemBs = ItemBase.Cast(itemEnt);
    EntityAI subItem = itemEnt.GetInventory().CreateInInventory("Rag");
    itemBs = ItemBase.Cast(subItem);
    itemBs.SetQuantity(6);
 

Лоскуты оказываются в рюкзаке как и положено!

 

вобщем благодарочка!

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


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

BorizzK после

itemEnt = player.GetInventory().CreateInInventory("CoyoteBag_Green");

добавь проверку

if (itemEnt != NULL)
{
	тут все действия
}

 

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


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

123new Это понятно, но itemEnt создается всегда в этом случае

ну а если предполагать, что Богемия опять чтот нахимичила, то тогда проверки надо везде делать

весь код будет из проверок ))))

 

меня вот что взбесило

 

GetGame().GetCallQueue(CALL_CATEGORY_GAMEPLAY).CallLater(MovePlayer, (mov_alt * 1000), false, Player, newPos, finishPos, mov_alt, max_alt);

 

херакс

оказывается тут не передать переменную типа vector

ну не иппануться ли?

 

 

(E): ScriptCallQueue::Call: Incompatible parameter '1', expected 'vector', got 'vector'

(E): ScriptCallQueue::Call: Incompatible parameter '2', expected 'vector', got 'vector'

 

или я что-то не понимаю

 

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


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

123new Ну как бы это я уже понял, что string или 3 параметра float вполне подойдут
Но эти постоянные преобразования и дербан переменных вносят путаницу и тп

Некрасивенько как-то выходит

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


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

BorizzK я думаю про это надо разрабам на их форуме задать вопрос, может быть банально баг или какая-то условность.

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


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

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

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

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

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


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

Войти

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


Войти сейчас