Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в эту темуОткрыть новую тему
> Статы
Llirik
сообщение 17.3.2017, 4:49
Сообщение #1


******

Expert
Сообщений: 681
Регистрация: 5.9.2012
Группа: Пользователи
Наличность: 0
Пользователь №: 15.259



Почему иногда прыгают статы? От чего это зависит? У меня раньше прыгало: 110 90 100 было с 100 100 100, а сейчас всё нормально не прыгает на дефолте. У кого ещё прыгает? Ответьте пожалуйста! Может быть я, когда стою на кладбище они мне понижают стату и растёт, и когда потом на нормале они прыгают. Но почему сейчас не прыгает ничего?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Llirik
сообщение 17.3.2017, 6:56
Сообщение #2


******

Expert
Сообщений: 681
Регистрация: 5.9.2012
Группа: Пользователи
Наличность: 0
Пользователь №: 15.259



И ещё скажите это нормальный StatLock не будет ли с ним где-нибудь бага? А то у меня под утро как всегда башка не варит! )

[FUNCTION statlock]
if <isevent.statlock>
events -statlock
sysmessage StatLock Off!
tag0.lockstr=0
tag0.lockdex=0
tag0.lockint=0
else
tag0.lockstr=<ostr>
tag0.lockdex=<odex>
tag0.lockint=<oint>
events +statlock
sysmessage StatLock On!
endif

[EVENTS statlock]
ON=@EnvironChange
if (<src.ostr> != <src.tag0.lockstr>)
src.ostr=<src.tag0.lockstr>
endif
if (<src.odex> != <src.tag0.lockdex>)
src.odex=<src.tag0.lockdex>
endif
if (<src.oint> != <src.tag0.lockint>)
src.oint=<src.tag0.lockint>
endif
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Многодетный
сообщение 20.3.2017, 2:52
Сообщение #3


*

Registred
Сообщений: 5
Регистрация: 25.2.2017
Группа: Пользователи
Наличность: 0
Пользователь №: 18.357



Вечером проверь! башка будыт работать?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Llirik
сообщение 22.3.2017, 22:55
Сообщение #4


******

Expert
Сообщений: 681
Регистрация: 5.9.2012
Группа: Пользователи
Наличность: 0
Пользователь №: 15.259



А причина неудачи я вам сейчас расскажу почему. У меня были статы 100 100 100! Я одел например кольцо силы +5 получается 105 100 100 = 305, а STATSUM=300 вот он понижает DEX или INT, чтобы получилось STATSUM=300. Попробуйте, если хотите поставьте 101 101 101 будет потом 101 99 100 = 300 или 101 98 101 = 300, или 102 100 98 и т.д.! Понятно объяснил? Правильно?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Llirik
сообщение 22.3.2017, 23:12
Сообщение #5


******

Expert
Сообщений: 681
Регистрация: 5.9.2012
Группа: Пользователи
Наличность: 0
Пользователь №: 15.259



Как я понимаю OverSkillMultiply=0 надо поставить в Sphere.ini, чтобы ничего не прыгало потом, если я хочу кольцо силы +5 (например) или не переполнять ostr, odex, oint никогда?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Llirik
сообщение 23.3.2017, 0:55
Сообщение #6


******

Expert
Сообщений: 681
Регистрация: 5.9.2012
Группа: Пользователи
Наличность: 0
Пользователь №: 15.259



