UoKit.com Форумы > Ultima Online : Dev > RunUO Server > Вопросы по RunUO
kirill633
Есть несколько вопросов 1) подскажите как сделать к примеру зеленое кольцо арт что бы при выпадении оно рандомно давало к примеру 6,7,8 декс. 2) можно ли как то изменить название города в паблик гейте не трогая клиент?

Или может не менять название а как сделать новую точку я сделал как бы все есть работает но я не знаю как сделать название городу так как там все названия через код

3) как сделать что бы анатомия давала к дэмаге при ударом абилки?

К примеру 100 анатом +1 110 + 5 и 120+20 демаги
Вверх
kirill633
4) что бы на артефакте к примеру на тотеме рандомно выпадало 15 хита и 15 дефа
Вверх
Juzzver
1) Открываешь скрипт, ищешь где там накладывается 8 дексы.
И вместо числа 8, пишешь: Utility.RandomMinMax(6,8);

2) Чтобы писать название городов текстом, а не брать их из клилока, потребуется создать еще один конструктор для класса PMEntry, который в аргументы будет принимать string , вместо int. Т.е.:
Добавляется поле: private string m_CityName;
Добавляется конструктор:

Код
        public PMEntry( Point3D loc, string city )
        {
            m_Location = loc;
            m_CityName = city;
        }

что позволяет тебе делать запись вида:
Код
new PMEntry( new Point3D( 1438, 1687, 20 ), "Britain Bank" ), // сработает твой новый конструктор
new PMEntry( new Point3D( 4467, 1283, 5 ), 1012003 ) // сработает старый конструктор.


3) Анатоми я и так по умолчанию повышает урон. Если делать еще доп. бонуса для абилок, то заходишь в нужные тебе скрипты с абилками, ищешь формулу, которая отвечает за расчет наносимого дамага, плюсуешь к ней анатомию. К примеру: damage = 20 + (from.Skills[SkillName.Anatomy].Value / 20);
Если будет 100 анатомии, то бонус с неё выйдет = 5 доп дамага.

4) В конструкторе тотема пишешь:
Код
if (Utility.RandomBool())
Attributes.AttackChance = 15;
else
Attributes.DefenceChance = 15;

Вверх
kirill633
Большое спасибо все работает но появился ещё вопрос думал смогу сам исходя из 4 вопроса но не вышло можно сделать так к примеру есть декс, стр, инт, деф, хит и сделать так что бы из этих 4 свойств или более рандомно добавлялось 2 или 3
Вверх
Juzzver
Цитата
Большое спасибо все работает но появился ещё вопрос думал смогу сам исходя из 4 вопроса но не вышло можно сделать так к примеру есть декс, стр, инт, деф, хит и сделать так что бы из этих 4 свойств или более рандомно добавлялось 2 или 3


Код
switch(Utility.Random(3))
{
case 0: Attributes.BonusStr = 5; break;
case 1: Attributes.BonusDex = 5; break;
case 2: Attributes.BonusInt = 5; break;
case 3: еще что-то...; break;
}


рандом будет выпадать в диапазоне от 0 до 3, в зависимости от чего будет срабатывать тот или иной кейс с параметрами.
Вверх
kirill633
Спасибо тоже пригодится но это немного не то я имел в веду что бы на вещь из этих свойств добавило сразу два свойства

Спасибо тоже пригодится но это немного не то я имел в веду что бы на вещь из этих свойств добавило сразу два свойства
Вверх
Juzzver
Цитата
Спасибо тоже пригодится но это немного не то я имел в веду что бы на вещь из этих свойств добавило сразу два свойства

Либо так:
Код
if (Utility.RandomBool())
{
Attributes.AttackChance = 15;
Attributes.BonusStr = 5;
}
else
{
Attributes.DefenceChance = 15;
Attributes.BonusStr = 5;
}


Либо так:

Код

switch(Utility.Random(3))
{
case 0:
{
Attributes.BonusStr = 5;
Attributes.BonusDex = 5;
} break;

case 1: { аналогично...  }; break;
case 2: { аналогично...  } break;
case 3: { аналогично...  } break;
}

Вверх
Aimed
кейс 3 при Random(3) не сработает. Сам же пишешь что от 0 и до 3 =), а вот 0 будет срабатывать.

Юззверь, Не лень тебе на такие вопросы отвечать???
Вверх
Juzzver
Цитата
кейс 3 при Random(3) не сработает. Сам же пишешь что от 0 и до 3 =), а вот 0 будет срабатывать.

Да, ты прав, спасибо.
Цитата
Юззверь, Не лень тебе на такие вопросы отвечать???

Других ведь нет
Вверх
Invision Power Board © 2001-2024 Invision Power Services, Inc.
Version for Pocket PC © 2006-2024, IPBest Studio.