Помощь - Поиск - Пользователи - Календарь
Полная версия: Камушки При Мининге
UoKit.com Форумы > Ultima Online : Dev > Sphere Server > Архив готовых скриптов
d`ArcZeal
Изображение
Создание камней в местах где были раскопки. Удобно для отображения, где уже выло вскопано.

1- Добавляем код в mr_ руд:
Код

on=@ResourceFound
IF (<SRC.action> == SKILL_MINING)
SERV.NEWITEM {i_special_mining_rock_1 1 i_special_mining_rock_2 1 i_special_mining_rock_3 1 i_special_mining_rock_4 1 i_special_mining_rock_5 1 i_special_mining_rock_6 1 i_special_mining_rock_7 1 i_special_mining_rock_8 1 i_special_mining_rock_9 1}
NEW.P=<ARGO.P>
NEW.TIMER=60*60*2
ENDIF


Пример:
Код

[REGIONRESOURCE mr_dull_copper]
SKILL=27.5,67.5
AMOUNT=3,7
REAP=i_ore_dull_copper
REGEN=60*60*2

on=@ResourceFound
IF (<SRC.action> == SKILL_MINING)
SERV.NEWITEM {i_special_mining_rock_1 1 i_special_mining_rock_2 1 i_special_mining_rock_3 1 i_special_mining_rock_4 1 i_special_mining_rock_5 1 i_special_mining_rock_6 1 i_special_mining_rock_7 1 i_special_mining_rock_8 1 i_special_mining_rock_9 1}
NEW.P=<ARGO.P>
NEW.TIMER=60*60*2
ENDIF


2- Прописываем сами глыбы:
Код

[ITEMDEF i_special_mining_rock_1]
ID=6001
NAME=Rock
TYPE=t_script

ON=@Create
ATTR=attr_decay|attr_move_never
COLOR=0415

ON=@CLICK
RETURN 1

ON=@DLICK
RETURN 1

ON=@TIMER
REMOVE
RETURN 1

[ITEMDEF i_special_mining_rock_2]
ID=6003
NAME=Rock
TYPE=t_script

ON=@Create
ATTR=attr_decay|attr_move_never
COLOR=0415

ON=@CLICK
RETURN 1

ON=@DLICK
RETURN 1

ON=@TIMER
REMOVE
RETURN 1

[ITEMDEF i_special_mining_rock_3]
ID=6004
NAME=Rock
TYPE=t_script

ON=@Create
ATTR=attr_decay|attr_move_never
COLOR=0415

ON=@CLICK
RETURN 1

ON=@DLICK
RETURN 1

ON=@TIMER
REMOVE
RETURN 1

[ITEMDEF i_special_mining_rock_4]
ID=6005
NAME=Rock
TYPE=t_script

ON=@Create
ATTR=attr_decay|attr_move_never
COLOR=0415

ON=@CLICK
RETURN 1

ON=@DLICK
RETURN 1

ON=@TIMER
REMOVE
RETURN 1

[ITEMDEF i_special_mining_rock_5]
ID=6007
NAME=Rock
TYPE=t_script

ON=@Create
ATTR=attr_decay|attr_move_never
COLOR=0415

ON=@CLICK
RETURN 1

ON=@DLICK
RETURN 1

ON=@TIMER
REMOVE
RETURN 1

[ITEMDEF i_special_mining_rock_6]
ID=6008
NAME=Rock
TYPE=t_script

ON=@Create
ATTR=attr_decay|attr_move_never
COLOR=0415

ON=@CLICK
RETURN 1

ON=@DLICK
RETURN 1

ON=@TIMER
REMOVE
RETURN 1

[ITEMDEF i_special_mining_rock_7]
ID=6009
NAME=Rock
TYPE=t_script

ON=@Create
ATTR=attr_decay|attr_move_never
COLOR=0415

ON=@CLICK
RETURN 1

ON=@DLICK
RETURN 1

ON=@TIMER
REMOVE
RETURN 1

[ITEMDEF i_special_mining_rock_8]
ID=6011
NAME=Rock
TYPE=t_script

ON=@Create
ATTR=attr_decay|attr_move_never
COLOR=0415

ON=@CLICK
RETURN 1

ON=@DLICK
RETURN 1

ON=@TIMER
REMOVE
RETURN 1

[ITEMDEF i_special_mining_rock_9]
ID=6012
NAME=Rock
TYPE=t_script

ON=@Create
ATTR=attr_decay|attr_move_never
COLOR=0415

ON=@CLICK
RETURN 1

ON=@DLICK
RETURN 1

ON=@TIMER
REMOVE
RETURN 1

[EOF]
Mirage
небольшой вопрос - Если чар обкапывает вокруг себя площадку то он не сможет выйти из каменной ловушки?
2010
Цитата(Mirage @ 27.10.2010, 23:41) *

небольшой вопрос - Если чар обкапывает вокруг себя площадку то он не сможет выйти из каменной ловушки?

biggrin.gif
лучше тогда цвет земли менять на более темный, чем камушки smile.gif
d`ArcZeal
Цитата(Mirage @ 28.10.2010, 0:41) *