Последний вопрос (нубовский), как мне в клиенте понизить статы т.е. надо поставить галку вниз на статах, чтобы мне потом поставить там замок? Т.е. если будет 102 98 100 и 102, как мне понизить? Чтобы на 100 поставить замок и 98 докачать до 100, и тоже замок! Как сбить статы специально?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
d`ArcZeal
сообщение 23.3.2017, 10:22
Сообщение #7


**********

Elder
Сообщений: 2.962
Регистрация: 27.11.2005
Группа: Пользователи
Наличность: 7867
Пользователь №: 4.522
Возраст: 34



Цитата(Llirik @ 23.3.2017, 0:12) *

Как я понимаю OverSkillMultiply=0 надо поставить в Sphere.ini

Чтобы статы не прыгали, надо копаться в настройках сферы. Это исправляется именно там, а не скриптом. Где именно конкретно не помню, но возможно именно через OverSkillMultiply=0.

Изменение статов игровыми предметами рекомендую делать именно через сам параметр, без MODSTR, OSTR.

К примеру на самом предмете таг:
Код

[ITEMDEF I_PHANTOM_HEART_DAE_R]
ID=I_PLATEMAIL_CHEST
NAME=Phantom daemon chest
ARMOR=82

ON=@CREATE
TAG.STATID=Str
TAG.STATBONUS=12


Эвент на персонаже:
Код

[EVENTS E_EVENT_ON_PLAYER]
ON=@ITEMEQUIP
IF (<ACT.TAG0.STATBONUS> > 0)
SRC.<ACT.TAG0.STATID>=<EVAL (<SRC.<ACT.TAG0.STATID>>+<ACT.TAG0.STATBONUS>)>
    IF <SRC.ISPLAYER>
    SRC.SYSMESSAGE @0487 {+<ACT.DTAG0.STATBONUS> <ACT.TAG0.STATID>}
    ENDIF
ENDIF

ON=@ITEMUNEQUIP
IF !(<ACT.DTAG0.STATBONUS>==0)
SRC.<ACT.TAG0.STATID>=<EVAL <SRC.<ACT.TAG0.STATID>>+-<ACT.TAG0.STATBONUS>>
    IF <SRC.ISPLAYER>
    SRC.SYSMESSAGE @0487 {-<ACT.DTAG0.STATBONUS> <ACT.TAG0.STATID>}
    ENDIF
ENDIF


--------------------
Olmer online administrator
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Llirik
сообщение 23.3.2017, 14:54
Сообщение #8


******

Expert
Сообщений: 681
Регистрация: 5.9.2012
Группа: Пользователи
Наличность: 0
Пользователь №: 15.259



Цитата(d`ArcZeal @ 23.3.2017, 10:22) *

Чтобы статы не прыгали, надо копаться в настройках сферы. Это исправляется именно там, а не скриптом. Где именно конкретно не помню, но возможно именно через OverSkillMultiply=0.

Изменение статов игровыми предметами рекомендую делать именно через сам параметр, без MODSTR, OSTR.

К примеру на самом предмете таг:
Код

[ITEMDEF I_PHANTOM_HEART_DAE_R]
ID=I_PLATEMAIL_CHEST
NAME=Phantom daemon chest
ARMOR=82

ON=@CREATE
TAG.STATID=Str
TAG.STATBONUS=12


Эвент на персонаже:
Код

[EVENTS E_EVENT_ON_PLAYER]
ON=@ITEMEQUIP
IF (<ACT.TAG0.STATBONUS> > 0)
SRC.<ACT.TAG0.STATID>=<EVAL (<SRC.<ACT.TAG0.STATID>>+<ACT.TAG0.STATBONUS>)>
    IF <SRC.ISPLAYER>
    SRC.SYSMESSAGE @0487 {+<ACT.DTAG0.STATBONUS> <ACT.TAG0.STATID>}
    ENDIF
ENDIF

ON=@ITEMUNEQUIP
IF !(<ACT.DTAG0.STATBONUS>==0)
SRC.<ACT.TAG0.STATID>=<EVAL <SRC.<ACT.TAG0.STATID>>+-<ACT.TAG0.STATBONUS>>
    IF <SRC.ISPLAYER>
    SRC.SYSMESSAGE @0487 {-<ACT.DTAG0.STATBONUS> <ACT.TAG0.STATID>}
    ENDIF
ENDIF



А в сфере нет этого тага?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
d`ArcZeal
сообщение 23.3.2017, 15:28
Сообщение #9


**********

Elder
Сообщений: 2.962
Регистрация: 27.11.2005
Группа: Пользователи
Наличность: 7867
Пользователь №: 4.522
Возраст: 34



> А в сфере нет этого тага?
Нету. Как хочешь, так TAG и называй.


--------------------
Olmer online administrator
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Llirik
сообщение 24.3.2017, 15:38
Сообщение #10


******

Expert
Сообщений: 681
Регистрация: 5.9.2012
Группа: Пользователи
Наличность: 0
Пользователь №: 15.259



Цитата(d`ArcZeal @ 23.3.2017, 15:28) *

