Ir para conteúdo
  • Cadastre-se

Posts Recomendados

Não, basta que adicione corretamente a pos e id das paredes no script, e no mapper editor colocar as paredes lá, que quando o evento começar a parede vai ser removida, e quando acabar as mesmas serão criadas

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
  • 3 months later...
  • Respostas 184
  • Created
  • Última resposta

Top Posters In This Topic

Top Posters In This Topic

Popular Posts

Mapa BattleField Feito Por AnneMotta : Mapa Battlefield.rar Scan: https://www.virustot...sis/1346548669/ Imagens do mapa Descrição: - O evento é automático e acontece em determinado

sim, isso mesmo. Mas no caso você tem que colocar no mapper editor as paredes pq qndo o evento abrir elas serão removidas, e quando o evento acabar elas voltam a ser criadas! infelizm

eu posso fazer o mapa, depois falo com o vod pra ver certinho como tem que fazer o mapa pro evento.

Posted Images

  • 1 month later...

Sistema muito bem elaborado, porém possuem pessoas que gostariam de ativar o evento manualmente a qualquer momento, além do evento automático...
Então resolvi criar um Talkaction, para contribuir, para instalá-lo é muito fácil... Basta criar um arquivo chamado Battlefield em Data/Talkactions/Scripts, e adicionar:

function onSay(cid, words, param)
    if(param == '') then
        return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "/battlefield players"), TRUE
    end
    if (tonumber(param) %2 == 0) then
        local tp = doCreateItem(1387, 1, _Lib_Battle_Info.tpPos)
        doItemSetAttribute(tp, "aid", 45000)
        CheckEvent(_Lib_Battle_Info.limit_Time)
        doBroadcastMessage("The event BattleField was opened. We are waiting "..param.." Players! Team divided into "..((param)/2).." VS "..((param)/2)..".")
        return setGlobalStorageValue(_Lib_Battle_Info.storage_count, param)
    end
    return TRUE
end

E em seguida adicionar ao arquivo Data/Talkactions/Talkactions.xml, a seguinte linha:

<talkaction words="/battlefield" log="yes" access="5" event="script" value="Battlefield.lua"/>

 

Como iniciar o evento, basta utilizar o seguinte comando (/battlefield players).

Obs.: O número de players deve ser par, considerando que haverá número de players iguais nos dois times.

Link para o post
Compartilhar em outros sites
  • 1 month later...

como faço para modificar o numero maximo para minimo?

exemplo ali no script você escolhe quantas pessoas vão poder entrar: ex 30 pessoas, 15 pra cada lado.
mas e se mais de 30 pessoas quisserem participar? ou se não tiver 30 pessoas o evento não acontece.

 

Scriptszinhos:

 

Não abandone seu tópico, quando você tiver a dúvida resolvida sozinho tente ensinar aos outros como resolve-la (você pode não ser o único com o problema) e quando ela for resolvida por outra pessoa não se esqueça de marcar como melhor resposta e deixar o gostei.

Link para o post
Compartilhar em outros sites
  • 5 months later...

Era para fazer isso no mapa quando você disse sobre por no logout tool e pvp tool?

 

 

1.png

2.png

Link para o post
Compartilhar em outros sites
  • 1 month later...

Aqui quando o char entra pro evento o outfit não muda, e se o evento cancela ele não é teleportado de volta =x
Mais alguém teve esse erro? Conseguiu arrumar? 

Link para o post
Compartilhar em outros sites
  • 6 months later...

Boa noite,

 

O script está funcionando, porem quando termina o evento, ele n adiciona as parades novamentes, alguem pode me ajudar por favor?

 

segue o LIB:

 

