Ir para conteúdo

ViitinG

Membro
  • Registro em

  • Última visita

Tudo que ViitinG postou

  1. ViitinG postou uma resposta no tópico em Suporte Tibia OTServer
    Os players estão criando conta pelo Account Manager ou pelo site ?
  2. ViitinG postou uma resposta no tópico em Suporte Tibia OTServer
    Seu server é sqlite ou mysql brother ??
  3. ViitinG postou uma resposta no tópico em Suporte Tibia OTServer
    Tenta mudar o server para "sha1".
  4. Ter tem cara mas eu não to em casa agora para puder mecher nisso. Mas é só adicionar em globalevents..
  5. Sim basta você configurar como eu mandei acima as posições de onde os 2 times irão ser teleportados.
  6. Como diz acima é a posição onde os players irão entrar no tp. Cada time tem seu lugar de ser teleportado você pode alterar aqui : TeamOne = {name = "Black Assassins", storage = 140120, pos = {x=613,y=802,z=7}}, TeamTwo = {name = "Red Barbarians",storage = 140121,pos = {x=631,y=801,z=7}},
  7. Brother eu ensinei tudo acima é só você seguir todos os passos certinho que irá funcionar perfeitamente !!
  8. Eu uso o mapa feito pelo AnneMotta : http://www.tibiaking.com/forum/index.php?app=core&module=attach&section=attach&attach_id=1975
  9. ViitinG postou uma resposta no tópico em Suporte Tibia OTServer
    Veja se esse tutorial do Kimoszin te ajuda : http://www.tibiaking.com/forum/topic/13639-criando-site-para-seu-ot-server-com-vertrigo/
  10. Parece ser bem legal párabens. Tente formatar melhor seu topico,não use letras muito grandes e nem muita variação de cores !! (dica por ser seu primeiro topico) obs : faltou o download do servidor !!
  11. Lembre-se: - De colocar Pvp Tool na área - De colocar área NoLogout Data/Lib/BattleLib.lua : _Lib_Battle_Info = { Reward = {2160,10}, TeamOne = {name = "Black Assassins", storage = 140120, pos = {x=613,y=802,z=7}}, TeamTwo = {name = "Red Barbarians",storage = 140121,pos = {x=631,y=801,z=7}}, storage_count = 180400, tpPos = {x=158, y=57, z=7}, limit_Time = 10 -- em minutos } function resetBattle() return setGlobalStorageValue(_Lib_Battle_Info.TeamOne.storage, 0) and setGlobalStorageValue(_Lib_Battle_Info.TeamTwo.storage, 0) end function OpenWallBattle() local B = { {1543,{x=622, y=803, z=7, stackpos = 1}}, {1543,{x=622, y=804, z=7, stackpos = 1}}, {1543,{x=622, y=805, z=7, stackpos = 1}}, {1543,{x=622, y=806, z=7, stackpos = 1}} } for i = 1, #B do if getTileItemById(B[i][2], B[i][1]).uid == 0 then doCreateItem(B[i][1], 1, B[i][2]) else doRemoveItem(getThingfromPos(B[i][2]).uid,1) end end end function doBroadCastBattle(type,msg) local players = {} 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 table.insert(players, cid) end end for i = 1, #players do doPlayerSendTextMessage(players[i],type,msg) 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 players,str = {},"" for _, cid in pairs(getPlayersOnline()) do if getPlayerStorageValue(cid, storage) == 1 then table.insert(players, cid) end end str = str .. ""..#players.." Player"..(#players > 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, they received a ".._Lib_Battle_Info.Reward[2].." "..getItemNameById(_Lib_Battle_Info.Reward[1]).."!" for i = 1, #players do doPlayerAddItem(players[i], _Lib_Battle_Info.Reward[1], _Lib_Battle_Info.Reward[2]) doRemoveCondition(players[i], CONDITION_OUTFIT) doTeleportThing(players[i], getTownTemplePosition(getPlayerTown(players[i]))) setPlayerStorageValue(players[i], storage, -1) end 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 local players = {} 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 table.insert(players, cid) end end for i = 1, #players do doRemoveCondition(players[i], CONDITION_OUTFIT) doTeleportThing(players[i], getTownTemplePosition(getPlayerTown(players[i]))) setPlayerStorageValue(players[i], getPlayerStorageValue(players[i], _Lib_Battle_Info.TeamOne.storage) == 1 and _Lib_Battle_Info.TeamOne.storage or _Lib_Battle_Info.TeamTwo.storage, -1) 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 Data/CreatureScript/BattleCreatureScript.lua : function onLogin(cid) if getGlobalStorageValue(_Lib_Battle_Info.TeamOne.storage) == -1 then setGlobalStorageValue(_Lib_Battle_Info.TeamOne.storage, 0) setGlobalStorageValue(_Lib_Battle_Info.TeamTwo.storage, 0) setGlobalStorageValue(_Lib_Battle_Info.storage_count, 0) end registerCreatureEvent(cid, "BattleTeam") registerCreatureEvent(cid, "BattleDeath") return true end function onCombat(cid, target) if isPlayer(cid) and isPlayer(target) then if getPlayerStorageValue(cid, _Lib_Battle_Info.TeamOne.storage) == 1 and getPlayerStorageValue(target, _Lib_Battle_Info.TeamOne.storage) == 1 then doPlayerSendCancel(cid, "You may not attack your team mates.") return false end if getPlayerStorageValue(cid, _Lib_Battle_Info.TeamTwo.storage) == 1 and getPlayerStorageValue(target, _Lib_Battle_Info.TeamTwo.storage) == 1 then doPlayerSendCancel(cid, "You may not attack your team mates.") return false end return true end return true end function onPrepareDeath(cid, deathList, lastHitKiller, mostDamageKiller) if getPlayerStorageValue(cid, _Lib_Battle_Info.TeamOne.storage) >= 1 then setPlayerStorageValue(cid, _Lib_Battle_Info.TeamOne.storage, -1) setGlobalStorageValue(_Lib_Battle_Info.TeamOne.storage, getGlobalStorageValue(_Lib_Battle_Info.TeamOne.storage)-1) doRemoveCondition(cid, CONDITION_OUTFIT) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "[Battle Field] You Are Dead!") if getGlobalStorageValue(_Lib_Battle_Info.TeamOne.storage) == 0 then getWinnersBattle(_Lib_Battle_Info.TeamTwo.storage) else doBroadCastBattle(23,"[BattleField Information] ".._Lib_Battle_Info.TeamOne.name.." "..getGlobalStorageValue(_Lib_Battle_Info.TeamOne.storage).." VS "..getGlobalStorageValue(_Lib_Battle_Info.TeamTwo.storage).." " .._Lib_Battle_Info.TeamTwo.name) end elseif getPlayerStorageValue(cid, _Lib_Battle_Info.TeamTwo.storage) >= 1 then setPlayerStorageValue(cid, _Lib_Battle_Info.TeamTwo.storage, -1) setGlobalStorageValue(_Lib_Battle_Info.TeamTwo.storage, getGlobalStorageValue(_Lib_Battle_Info.TeamTwo.storage)-1) doRemoveCondition(cid, CONDITION_OUTFIT) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "[Battle Field] You Are Dead!") if getGlobalStorageValue(_Lib_Battle_Info.TeamTwo.storage) == 0 then getWinnersBattle(_Lib_Battle_Info.TeamOne.storage) else doBroadCastBattle(23,"[BattleField Information] ".._Lib_Battle_Info.TeamOne.name.." "..getGlobalStorageValue(_Lib_Battle_Info.TeamOne.storage).." VS "..getGlobalStorageValue(_Lib_Battle_Info.TeamTwo.storage).." " .._Lib_Battle_Info.TeamTwo.name) end end return true end creaturescript.xml : <event type="login" name="BattleLogin" event="script" value="BattleCreatureScript.lua"/> <event type="PrepareDeath" name="BattleDeath" event="script" value="BattleCreatureScript.lua"/> <event type="combat" name="BattleTeam" event="script" value="BattleCreatureScript.lua"/> Data/Globalevents/BattleGlobalEvents.lua : function onThink(interval, lastExecution) local _Lib_Battle_Days = { ["Monday"] = { ["16:00"] = {players = 30}, ["21:30"] = {players = 20} }, ["Tuesday"] = { ["17:02"] = {players = 8} }, ["Thursday"] = { ["11:26"] = {players = 4}, ["20:30"] = {players = 10} } } if _Lib_Battle_Days[os.date("%A")] then local hours = tostring(os.date("%X")):sub(1, 5) local tb = _Lib_Battle_Days[os.date("%A")][hours] if tb and (tb.players % 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 and We are waiting "..tb.players.." Players! Team divided into "..((tb.players)/2).." VS "..((tb.players)/2)) setGlobalStorageValue(_Lib_Battle_Info.storage_count, tb.players) return true end end return true end Data/Movements/BattleMovements.lua : 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}) function onStepIn(cid, item, position, fromPosition) if getPlayerAccess(cid) > 3 then doTeleportThing(cid, _Lib_Battle_Info.TeamOne.pos) return false elseif getGlobalStorageValue(_Lib_Battle_Info.storage_count) > 0 then setGlobalStorageValue(_Lib_Battle_Info.storage_count, getGlobalStorageValue(_Lib_Battle_Info.storage_count)-1) end if getGlobalStorageValue(_Lib_Battle_Info.storage_count) >= 0 then if getGlobalStorageValue(_Lib_Battle_Info.TeamOne.storage) < getGlobalStorageValue(_Lib_Battle_Info.TeamTwo.storage) then setPlayerStorageValue(cid, _Lib_Battle_Info.TeamOne.storage, 1) doAddCondition(cid, conditionBlack) setGlobalStorageValue(_Lib_Battle_Info.TeamOne.storage, getGlobalStorageValue(_Lib_Battle_Info.TeamOne.storage)+1) doTeleportThing(cid, _Lib_Battle_Info.TeamOne.pos) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You will join the team " .. _Lib_Battle_Info.TeamOne.name .. "!") else setPlayerStorageValue(cid, _Lib_Battle_Info.TeamTwo.storage, 1) doAddCondition(cid, conditionRed) setGlobalStorageValue(_Lib_Battle_Info.TeamTwo.storage, getGlobalStorageValue(_Lib_Battle_Info.TeamTwo.storage)+1) doTeleportThing(cid, _Lib_Battle_Info.TeamTwo.pos) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You will join the team " .. _Lib_Battle_Info.TeamTwo.name .. "!") end end if getGlobalStorageValue(_Lib_Battle_Info.storage_count) == 0 then removeBattleTp() doBroadcastMessage("Battlefield will start in 2 minutes, please create your strategy!") addEvent(doBroadcastMessage, 2*60*1000-500, "BattleField will begin now!") addEvent(OpenWallBattle, 2*60*1000) end return true end Como configurar: Configuração dos Times: Configurar Datas do evento: Configuração Paredes: Creditos : 100% Vodkart Para botar o mapa Battlefield no servidor abra o mapa do BF no RME copie completamente a area,copie e aperte "file/new" abra o seu mapa e cole na area que você desejar.
  12. Muda a posição do Account Manager no config.lua,libera as portas 7171 - 7172 no modem e no firewall e tenta passar o IP em numeros para seus amigos.
  13. ViitinG postou uma resposta no tópico em Suporte Tibia OTServer
    Tente este : Vá até "data/creaturescript/scripts", copie um arquivo lua e renomeie para "antiacc.lua" e coloca isso: local config = { max = 1, -- número de Account Manager permitido para logar de uma só vez group_id = "Account Manager" -- kikar apenas player com o group id 1 } local accepted_ip_list = {} -- lista dos players permitidos a usar MC, exemplo: {"200.85.3.60", "201.36.5.222"} local function antiMC(p) if (#getPlayersByIp(getPlayerIp(p.pid)) >= p.max) then doRemoveCreature(p.pid) end return true end function onLogin(cid) if getPlayerName(cid) == config.group_id then if isInArray(accepted_ip_list,doConvertIntegerToIp(getPlayerIp(cid))) == false then addEvent(antiMC, 1000, {pid = cid, max = config.max+1}) end end return true end Após isso em "creaturescript.xml" adicione essa tag: <event type="login" name="antiacc" event="script" value="antiacc.lua"/> Ajudei = REP + #Créditos: luuuck por postar no TK. eickhoff luuuck
  14. Putz verdade,erro meu e nem percebi...
  15. Eu não mandei botar o nome policial.xml,tem que deixar o nome guard.xml brother.
  16. Tente esse para o Policial : Em "data/npc/lib", crie um arquivo chamado "guard.lua" e adicione o conteúdo abaixo: Guard = { config = { attackspeed = 1000, }, combat = {type = COMBAT_PHYSICALDAMAGE, min = 100, max = 200} } function Guard:new() local ret = {} setmetatable({}, {__index = self.combat}) setmetatable(ret, {__index = self}) return ret end function Guard:reset() self.config = Guard.config self.target = 0 selfFollow(0) doTeleportThing(self.id, self.position) end function Guard:updateTarget() if self.target ~= 0 then return end local creatures = getSpectators(getThingPosition(self.id), self.range, self.range, false) for i = 1, #creatures do local target = creatures[i] if isCreature(target) and not isNpc(target) and getCreatureSkull(target) >= 3 then if not getTilePzInfo(getThingPosition(target)) then if selfFollow(target) then selfSay("I don't tolerate people like you, ".. getCreatureName(target)) self.target = target self:attack() break end end else self:reset() end end end function Guard:attack() if self.target == 0 then self:reset() return end self.time = self.time or os.clock() if self.time < os.clock() then if getDistanceBetween(getThingPosition(self.id), getThingPosition(self.target)) == 1 then doTargetCombatHealth(self.id, self.target, self.combat.type, -self.combat.min, -self.combat.max, CONST_ME_DRAWBLOOD) end self.time = self.time + (self.config.attackspeed/1000) end end Agora em "data/npc/scripts", crie um arquivo chamado "guard.lua" e adicione o conteúdo abaixo: local guard = Guard:new() function onCreatureAppear(cid) if cid == getNpcId() then guard.id = getNpcId() guard.target = 0 guard.position = getNpcPos() end end function onCreatureDisappear(cid) if cid == guard.target then guard:reset() end end function onCreatureSay(cid, type, msg) return false end function onThink() guard:updateTarget() if guard.target ~= 0 then if isCreature(guard.target) then guard:attack() else guard:reset() end else guard:reset() end end E em "data/npc/" crie um arquivo chamado "guard.xml" e adicione o conteúdo abaixo: <?xml version="1.0" encoding="UTF-8"?> <npc name="Policial" script="guard.lua" walkinterval="0" speed="200" floorchange="0"> <health now="100" max="100"/> <look type="134" head="57" body="59" legs="40" feet="76" addons="0"/> <parameters/> </npc> Ajudei = REP +
  17. Não entendi direito oque você quer brother,explique melhor..
  18. Vai em "data/XML/vocations" : gainhp="5" : Quanto de HP irá ganhar. gainhpticks="4" : De quanto em quanto tempo irá ganhar o HP. gainmana="30" : Quanto de MP irá ganhar. gainmanaticks="2" : De quanto em quanto tempo irá ganhar MP.
  19. Tem dois topicos aqui do TK mesmo que podem te ajudar brother da proxima vez tente procurar antes de criar um topico !! http://www.tibiaking.com/forum/topic/2839-sistema-de-novos-items/ http://www.tibiaking.com/forum/topic/11142-criar-um-item-com-id-propria-usando-o-item-editor/
  20. Não entendo muito de website mas tente botar a senha que você criou no seu config.lua..
  21. Aperte "Ctrl + F" na pasta monster e procure por Morgaroth,veja se tem mais algum script de Morgaroth..
  22. Tente mudar seu script para este : <?xml version="1.0" encoding="UTF-8"?> <monster name="Morgaroth" nameDescription="Morgaroth" race="undead" experience="15000" speed="400" manacost="0"> <health now="55000" max="55000"/> <look type="12" head="0" body="94" legs="79" feet="79" corpse="6068"/> <targetchange interval="10000" chance="20"/> <strategy attack="100" defense="0"/> <flags> <flag summonable="0"/> <flag attackable="1"/> <flag hostile="1"/> <flag illusionable="0"/> <flag convinceable="0"/> <flag pushable="0"/> <flag canpushitems="1"/> <flag canpushcreatures="1"/> <flag staticattack="98"/> <flag targetdistance="1"/> <flag runonhealth="0"/> </flags> <attacks> <attack name="melee" interval="2000" min="-700" max="-2000"/> <attack name="fire" interval="3000" chance="35" range="7" radius="7" target="1" min="-700" max="-1200"> <attribute key="shootEffect" value="fire"/> <attribute key="areaEffect" value="firearea"/> </attack> <attack name="melee" interval="1800" chance="40" range="7" radius="5" target="0" min="-250" max="-400"> <attribute key="areaEffect" value="blackspark"/> </attack> <attack name="energy" interval="3000" chance="30" length="8" spread="0" min="-300" max="-1000"> <attribute key="areaEffect" value="energy"/> </attack> <attack name="physical" interval="2500" chance="20" range="7" radius="5" target="0" min="-200" max="-480"> <attribute key="areaEffect" value="greenshimmer"/> </attack> <attack name="physical" interval="2000" chance="15" range="7" radius="13" target="0" min="-250" max="-500"> <attribute key="areaEffect" value="rednote"/> </attack> <attack name="physical" interval="2000" chance="20" radius="14" target="0" min="-200" max="-450"> <attribute key="areaEffect" value="bluebubble"/> </attack> <attack name="melee" interval="3000" chance="15" range="7" radius="3" target="0" min="-100" max="-200"> <attribute key="areaEffect" value="blueshimmer"/> </attack> </attacks> <defenses armor="55" defense="65"> <defense name="healing" interval="3000" chance="35" min="300" max="800"> <attribute key="areaEffect" value="blueshimmer"/> </defense> <defense name="speed" interval="4000" chance="80" speedchange="440" duration="6000"> <attribute key="areaEffect" value="redshimmer"/> </defense> </defenses> <elements> <element firePercent="100"/> <element earthPercent="100"/> <element energyPercent="100"/> <element deathPercent="60"/> <element physicalPercent="40"/> <element icePercent="-25"/> </elements> <immunities> <immunity paralyze="1"/> <immunity invisible="1"/> </immunities> <summons maxSummons="6"> <summon name="Demon" interval="4000" chance="33"/> </summons> <voices interval="5000" chance="30"> <voice sentence="I AM MORGAROTH, LORD OF THE TRIANGLE... AND YOU ARE LOST!" yell="1"/> <voice sentence="MY SEED IS FEAR AND MY HARVEST ARE YOUR SOULS!" yell="1"/> <voice sentence="THE TRIANGLE OF TERROR WILL RISE!" yell="1"/> <voice sentence="ZATHROTH! LOOK AT THE DESTRUCTION I AM CAUSING IN YOUR NAME!" yell="1"/> </voices> <loot> </inside> </item> </loot> </monster>
  23. Você no caso quer que ele não drope o item então... Tem algum script que quando mata o Morgaroth está dropando este item brother,abrá a pasta action aperte "Ctrl + F" e procure pelo ID do item e veja se tem algum script relacionado a esse ID. Se não der tente procurar em creaturescript tambem !!
  24. Manda o script do monstro e o loot que você quer que drope !!

Informação Importante

Confirmação de Termo