Перейти к содержанию

Определение ведущих характеристик


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

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

 

Идея очень просто реализуется, если мы знаем пол. Необходимо всего навсего получить разницу эталонных характеристик игрока и определить, которые из них имеют дополнительные 10 пунктов

 

Я решил завести на каждую из характеристик глобал, так как в дальнейшем это гораздо упрощает проверки. Однако если вы не хотите этого делать, по какой-то причине, то можно завести всего 2, в каждой из которых будет хранится номер нужной характеристики

 

begin _oz_Main_Characteristics

short PC_Strength
short PC_Intelligence
short PC_Willpower
short PC_Agility
short PC_Speed
short PC_Endurance
short PC_Personal
short PC_Luck

Set PC_Strength to ( Player->GetStrength )
Set PC_Intelligence to ( Player->GetIntelligence )
Set PC_Willpower to ( Player->GetWillpower )
Set PC_Agility to ( Player->GetAgility )
Set PC_Speed to ( Player->GetSpeed )
Set PC_Endurance to ( Player->GetEndurance )
Set PC_Personal to ( Player->GetPersonality )
Set PC_Luck to ( Player->GetLuck )

if ( Player -> GetRace "Argonian" == 1 )
;Получим чистые значения характеристик
if ( PC_Sex == 1 )
Set PC_Strength to ( PC_Strength - 35 )
Set PC_Intelligence to ( PC_Intelligence - 35 )
Set PC_Willpower to ( PC_Willpower - 25  )
Set PC_Agility to ( PC_Agility - 35 )
Set PC_Speed to ( PC_Speed - 45 )
Set PC_Endurance to ( PC_Endurance - 40 )
Set PC_Personality to ( PC_Personality - 20 )
Set PC_Luck to ( PC_Luck - 40 )
elseif ( PC_Sex == 2 )
Set PC_Strength to ( PC_Strength - 25 )
Set PC_Intelligence to ( PC_Intelligence - 30 )
Set PC_Willpower to ( PC_Willpower - 30  )
Set PC_Agility to ( PC_Agility - 40 )
Set PC_Speed to ( PC_Speed - 40 )
Set PC_Endurance to ( PC_Endurance - 45 )
Set PC_Personality to ( PC_Personality - 25 )
Set PC_Luck to ( PC_Luck - 40 )
endif

elseif ( Player -> GetRace "Breton" == 1 )
;Получим чистые значения характеристик
if ( PC_Sex == 1 )
Set PC_Strength to ( PC_Strength - 45 )
Set PC_Intelligence to ( PC_Intelligence - 35 )
Set PC_Willpower to ( PC_Willpower - 45  )
Set PC_Agility to ( PC_Agility - 20 )
Set PC_Speed to ( PC_Speed - 30 )
Set PC_Endurance to ( PC_Endurance - 25 )
Set PC_Personality to ( PC_Personality - 35 )
Set PC_Luck to ( PC_Luck - 40 )
elseif ( PC_Sex == 2 )
Set PC_Strength to ( PC_Strength - 35 )
Set PC_Intelligence to ( PC_Intelligence - 30 )
Set PC_Willpower to ( PC_Willpower - 50  )
Set PC_Agility to ( PC_Agility - 25 )
Set PC_Speed to ( PC_Speed - 25 )
Set PC_Endurance to ( PC_Endurance - 30 )
Set PC_Personality to ( PC_Personality - 40 )
Set PC_Luck to ( PC_Luck - 40 )
endif

elseif ( Player -> GetRace "Dark Elf" == 1 )
;Получим чистые значения характеристик
if ( PC_Sex == 1 )
Set PC_Strength to ( PC_Strength - 40 )
Set PC_Intelligence to ( PC_Intelligence - 45 )
Set PC_Willpower to ( PC_Willpower - 30  )
Set PC_Agility to ( PC_Agility - 35 )
Set PC_Speed to ( PC_Speed - 35 )
Set PC_Endurance to ( PC_Endurance - 20 )
Set PC_Personality to ( PC_Personality - 30 )
Set PC_Luck to ( PC_Luck - 40 )
elseif ( PC_Sex == 2 )
Set PC_Strength to ( PC_Strength - 30 )
Set PC_Intelligence to ( PC_Intelligence - 40 )
Set PC_Willpower to ( PC_Willpower - 35  )
Set PC_Agility to ( PC_Agility - 40 )
Set PC_Speed to ( PC_Speed - 30 )
Set PC_Endurance to ( PC_Endurance - 25 )
Set PC_Personality to ( PC_Personality - 35 )
Set PC_Luck to ( PC_Luck - 40 )
endif