_Lib_Battle_Info = {
Reward = {
exp = {false, 0}, items = {true, 9020, 50}, premium_days = {false, 0}
},
TeamOne = {name = "Black Assassins", storage = 140120, pos = {x=32505,y=32540,z=7}},
TeamTwo = {name = "Red Barbarians",storage = 140121,pos = {x=32546,y=32538,z=7}},
storage_count = 180400,
tpPos = {x=32365, y=32232, z=7},
limit_Time = 5 -- limite de tempo para adentrar o evento
}
function resetBattle()
setGlobalStorageValue(_Lib_Battle_Info.TeamOne.storage, 0)
setGlobalStorageValue(_Lib_Battle_Info.TeamTwo.storage, 0)
end
function OpenWallBattle()
local B = {
{1541,{x=32525, y=32540, z=6, stackpos = 1}},
{1542,{x=32525, y=32541, z=6, stackpos = 1}},
{1543,{x=32525, y=32542, z=6, stackpos = 1}},
{1544,{x=32525, y=32543, z=6, stackpos = 1}},
{1545,{x=32518, y=32528, z=6, stackpos = 1}},
{1546,{x=32518, y=32529, z=6, stackpos = 1}},
{1547,{x=32529, y=32528, z=6, stackpos = 1}},
{1548,{x=32529, y=32529, z=6, stackpos = 1}}
}
for i = 1, #B do
if getTileItemById(B[i][2], B[i][1]).uid == 0 then
doRemoveItem(getThingfromPos(B[i][2]).uid,1)
else
doCreateItem(B[i][1], 1, B[i][2])
end
end
end
function doBroadCastBattle(type, msg)
for _, cid in pairs(getPlayersOnline()) do
if getPlayerStorageValue(cid, _Lib_Battle_Info.TeamOne.storage) >= 1 or getPlayerStorageValue(cid, _Lib_Battle_Info.TeamTwo.storage) >= 1 then
doPlayerSendTextMessage(cid,type,msg)
end
end
end
function removeBattleTp()
local t = getTileItemById(_Lib_Battle_Info.tpPos, 1387).uid
return t > 0 and doRemoveItem(t) and doSendMagicEffect(_Lib_Battle_Info.tpPos, CONST_ME_POFF)
end
function getWinnersBattle(storage)
local str, c = "" , 0
for _, cid in pairs(getPlayersOnline()) do
if getPlayerStorageValue(cid, storage) == 1 then
if _Lib_Battle_Info.Reward.exp[1] == true then doPlayerAddExperience(cid, _Lib_Battle_Info.Reward.exp[2]) end
if _Lib_Battle_Info.Reward.items[1] == true then doPlayerAddItem(cid, _Lib_Battle_Info.Reward.items[2], _Lib_Battle_Info.Reward.items[3]) end
if _Lib_Battle_Info.Reward.premium_days[1] == true then doPlayerAddPremiumDays(cid, _Lib_Battle_Info.Reward.premium_days[2]) end
doRemoveCondition(cid, CONDITION_OUTFIT)
doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)))
setPlayerStorageValue(cid, storage, -1)
c = c+1 
end
end
str = str .. ""..c.." Player"..(c > 1 and "s" or "").." from team "..(getGlobalStorageValue(_Lib_Battle_Info.TeamOne.storage) == 0 and _Lib_Battle_Info.TeamTwo.name or _Lib_Battle_Info.TeamOne.name).." won the event battlefield!"
resetBattle()
OpenWallBattle()
return doBroadcastMessage(str)
end
function CheckEvent(delay)
if delay > 0 and getGlobalStorageValue(_Lib_Battle_Info.storage_count) > 0 then
doBroadcastMessage("[BattleField Event] We are waiting "..getGlobalStorageValue(_Lib_Battle_Info.storage_count).." players to Battlefield starts")
elseif delay == 0 and getGlobalStorageValue(_Lib_Battle_Info.storage_count) > 0 then
for _, cid in pairs(getPlayersOnline()) do
if getPlayerStorageValue(cid, _Lib_Battle_Info.TeamOne.storage) >= 1 or getPlayerStorageValue(cid, _Lib_Battle_Info.TeamTwo.storage) >= 1 then
doRemoveCondition(cid, CONDITION_OUTFIT)
doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)))
setPlayerStorageValue(cid, _Lib_Battle_Info.TeamOne.storage, -1)
setPlayerStorageValue(cid, _Lib_Battle_Info.TeamTwo.storage, -1)
end
end
doBroadcastMessage("The event cannot be started because not had enough players.")
setGlobalStorageValue(_Lib_Battle_Info.storage_count, 0)
resetBattle()
removeBattleTp()
end
addEvent(CheckEvent, 60000, delay-1)
end

 

Link para o post
Compartilhar em outros sites
local B = {
{1541,{x=32525, y=32540, z=6, stackpos = 1}},
{1542,{x=32525, y=32541, z=6, stackpos = 1}},
{1543,{x=32525, y=32542, z=6, stackpos = 1}},
{1544,{x=32525, y=32543, z=6, stackpos = 1}},
{1545,{x=32518, y=32528, z=6, stackpos = 1}},
{1546,{x=32518, y=32529, z=6, stackpos = 1}},
{1547,{x=32529, y=32528, z=6, stackpos = 1}},
{1548,{x=32529, y=32529, z=6, stackpos = 1}}
}

 

o ID ali é das paredes, você está colocando em ordem crescente?

 

