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

Проблемка со скриптом...


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

Вот собственно скрипт:

 

begin EK_BonusMagicPoint

short varMagicka
short varBonus
short varEnchant
short varDestruction
short varAlteration
short varIllusion
short varConjuration
short varMysticism
short varRestoration
short varIntelligence
short varWillpower

if ( varEnchant != Player->GetEnchant )
 Player->GetMagicka, varMagicka
 Player->GetIntelligence, varIntelligence
 Player->GetWillpower, varWillpower
  set varBonus to ((varIntelligence\20)+(varWillpower\30))
  SetMagicka, varMagicka+varBonus
  MessageBox, "Предел магической энергии увеличин на %varBonus", varBonus
  Player->GetEnchant, Enchant
endif

if ( varDestruction != Player->GetDestruction )
 Player->GetMagicka, varMagicka
 Player->GetIntelligence, varIntelligence
 Player->GetWillpower, varWillpower
  set varBonus to ((varIntelligence\20)+(varWillpower\30))
  SetMagicka, varMagicka+varBonus
  MessageBox, "Предел магической энергии увеличин на %varBonus", varBonus
  Player->GetDestruction, Destruction
endif

if ( varAlteration != Player->GetAlteration )
 Player->GetMagicka, varMagicka
 Player->GetIntelligence, varIntelligence
 Player->GetWillpower, varWillpower
  set varBonus to ((varIntelligence\20)+(varWillpower\30))
  SetMagicka, varMagicka+varBonus
  MessageBox, "Предел магической энергии увеличин на %varBonus", varBonus
  Player->GetAlteration, Alteration
endif

if ( varIllusion != Player->GetIllusion )
 Player->GetMagicka, varMagicka
 Player->GetIntelligence, varIntelligence
 Player->GetWillpower, varWillpower
  set varBonus to ((varIntelligence\20)+(varWillpower\30))
  SetMagicka, varMagicka+varBonus
  MessageBox, "Предел магической энергии увеличин на %varBonus", varBonus
  Player->GetIllusion, Illusion
endif

if ( varConjuration != Player->GetConjuration )
 Player->GetMagicka, varMagicka
 Player->GetIntelligence, varIntelligence
 Player->GetWillpower, varWillpower
  set varBonus to ((varIntelligence\20)+(varWillpower\30))
  SetMagicka, varMagicka+varBonus
  MessageBox, "Предел магической энергии увеличин на %varBonus", varBonus
  Player->GetConjuration, Conjuration
endif

if ( varMysticism != Player->GetMysticism )
 Player->GetMagicka, varMagicka
 Player->GetIntelligence, varIntelligence
 Player->GetWillpower, varWillpower
  set varBonus to ((varIntelligence\20)+(varWillpower\30))
  SetMagicka, varMagicka+varBonus
  MessageBox, "Предел магической энергии увеличин на %varBonus", varBonus
  Player->GetMysticism, Mysticism
endif

if ( varRestoration != Player->GetRestoration )
 Player->GetMagicka, varMagicka
 Player->GetIntelligence, varIntelligence
 Player->GetWillpower, varWillpower
  set varBonus to ((varIntelligence\20)+(varWillpower\30))
  SetMagicka, varMagicka+varBonus
  MessageBox, "Предел магической энергии увеличин на %varBonus", varBonus
  Player->GetRestoration, Restoration
endif
end;Окончательный конец. =)

;((varIntelligence\20)-(20)mod(varIntelligence)+(varWillpower\30)-(30)mod(varWillpower))

 

Хотелос бьi узнать гdе ошибки... Принимаю все ответьi кроме "в DНК" =)

Объяснят что оно dелает наdо?

Во первьiх я так и не понял как скриптьi врубат - сунул в Старт Скрипт. В результате, почему то скрипт вьiполняется постоянно, не смотря на условия и бонусов не dает. :unsure:

Вот, ну и еще парочк:

1)Существует ли dействие "mod" или как отцепить dробньiй хвост... или его вобщпе можно оставить? Само округлится.