небольшой вопрос - Если чар обкапывает вокруг себя площадку то он не сможет выйти из каменной ловушки?

Все зависит от Вашей таилдаты. Если эти камни у Вас НЕ проходимы то замените на проходимые или отредактировать таилдату.
Breaker
Можно ещё к этому чучуть модифицировать тем что ниже, и при копке углов шахт, они будут рости и увеличиваться в размерах, актуально только для динамических шахт, таких которые не находяться в статике игры biggrin.gif

Код

[FUNCTION RockMineTileMix]
LOCAL.UID=<UID>
FORITEMS 0
IF (<LOCAL.UID>!=<UID>)
    REMOVE
ENDIF
LOCAL.N += 1
ENDFOR
RETURN <dLOCAL.N>


Код

[REGIONRESOURCE mr_iron]
SKILL=0.0,100.0
AMOUNT=12,16
REAP=i_ore_iron
REGEN=60*60*2

ON=@ResourceFound
//SRC.SYSMESSAGE @33 Terrain: <SERV.MAP(<ARGO.P.X>,<ARGO.P.Y>).TERRAIN>
//SRC.SYSMESSAGE @33 Static: <SERV.MAP(<ARGO.P.X>,<ARGO.P.Y>).STATICS(0).ID> [<SERV.MAP(<ARGO.P.X>,<ARGO.P.Y>).STATICS(0).TYPE>]
//SRC.SYSMESSAGE @33 ItemID: <SRC.TARG.DispID>
IF !(<SRC.TARG.DispID>)
ELIF (<SRC.TARG.DispID>==0540)
   SERV.NEWITEM={053c 1 053d 1 053e 1 053f 1}
   NEW.P=<SRC.TARG.P>
   NEW.UPDATE
   SRC.TARG.MOVE SE
   NEW.RockMineTileMix

   SERV.NEWITEM=0547
   NEW.P=<SRC.TARG.P>
   NEW.MOVE W
   IF (<NEW.RockMineTileMix> >= 2)
      NEW.REMOVE
      SERV.NEWITEM={053c 1 053d 1 053e 1 053f 1}
      NEW.P=<SRC.TARG.P>
      NEW.MOVE W
   ENDIF
   NEW.ATTR=08010

   SERV.NEWITEM=0548
   NEW.P=<SRC.TARG.P>
   NEW.MOVE N
   IF (<NEW.RockMineTileMix> >= 2)
      NEW.REMOVE
      SERV.NEWITEM={053c 1 053d 1 053e 1 053f 1}
      NEW.P=<SRC.TARG.P>
      NEW.MOVE N
   ENDIF
   NEW.ATTR=08010

ELIF (<SRC.TARG.DispID>==0547)
   SERV.NEWITEM={053c 1 053d 1 053e 1 053f 1}
   NEW.P=<SRC.TARG.P>
   NEW.UPDATE
   SRC.TARG.MOVE SW
   NEW.RockMineTileMix

   SERV.NEWITEM=0540
   NEW.P=<SRC.TARG.P>
   NEW.MOVE E
   IF (<NEW.RockMineTileMix> >= 2)
      NEW.REMOVE
      SERV.NEWITEM={053c 1 053d 1 053e 1 053f 1}
      NEW.P=<SRC.TARG.P>
      NEW.MOVE E
   ENDIF
   NEW.ATTR=08010

   SERV.NEWITEM=0549
   NEW.P=<SRC.TARG.P>
   NEW.MOVE N
   IF (<NEW.RockMineTileMix> >= 2)
      NEW.REMOVE
      SERV.NEWITEM={053c 1 053d 1 053e 1 053f 1}
      NEW.P=<SRC.TARG.P>
      NEW.MOVE N
   ENDIF
   NEW.ATTR=08010