digamos o ID da parede é 1543, se todos é o msm ID, tem que repetir, exemplo:

 

local B = {
{1543,{x=32525, y=32540, z=6, stackpos = 1}},
{1543,{x=32525, y=32541, z=6, stackpos = 1}},
{1543,{x=32525, y=32542, z=6, stackpos = 1}},
{1543,{x=32525, y=32543, z=6, stackpos = 1}},
{1543,{x=32518, y=32528, z=6, stackpos = 1}},
{1543,{x=32518, y=32529, z=6, stackpos = 1}},
{1543,{x=32529, y=32528, z=6, stackpos = 1}},
{1543,{x=32529, y=32529, z=6, stackpos = 1}}
}

 

 

 

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
  • 2 months later...

@Vodkart Amigo estou testando o script e quando ele abre o evento ele fica spamando isso (não para mais) só mudei para 2 players participarem do evento:

Spoiler

> Broadcasted message: "[BattleField Event] We are waiting 2 players to Battlefield starts".
> Broadcasted message: "The event BattleField was opened and We are waiting 2 Players! Team divided into 1 VS 1".

poderia me ajudar? (depois que me apoiar com o outro script.)

VlVKQKC.png&key=d5c17620ae9567a1f898dd7a

 

 

 

  • 532144234_Logo_NTO_BLOOD_Finish_HIM_By_Antonio_Luckas(3).png.fd58d1af125a7e82ccdd751637e9ca93.png
Link para o post
Compartilhar em outros sites
1 hora atrás, King Laker disse:

@Vodkart Amigo estou testando o script e quando ele abre o evento ele fica spamando isso (não para mais) só mudei para 2 players participarem do evento:

  Mostrar conteúdo oculto

> Broadcasted message: "[BattleField Event] We are waiting 2 players to Battlefield starts".
> Broadcasted message: "The event BattleField was opened and We are waiting 2 Players! Team divided into 1 VS 1".

poderia me ajudar? (depois que me apoiar com o outro script.)

 

é que seu servidor deve ser em milesegundos, ai na TAG do globalevents.xml troca o 60 por 60000, ficando assim:

 

<globalevent name="GlobalBattle" interval="60000" event="script" value="BattleGlobalEvents.lua"/>

 

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 Como faço para adicionar 1 bp com 1500 do item ID 2160, e 300 do item ID 824? como premio aqui
 

Spoiler

Reward = {
exp = {true, 100}, items = {true, 2160, 10}, premium_days = {true, 2}
},

 

Editado por King Laker (veja o histórico de edições)

VlVKQKC.png&key=d5c17620ae9567a1f898dd7a

 

 

 

  • 532144234_Logo_NTO_BLOOD_Finish_HIM_By_Antonio_Luckas(3).png.fd58d1af125a7e82ccdd751637e9ca93.png
Link para o post
Compartilhar em outros sites
7 minutos atrás, King Laker disse:

@Vodkart Como faço para adicionar 1 bp com 1500 do item ID 2160, e 300 do item ID 824? como premio aqui
 

  Mostrar conteúdo oculto

Reward = {
exp = {true, 100}, items = {true, 2160, 10}, premium_days = {true, 2}
},

 

 

me envia por MP a lib do seu battleifield que eu edito pra vc.

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
TeamOne = {name = "Black Assassins", storage = 140120, pos = {x=164,y=54,z=7}},
TeamTwo = {name = "Red Barbarians",storage = 140121,pos = {x=163,y=50,z=7}}

se eu mudar o nome dos times 

Spoiler

local conditionBlack = createConditionObject(CONDITION_OUTFIT)
setConditionParam(conditionBlack, CONDITION_PARAM_TICKS, -1)
addOutfitCondition(conditionBlack, {lookType = 134, lookHead = 114, lookBody = 114, lookLegs = 114, lookFeet = 114})
local conditionRed = createConditionObject(CONDITION_OUTFIT)
setConditionParam(conditionRed, CONDITION_PARAM_TICKS, -1)
addOutfitCondition(conditionRed, {lookType = 143, lookHead = 94, lookBody = 94, lookLegs = 94, lookFeet = 94})

preciso mudar aqui também? pq queria mudar os outfits@Vodkart 

VlVKQKC.png&key=d5c17620ae9567a1f898dd7a

 

 

 

  • 532144234_Logo_NTO_BLOOD_Finish_HIM_By_Antonio_Luckas(3).png.fd58d1af125a7e82ccdd751637e9ca93.png
Link para o post
Compartilhar em outros sites
11 horas atrás, King Laker disse:

TeamOne = {name = "Black Assassins", storage = 140120, pos = {x=164,y=54,z=7}},
TeamTwo = {name = "Red Barbarians",storage = 140121,pos = {x=163,y=50,z=7}}

se eu mudar o nome dos times 

  Mostrar conteúdo oculto

local conditionBlack = createConditionObject(CONDITION_OUTFIT)
setConditionParam(conditionBlack, CONDITION_PARAM_TICKS, -1)
addOutfitCondition(conditionBlack, {lookType = 134, lookHead = 114, lookBody = 114, lookLegs = 114, lookFeet = 114})
local conditionRed = createConditionObject(CONDITION_OUTFIT)
setConditionParam(conditionRed, CONDITION_PARAM_TICKS, -1)
addOutfitCondition(conditionRed, {lookType = 143, lookHead = 94, lookBody = 94, lookLegs = 94, lookFeet = 94})

preciso mudar aqui também? pq queria mudar os outfits@Vodkart 

 

é isso mesmo, você está certo, lá em cima os nomes e ali embaixo as outfits!

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
  • 1 month later...

alguem pode me ajudar nesse erro 

[Error - CreatureScript Interface] 
[11/08/2018 04:04:41] data/creaturescripts/scripts/BattleCreatureScript.lua:onLogin
[11/08/2018 04:04:41] Description: 
[11/08/2018 04:04:41] ...ata/creaturescripts/scripts/BattleCreatureScript.lua:4: attempt to index global '_Lib_Battle_Info' (a nil value)
[11/08/2018 04:04:41] stack traceback:
[11/08/2018 04:04:41]     ...ata/creaturescripts/scripts/BattleCreatureScript.lua:4: in function <...ata/creaturescripts/scripts/BattleCreatureScript.lua:1>
[11/08/2018 04:04:41] Account Manager has logged out.

nao consigo logar nenhum CHAR alem disso o TFS nao reconhece attempt to index global '_Lib_Battle_Info' (a nil value)

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

alguem pode me ajudar nesse erro 

[Error - CreatureScript Interface] 
[11/08/2018 04:04:41] data/creaturescripts/scripts/BattleCreatureScript.lua:onLogin
[11/08/2018 04:04:41] Description: 
[11/08/2018 04:04:41] ...ata/creaturescripts/scripts/BattleCreatureScript.lua:4: attempt to index global '_Lib_Battle_Info' (a nil value)
[11/08/2018 04:04:41] stack traceback:
[11/08/2018 04:04:41]     ...ata/creaturescripts/scripts/BattleCreatureScript.lua:4: in function <...ata/creaturescripts/scripts/BattleCreatureScript.lua:1>
[11/08/2018 04:04:41] Account Manager has logged out.

nao consigo logar nenhum CHAR alem disso o TFS nao reconhece attempt to index global '_Lib_Battle_Info' (a nil value)

 

 

diz que não está achando a lib do battlefield!

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
  • 4 months later...

Aqui deu um erro e eu ja tentei de todas as formas arrumar isso mas não consigo... vInserir outra mídia ocê sabe dizer o que é?

Ai está a imagem do erro, e creaturescripts que fala que ta com erro. O script eu só fiz copiar e colar do jeito que tu falou ai.

 

 

 

erro.png.a6e6e81431e8b21109ac0a69bb178f23.png

creaturescripts.xml

Editado por Sivermisty (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

@Sivermisty As vezes quando você copia algo no TK vem uns caracteres especiais...  está aqui:

 

https://pastebin.com/raw/VZvrPjTa

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

Muito obrigado! @Vodkart Rep+ sz'

 

Agora está abrindo tudo direitinho, sem erro no distro, porém, quando o evento starta abre o tp e fica spamando 2 mesagens [Battlefield Event] We are waiting... e a outra é a que mostra na iamgem, meu servidor é por milissegundos isso é normal acontecer ou tem que modificar algo?

 

O outro bug foi ao entrar no teleport ninguém é teleportado apenas fica no SQM do teleport só que invisivel, hahaha nunca vi um bug assim. (na imagem tem gente no tp da para ver pela mensagem que fica spamando)

 

erro.png.717d25d195182fedaa0c9ca424c323dd.png

Editado por Sivermisty (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

@Sivermisty 

 

na tag do globalevents mude o 

 

interval="60" de 60 para 60000

 

interval="60000"

 

esse do tp nunca vi também pq nunca aconteceu comigo, tenta checas as pos do teleporte novamente para ver se poderia ser 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

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