Ir para conteúdo
  • Cadastre-se

Sistema [8.6] Task System 4.0! (Task system + Daily Task System)


Posts Recomendados

Coloquei este sistema, só que quando mata o mob não conta a task. 

 

Peguei task de troll, mandei o troll e continou 0/40 e assim com todos os outros mobs. Sem erro na distro, o que pode ser?

 

Base que estou usando: 

 

Editado por blaaastkill (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
  • Respostas 296
  • Created
  • Última resposta

Top Posters In This Topic

Top Posters In This Topic

Popular Posts

Removido:   *Boss Room *Rank Task *Prêmios para os 10 primeiros a terminar todas as tasks   Adicionado:   *Daily Task System (Sistema exclusivo de Task diario,

tenta deixar essa linha: if isPlayer(cid) and isMonster(target) and not isSummon(target) then assim if isPlayer(cid) and isMonster(target) then   e testa

gostei dessa ideia, então estou num projeto e estou meio sem tempo, já passei parto do simple task pra tfs 1.2 e tal. terminando esse projeto e de passar o sistema pra tfs 1.2 eu começo a editar o sis

Posted Images

1 hora atrás, blaaastkill disse:

Coloquei este sistema, só que quando mata o mob não conta a task. 

 

Peguei task de troll, mandei o troll e continou 0/40 e assim com todos os outros mobs. Sem erro na distro, o que pode ser?

 

Base que estou usando: 

 

 

 

tenta trocar essa linha no mods:

 

if isPlayer(cid) and isMonster(target) and not isSummon(target) then

 

por

 

if isPlayer(cid) and isMonster(target) then

 

vodkart_logo.png

[*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*]

 

DISCORDvodkart#6090

 

Link para o post
Compartilhar em outros sites
41 minutos atrás, Vodkart disse:

 

 

tenta trocar essa linha no mods:

 


if isPlayer(cid) and isMonster(target) and not isSummon(target) then

 

por

 


if isPlayer(cid) and isMonster(target) then

 

 

Não resoltou.

Link para o post
Compartilhar em outros sites

testei aqui no mesmo serve que você baixou e deu certo ;)

 

baixei teu serviddor e tudo

 

3fkuyCi.jpg

vodkart_logo.png

[*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*]

 

DISCORDvodkart#6090

 

Link para o post
Compartilhar em outros sites

@Vodkart Consegui fazer funcionar, como eu faço para um npc levar um player para um local X só se tiver uma quantidade X de points de task? ou passar em uma porta algo do genero, para quests.

Editado por blaaastkill (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
16 horas atrás, Vodkart disse:

testei aqui no mesmo serve que você baixou e deu certo ;)

 

baixei teu serviddor e tudo

 

3fkuyCi.jpg

No meio n vai é baiak vip 15 editado por death rocks Já tentei refazer cada passo 3 vezes mais n vai

Editado por wougoplex (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
15 horas atrás, blaaastkill disse:

@Vodkart Consegui fazer funcionar, como eu faço para um npc levar um player para um local X só se tiver uma quantidade X de points de task? ou passar em uma porta algo do genero, para quests.

 

o tile ficaria assim:

 

domodlib('task_func')
function onStepIn(cid, item, position, fromPosition)
	local amount = 30
	if getTaskPoints(cid) < amount then
		doTeleportThing(cid, fromPosition, true)
		doPlayerSendTextMessage(cid, 25, "Você só pode passar se tiver " .. amount .. " Task Points.")
		doSendMagicEffect(getThingPos(cid), CONST_ME_MAGIC_BLUE)
		return true
	end
	return true
end

 

 

E o npc teleporte te entrego hoje de noite quando chegar em casa, estou no escritório!

--------------------------------------------------------------------------------

10 minutos atrás, wougoplex disse:

No meio n vai é baiak vip 15 editado por death rocks Já tentei refazer cada passo 3 vezes mais n vai

 

 

tenta trocar essa linha no mods:

 

if isPlayer(cid) and isMonster(target) and not isSummon(target) then

 

por

 

if isPlayer(cid) and isMonster(target) then

 

vodkart_logo.png

[*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*]

 

DISCORDvodkart#6090

 

Link para o post
Compartilhar em outros sites
15 horas atrás, blaaastkill disse:

@Vodkart Deu erro no tile:

 

http://prntscr.com/dvpx81

viajei, tem que ser em mods!!

 

abre o Simple task.xml e vai lá no final.

 

antes de

 

</mod>

 

adicione

 

 

<movevent type="StepIn" actionid ="45250" event="script"><![CDATA[
domodlib('task_func')
function onStepIn(cid, item, position, fromPosition)
	local amount = 30
	if getTaskPoints(cid) < amount then
		doTeleportThing(cid, fromPosition, true)
		doPlayerSendTextMessage(cid, 25, "Você só pode passar se tiver " .. amount .. " Task Points.")
		doSendMagicEffect(getThingPos(cid), CONST_ME_MAGIC_BLUE)
		return true
	end
	return true
end]]></movevent>

 

vodkart_logo.png

[*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*]

 

DISCORDvodkart#6090

 

Link para o post
Compartilhar em outros sites
16 horas atrás, Vodkart disse:

viajei, tem que ser em mods!!

 

abre o Simple task.xml e vai lá no final.

 

antes de

 


</mod>

 

adicione

 

 


<movevent type="StepIn" actionid ="45250" event="script"><![CDATA[
domodlib('task_func')
function onStepIn(cid, item, position, fromPosition)
	local amount = 30
	if getTaskPoints(cid) < amount then
		doTeleportThing(cid, fromPosition, true)
		doPlayerSendTextMessage(cid, 25, "Você só pode passar se tiver " .. amount .. " Task Points.")
		doSendMagicEffect(getThingPos(cid), CONST_ME_MAGIC_BLUE)
		return true
	end
	return true
end]]></movevent>

 

 

Fiz isto e o comando !task parou de funcionar, sem nenhum erro na distro.

Link para o post
Compartilhar em outros sites
11 horas atrás, blaaastkill disse:

 

Fiz isto e o comando !task parou de funcionar, sem nenhum erro na distro.

 

não tem nem como! só se você deu /reload talkactions dps de dar /reload mods

sendo que só precisa dar /reload mods pra atualizar tudo...

vodkart_logo.png

[*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*]

 

DISCORDvodkart#6090

 

Link para o post
Compartilhar em outros sites

Certo...

 

Agora me listem os tipos de códigos relacionado ao sistema que vocês querem, farei tudo está semana!

 

Exemplo do tile que só passa se tiver X task points(já feito)

Door de task points

Npc que só teleporta se tiver task points

npc que só vende itens(por gold claro) se tiver task points(por trade)

npc boss room para quem terminou a task de tal monster...

 

ETC! deem sugestões por favor!

 

 

vodkart_logo.png

[*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*]

 

DISCORDvodkart#6090

 

Link para o post
Compartilhar em outros sites
5 horas atrás, Vodkart disse:

Certo...

 

Agora me listem os tipos de códigos relacionado ao sistema que vocês querem, farei tudo está semana!

 

Exemplo do tile que só passa se tiver X task points(já feito)

Door de task points

Npc que só teleporta se tiver task points

npc que só vende itens(por gold claro) se tiver task points(por trade)

npc boss room para quem terminou a task de tal monster...

 

ETC! deem sugestões por favor!

 

Door de task points

Editado por wougoplex (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
10 minutos atrás, wougoplex disse:

Door de task points

 

<action actionid="84010" event="script"><![CDATA[
domodlib('task_func')
function onUse(cid, item, frompos, item2, topos)
local amount = 30
if getTaskPoints(cid) < amount then
return doPlayerSendTextMessage(cid,22,"Você só pode passar se tiver " .. amount .. " Task Points.") 
end
doTransformItem(item.uid, item.itemid + 1)
doTeleportThing(cid, topos, true)
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,"Welcome, Task Hunter!")
return true
end]]></action>

 

vodkart_logo.png

[*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*]

 

DISCORDvodkart#6090

 

Link para o post
Compartilhar em outros sites
Agora, Vodkart disse:

 


<action actionid="84010" event="script"><![CDATA[
domodlib('task_func')
function onUse(cid, item, frompos, item2, topos)
local amount = 30
if getTaskPoints(cid) < amount then
return doPlayerSendTextMessage(cid,22,"Você só pode passar se tiver " .. amount .. " Task Points.") 
end
doTransformItem(item.uid, item.itemid + 1)
doTeleportThing(cid, topos, true)
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,"Welcome, Task Hunter!")
return true
end]]></action>

 

Se eu quizer adicionar mais porta é so adicionar + 1 desse ao mod ? e muda o actionid ?

Link para o post
Compartilhar em outros sites
1 minuto atrás, wougoplex disse:

Se eu quizer adicionar mais porta é so adicionar + 1 desse ao mod ? e muda o actionid ?

 

você quer mais de uma door com número de points diferenciados? eu faço tudo num código só!

 

é isso?

vodkart_logo.png

[*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*]

 

DISCORDvodkart#6090

 

Link para o post
Compartilhar em outros sites
<action actionid="84010;84011;84012" event="script"><![CDATA[
domodlib('task_func')
function onUse(cid, item, frompos, item2, topos)
local t = {[84010] = 30, [84011] = 50, [84012] = 100}
if not t[item.actionid] then return true end
if getTaskPoints(cid) < t[item.actionid] then
return doPlayerSendTextMessage(cid,22,"Você só pode passar se tiver " .. t[item.actionid] .. " Task Points.") 
end
doTransformItem(item.uid, item.itemid + 1)
doTeleportThing(cid, topos, true)
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,"Welcome, Task Hunter!")
return true
end]]></action>

 