> А в сфере нет этого тага?
Нету. Как хочешь, так TAG и называй.

Я понял. Слушай не в службу, а в дружбу расскажи пожалуйста про MODSTR подробнее. Что это такое? Как им юзать? Чем отличается от другого? Я ведь сюда учиться пришёл! (IMG:style_emoticons/default/smile.gif)
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
kklej
сообщение 25.3.2017, 20:13
Сообщение #11


******

Группа: Пользователи
Наличность: 14776
Пользователь №: 13.346



кадата мне тож надо было, что то на подобии. порылся и нашёл.
тут если тебя ударяют, то понижаетца сила, ловкость и инта. мож поможет:

Код

[events e_wounds_combat]
on=@statchange
//say change! <ARGN1>
IF (<ARGN1>==0)||(<ARGN1>==2)||(<ARGN1>==8)||(<ARGN1>==10)
timerf 0 fixmaxstam
ENDIF

on=@regenstat
IF (<LOCAL.STATID>==0)
LOCAL.POH=<eval ((<HITS> + <local.Value>)*100)/<MAXHITS>> //HP as a % of MAXHITS

//STR

LOCAL.HBSTR = <eval (<OSTR>*<local.POH>)/100>
IF !(<tag.HBSTR>==<LOCAL.HBSTR>)
MODSTR=<eval (<MODSTR> + (<local.hbstr>-<TAG.HBSTR>))>
TAG.HBSTR=<LOCAL.HBSTR>
ENDIF

//DEX
LOCAL.HBDEX = <eval (<ODEX>*<local.POH>)/100>
IF !(<tag.HBDEX>==<LOCAL.HBDEX>)
MODDEX=<eval (<MODDEX> + (<local.hbdex>-<TAG.HBDEX>))>
TAG.HBDEX=<LOCAL.HBDEX>
ENDIF

//INT
LOCAL.HBINT = <eval (<OINT>*<local.POH>)/100>
IF !(<tag.HBINT>==<LOCAL.HBINT>)
MODINT=<eval (<MODINT> + (<local.hbint>-<TAG.HBINT>))>
TAG.HBINT=<LOCAL.HBINT>
ENDIF
WAKECHECK
ENDIF

on=@gethit
IF (<FLAGS> & statf_stone)
RETURN 1
ENDIF

LOCAL.POH=<eval ((<HITS> - <argn1>)*100)/<MAXHITS>> //HP as a % of MAXHITS

//STR
LOCAL.HBSTR = <eval (<OSTR>*<local.POH>)/100>
IF !(<tag.HBSTR>==<LOCAL.HBSTR>)
MODSTR=<eval (<MODSTR> - (<TAG.HBSTR>-<local.hbstr>))>
TAG.HBSTR=<LOCAL.HBSTR>
ENDIF

//DEX
LOCAL.HBDEX = <eval (<ODEX>*<local.POH>)/100>
IF !(<tag.HBDEX>==<LOCAL.HBDEX>)
MODDEX=<eval (<MODDEX> - (<TAG.HBDEX>-<local.hbdex>))>
TAG.HBDEX=<LOCAL.HBDEX>
ENDIF

//INT
LOCAL.HBINT = <eval (<OINT>*<local.POH>)/100>
IF !(<tag.HBINT>==<LOCAL.HBINT>)
MODINT=<eval (<MODINT> - (<TAG.HBINT>-<local.hbint>))>
TAG.HBINT=<LOCAL.HBINT>
ENDIF

Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Llirik
сообщение 25.3.2017, 22:51
Сообщение #12


******

Expert
Сообщений: 681
Регистрация: 5.9.2012
Группа: Пользователи
Наличность: 0
Пользователь №: 15.259



Это очень сильное колдунство! (IMG:style_emoticons/default/smile.gif) А нельзя ли сделать так? Ведь у сферы есть кроме OSTR - MSTR, который прибавляется и понижается от магии +14 или -14 (например) ну вот просто ради примера сделать его +100 и оставить? Или это и есть MODSTR = MSTR?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

Ответить в эту темуОткрыть новую тему
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия | Версия для КПК Сейчас: 29.3.2024, 15:25
Designed by Nickostyle