• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!

Click on item and spell comes?

Starmio

Starmio
Joined
Feb 9, 2008
Messages
167
Reaction score
2
Location
...
How can i make it so when you click on an item it shots a spell?:w00t:
 
doCombat?
yes, doCombat
[cpp] //doCombat(cid, combat, param)
lua_register(m_luaState, "doCombat", LuaInterface::luaDoCombat);
[/cpp]
[cpp]
int32_t LuaInterface::luaDoCombat(lua_State* L)
{
//doCombat(cid, combat, param)
ScriptEnviroment* env = getEnv();

LuaVariant var = popVariant(L);
uint32_t combatId = popNumber(L), cid = popNumber(L);

Creature* creature = NULL;
if(cid != 0)
{
creature = env->getCreatureByUID(cid);
if(!creature)
{
errorEx(getError(LUA_ERROR_CREATURE_NOT_FOUND));
lua_pushboolean(L, false);
return 1;
}
}

const Combat* combat = env->getCombatObject(combatId);
if(!combat)
{
errorEx(getError(LUA_ERROR_COMBAT_NOT_FOUND));
lua_pushboolean(L, false);
return 1;
}

if(var.type == VARIANT_NONE)
{
errorEx(getError(LUA_ERROR_VARIANT_NOT_FOUND));
lua_pushboolean(L, false);
return 1;
}

switch(var.type)
{
case VARIANT_NUMBER:
{
Creature* target = g_game.getCreatureByID(var.number);
if(!target || !creature || !creature->canSeeCreature(target))
{
lua_pushboolean(L, false);
return 1;
}

if(combat->hasArea())
combat->doCombat(creature, target->getPosition());
else
combat->doCombat(creature, target);

break;
}

case VARIANT_POSITION:
{
combat->doCombat(creature, var.pos);
break;
}

case VARIANT_TARGETPOSITION:
{
if(!combat->hasArea())
{
combat->postCombatEffects(creature, var.pos);
g_game.addMagicEffect(var.pos, MAGIC_EFFECT_POFF);
}
else
combat->doCombat(creature, var.pos);

break;
}

case VARIANT_STRING:
{
Player* target = g_game.getPlayerByName(var.text);
if(!target || !creature || !creature->canSeeCreature(target))
{
lua_pushboolean(L, false);
return 1;
}

combat->doCombat(creature, target);
break;
}

default:
{
errorEx(getError(LUA_ERROR_VARIANT_UNKNOWN));
lua_pushboolean(L, false);
return 1;
}
}

lua_pushboolean(L, true);
return 1;
}

[/cpp]
 
Back
Top