На мининг и Лумбер...
Код
[DEFNAME min_mr]
// ----- ORES --------
min_mr_iron 0.1
min_mr_bronze 50.0
min_mr_silver 60.0
min_mr_golden 70.0
min_mr_snow 75.0
min_mr_scorpion 80.0
min_mr_diamond 80.0
min_mr_crystal 85.0
min_mr_predator 90.0
min_mr_mythril 95.0
min_mr_acid 100.0
min_mr_steel 102.0
min_mr_blackrock 103.0
min_mr_sandrock 104.0
min_mr_platinum 105.0
// ----- LOGS --------
min_mr_log 0.1
min_mr_oak 50.0
min_mr_stonewood 60.0
min_mr_pilon 70.0
min_mr_coldtree 75.0
min_mr_sand 80.0
min_mr_elvin 85.0
min_mr_frost 90.0
min_mr_avalon 95.0
min_mr_toxic 100.0
min_mr_crinyte 101.0
min_mr_darkwood 102.0
[EVENTS e_skill_lumber_mining]
ON=@ITEMDCLICK
IF ((<SRC.ACTION>==SKILL_LUMBERJACK) || (<SRC.ACTION>==44))
IF (<ACT.DispID>!=i_hatchet)
ACTION=-1
ELSE
SRC.SYSMESSAGE You must wait to perform another action
RETURN 1
ENDIF
ENDIF
IF ((<SRC.ACTION>==SKILL_MINING) || (<SRC.ACTION>==45))
IF ((<DispID>==i_pickaxe) || (<DispID>==i_shovel))
SRC.ACTION=-1
ELSE
SRC.SYSMESSAGE You must wait to perform another action
RETURN 1
ENDIF
ENDIF
// -------------------- Return info of target resource -------------------------
[FUNCTION resource_targon_ground]
SRC.NEWITEM=i_resprobe
SRC.ACT.P=<SRC.TARGP>
SRC.ACT.MOREP=<SRC.P>
IF (<SRC.ACT.DISTANCE> > 2)
SRC.SYSMESSAGE You are too far away.
SRC.ACT.REMOVE
RETURN 1
ENDIF
IF (!<SRC.ACT.CANSEELOS> )
SRC.SYSMESSAGE You can't get there.
SRC.ACT.REMOVE
RETURN 1
ENDIF
SRC.ACT.ATTR = <SRC.ACT.ATTR>|ATTR_INVIS
SRC.ACT.EQUIP
SRC.EVENTS +e_probe
SRC.P=<SRC.TARGP>
// -------------------------- Resource Checker ---------------------------------
[EVENTS e_probe] // here, SRC.ACT is the item being stepped on - the spawn
ON=@ITEMSTEP
IF (0)
ELSEIF (<SRC.ACT.TYPE>==t_rock) // <- Mining
ELSEIF (<SRC.ACT.TYPE>==t_tree) // <- Lumberjacking
ELSEIF (<SRC.ACT.TYPE>==t_water) // <- Fishing
ELSE
RETURN 0
ENDIF
SRC.EVENTS -e_probe
SRC.TAG.PROBE = <SRC.ACT.UID>
SRC.P=<SRC.FINDID(i_resprobe).MOREP>
SRC.FINDID(i_resprobe).REMOVE
IF (<SRC.IsGM> )
SRC.SYSMESSAGE You Action: <SRC.ACTION>
SRC.SYSMESSAGE Resource: <SRC.ACT.TYPE>
SRC.SYSMESSAGE Name: <SRC.ACT.MORE1>
SRC.SYSMESSAGE Amount: <SRC.ACT.AMOUNT>
ENDIF
IF (<SRC.ACTION>==-1)
RETURN 1
ENDIF
IF (0)
ELSEIF (<SRC.ACT.TYPE>==t_rock)
// ---------------------------- Set Ore Color ----------------------------------
IF (0)
ELSEIF (<SRC.ACT.MORE1> == mr_bronze)
SRC.ACT.COLOR=color_bronze
ELSEIF (<SRC.ACT.MORE1> == mr_silver)
SRC.ACT.COLOR=color_silver
ELSEIF (<SRC.ACT.MORE1> == mr_gold)
SRC.ACT.COLOR=color_gold
ELSEIF (<SRC.ACT.MORE1> == mr_snow)
SRC.ACT.COLOR=color_snow
ELSEIF (<SRC.ACT.MORE1> == mr_scorpion)
SRC.ACT.COLOR=color_scorpion
ELSEIF (<SRC.ACT.MORE1> == mr_diamond)
SRC.ACT.COLOR=color_diamond
ELSEIF (<SRC.ACT.MORE1> == mr_crystal)
SRC.ACT.COLOR=color_crystal
ELSEIF (<SRC.ACT.MORE1> == mr_predator)
SRC.ACT.COLOR=color_predator
ELSEIF (<SRC.ACT.MORE1> == mr_mythril)
SRC.ACT.COLOR=color_mythril
ELSEIF (<SRC.ACT.MORE1> == mr_acid)
SRC.ACT.COLOR=color_acid
ELSEIF (<SRC.ACT.MORE1> == mr_steel)
SRC.ACT.COLOR=color_steel
ELSEIF (<SRC.ACT.MORE1> == mr_blackrock)
SRC.ACT.COLOR=color_blackrock
ELSEIF (<SRC.ACT.MORE1> == mr_sandrock)
SRC.ACT.COLOR=color_sandrock
ELSE
SRC.ACT.COLOR=0
ENDIF
// ----------------------- Check Mining Resources ------------------------------
IF (0)
ELSEIF ((<SRC.ACT.MORE1> == mr_iron) && (<src.mining> < min_mr_iron))
ELSEIF ((<SRC.ACT.MORE1> == mr_bronze) && (<src.mining> < min_mr_bronze))
ELSEIF ((<SRC.ACT.MORE1> == mr_silver) && (<src.mining> < min_mr_silver))
ELSEIF ((<SRC.ACT.MORE1> == mr_gold) && (<src.mining> < min_mr_golden))
ELSEIF ((<SRC.ACT.MORE1> == mr_snow) && (<src.mining> < min_mr_snow))
ELSEIF ((<SRC.ACT.MORE1> == mr_scorpion) && (<src.mining> < min_mr_scorpion))
ELSEIF ((<SRC.ACT.MORE1> == mr_diamond) && (<src.mining> < min_mr_diamond))
ELSEIF ((<SRC.ACT.MORE1> == mr_crystal) && (<src.mining> < min_mr_crystal))
ELSEIF ((<SRC.ACT.MORE1> == mr_predator) && (<src.mining> < min_mr_predator))
ELSEIF ((<SRC.ACT.MORE1> == mr_mythril) && (<src.mining> < min_mr_mythril))
ELSEIF ((<SRC.ACT.MORE1> == mr_acid) && (<src.mining> < min_mr_acid))
ELSEIF ((<SRC.ACT.MORE1> == mr_steel) && (<src.mining> < min_mr_steel))
ELSEIF ((<SRC.ACT.MORE1> == mr_blackrock) && (<src.mining> < min_mr_blackrock))
ELSEIF ((<SRC.ACT.MORE1> == mr_sandrock) && (<src.mining> < min_mr_sandrock))
ELSEIF ((<SRC.ACT.MORE1> == mr_nothing))
ELSEIF (<SRC.ACT.AMOUNT> == 0)
ELSE
RETURN 0
ENDIF
SRC.ACT.MORE1=mr_iron
RETURN 0
// -------------------- Check Lumberjacking Resources --------------------------
ELSEIF (<SRC.ACT.TYPE>==t_tree)
IF (0)
ELSEIF (<src.lumberjacking> >= min_mr_oak) && (RAND(5)=1)
SRC.NEWITEM=i_log_oak
SRC.ACT.AMOUNT={1 3}
IF (<SRC.IsGM> )
SRC.SYSMESSAGE Bonus <SRC.ACT.NAME> logs jacked.
ENDIF
SRC.ACT.BOUNCE
ELSEIF (<src.lumberjacking> >= min_mr_stonewood) && (RAND(10)=1)
SRC.NEWITEM=i_log_stonewood
SRC.ACT.AMOUNT={1 3}
IF (<SRC.IsGM> )
SRC.SYSMESSAGE Bonus <SRC.ACT.NAME> logs jacked.
ENDIF
SRC.ACT.BOUNCE
ELSEIF (<src.lumberjacking> >= min_mr_pilon) && (RAND(15)=1)
SRC.NEWITEM=i_log_pilon
SRC.ACT.AMOUNT={1 3}
IF (<SRC.IsGM> )
SRC.SYSMESSAGE Bonus <SRC.ACT.NAME> logs jacked.
ENDIF
SRC.ACT.BOUNCE
ELSEIF (<src.lumberjacking> >= min_mr_coldtree) && (RAND(20)=1)
SRC.NEWITEM=i_log_coldtree
SRC.ACT.AMOUNT={1 3}
IF (<SRC.IsGM> )
SRC.SYSMESSAGE Bonus <SRC.ACT.NAME> logs jacked.
ENDIF
SRC.ACT.BOUNCE
ELSEIF (<src.lumberjacking> >= min_mr_sand) && (RAND(25)=1)
SRC.NEWITEM=i_log_sand
SRC.ACT.AMOUNT={1 3}
IF (<SRC.IsGM> )
SRC.SYSMESSAGE Bonus <SRC.ACT.NAME> logs jacked.
ENDIF
SRC.ACT.BOUNCE
ELSEIF (<src.lumberjacking> >= min_mr_elvin) && (RAND(30)=1)
SRC.NEWITEM=i_log_elvin
SRC.ACT.AMOUNT={1 3}
IF (<SRC.IsGM> )
SRC.SYSMESSAGE Bonus <SRC.ACT.NAME> logs jacked.
ENDIF
SRC.ACT.BOUNCE
ELSEIF (<src.lumberjacking> >= min_mr_frost) && (RAND(35)=1)
SRC.NEWITEM=i_log_frost
SRC.ACT.AMOUNT={1 3}
IF (<SRC.IsGM> )
SRC.SYSMESSAGE Bonus <SRC.ACT.NAME> logs jacked.
ENDIF
SRC.ACT.BOUNCE
ELSEIF (<src.lumberjacking> >= min_mr_avalon) && (RAND(40)=1)
SRC.NEWITEM=i_log_avalon
SRC.ACT.AMOUNT={1 2}
IF (<SRC.IsGM> )
SRC.SYSMESSAGE Bonus <SRC.ACT.NAME> logs jacked.
ENDIF
SRC.ACT.BOUNCE
ELSEIF (<src.lumberjacking> >= min_mr_toxic) && (RAND(45)=1)
SRC.NEWITEM=i_log_toxic
SRC.ACT.AMOUNT={1 2}
IF (<SRC.IsGM> )
SRC.SYSMESSAGE Bonus <SRC.ACT.NAME> logs jacked.
ENDIF
SRC.ACT.BOUNCE
ELSEIF (<src.lumberjacking> >= min_mr_crinyte) && (RAND(50)=1)
SRC.NEWITEM=i_log_crinyte
SRC.ACT.AMOUNT={1 2}
IF (<SRC.IsGM> )
SRC.SYSMESSAGE Bonus <SRC.ACT.NAME> logs jacked.
ENDIF
SRC.ACT.BOUNCE
ELSEIF (<src.lumberjacking> >= min_mr_darkwood) && (RAND(60)=1)
SRC.NEWITEM=i_log_darkwood
SRC.ACT.AMOUNT=1
IF (<SRC.IsGM> )
SRC.SYSMESSAGE Bonus <SRC.ACT.NAME> logs jacked.
ENDIF
SRC.ACT.BOUNCE
ELSE
IF (<SRC.IsGM> )
SRC.SYSMESSAGE Nothing bonus logs not jacked.
ENDIF
ENDIF
RETURN 0
ELSEIF (<SRC.ACT.TYPE>==t_water)
RETURN 0
ENDIF
RETURN 0
// ------------------------ Resource Item Indeficator --------------------------
[ITEMDEF i_resprobe]
ID=i_memory
TYPE=t_eq_script
LAYER=layer_special
ON=@Create
TIMER=0 // Change this place to "1" if script not working!!!
MORE2=0
ATTR=attr_move_never
ON=@Timer
IF ((<CONT.ACTION> != -1) && (<MORE2> == 0))
MORE2=1
TIMER=1
RETURN 1
ENDIF
CONT.P=<MOREP>
CONT.UPDATE
REMOVE
RETURN 1
// ----------------------------- Pickaxe FIX -----------------------------------
[ITEMDEF 0e85]
DEFNAME=i_pickaxe
TYPE=T_WEAPON_MACE_PICK
FLIP=1
DAM=2,16
SPEED=40
REQSTR=25
TWOHANDS=N
WEIGHT=2
VALUE={12 15}
SKILLMAKE=TINKERING 42.0, t_tinker_tools
RESOURCES=4 i_ingot_iron
CATEGORY=Provisions - Weapons
SUBSECTION=Axes
DESCRIPTION=PickAxe
DUPELIST=0e86
ON=@Create
HITPOINTS={21 40}
ON=@STEP
SRC.SYSMESSAGE You crash <NAME> by stepping on it.
REMOVE
ON=@TARGON_CHAR
SRC.SYSMESSAGE You can't mine that.
RETURN 1
ON=@TARGON_GROUND
RETURN <resource_targon_ground>
// ----------------------------- Shovel FIX ------------------------------------
[ITEMDEF 0f39]
DEFNAME=i_shovel
TYPE=T_WEAPON_MACE_PICK
FLIP=1
DAM=1,12
WEIGHT=5
VALUE={17 19}
CATEGORY=Items by Professions
SUBSECTION=Miner
DESCRIPTION=Shovel
DUPELIST=0f3a
SKILLMAKE=TINKERING 45.0,t_tinker_tools
RESOURCES=5 i_ingot_iron, 3 i_log
ON=@Create
HITPOINTS={10 20}
ON=@STEP
SRC.SYSMESSAGE You crash <NAME> by stepping on it.
REMOVE
ON=@TARGON_CHAR
SRC.SYSMESSAGE You can't mine that.
RETURN 1
ON=@TARGON_GROUND
RETURN <resource_targon_ground>
// ----------------------------- Hatchet FIX -----------------------------------
[ITEMDEF 0f43] // Hatchet
DEFNAME=i_hatchet
TYPE=T_WEAPON_SWORD
FLIP=1
DAM=10,17
SPEED=55
SKILL=Swordsmanship
REQSTR=15
TWOHANDS=N
WEIGHT=4
VALUE={17 19}
RESOURCES=5 i_ingot_iron, 3 i_log
SKILLMAKE=TINKERING 50.0,t_tinker_tools
CATEGORY=Provisions - Weapons
SUBSECTION=Axes
DESCRIPTION=Hatchet
DUPELIST=0f44
ON=@Create
HITPOINTS={11 40}
ON=@STEP
SRC.SYSMESSAGE You crash <NAME> by stepping on it.
REMOVE
ON=@TARGON_ITEM
SRC.SYSMESSAGE You can't tree that.
RETURN 1
ON=@TARGON_CHAR
SRC.SYSMESSAGE You can't tree that.
RETURN 1
ON=@TARGON_GROUND
IF (<SRC.LUMBERJACKING> < 1000)
IF (<SRC.REGION.FLAGS>==09092) || (<SRC.REGION.FLAGS>&04000)
SRC.SYSMESSAGE Try chopping a tree not here.
RETURN 1
ENDIF
ENDIF
RETURN <resource_targon_ground>