• 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!

Skulle / Fragi

cysiek12

New Member
Joined
Aug 23, 2011
Messages
9
Reaction score
0
Cześć, mam tu pewien skrypt, aczkolwiek nie działa. Próbowałem to sam ogarnąć, ale w ogóle nie działa, a żadnych błędów nie wyrzuca. Pomóżcie mi się z tym uporać, proszę ;/

Code:
function onKill(cid, target, lastHit)

	if getPlayerFrags(cid) >= 30 then
		doCreatureSetSkullType(cid, 3) -- 3 is white
	return true
	end
end

Co w nim jest źle, że nie działa?
Mam ustawiony typ świata na hardcore, ustawiałem na open, ale nic nie dało.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Okazało się, że była literówka, której nie wychwyciłem w login.lua
Aczkolwiek skrypt dalej nie działa, postać nie ginie, a gracz, który wbija właśnie np. piąty frag (a przy 5 fragach ma wejść dany skull) ma ciągle nad głową "FRAG!" i otrzymuje bez końca rewardy.
 
Last edited:
fragi nadają storage value? no i dodatkowo w skull white masz 10015 a w pozostalych 6776
 
Okazało się, że była literówka, której nie wychwyciłem w login.lua
Aczkolwiek skrypt dalej nie działa, postać nie ginie, a gracz, który wbija właśnie np. piąty frag (a przy 5 fragach ma wejść dany skull) ma ciągle nad głową "FRAG!" i otrzymuje bez końca rewardy.
 
PHP:
function onKill(cid, target, lastHit)

	if getPlayerFrags(cid) >= 30 then
		doCreatureSetSkullType(cid, 3) -- 3 is white
	end
 	return TRUE
end
kiedy warunek się nie spełniał, funkcja onKill nic nie zwracała TRUE, dzięki czemu nie pozwalała "paść" zabitemu, a przez to, że miał 0 hp to się wciąż wykonywała dana funkcja i to było przyczyną tego, że gracz ciągle dostawał nagrodę za zabicie. tyle. :)


a co do skulla to sprawa wygląda tak, że musisz edytować źródła, gdyż na hardcore pvp nie ma systemu skulli, powiedź jakiego masz TFS"a to ci pomogę.
 
Code:
	if(g_game.getWorldType() != WORLD_TYPE_PVP)

to nei bedzie to przypadkiem? (na tfs 0.4)
 
#up
przypadkiem trzeba zrobić więcej edycji, gdyż jak rzucisz white skulla graczowi on zniknie po paru minutach...
 
dla TFS: 0.4
combat.cpp:
PHP:
if(target->getPlayer() && !Combat::isInPvpZone(player, target) && player->getSkullType(target->getPlayer()) == SKULL_NONE)
	{
		if(player->getSecureMode() == SECUREMODE_ON)
			return RET_TURNSECUREMODETOATTACKUNMARKEDPLAYERS;

		if(player->getSkull() == SKULL_BLACK)
			return RET_YOUMAYNOTATTACKTHISPLAYER;
	}
na:
PHP:
if(target->getPlayer() && !Combat::isInPvpZone(player, target) && player->getSkullType(target->getPlayer()) == SKULL_NONE)
	{
		if(player->getSecureMode() == SECUREMODE_ON)
			return RET_TURNSECUREMODETOATTACKUNMARKEDPLAYERS;
	}

i (zmieniamy 2 razy, bo jest w dwóch miejscach)
PHP:
	if(change < 0 && caster && caster->getPlayer() && target->getPlayer() && target->getPlayer()->getSkull() != SKULL_BLACK)
		change = change / 2;
na:
PHP:
	if(change < 0 && caster && caster->getPlayer() && target->getPlayer())
		change = change / 2;
player.cpp
PHP:
	if(const Player* player = creature->getPlayer())
	{
		if(g_game.getWorldType() != WORLDTYPE_OPEN)
			return SKULL_NONE;
na:
PHP:
	if(const Player* player = creature->getPlayer())
	{

oraz:
PHP:
void Player::setSkullEnd(time_t _time, bool login, Skulls_t _skull)
{
	if(g_game.getWorldType() != WORLDTYPE_OPEN
		|| hasFlag(PlayerFlag_NotGainInFight) ||
		hasCustomFlag(PlayerCustomFlag_NotGainSkull))
		return;

	bool requireUpdate = false;
	if(_time > time(NULL))
	{
		requireUpdate = true;
		setSkull(_skull);
	}
	else if(skull == _skull)
	{
		requireUpdate = true;
		setSkull(SKULL_NONE);
		_time = 0;
	}

	if(requireUpdate)
	{
		skullEnd = _time;
		if(!login)
			g_game.updateCreatureSkull(this);
	}
}
na:
PHP:
void Player::setSkullEnd(time_t _time, bool login, Skulls_t _skull)
{
	if(hasFlag(PlayerFlag_NotGainInFight) || hasCustomFlag(PlayerCustomFlag_NotGainSkull)) return;
}

i jeszcze:
PHP:
void Player::onEndCondition(ConditionType_t type)
{
	Creature::onEndCondition(type);
	if(type == CONDITION_INFIGHT)
	{
		onIdleStatus();
		clearAttacked();

		pzLocked = false;
		if(skull < SKULL_RED)
			setSkull(SKULL_NONE);

		g_game.updateCreatureSkull(this);
	}

	sendIcons();
}
na:
PHP:
void Player::onEndCondition(ConditionType_t type)
{
	Creature::onEndCondition(type);
	if(type == CONDITION_INFIGHT)
	{
		onIdleStatus();
		clearAttacked();

		pzLocked = false;
	}

	sendIcons();
}
 
Nie posiadam 0.4, ale chcę bardzo go nabyć! Ale oczywiście OTland sprawia problemy i każą mi powiązać kartę kredytowej, której nie posiadam i nie chcę wyrabiać, dlaczego nie ma zwykłej opcji 'przelew' ?
Istnieje na tym forum jakiś zaufany człowieczyna do sprzedaży donatora?

Co do skulli, dzięki za pomoc, domyśliłem się, że na hardcore skulle działać nie będą więc ustawiłem open, i ten skrypt działa, ale i tak po chwili spada skull.
 
Nie posiadam 0.4, ale chcę bardzo go nabyć! Ale oczywiście OTland sprawia problemy i każą mi powiązać kartę kredytowej, której nie posiadam i nie chcę wyrabiać, dlaczego nie ma zwykłej opcji 'przelew' ?
Istnieje na tym forum jakiś zaufany człowieczyna do sprzedaży donatora?

Co do skulli, dzięki za pomoc, domyśliłem się, że na hardcore skulle działać nie będą więc ustawiłem open, i ten skrypt działa, ale i tak po chwili spada skull.

Nie musisz powiązywać karty kredytowej, możesz kupić donka np. od samme chociaż nie kupuj od niego bo warnów dużo rozdaje. :/
 
Nie posiadam 0.4, ale chcę bardzo go nabyć! Ale oczywiście OTland sprawia problemy i każą mi powiązać kartę kredytowej, której nie posiadam i nie chcę wyrabiać, dlaczego nie ma zwykłej opcji 'przelew' ?
Istnieje na tym forum jakiś zaufany człowieczyna do sprzedaży donatora?
Polecam się. TANIO!!!
 
Back
Top