Ir para conteúdo

Featured Replies

  • Respostas 12
  • Visualizações 560
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • @Emanueldk   Uso TFS 0.4 8.6   qual Quer vocação pode usa estatuas    Em Data\lib 103-offline-training.lua   -- config, in percent of normal training with 2

Posted Images

Postado
  • Autor
1 minuto atrás, KotZletY disse:

@Emanueldk seu servidor não tem suporte a esse sistema, muito menos seu client!

 

puts :) mais de nenhum jeito um servidor 8.6 pode ter esse sistema? por que eu posso jurar que eu vi um parecido em um baiak

Postado

@Emanueldk

 

Uso TFS 0.4 8.6

 

qual Quer vocação pode usa estatuas 

 

Em Data\lib

103-offline-training.lua

 

-- config, in percent of normal training with 2 trainers and player vocation mana regeneration [by food]
OfflineTraining_rates = {
[SKILL_CLUB] = 100,
[SKILL_SWORD] = 100,
[SKILL_AXE] = 100,
[SKILL_DISTANCE] = 100,
[SKILL_SHIELD] = 100,
[SKILL__MAGLEVEL] = 100
}
-- function that you should edit to make it add other skill etc.
function OfflineTraining_canStartTraining(cid) -- return bool
return getCreatureStorage(cid, 62669) > 0
end
function OfflineTraining_onStartTraining(cid)
-- maybe someone will need
-- to save your time, this: doPlayerPopupFYI(cid, "You started offline training.")
-- NOT WORK :(
end
function OfflineTraining_onEndTraining(cid)
doCreatureSetStorage(cid, 62669, 0)
end
function OfflineTraining_addTrainedSkills(cid, trainTime) -- time in minutes!
local timeInSeconds = trainTime * 60
local vocInfo = getVocationInfo(getPlayerVocation(cid))
if(getCreatureStorage(cid, 62669) == SKILL_SWORD) then
doPlayerAddSkillTry(cid, SKILL_SWORD, ((timeInSeconds * 1000) / vocInfo["attackSpeed"]) * OfflineTraining_rates[SKILL_SWORD] / 100, true)
elseif(getCreatureStorage(cid, 62669) == SKILL_AXE) then
doPlayerAddSkillTry(cid, SKILL_AXE, ((timeInSeconds * 1000) / vocInfo["attackSpeed"]) * OfflineTraining_rates[SKILL_AXE] / 100, true)
elseif(getCreatureStorage(cid, 62669) == SKILL__MAGLEVEL) then
doPlayerAddSpentMana(cid, ((timeInSeconds / vocInfo["manaGainTicks"]) * vocInfo["manaGain"]) * OfflineTraining_rates[SKILL__MAGLEVEL] / 100, true)
elseif(getCreatureStorage(cid, 62669) == SKILL_CLUB) then
doPlayerAddSkillTry(cid, SKILL_CLUB, ((timeInSeconds * 1000) / vocInfo["attackSpeed"]) * OfflineTraining_rates[SKILL_CLUB] / 100, true)
elseif(getCreatureStorage(cid, 62669) == SKILL_DISTANCE) then
doPlayerAddSkillTry(cid, SKILL_DISTANCE, ((timeInSeconds * 1000) / vocInfo["attackSpeed"]) * OfflineTraining_rates[SKILL_DISTANCE] / 100, true)
end
doPlayerAddSkillTry(cid, SKILL_SHIELD, timeInSeconds * OfflineTraining_rates[SKILL_SHIELD] / 100, true)
end

-- 4 functions to show right values on 'bar' in Tibia 9.6
function OfflineTraining_getTime(cid)
return getCreatureStorage(cid, 62666)
end
function OfflineTraining_setTime(cid, newTime)
-- set values only between 0 - 720 [12 hours]
doCreatureSetStorage(cid, 62666, math.max(0, math.min(newTime, 720)))
-- now code to force server to send 'PlayerStats' (including Offline Time)
-- we must change any stat: hp,mana,stamina,cap,soul,exp,level
doPlayerAddSoul(cid, 1)
doPlayerAddSoul(cid, -1)
end
function OfflineTraining_addTime(cid, addTime)
OfflineTraining_setTime(cid, OfflineTraining_getTime(cid) + addTime)
end
function OfflineTraining_removeTime(cid, removeTime)
OfflineTraining_setTime(cid, OfflineTraining_getTime(cid) - removeTime)
end

-- functions for library to add skills/mlvl
function OfflineTraining_initialize(cid)
if(OfflineTraining_getTime(cid) == -1) then
OfflineTraining_setTime(cid, 720)
OfflineTraining_setLogoutTime(cid) -- block problem with first login 'add time'
end
end
function OfflineTraining_isTraining(cid)
return (getCreatureStorage(cid, 62667) > 0)
end
function OfflineTraining_turnOnTraining(cid)
doCreatureSetStorage(cid, 62667, 1)
end
function OfflineTraining_turnOffTraining(cid)
doCreatureSetStorage(cid, 62667, 0)
end
function OfflineTraining_getOfflineTime(cid)
return math.floor((os.time() - getCreatureStorage(cid, 62668)) / 60)
end
function OfflineTraining_setLogoutTime(cid)
return doCreatureSetStorage(cid, 62668, os.time())
end

 

Em

Data/actions

abre actions.xml e add isso

 

	<!-- Offline Training -->
	<action itemid="8834" event="script" value="other/offlinetraining.lua"/>
	<action itemid="10353" event="script" value="other/offlinetraining.lua"/>
	<action itemid="8626" event="script" value="other/offlinetraining.lua"/>
	<action itemid="1444" event="script" value="other/offlinetraining.lua"/>
	<action itemid="10349" event="script" value="other/offlinetraining.lua"/>

em 

data\actions\scripts\other

coloca isso

 

offlinetraining.lua

 

function onUse(cid, item, fromPosition, itemEx, toPosition)
	if(item.itemid == 1444) then -- sword
		doCreatureSetStorage(cid, 62669, SKILL_SWORD)
	elseif(item.itemid == 10349) then -- axe
		doCreatureSetStorage(cid, 62669, SKILL_AXE)
	elseif(item.itemid == 8834) then -- mlvl
		doCreatureSetStorage(cid, 62669, SKILL__MAGLEVEL)
	elseif(item.itemid == 8626) then -- club
		doCreatureSetStorage(cid, 62669, SKILL_CLUB)
	elseif(item.itemid == 10353) then -- distannce
		doCreatureSetStorage(cid, 62669, SKILL_DISTANCE)
	end
	if item.actionid == 1000 then
	doRemoveCreature(cid)
end
	return true
end

Todas Estatuas

tem que ter Action ID > 1000

para coloca esse id usa mapa editor

 

ID Das Estatuas

1444 > Sword

10349> Axe

8834> ML

8626> Club

10353> Distannce

 

em data\creaturescripts

creaturescripts.xml coloca isso

 

		<!-- Offline Training -->
	<event type="login" name="offtrain_PlayerLogin" event="script" value="offtrain_login.lua"/>
	<event type="logout" name="offtrain_PlayerLogout" event="script" value="offtrain_logout.lua"/>

 

em data\creaturescripts\scripts

coloca esses dois

 

offtrain_login.lua

-- 0.4 - offline training - login.lua
function onLogin(cid)
	OfflineTraining_initialize(cid)
	if(OfflineTraining_isTraining(cid)) then
		OfflineTraining_turnOffTraining(cid)
		-- we add skill/mlvl, we select lower value: time that player was offline OR offline training time [bar in game - 9.6]
		OfflineTraining_addTrainedSkills(cid, math.min(OfflineTraining_getTime(cid), OfflineTraining_getOfflineTime(cid)))
		-- we remove offline training time [bar in game - 9.6],
		-- if player was offline longer then his 'offline training time' it will add him time [like on RL tibia]
		-- got '3  hours offline training time', stay logged off for 8 hours, you get skills for 3 hours and on login you got '5 hours offline training time'
		OfflineTraining_setTime(cid, math.abs(OfflineTraining_getTime(cid) - OfflineTraining_getOfflineTime(cid)))
		OfflineTraining_onEndTraining(cid)
	else
		-- offline training time also regenerate when you are offline, but NOT train
		OfflineTraining_setTime(cid, OfflineTraining_getTime(cid) + OfflineTraining_getOfflineTime(cid))
	end
	return true
end

 

offtrain_logout.lua

 

-- 0.4 - offline training - logout.lua
function onLogout(cid)
	if(OfflineTraining_canStartTraining(cid)) then
		OfflineTraining_turnOnTraining(cid)
		OfflineTraining_onStartTraining(cid)
	end
	OfflineTraining_setLogoutTime(cid)
	return true
end

 

 

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Conteúdo Similar

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.6k

Informação Importante

Confirmação de Termo