elseif ( Player -> GetRace "High Elf" == 1 )
;Получим чистые значения характеристик
if ( PC_Sex == 1 )
Set PC_Strength to ( PC_Strength - 35 )
Set PC_Intelligence to ( PC_Intelligence - 50 )
Set PC_Willpower to ( PC_Willpower - 35  )
Set PC_Agility to ( PC_Agility - 35 )
Set PC_Speed to ( PC_Speed - 30 )
Set PC_Endurance to ( PC_Endurance - 20 )
Set PC_Personality to ( PC_Personality - 30 )
Set PC_Luck to ( PC_Luck - 40 )
elseif ( PC_Sex == 2 )
Set PC_Strength to ( PC_Strength - 25 )
Set PC_Intelligence to ( PC_Intelligence - 45 )
Set PC_Willpower to ( PC_Willpower - 40  )
Set PC_Agility to ( PC_Agility - 40 )
Set PC_Speed to ( PC_Speed - 25 )
Set PC_Endurance to ( PC_Endurance - 25 )
Set PC_Personality to ( PC_Personality - 35 )
Set PC_Luck to ( PC_Luck - 40 )
endif

elseif ( Player -> GetRace "Imperial" == 1 )
;Получим чистые значения характеристик
if ( PC_Sex == 1 )
Set PC_Strength to ( PC_Strength - 40 )
Set PC_Intelligence to ( PC_Intelligence - 35 )
Set PC_Willpower to ( PC_Willpower - 30  )
Set PC_Agility to ( PC_Agility - 30 )
Set PC_Speed to ( PC_Speed - 25 )
Set PC_Endurance to ( PC_Endurance - 40 )
Set PC_Personality to ( PC_Personality - 35 )
Set PC_Luck to ( PC_Luck - 40 )
elseif ( PC_Sex == 2 )
Set PC_Strength to ( PC_Strength - 30 )
Set PC_Intelligence to ( PC_Intelligence - 30 )
Set PC_Willpower to ( PC_Willpower - 35  )
Set PC_Agility to ( PC_Agility - 35 )
Set PC_Speed to ( PC_Speed - 20 )
Set PC_Endurance to ( PC_Endurance - 45 )
Set PC_Personality to ( PC_Personality - 40 )
Set PC_Luck to ( PC_Luck - 40 )
endif

elseif ( Player -> GetRace "Khajiit" == 1 )
;Получим чистые значения характеристик
if ( PC_Sex == 1 )
Set PC_Strength to ( PC_Strength - 35 )
Set PC_Intelligence to ( PC_Intelligence - 30 )
Set PC_Willpower to ( PC_Willpower - 20  )
Set PC_Agility to ( PC_Agility - 45 )
Set PC_Speed to ( PC_Speed - 45 )
Set PC_Endurance to ( PC_Endurance - 40 )
Set PC_Personality to ( PC_Personality - 20 )
Set PC_Luck to ( PC_Luck - 40 )
elseif ( PC_Sex == 2 )
Set PC_Strength to ( PC_Strength - 25 )
Set PC_Intelligence to ( PC_Intelligence - 25 )
Set PC_Willpower to ( PC_Willpower - 25  )
Set PC_Agility to ( PC_Agility - 50 )
Set PC_Speed to ( PC_Speed - 40 )
Set PC_Endurance to ( PC_Endurance - 45 )
Set PC_Personality to ( PC_Personality - 25 )
Set PC_Luck to ( PC_Luck - 40 )
endif

elseif ( Player -> GetRace "Nord" == 1 )
;Получим чистые значения характеристик
if ( PC_Sex == 1 )
Set PC_Strength to ( PC_Strength - 50 )
Set PC_Intelligence to ( PC_Intelligence - 25 )
Set PC_Willpower to ( PC_Willpower - 30  )
Set PC_Agility to ( PC_Agility - 30 )
Set PC_Speed to ( PC_Speed - 35 )
Set PC_Endurance to ( PC_Endurance - 40 )
Set PC_Personality to ( PC_Personality - 25 )
Set PC_Luck to ( PC_Luck - 40 )
elseif ( PC_Sex == 2 )
Set PC_Strength to ( PC_Strength - 40 )
Set PC_Intelligence to ( PC_Intelligence - 20 )
Set PC_Willpower to ( PC_Willpower - 35  )
Set PC_Agility to ( PC_Agility - 35 )
Set PC_Speed to ( PC_Speed - 30 )
Set PC_Endurance to ( PC_Endurance - 45 )
Set PC_Personality to ( PC_Personality - 30 )
Set PC_Luck to ( PC_Luck - 40 )
endif

elseif ( Player -> GetRace "Orc" == 1 )
;Получим чистые значения характеристик
if ( PC_Sex == 1 )
Set PC_Strength to ( PC_Strength - 45 )
Set PC_Intelligence to ( PC_Intelligence - 30 )
Set PC_Willpower to ( PC_Willpower - 25  )
Set PC_Agility to ( PC_Agility - 25 )
Set PC_Speed to ( PC_Speed - 40 )
Set PC_Endurance to ( PC_Endurance - 45 )
Set PC_Personality to ( PC_Personality - 25 )
Set PC_Luck to ( PC_Luck - 40 )
elseif ( PC_Sex == 2 )
Set PC_Strength to ( PC_Strength - 35 )
Set PC_Intelligence to ( PC_Intelligence - 25 )
Set PC_Willpower to ( PC_Willpower - 30  )
Set PC_Agility to ( PC_Agility - 30 )
Set PC_Speed to ( PC_Speed - 35 )
Set PC_Endurance to ( PC_Endurance - 50 )
Set PC_Personality to ( PC_Personality - 30 )
Set PC_Luck to ( PC_Luck - 40 )
endif

