да не, можно удобнее..Стандартно нет, только через костыли, расширение констант или айваров..
func int g_itemValue (var C_NPC npc, var C_ITEM itm, var int price)
{
// цена на топоры у торбена выше средней в 5 раз
if (b_NpcIsTorben(npc) && b_ItemIsAxe(itm))
{
price *= 5;
};
// если мы помогли торбену, он сделает для нас скидку
if (b_NpcIsTorben(npc) && b_PlayerHelpedTorben())
{
price /= 2;
};
return price;
};
Да, тоже вариант.да не, можно удобнее..
да ну, нет, как раз на голых аиварах и константах далеко не уедешь. по сути, описанный выше пример наиболее гибок и прозрачен. в функцию, во время позиционирования фокуса в инвентаре, передаются аргументы трейдера и итема. указанная цена отрезультирует в окно обмена и также отыграет при совершении покупки не меняя стоимость самого товара.Да, тоже вариант.
Хотя с константами и айваринами было бы удобнее, "партянки" расписывать не придется.. имха..
if (self.id == ORC_6215_POKh_Badak.id)
{
vQuant = Npc_HasItems (other, ItSc_TrfGiantBug2);
if (vQuant > 0)
{
CreateInvItems (other, ItSc_TrfGiantBug, vQuant);
Npc_RemoveInvItems(other, ItSc_TrfGiantBug2, vQuant);
};
vQuant = Npc_HasItems (other, ItSc_TrfGiantRat2);
if (vQuant > 0)
{
CreateInvItems (other, ItSc_TrfGiantRat, vQuant);
Npc_RemoveInvItems(other, ItSc_TrfGiantRat2, vQuant);
};
vQuant = Npc_HasItems (other, ItSc_Firebolt2);
if (vQuant > 0)
{
CreateInvItems (other, ItSc_Firebolt, vQuant);
Npc_RemoveInvItems(other, ItSc_Firebolt2, vQuant);
};
vQuant = Npc_HasItems (other, ItSc_PalLight2);
if (vQuant > 0)
{
CreateInvItems (other, ItSc_PalLight, vQuant);
Npc_RemoveInvItems(other, ItSc_PalLight2, vQuant);
};
vQuant = Npc_HasItems (other, ItSc_TrfScavenger2);
if (vQuant > 0)
{
CreateInvItems (other, ItSc_TrfScavenger, vQuant);
Npc_RemoveInvItems(other, ItSc_TrfScavenger2, vQuant);
};
//----------------------------------------
vQuant = Npc_HasItems (self, ItSc_TrfGiantRat);
if (vQuant > 0)
{
CreateInvItems (self, ItSc_TrfGiantBug2, vQuant);
Npc_RemoveInvItems(self, ItSc_TrfGiantBug, vQuant);
};
vQuant = Npc_HasItems (self, ItSc_TrfGiantRat);
if (vQuant > 0)
{
CreateInvItems (self, ItSc_TrfGiantRat2, vQuant);
Npc_RemoveInvItems(self, ItSc_TrfGiantRat, vQuant);
};
vQuant = Npc_HasItems (self, ItSc_Firebolt);
if (vQuant > 0)
{
CreateInvItems (self, ItSc_Firebolt2, vQuant);
Npc_RemoveInvItems(self, ItSc_Firebolt, vQuant);
};
vQuant = Npc_HasItems (self, ItSc_PalLight);
if (vQuant > 0)
{
CreateInvItems (self, ItSc_PalLight2, vQuant);
Npc_RemoveInvItems(self, ItSc_PalLight, vQuant);
};
vQuant = Npc_HasItems (self, ItSc_TrfScavenger);
if (vQuant > 0)
{
CreateInvItems (self, ItSc_TrfScavenger2, vQuant);
Npc_RemoveInvItems(self, ItSc_TrfScavenger, vQuant);
};
};
А зачем в Спейсере то это делать? Вешай в циклическую функцию для теста измерение расстояния до нужного вея (с выводом на экран), запускай игру, ходи вокруг него в игре и смотри, какие значения нужно прописать в скриптах.Часто приходится отслеживать событие по Npc_GetDistToWP.
А зачем в Спейсере то это делать? Вешай в циклическую функцию для теста измерение расстояния до нужного вея (с выводом на экран), запускай игру, ходи вокруг него в игре и смотри, какие значения нужно прописать в скриптах.
В Спейсере невозможно получить достаточную точность. По своему опыту знаю, что иногда важен каждый метр или даже полметра. Да и насчёт "быстрее" не согласен. Не так это.Со спейсером быстрее получается.
Всем привет. Такой вопрос. В Г2 при включенном марвине если нажать на F9 то игра остановится, а если после этого нажать F6, то можно будет перемещаться по всему миру. В Г1 при F9 можно только вращать камеру, но не перемещаться. Что за это отвечает? И можно ли сделать так, что бы и в Г1 при F9 можно было вот так летать камерой? Или тут уже надо совсем в дебри лезть?(
И еще - возможно ли изменить стартовую точку? (имею ввиду ту точку, на которой появляется камера при загрузки карты в Спейсер) В игре код goto pos перемещает именно сюда.
Для указания места вставки ГГ в локацию при старте игры существует специальный объект. Как-то типа START_POINT он называется. Если такого объекта нет, то игра, вероятно, начнётся в точке с нулевой координатой.И еще - возможно ли изменить стартовую точку? (имею ввиду ту точку, на которой появляется камера при загрузки карты в Спейсер) В игре код goto pos перемещает именно сюда.
А что насчет камер на F9 и F6 (при марвине)?