2)ГетСтат возвращает параметр свой или вместе с бонусами\минусами, если с бонусами, то как просчитать реальньiй. Вобще, может есть более простой способ? Но как привязать скрипт к повьiшению навьiка я не понял. =(

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

Уважаемые модеры, разве этой теме здесь место?

2 Equilibrium Keeper Про то, что скрипт исполняется все время, читай MSFD! Нет Комманды StopScript!

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

Уважаемый lost81, психически здоровые люди ночью спят, а не пялятся в монитор в ожидании того, когда какой-нибудь нуб заделает тему там где не следует.

Перенесено.

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

Темный темный лес. Тихий ужос. :1anim_ag:

 

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

begin EK_BonusMagicPoint

short varBonus
short varEnchant
short varDestruction
short varAlteration
short varIllusion
short varConjuration
short varMysticism
short varRestoration
short varIntelligence
short varWillpower
short doonce
short curEnchant 
short curDestruction
short curAlteration
short curIllusion
short curConjuration
short curMysticism
short curRestoration
short curIntelligence
short curWillpower

Set curEnchant to ( Player -> GetEnchant )
Set curDestruction to ( Player -> GetDestruction )
Set curAlteration to ( Player -> GetAlteration )
Set curIllusion to ( Player -> GetIllusion )
Set curConjuration to ( Player -> GetConjuration )
Set curMysticism to ( Player -> GetMysticism )
Set curRestoration to ( Player -> GetRestoration )

Set curIntelligence to ( Player -> GetIntelligence )
Set curWillpower to ( Player -> GetWillpower )

Set varBonus to ( ( curIntelligence / 20 ) + ( curWillpower / 30 ) )

if ( doonce == 0 )
Set varEnchant to ( Player -> GetEnchant )
Set varDestruction to ( Player -> GetDestruction )
Set varAlteration to ( Player -> GetAlteration )
Set varIllusion to ( Player -> GetIllusion )
Set varConjuration to ( Player -> GetConjuration )
Set varMysticism to ( Player -> GetMysticism )
Set varRestoration to ( Player -> GetRestoration )
Set doonce to 1
endif

if ( varEnchant != curEnchant )
Player -> ModMagicka, varBonus
MessageBox, "Предел магической энергии увеличен на %varBonus", varBonus
Set varEnchant to curEnchant
endif

if ( varDestruction != curDestruction )
Player -> ModMagicka, varBonus
MessageBox, "Предел магической энергии увеличен на %varBonus", varBonus
Set varDestruction to curDestruction
endif

if ( varAlteration != curAlteration )
Player -> ModMagicka, varBonus
MessageBox, "Предел магической энергии увеличен на %varBonus", varBonus
Set varAlteration to curAlteration
endif

if ( varIllusion != curIllusion )
Player -> ModMagicka, varBonus
MessageBox, "Предел магической энергии увеличен на %varBonus", varBonus
Set varIllusion to curIllusion
endif

if ( varConjuration != curConjuration )
Player -> ModMagicka, varBonus
MessageBox, "Предел магической энергии увеличен на %varBonus", varBonus
Set varConjuration to curConjuration
endif

if ( varMysticism != curMysticism )
Player -> ModMagicka, varBonus
MessageBox, "Предел магической энергии увеличен на %varBonus", varBonus
Set varMysticism to curMysticism
endif

if ( varRestoration != curRestoration )
Player -> ModMagicka, varBonus
MessageBox, "Предел магической энергии увеличен на %varBonus", varBonus
Set varRestoration to curRestoration
endif

End

 

На самом деле значения навыков float, но заданный тип переменных short по идее автоматически округлит все.

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

lost81

Меня посьiлают вот сюdа при попьiтке учебничек скачат реклама на форуме запрещена, читай правилаerror.fullrest.net/404.html =) Есть рабочая ссьiлка?

 

MorfiX

Это наезd? =D

Извиняюсь, не заметил разdел... :unsure:

 

LonWolf

Огромное спасибо! Счаз попробую. =)

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

Уважаемый lost81, психически здоровые люди ночью спят, а не пялятся в монитор в ожидании того, когда какой-нибудь нуб заделает тему там где не следует.

Перенесено.

 

:) похвально! ;)

2 Equilibrium Keeper Да есть... здесь

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

Предела магической энергии, как отдельной самостоятельной величины, не существует.

Есть значение интеллекта, коэффициент отношения интеллекта к мане и

эффект увеличения количества маны на N пунктов.

Таким образом предел маны пересчитывается при изменении одной из этих величин, и затея не так проста, как кажется на первый взгляд.

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

  • 4 месяца спустя...

Вот отрезок скрипта:

 

elseif ( state == 3 )

messagebox "Well, why don't you tell me about yourself? I already know you're brave and resourceful, but how did you get started adventuring in Vvardenfel?" "I came here

aboard a prisonship." "Can we cut the smalltalk?

I just want to get some sleep."

set state to 5

 

При компиляции выдает, что соманды "aboard" не существует, но скрипт в игре работает, а мне этот "messagebox" надо перевести на русский и естно перекомпилить.

А если всё сделать в одну строчку, то и в игре будет в одну строчку и весь текст не влезет. Просто вставится середина, а начало и конец вижно не будет.

В игре он работает без ошибок.

Мож придумка какая есть на этот счёт?

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

Мож придумка какая есть на этот счёт?

Переведи, а затем сохрани скрипт в esp любым альтернативным редактором, например MWEdit

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

LonWolf

Попробую. Но если без компилирования, то в игре используются старые скрипты(и где она их выковыривает?) и пишется ошибка, но уже в новом скрипте.

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

Там есть какой-то хитрый прием с тем, что нужно в шестнадцатеричном редакторе вставить символ перевода каретки... Большего, к сожалению, не помню.
Ссылка на комментарий
Поделиться на другие сайты

Аха... Вот оно:

 

Можно добавлять символы «возврат каретки» в сообщения, но это требует редактирования esp. Добавьте какие-нибудь необычные символы вроде || и сохраняйте esp. Затем откройте шестнадцатеричный редактор и замените || на 0D0A (код для возврата каретки).

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

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

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

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

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

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

Войти

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

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

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