elseif ( Player -> GetRace "Redguard" == 1 )
;Получим чистые значения характеристик
if ( PC_Sex == 1 )
Set PC_Strength to ( PC_Strength - 40 )
Set PC_Intelligence to ( PC_Intelligence - 25 )
Set PC_Willpower to ( PC_Willpower - 30  )
Set PC_Agility to ( PC_Agility - 30 )
Set PC_Speed to ( PC_Speed - 45 )
Set PC_Endurance to ( PC_Endurance - 35 )
Set PC_Personality to ( PC_Personality - 30 )
Set PC_Luck to ( PC_Luck - 40 )
elseif ( PC_Sex == 2 )
Set PC_Strength to ( PC_Strength - 30 )
Set PC_Intelligence to ( PC_Intelligence - 20 )
Set PC_Willpower to ( PC_Willpower - 35  )
Set PC_Agility to ( PC_Agility - 35 )
Set PC_Speed to ( PC_Speed - 40 )
Set PC_Endurance to ( PC_Endurance - 40 )
Set PC_Personality to ( PC_Personality - 35 )
Set PC_Luck to ( PC_Luck - 40 )
endif

elseif ( Player -> GetRace "Wood Elf" == 1 )
;Получим чистые значения характеристик
if ( PC_Sex == 1 )
Set PC_Strength to ( PC_Strength - 35 )
Set PC_Intelligence to ( PC_Intelligence - 35 )
Set PC_Willpower to ( PC_Willpower - 25  )
Set PC_Agility to ( PC_Agility - 45 )
Set PC_Speed to ( PC_Speed - 40 )
Set PC_Endurance to ( PC_Endurance - 25 )
Set PC_Personality to ( PC_Personality - 30 )
Set PC_Luck to ( PC_Luck - 40 )
elseif ( PC_Sex == 2 )
Set PC_Strength to ( PC_Strength - 25 )
Set PC_Intelligence to ( PC_Intelligence - 25 )
Set PC_Willpower to ( PC_Willpower - 35  )
Set PC_Agility to ( PC_Agility - 50 )
Set PC_Speed to ( PC_Speed - 35 )
Set PC_Endurance to ( PC_Endurance - 30 )
Set PC_Personality to ( PC_Personality - 35 )
Set PC_Luck to ( PC_Luck - 40 )
endif

endif

;Получим профильные навыки
if ( PC_Strength == 10 )
Set PC_Strength to ( 1 )
endif
if ( PC_Intelligence == 10 )
Set PC_Main_Intelligence to ( 1 )
endif
if ( PC_Willpower == 10 )
Set PC_Main_Willpower to ( 1 )
endif
if ( PC_Agility == 10 )
Set PC_Main_Agility to ( 1 )
endif
if ( PC_Speed == 10 )
Set PC_Main_Speed to ( 1 )
endif
if ( PC_Endurance == 10 )
Set PC_Main_Endurance to ( 1 )
endif
if ( PC_Personality == 10 )
Set PC_Main_Personality to ( 1 )
endif
if ( PC_Luck == 10 )
Set PC_Main_Luck to ( 1 )
endif

StopScript "_oz_Main_Characteristics"
End _oz_Main_Characteristics

Изменено пользователем Охотник за Смертью
Ссылка на комментарий
Поделиться на другие сайты

Мб я чего-то не понимаю, но это тоже не рабочий скрипт. Поясню. Я беру аргонианина у которого скорость базовая 50, беру ему доп скорость в классе, получаю 60. Беру знак конь, получаю 85. В твоём скрипте отнимается от скорости 45 ед. получаем 40

if ( PC_Speed == 10 )

Set PC_Main_Speed to ( 1 )

endi

Т.е при значении скорости в 85 единиц она у меня не профильная?

Изменено пользователем Малковианин
Ссылка на комментарий
Поделиться на другие сайты

Мб я чего-то не понимаю, но это тоже не рабочий скрипт. Поясню. Я беру аргонианина у которого скорость базовая 50, беру ему доп скорость в классе, получаю 60. Беру знак конь, получаю 85. В твоём скрипте отнимается от скорости 45 ед. получаем 40

if ( PC_Speed == 10 )

Set PC_Main_Speed to ( 1 )

endi

Т.е при значении скорости в 85 единиц она у меня не профильная?

Я кажется указывал в пояснении, что стартовые параметры могут разниться? Скрипт писался под СХ, там у Аргонианина стартовая скорость 45 и нет бонусов от коня. Впринципе бонусы за коня проверить не трудно ведь

 

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

 

Однако за коня спасибо, нужно будет его учесть

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

Для публикации сообщений создайте учётную запись или авторизуйтесь

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

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...