Howdy all
just thought i'd add a good mimic (or doppleganger) char that could be interesting to add.
How It Works:
MIMIC:
1. The NPC sees its target and copys the equipment and combat stats.
2. The NPC evaluates if the stats of the character benefits most through either magery or other combat skills through the characters Intelligence. If the intelligence of the character is under 100, It will assume it is a melee character and remove all the intelligence and mana it owns and charges with the users weapon (or just shoots if archer).
3. On death the NPC drops standard loot through a template.
4. Upon Killing an opponent, the Mimic will remove it's transformed tag and become ready to morph again upon seeing a new player. If it doesnt kill and the player leaves, it will retain the form until killing or until death.
DARK MIMIC:
1. The NPC sees its target and copys the equipment, colours them dark and copies combat stats whilst increasing the magery stats by times 4.
2. The NPC evaluates if the stats of the character benefits most through either magery or other combat skills through the characters Intelligence. If the intelligence of the character is under 100, It will assume it is a melee character and remove all the intelligence and mana it owns and charges with the users weapon (or just shoots if archer). The dexterity and strength of the Dark Mimic is four times the amount of the person it copied and if qualified, also 4 times the intelligence.
3. On death, the Dark Mimic spawns a Dark Mount, which is tameable and fairly strong. (NOTE IT ONLY COPIES HORSES, LLAMAS, OSTARDS AND ZOS, IT DOES NOT COPY ANY OTHER MOUNT UNLESS THE EVENT IS MODIFIED). It still drops loot from it's corpse
4. Upon Killing an opponent, the Dark Mimic will remove it's transformed tag and become ready to morph again upon seeing a new player. If it doesnt kill and the player leaves, it will retain the form until killing or until death.
Code:
//////////////////////////////CREATED By UltimaAku///////////////////////////
[CHARDEF c_mimic]
NAME=.
ID=c_man_invisible
CAN=MT_WALK|MT_RUN|MT_EQUIP|MT_USEHANDS
DESIRES=i_gold
CATEGORY=Monsters
SUBSECTION=Mimic
DESCRIPTION=Mimic
ON=@Create
TAG.MIMIC=01
COLOR=07fff
NPC=brain_HUMAN
FAME=100
KARMA=-6000
STR=10000
DEX=10000
INT=10000
ON=@NPCSeeNewPlayer
IF (<TAG.MIMIC>==01)
F_MIMIC
Return 1
ON=@KILL
TAG.MIMIC=01
on=@npcrestock
ITEM=loot_MIMIC
[FUNCTION f_mimic]
FINDLAYER(layer_hand1).REMOVE
FINDLAYER(layer_hand2).REMOVE
FINDLAYER(layer_shoes).REMOVE
FINDLAYER(layer_pants).REMOVE
FINDLAYER(layer_shirt).REMOVE
FINDLAYER(layer_helm).REMOVE
FINDLAYER(layer_gloves).REMOVE
FINDLAYER(layer_ring).REMOVE
FINDLAYER(layer_light).REMOVE
FINDLAYER(layer_collar).REMOVE
FINDLAYER(layer_hair).REMOVE
FINDLAYER(layer_half_apron).REMOVE
FINDLAYER(layer_chest).REMOVE
FINDLAYER(layer_wrist).REMOVE
FINDLAYER(layer_beard).REMOVE
FINDLAYER(layer_tunic).REMOVE
FINDLAYER(layer_ears).REMOVE
FINDLAYER(layer_arms).REMOVE
FINDLAYER(layer_cape).REMOVE
FINDLAYER(layer_robe).REMOVE
FINDLAYER(layer_skirt).REMOVE
FINDLAYER(layer_legs).REMOVE
FINDLAYER(layer_light).REMOVE
STR=<SRC.STR>
DEX=<SRC.DEX>
INT=<SRC.INT>
HITPOINTS=<SRC.STR>
STAMINA=<SRC.DEX>
MANA=<SRC.INT>
MACEFIGHTING=<SRC.MACEFIGHTING>
MAGERY=<SRC.MAGERY>
MAGICRESISTANCE=<SRC.MAGICRESISTANCE>
ARCHERY=<SRC.ARCHERY>
ANATOMY=<SRC.ANATOMY>
TACTICS=<SRC.TACTICS>
WRESTLING=<SRC.WRESTLING>
PARRYING=<SRC.PARRYING>
SWORDSMANSHIP=<SRC.SWORDSMANSHIP>
COLOR=<SRC.COLOR>
NAME=<SRC.NAME>
FAME=<SRC.FAME>
BODY=<SRC.BODY>
OBODY=<SRC.OBODY>
IF <INT> < 100
INT=0
MANA=0
ENDIF
IF (<SRC.FINDLAYER(layer_hand1)> )
NEWITEM=<SRC.FINDLAYER(layer_hand1).ID>
ACT.COLOR=<SRC.FINDLAYER(layer_hand1).COLOR>
ACT.ATTR=attr_newbie
ACT.CONT=<UID>
ENDIF
IF (<SRC.FINDLAYER(layer_hand2)> )
NEWITEM=<SRC.FINDLAYER(layer_hand2).ID>
ACT.COLOR=<SRC.FINDLAYER(layer_hand2).COLOR>
ACT.ATTR=attr_newbie
ACT.CONT=<UID>
ENDIF
IF (<SRC.FINDLAYER(layer_shoes)> )
NEWITEM=<SRC.FINDLAYER(layer_shoes).ID>
ACT.COLOR=<SRC.FINDLAYER(layer_shoes).COLOR>
ACT.ATTR=attr_newbie
ACT.CONT=<UID>
ENDIF
IF (<SRC.FINDLAYER(layer_pants)> )
NEWITEM=<SRC.FINDLAYER(layer_pants).ID>
ACT.COLOR=<SRC.FINDLAYER(layer_pants).COLOR>
ACT.ATTR=attr_newbie
ACT.CONT=<UID>
ENDIF
IF (<SRC.FINDLAYER(layer_shirt)> )
NEWITEM=<SRC.FINDLAYER(layer_shirt).ID>
ACT.COLOR=<SRC.FINDLAYER(layer_shirt).COLOR>
ACT.ATTR=attr_newbie
ACT.CONT=<UID>
ENDIF
IF (<SRC.FINDLAYER(layer_helm)> )
NEWITEM=<SRC.FINDLAYER(layer_helm).ID>
ACT.COLOR=<SRC.FINDLAYER(layer_helm).COLOR>
ACT.ATTR=attr_newbie
ACT.CONT=<UID>
ENDIF
IF (<SRC.FINDLAYER(layer_gloves)> )
NEWITEM=<SRC.FINDLAYER(layer_gloves).ID>
ACT.COLOR=<SRC.FINDLAYER(layer_gloves).COLOR>
ACT.ATTR=attr_newbie
ACT.CONT=<UID>
ENDIF
IF (<SRC.FINDLAYER(layer_ring)> )
NEWITEM=<SRC.FINDLAYER(layer_ring).ID>
ACT.COLOR=<SRC.FINDLAYER(layer_ring).COLOR>
ACT.ATTR=attr_newbie
ACT.CONT=<UID>
ENDIF
IF (<SRC.FINDLAYER(layer_collar)> )
NEWITEM=<SRC.FINDLAYER(layer_collar).ID>
ACT.COLOR=<SRC.FINDLAYER(layer_collar).COLOR>
ACT.ATTR=attr_newbie
ACT.CONT=<UID>
ENDIF
IF (<SRC.FINDLAYER(layer_hair)> )
NEWITEM=<SRC.FINDLAYER(layer_hair).ID>
ACT.COLOR=<SRC.FINDLAYER(layer_hair).COLOR>
ACT.ATTR=attr_newbie
ACT.CONT=<UID>
ENDIF
IF (<SRC.FINDLAYER(layer_half_apron)> )
NEWITEM=<SRC.FINDLAYER(layer_half_apron).ID>
ACT.COLOR=<SRC.FINDLAYER(layer_half_apron).COLOR>
ACT.ATTR=attr_newbie
ACT.CONT=<UID>
ENDIF
IF (<SRC.FINDLAYER(layer_chest)> )
NEWITEM=<SRC.FINDLAYER(layer_chest).ID>
ACT.COLOR=<SRC.FINDLAYER(layer_chest).COLOR>
ACT.ATTR=attr_newbie
ACT.CONT=<UID>
ENDIF
IF (<SRC.FINDLAYER(layer_wrist)> )
NEWITEM=<SRC.FINDLAYER(layer_wrist).ID>
ACT.COLOR=<SRC.FINDLAYER(layer_wrist).COLOR>
ACT.ATTR=attr_newbie
ACT.CONT=<UID>
ENDIF
IF (<SRC.FINDLAYER(layer_beard)> )
NEWITEM=<SRC.FINDLAYER(layer_beard).ID>
ACT.COLOR=<SRC.FINDLAYER(layer_beard).COLOR>
ACT.ATTR=attr_newbie
ACT.CONT=<UID>
ENDIF
IF (<SRC.FINDLAYER(layer_tunic)> )
NEWITEM=<SRC.FINDLAYER(layer_tunic).ID>
ACT.COLOR=<SRC.FINDLAYER(layer_tunic).COLOR>
ACT.ATTR=attr_newbie
ACT.CONT=<UID>
ENDIF
IF (<SRC.FINDLAYER(layer_arms)> )
NEWITEM=<SRC.FINDLAYER(layer_arms).ID>
ACT.COLOR=<SRC.FINDLAYER(layer_arms).COLOR>
ACT.ATTR=attr_newbie
ACT.CONT=<UID>
ENDIF
IF (<SRC.FINDLAYER(layer_cape)> )
NEWITEM=<SRC.FINDLAYER(layer_cape).ID>
ACT.COLOR=<SRC.FINDLAYER(layer_cape).COLOR>
ACT.ATTR=attr_newbie
ACT.CONT=<UID>
ENDIF
IF (<SRC.FINDLAYER(layer_robe)> )
NEWITEM=<SRC.FINDLAYER(layer_robe).ID>
ACT.COLOR=<SRC.FINDLAYER(layer_robe).COLOR>
ACT.ATTR=attr_newbie
ACT.CONT=<UID>
ENDIF
IF (<SRC.FINDLAYER(layer_skirt)> )
NEWITEM=<SRC.FINDLAYER(layer_skirt).ID>
ACT.COLOR=<SRC.FINDLAYER(layer_skirt).COLOR>
ACT.ATTR=attr_newbie
ACT.CONT=<UID>
ENDIF
IF (<SRC.FINDLAYER(layer_legs)> )
NEWITEM=<SRC.FINDLAYER(layer_legs).ID>
ACT.COLOR=<SRC.FINDLAYER(layer_legs).COLOR>
ACT.ATTR=attr_newbie
ACT.CONT=<UID>
ENDIF
IF (<SRC.FINDLAYER(layer_light)> )
NEWITEM=<SRC.FINDLAYER(layer_light).ID>
ACT.ATTR=attr_newbie
ACT.CONT=<UID>
ENDIF
IF (<SRC.FINDLAYER(layer_pack)> )
FINDLAYER(layer_pack).COLOR=<SRC.FINDLAYER(layer_pack).COLOR>
ENDIF
IF (<SRC.FINDLAYER(25)> )
NEWITEM=<SRC.FINDLAYER(25).ID>
ACT.COLOR=<SRC.FINDLAYER(25).COLOR>
ACT.CONT=<UID>
ENDIF
SOUND=916
effect=3,i_fx_blade_field,6,15,1
TAG.MIMIC=02
////////////////////////////////////////////////
////////////////////////////////////////////////
////////////////////////////////////////////////
[EVENTS e_dark_death]
ON=@DEATH
IF <SRC.RESTEST 1 i_mt_horse_brown_dk>
NEWNPC=c_horse_brown_dk
ACT.P=<SRC.P>
ACT.HOME=<P>
ACT.HOMEDIST=2
ACT.COLOR=07e3
ACT.NAME=Dark Steed
ACT.STR=300
ACT.DEX=300
ACT.INT=0
ACT.TAMING=80.0
ACT.WRESTLING=90.0
ACT.TACTICS=60.0
ELSEIF <SRC.RESTEST 1 i_mt_horse_brown_lt>
NEWNPC=c_horse_brown_lt
ACT.P=<SRC.P>
ACT.HOME=<P>
ACT.HOMEDIST=2
ACT.COLOR=07e3
ACT.NAME=Dark Steed
ACT.STR=300
ACT.DEX=300
ACT.INT=0
ACT.TAMING=80.0
ACT.WRESTLING=90.0
ACT.TACTICS=60.0
ELSEIF <SRC.RESTEST 1 i_mt_horse_tan>
NEWNPC=c_horse_tan
ACT.P=<SRC.P>
ACT.HOME=<P>
ACT.HOMEDIST=2
ACT.COLOR=07e3
ACT.NAME=Dark Steed
ACT.STR=300
ACT.DEX=300
ACT.INT=0
ACT.TAMING=80.0
ACT.WRESTLING=90.0
ACT.TACTICS=60.0
ELSEIF <SRC.RESTEST 1 i_mt_llama>
NEWNPC=c_llama
ACT.P=<SRC.P>
ACT.HOME=<P>
ACT.HOMEDIST=2
ACT.COLOR=07e3
ACT.NAME=Dark Llama
ACT.KARMA=-5000
ACT.STR=340
ACT.DEX=300
ACT.INT=0
ACT.TAMING=85.0
ACT.WRESTLING=90.0
ACT.TACTICS=60.0
ELSEIF <SRC.RESTEST 1 i_mt_ostard_desert>
NEWNPC=c_ostard_desert
ACT.P=<SRC.P>
ACT.HOME=<P>
ACT.HOMEDIST=2
ACT.COLOR=07e3
ACT.NAME=Dark Oclock
ACT.STR=340
ACT.DEX=300
ACT.INT=0
ACT.TAMING=85.0
ACT.WRESTLING=90.0
ACT.TACTICS=60.0
ELSEIF <SRC.RESTEST 1 i_mt_ostard_forest>
NEWNPC=c_ostard_forest
ACT.P=<SRC.P>
ACT.HOME=<P>
ACT.HOMEDIST=2
ACT.COLOR=07e3
ACT.NAME=Dark Orn
ACT.STR=340
ACT.DEX=300
ACT.INT=0
ACT.TAMING=85.0
ACT.WRESTLING=90.0
ACT.TACTICS=60.0
ELSEIF <SRC.RESTEST 1 i_mt_ostard_zostrich>
NEWNPC=c_ostard_zostrich
ACT.P=<SRC.P>
ACT.HOME=<P>
ACT.HOMEDIST=2
ACT.COLOR=07e3
ACT.NAME=Dark Zostrich
ACT.STR=500
ACT.DEX=300
ACT.INT=0
ACT.TAMING=100.0
ACT.WRESTLING=90.0
ACT.TACTICS=100.0
ENDIF
RETURN 0
[CHARDEF c_dark_mimic]
NAME=.
ID=c_man_invisible
CAN=MT_WALK|MT_RUN|MT_EQUIP|MT_USEHANDS
DESIRES=i_gold
CATEGORY=Monsters
SUBSECTION=Mimic
DESCRIPTION=Dark Mimic
ON=@Create
TAG.MIMIC=01
COLOR=07fff
NPC=brain_HUMAN
FAME=100
KARMA=-6000
STR=10000
DEX=10000
INT=10000
EVENTS=+e_dark_death
ON=@NPCSeeNewPlayer
IF (<TAG.MIMIC>==01)
F_DARK_MIMIC
Return 0
ENDIF
ON=@KILL
TAG.MIMIC=01
on=@npcrestock
ITEM=loot_DARK_MIMIC
//ITEM=i_mt_horse_brown_dk
//ITEM=i_mt_horse_brown_lt
//ITEM=i_mt_horse_tan
//ITEM=i_mt_llama
//ITEM=i_mt_ostard_desert
//ITEM=i_mt_ostard_forest
//ITEM=i_mt_ostard_zostrich
[FUNCTION f_dark_mimic]
FINDLAYER(layer_hand1).REMOVE
FINDLAYER(layer_hand2).REMOVE
FINDLAYER(layer_shoes).REMOVE
FINDLAYER(layer_pants).REMOVE
FINDLAYER(layer_shirt).REMOVE
FINDLAYER(layer_helm).REMOVE
FINDLAYER(layer_gloves).REMOVE
FINDLAYER(layer_ring).REMOVE
FINDLAYER(layer_light).REMOVE
FINDLAYER(layer_collar).REMOVE
FINDLAYER(layer_hair).REMOVE
FINDLAYER(layer_half_apron).REMOVE
FINDLAYER(layer_chest).REMOVE
FINDLAYER(layer_wrist).REMOVE
FINDLAYER(layer_beard).REMOVE
FINDLAYER(layer_tunic).REMOVE
FINDLAYER(layer_ears).REMOVE
FINDLAYER(layer_arms).REMOVE
FINDLAYER(layer_cape).REMOVE
FINDLAYER(layer_robe).REMOVE
FINDLAYER(layer_skirt).REMOVE
FINDLAYER(layer_legs).REMOVE
FINDLAYER(layer_light).REMOVE
STR=<SRC.STR>*4
DEX=<SRC.DEX>*4
INT=<SRC.INT>*4
HITPOINTS=<SRC.STR>*4
STAMINA=<SRC.DEX>*4
MANA=<SRC.INT> *4
MACEFIGHTING=<SRC.MACEFIGHTING>
MAGERY=<SRC.MAGERY>*4
MAGICRESISTANCE=<SRC.MAGICRESISTANCE>
ARCHERY=<SRC.ARCHERY>
ANATOMY=<SRC.ANATOMY>
TACTICS=<SRC.TACTICS>
WRESTLING=<SRC.WRESTLING>
PARRYING=<SRC.PARRYING>
SWORDSMANSHIP=<SRC.SWORDSMANSHIP>
COLOR=07e3
NAME= Dark <SRC.NAME>
FAME=<SRC.FAME>
BODY=<SRC.BODY>
OBODY=<SRC.OBODY>
IF <INT> < 100
INT=0
MANA=0
ENDIF
IF (<SRC.FINDLAYER(layer_hand1)> )
NEWITEM=<SRC.FINDLAYER(layer_hand1).ID>
ACT.COLOR=07e3
ACT.ATTR=attr_newbie
ACT.CONT=<UID>
ENDIF
IF (<SRC.FINDLAYER(layer_hand2)> )
NEWITEM=<SRC.FINDLAYER(layer_hand2).ID>
ACT.COLOR=07e3
ACT.ATTR=attr_newbie
ACT.CONT=<UID>
ENDIF
IF (<SRC.FINDLAYER(layer_shoes)> )
NEWITEM=<SRC.FINDLAYER(layer_shoes).ID>
ACT.COLOR=07e3
ACT.ATTR=attr_newbie
ACT.CONT=<UID>
ENDIF
IF (<SRC.FINDLAYER(layer_pants)> )
NEWITEM=<SRC.FINDLAYER(layer_pants).ID>
ACT.COLOR=07e3
ACT.ATTR=attr_newbie
ACT.CONT=<UID>
ENDIF
IF (<SRC.FINDLAYER(layer_shirt)> )
NEWITEM=<SRC.FINDLAYER(layer_shirt).ID>
ACT.COLOR=07e3
ACT.ATTR=attr_newbie
ACT.CONT=<UID>
ENDIF
IF (<SRC.FINDLAYER(layer_helm)> )
NEWITEM=<SRC.FINDLAYER(layer_helm).ID>
ACT.COLOR=07e3
ACT.ATTR=attr_newbie
ACT.CONT=<UID>
ENDIF
IF (<SRC.FINDLAYER(layer_gloves)> )
NEWITEM=<SRC.FINDLAYER(layer_gloves).ID>
ACT.COLOR=07e3
ACT.ATTR=attr_newbie
ACT.CONT=<UID>
ENDIF
IF (<SRC.FINDLAYER(layer_ring)> )
NEWITEM=<SRC.FINDLAYER(layer_ring).ID>
ACT.COLOR=07e3
ACT.ATTR=attr_newbie
ACT.CONT=<UID>
ENDIF
IF (<SRC.FINDLAYER(layer_collar)> )
NEWITEM=<SRC.FINDLAYER(layer_collar).ID>
ACT.COLOR=07e3
ACT.ATTR=attr_newbie
ACT.CONT=<UID>
ENDIF
IF (<SRC.FINDLAYER(layer_hair)> )
NEWITEM=<SRC.FINDLAYER(layer_hair).ID>
ACT.COLOR=07e3
ACT.ATTR=attr_newbie
ACT.CONT=<UID>
ENDIF
IF (<SRC.FINDLAYER(layer_half_apron)> )
NEWITEM=<SRC.FINDLAYER(layer_half_apron).ID>
ACT.COLOR=07e3
ACT.ATTR=attr_newbie
ACT.CONT=<UID>
ENDIF
IF (<SRC.FINDLAYER(layer_chest)> )
NEWITEM=<SRC.FINDLAYER(layer_chest).ID>
ACT.COLOR=07e3
ACT.ATTR=attr_newbie
ACT.CONT=<UID>
ENDIF
IF (<SRC.FINDLAYER(layer_wrist)> )
NEWITEM=<SRC.FINDLAYER(layer_wrist).ID>
ACT.COLOR=07e3
ACT.ATTR=attr_newbie
ACT.CONT=<UID>
ENDIF
IF (<SRC.FINDLAYER(layer_beard)> )
NEWITEM=<SRC.FINDLAYER(layer_beard).ID>
ACT.COLOR=07e3
ACT.ATTR=attr_newbie
ACT.CONT=<UID>
ENDIF
IF (<SRC.FINDLAYER(layer_tunic)> )
NEWITEM=<SRC.FINDLAYER(layer_tunic).ID>
ACT.COLOR=07e3
ACT.ATTR=attr_newbie
ACT.CONT=<UID>
ENDIF
IF (<SRC.FINDLAYER(layer_arms)> )
NEWITEM=<SRC.FINDLAYER(layer_arms).ID>
ACT.COLOR=07e3
ACT.ATTR=attr_newbie
ACT.CONT=<UID>
ENDIF
IF (<SRC.FINDLAYER(layer_cape)> )
NEWITEM=<SRC.FINDLAYER(layer_cape).ID>
ACT.COLOR=07e3
ACT.ATTR=attr_newbie
ACT.CONT=<UID>
ENDIF
IF (<SRC.FINDLAYER(layer_robe)> )
NEWITEM=<SRC.FINDLAYER(layer_robe).ID>
ACT.COLOR=07e3
ACT.ATTR=attr_newbie
ACT.CONT=<UID>
ENDIF
IF (<SRC.FINDLAYER(layer_skirt)> )
NEWITEM=<SRC.FINDLAYER(layer_skirt).ID>
ACT.COLOR=07e3
ACT.ATTR=attr_newbie
ACT.CONT=<UID>
ENDIF
IF (<SRC.FINDLAYER(layer_legs)> )
NEWITEM=<SRC.FINDLAYER(layer_legs).ID>
ACT.COLOR=07e3
ACT.ATTR=attr_newbie
ACT.CONT=<UID>
ENDIF
IF (<SRC.FINDLAYER(layer_light)> )
NEWITEM=<SRC.FINDLAYER(layer_light).ID>
ACT.ATTR=attr_newbie
ACT.CONT=<UID>
ENDIF
IF (<SRC.FINDLAYER(layer_pack)> )
FINDLAYER(layer_pack).COLOR=<SRC.FINDLAYER(layer_pack).COLOR>
ENDIF
IF (<SRC.FINDLAYER(25)> )
NEWITEM=<SRC.FINDLAYER(25).ID>
ACT.COLOR=07e3
ACT.CONT=<UID>
ENDIF
SOUND=916
effect=5,i_fx_blade_field,6,18,1
FIX
TAG.MIMIC=02
/////////and now for the loot/////////
[TEMPLATE loot_MIMIC]
CATEGORY=Item Templates
SUBSECTION=Monster Loot Templates
DESCRIPTION=MIMIC
CONTAINER=i_backpack
ITEM=TTM_LVL4,R99 //Tattered Treasure Map Level 4
ITEM=Random_Potion
ITEM=Random_Potion
ITEM=i_gold,{100 200}
[TEMPLATE loot_DARK_MIMIC]
CATEGORY=Item Templates
SUBSECTION=Monster Loot Templates
DESCRIPTION=DARK MIMIC
CONTAINER=i_backpack
ITEM=Random_Potion
ITEM=Random_Potion
ITEM=RANDOM_REAGENT,{ 10 20 }
ITEM=RANDOM_REAGENT,{ 10 20 }
ITEM=i_bandage, { 5 10 }
ITEM=TTM_LVL5,R99 //Tattered Treasure Map Level 5
ITEM=i_gold,{500 1200}