ELIF (<SRC.TARG.DispID>==0548)
   SERV.NEWITEM={053c 1 053d 1 053e 1 053f 1}
   NEW.P=<SRC.TARG.P>
   NEW.UPDATE
   SRC.TARG.MOVE NE
   NEW.RockMineTileMix

   SERV.NEWITEM=0540
   NEW.P=<SRC.TARG.P>
   NEW.MOVE S
   IF (<NEW.RockMineTileMix> >= 2)
      NEW.REMOVE
      SERV.NEWITEM={053c 1 053d 1 053e 1 053f 1}
      NEW.P=<SRC.TARG.P>
      NEW.MOVE S
   ENDIF
   NEW.ATTR=08010

   SERV.NEWITEM=0549
   NEW.P=<SRC.TARG.P>
   NEW.MOVE W
   IF (<NEW.RockMineTileMix> >= 2)
      NEW.REMOVE
      SERV.NEWITEM={053c 1 053d 1 053e 1 053f 1}
      NEW.P=<SRC.TARG.P>
      NEW.MOVE W
   ENDIF
   NEW.ATTR=08010

ELIF (<SRC.TARG.DispID>==0549)
   SERV.NEWITEM={053c 1 053d 1 053e 1 053f 1}
   NEW.P=<SRC.TARG.P>
   NEW.UPDATE
   SRC.TARG.MOVE NW
   NEW.RockMineTileMix

   SERV.NEWITEM=0547
   NEW.P=<SRC.TARG.P>
   NEW.MOVE S
   IF (<NEW.RockMineTileMix> >= 2)
      NEW.REMOVE
      SERV.NEWITEM={053c 1 053d 1 053e 1 053f 1}
      NEW.P=<SRC.TARG.P>
      NEW.MOVE S
   ENDIF
   NEW.ATTR=08010

   SERV.NEWITEM=0548
   NEW.P=<SRC.TARG.P>
   NEW.MOVE E
   IF (<NEW.RockMineTileMix> >= 2)
      NEW.REMOVE
      SERV.NEWITEM={053c 1 053d 1 053e 1 053f 1}
      NEW.P=<SRC.TARG.P>
      NEW.MOVE E
   ENDIF
   NEW.ATTR=08010
ENDIF
d`ArcZeal
А вот как сделать чтобы камни появлялись ТОЛЬКО когда руда в тайле закончилась?
Breaker
при ON=@ResourceFound
AGRO - предмет world gembit который хранит в себе в
MORE1 - mr_тип ресурса
AMOUNT - кол-во

SRC.TARG.UID - предмет которую капает игрок если земля\вода не является статикой или частью карты игры.

вот через AGRO.AMOUNT и проверяй =)
типа если AMOUNT = 0 или меньше минимума то и .... ляля
d`ArcZeal
Но ON=@ResourceFound срабатывает единожды, когда ресурс найден. Но когда он его уже копает, выкапывает, тригера такого не знаю.
Breaker
Ну тогда мож что то типа такого
Код

[SKILL 45]
DEFNAME=Skill_Mining
KEY=Mining
TITLE=Miner
FLAGS=SKF_NOMINDIST
PROMPT_MSG=Where would you like to mine?
...
...


ON=@Success
SERV.NEWITEM={01771 1 01772 1 01773 1 01774 1 01775 1 01776 1 01777 1 01778 1}
NEW.ATTR=00090 // attr_move_never|attr_invis
NEW.P=<TARGP>
NEW.MakeMineRocks

[FUNCTION MakeMineRocks]
REF66=<UID>
FORITEMS 0
IF (<BaseID>==i_worldgem_bit) && (<TYPE>==t_rock)
    IF (<LINK>==04fffffff)
       LINK=<REF66>
       REF66.ATTR=attr_decay
       REF66.TIMER=<TIMER>
       REF66.UPDATE
       RETURN 1
    ENDIF
ENDIF
ENDFOR
REMOVE
solidol
я думал ты Лёша совсем забил на УО )
Breaker
Цитата(solidol @ 14.11.2010, 0:00) *

я думал ты Лёша совсем забил на УО )

Забил, но так что то помню =) и иногда помогаю, но это не значит что я опять что то буду делать biggrin.gif
Я щас вообще играю в WoW на оффе, и мне на всё посрать smile.gif
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.
Русская версия Invision Power Board © 2001-2024 Invision Power Services, Inc.