ve se no mods ele suppporta desse jeito as tags.

 

no caso o actionid 84010 ta pra 30 points, 84011 esta pra 50 e o 84012 para 100, só editar a tabela/tag caso queira colocar mais

lembrando que estou usando as expertise door

vodkart_logo.png

[*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*]

 

DISCORDvodkart#6090

 

Link para o post
Compartilhar em outros sites

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

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

  • Conteúdo Similar

    • Por luanluciano93
      Olá pessoal, estou desenvolvendo esse sistema vip para TFS 1.x, se precisarem de alguma função nova é só comentar, criei para usar em um servidor meu e resolvi postar, bom proveito a todos.
       
      É só ir no arquivo data/lib/core/player.lua e adicionar esse código no começo do script:
      -- ALTER TABLE `accounts` ADD `vip_time` BIGINT(20) NOT NULL DEFAULT 0; -- player:getVipTime() function Player.getVipTime(self) local resultId = db.storeQuery("SELECT `vip_time` FROM `accounts` WHERE `id` = '".. self:getAccountId() .."';") local time = resultId ~= false and result.getNumber(resultId, "vip_time") or 0 result.free(resultId) return time end -- player:isVip() function Player.isVip(self) return self:getVipTime() > os.time() and true or false end -- player:addVipDays(days) function Player.addVipDays(self, days) return(self:isVip() and tonumber((days * 86400))) and db.query("UPDATE `accounts` SET `vip_time` = '".. (self:getVipTime() + (days * 86400)) .."' WHERE `id` ='".. self:getAccountId() .."' LIMIT 1 ;") or db.query("UPDATE `accounts` SET `vip_time` = '".. (os.time() + (days * 86400)) .."' WHERE `id` ='".. self:getAccountId() .."' LIMIT 1 ;") end -- player:removeVipDays(days) function Player.removeVipDays(self, days) return(self:isVip() and tonumber((days * 86400))) and db.query("UPDATE `accounts` SET `vip_time` = '".. (self:getVipTime() - (days * 86400)) .."' WHERE `id` ='".. self:getAccountId() .."' LIMIT 1 ;") or db.query("UPDATE `accounts` SET `vip_time` = '".. (os.time() - (days * 86400)) .."' WHERE `id` ='".. self:getAccountId() .."' LIMIT 1 ;") end -- player:setVipDays(days) function Player.setVipDays(self, days) return db.query("UPDATE `accounts` SET `vip_time` = '".. (os.time() - (days * 86400)) .."' WHERE `id` ='".. self:getAccountId() .."' LIMIT 1 ;") end -- player:removeVip() function Player.removeVip(self) db.query("UPDATE `accounts` SET `vip_time` = '0' WHERE `id` ='".. self:getAccountId() .."' LIMIT 1 ;") end -- player:sendVipDaysMessage() function Player.sendVipDaysMessage(self) if self:isVip() then local vipTime = self:getVipTime() - os.time() local vipDays = 1 + (math.floor(vipTime / 86400)) return self:getVipTime() ~= false and self:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, 'You have '.. vipDays .. ' vip day(s) in your account.') end end -- player:checkVipLogin() function Player.checkVipLogin(self) if self:getVipTime() > 0 and not self:isVip() then return self:removeVip() and self:teleportTo(self:getTown():getTemplePosition()) end end  
       
      As funções são:
      • player:getVipTime() - Retorna o valor da tabela vip_time (igual esta na database).
      • player:isVip() - Retorna se o player é vip ou não.
      • player:addVipDays(days) - Usa-se em algum script para para adicionar dias de vip ao player (parâmetro de entrada "days").
      • player:removeVipDays(days) - Usa-se em algum script para para remover dias de vip do player (parâmetro de entrada "days").
      • player:setVipDays(days) - Usa-se em algum script para para mudar os dias de vip do player (parâmetro de entrada "days").
      • player:removeVip() - Usa-se em algum script para para remover todo tempo de vip do player.
      • player:sendVipDaysMessage() - Retorna uma mensagem no player mostrando os dias de vip que ainda restam ao player.
      • player:checkVipLogin() - Checa se a vip do player acabou, se sim teleporta ele para o templo.
       

      Qualquer dúvida ou erro/bug poste aqui.
    • Por Killua
      Como funciona?
      A cada monstro que vc mata, seus itens equipados ganham 1 de exp. Quando seus itens chegarem às quantidades de exp definidas, eles upam e ficam com o nome assim: Demon Helmet + 1. Helmets, armors, legs, e boots recebem 1 de arm a cada vez que upam. Armas recebem 1 de ataque e escudos 1 de defesa.
       
      Para o monstro contar, ele deve dar um mínimo de exp (definido no script). O número de exp a que me refiro é aquele um presente no arquivo .xml.
       
      Para instalar, crie Killua Items Upgrade.lua em data/creaturescripts/scripts e coloque:
        Em data/creaturescripts/creaturescripts.xml coloque essas duas tags:
      <event type="kill" name="Item level" event="script" value="Killua Items Upgrade.lua"/> <event type="login" name="Item levell" event="script" value="Killua Items Upgrade.lua"/> Configurando: Na tabela table_of_slots, coloque em quais slots os itens upam.
      min_exp é a experiência mínima que o monstro deve ter para contar exp para o item. Se vc colocar 500, somente os monstros que tem exp igual ou superior a 500 no arquivo.xml vão valer.
      exp_levels são os valores de exp que os itens devem atingir para upar. No meu caso, quando o item alcançar 50 de exp, ele upa para o level 1. Quando alcançar 50 de exp, upa para o level 2 e assim por diante.
    • Por Sekk
      Bom, procurei esse Castle por MUITO TEMPO, mas não achei em NENHUM LUGAR DA INTERNET. Ontem, eu estava vendo alguns mapas do @Deathrocks, e vi nos prints, que o mapa possuia o evento que eu queria!
       
      Então baixei o mapa e extrai o evento, então venho lhes trazer!
       
       
      Nome: Castle 24H
      Cliente: 8.6
      Versão TFS: 0.4
      Tipo: Evento
       
      Bom, para começar, vamos em actions/scripts e crie 2 arquivos:
       
      castledoor1.lua
       
      castlewar1.lua
       
        Agora em actions.xml adicione as tags:
       
      Agora em monster/traps crie 3 arquivos:
       
      porta.xml
       
      protectcastle.xml  
      statue.xml  
      Agora em monsters.xml adicione as tags:    
      Vamos para movements/scripts e crie 2 arquivos:
       
      castlewar2.lua
       
      level.lua  
      Agora em movements.xml adicione as tags:  
       
      Pronto. Agora você só precisa baixar o mapa, inserir o mesmo ao seu servidor, configurar os teleports, e as hunts dentro do castle etc.
       
      PRINTS:
      1ª parte
       
      2ª parte:
       
      Obs.: Todos os ActionID e monsters já estão no mapa! Você só precisa configurar as coordenadas dos teleports, e o que possui no castle!
       
      Obs².: Tudo o que você pode configurar, já está escrito em cada script!
       
       
      Créditos:
      @DeathRocks
      PC98
      mapa.rar
    • Por gpedro
      Testado: MySQL & SQLite
      Distro: TFS 0.4_SVN & TFS 0.3.6

      MySQL

      ALTER TABLE `players` ADD `resets` INT(11) NOT NULL DEFAULT "0"; SQLite ALTER TABLE players ADD resets INTEGER not null default 0 Adicionando nas sources player.h procure por: uint32_t level; logo abaixo, adicione: uint32_t resets; iologindata.cpp procure por query << "SELECT `id`, `account_id`, `group_id`, `world_id`, `sex`, `vocation`, `experience`, `level`," substitua por: query << "SELECT `id`, `account_id`, `group_id`, `world_id`, `sex`, `vocation`, `experience`, `level`, `resets`, " procure por player->level = std::max((uint32_t)1, (uint32_t)result->getDataInt("level")); logo abaixo adicione: player->resets = (uint32_t)result->getDataInt("resets"); procure por query << "`maglevel` = " << player->magLevel << ", "; logo abaixo adicione: query << "`resets` = " << player->resets << ", "; players.cpp procure por: s << " (Level " << level << ")"; substitua por: s << " (Level " << level << ") [Reset " << resets << "]"; players.h procure por: void setPromotionLevel(uint32_t pLevel); logo abaixo adicione: uint32_t getResets() { return resets;} void setResets(int32_t amount) { resets += amount; if (resets < 0) {resets = 0;} } luascript.cpp para 0.3.6 static int32_t luaDoPlayerSetIdleTime(lua_State* L); logo abaixo adicione: static int32_t luaGetResets(lua_State* L); static int32_t luaSetResets(lua_State* L); talkactions.xml <talkaction words="!rank;/rank" event="script" value="ranks.lua"/> <talkaction words="!reset;/reset" script="reset.lua"/> ranks.lua
      Créditos: Dark Skyllen, Marcryzius, Mock, Kydrai, Cykotitan, gpedro*.
      * adaptação para 0.4
    • Por VitorSubhi
      Apresentação: Olá galera do Tibia King, este é meu primeiro tutorial que desenvolvo após anos apenas sugando da comunidade, chegou a hora de compartilhar um pouco de conhecimento, rsrs...
      Após ver que muitos usuários tinham interesse em um sistema de Trade de Points in-game resolvi trazer um sistema totalmente completo para vocês.
       
      Funcionamento:
      Player 1 após adquirir os Points, pode iniciar uma negociação com o Player 2 através do comando /tradepoints Player 2, Quantidade. Será aberto uma Janela de Trade com o item referente aos Points. Após ambos aceitarem a negociação será realizado a troca de Points pelo item requisitado.
      Observações:
      Necessário ter acesso às Sources de sua Distro. Testado em servidor 8.6 (The Forgotten Server 0.4). Antes que venham falar que possui sistemas parecidos, veja o diferencial (Item não aparece em nenhum inventário, e não é necessário usar/comprar qualquer item).  
      Algumas Imagens:
       
      Instalação:
      Sources > Luascript.cpp Sources > Luascript.cpp Sources > Luascript.h  
       
      Server > Data > Lib > 050-function Server > Data > Creaturescripts > Scripts >Trade_Orbs.lua Server > Data > Creaturescripts > Creaturescripts.xml Server > Data > Creaturescripts > Scripts > Login.lua Server > Data > Talkactions > Scripts > Points_Trade.lua Server > Data > Talkactions > Talkactions.xml Créditos:
      Todo o sistema foi feito completamente por mim: Vítor Subhi.
      The Forgotten Server (Pelas Sources)
      Vodkart, White Wolf, Natanael Beckman, e a todos os demais membros do TK que não lembro o nome, que contribuíram indiretamente através de seus tutoriais.
       
       
       
       
       



×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo