• 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!
  • 2026 staff recruitment is open! Check it out and consider applying!

doCombat, co oznacza zmienna var w tej funkcji?

hellboy

Intermediate OT User
Joined
Apr 6, 2008
Messages
549
Solutions
6
Reaction score
124
Location
player:getTown()
Witam, chciałbym się dowiedzieć, co oznacza zmienna var niezbędna do działania funkcji doCombat(cid, combat, var).

cid - numer identyfikacyjny istoty (mob, gracz, możliwe, że także NPC, ale nie sprawdzałem tego) która zadaje dmg
combat - nazwa elementu "combat", który zostaje wykonany (dmg, efekt ataku etc.)
var - ? można go uzyskać funkcją numberToVariant(cid)
 
Przytocze z source:
Code:
	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;
		}
	}
 
#Chojrak#
Dzięki, ale nie znam składni C++ :/ Bawiąc się pętlą for dowiedziałem się, że funkcja numberToVariant zwraca tabele z dwiema wartościami number (duże liczby) oraz type (dla graczy i ich summonów ta wartość wynosi 1)
 
Back
Top