std::string shadowclone = "clone"; // create a monster.xml setup all raw datas and give him same file name and ingame name as here, it will be changed when its going to be summoned.
uint16_t soulCost = 0; //if you want the spell to cost soul, change this
uint16_t spellmana = 100; //add here how much mana u want the spell to cost.
if(text == "Bunshin no Jutsu")
{
if(player->getMana() >= spellmana)
{
player->addManaSpent(spellmana);
if(!player->hasFlag(PlayerFlag_HasInfiniteMana)){
player->changeMana(-(int32_t)spellmana);
}
}
if(!player->hasFlag(PlayerFlag_HasInfiniteSoul)){
if(soulCost > 0){
player->changeSoul(-(int32_t)soulCost);
}
}
Monster* monster = Monster::createMonster(shadowclone);
if(!monster)
return false;
MonsterType* mType = NULL;
mon = g_monsters.getMonsterType(shadowclone);
if(!mon)
return false;
mon->health = player->getHealth();
mon->maxhealth = player->getMaxHealth();
mon->name = player->getName();
mon->base_speed = player->getStepSpeed();
mon->outfit.lookType = player->defaultOutfit.lookType;
mon->outfit.lookHead = player->defaultOutfit.lookHead;
mon->outfit.lookBody = player->defaultOutfit.lookBody;
mon->outfit.lookLegs = player->defaultOutfit.lookLegs;
mon->outfit.lookFeet = player->defaultOutfit.lookFeet;
if(g_game.placeCreature(monster, creature->getPosition()))
g_game.addMagicEffect(creature->getPosition(), CONST_ME_TELEPORT);
else
return false;
player->addSummon(monster);
}