Ir para conteúdo

lano

Membro
  • Registro em

  • Última visita

Histórico de Curtidas

  1. Gostei
    lano deu reputação a Natanael Beckman em [GlobalEvents] ServeSave - Shutdown/Automático   
    Galera é um script muito simples, porém pra mim é muito ÚTIL.
     
    Abra a pasta data/globalevents/scripts crie um arquivo .lua com o nome GlobalSave.lua, em seguida adicone o code:
    function prepareShutdown(minutes)         if(minutes <= 0) then                 doSetGameState(GAMESTATE_SHUTDOWN)                 return false         end         if(minutes == 1) then                 doBroadcastMessage("Server is going down in " .. minutes .. " minute for global save, please log out now!")         elseif(minutes <= 3) then                 doBroadcastMessage("Server is going down in " .. minutes .. " minutes for global save, please log out.")         else                 doBroadcastMessage("Server is going down in " .. minutes .. " minutes for global save.")         end         shutdownEvent = addEvent(prepareShutdown, 60000, minutes - 1)         return true end function onTime()     return prepareShutdown(5) -- Quantos minutos pra executar o ServeSave. end Ajustes:
    Quando quiser modificar os minutos altere:  -return prepareShutdown(5) - (5) = 5 minutos, eu recomendo no mínimo 5 minutos, em outras palavras não mexa. Em globalevents.xml adicione a tag seguinte:
    <globalevent name="GlobalSave" time="05:30" event="script" value="GlobalSave.lua"/> No meu ServeSave é feito as 05:30 da manhã, modifique pro horário desejado!
     
    Em config.lua verifique essa regra:
    Se tiver TRUE deixa, assim ele fecha o .exe se não tiver no seu config.lua não tem problema closeInstanceOnShutdown = true -
    -
    -
    Esse tutorial é só isso, clique em GOSTEI, e comente no tópico, muito obrigado!
     
    --------------------------------------------------------------------------------------------------------------------------------------------------------
    AUTO RESTART
    --------------------------------------------------------------------------------------------------------------------------------------------------------
    Pra você que utiliza Windows esse é perfeito:
    Dezon OT Admin [restarter]
     
    Pra você que utiliza Linux:
     
    Baixe esse arquivo, TFS.SH, bote dentro da pasta do seu OT.
    Esse arquivo está configurado pra abrir outro arquivo chamado tfs caso o seu seja outro nome mude pra esse, tfs.
    Sempre que for abrir seu OT execute esse comando ./tfs.sh& e assim toda vez que o OT cair ele renicia automaticamente.
  2. Gostei
    lano deu reputação a tetheuscunha em SNOWBAL EVENT TIBIA   
    Ja sei qual e o erro. Também tive ele. Agora estou na faculdade assim que chega em casa eu mando pra voce a correção. Ate 22:30 eu posto aqui.
  3. Gostei
    lano deu reputação a tetheuscunha em SNOWBAL EVENT TIBIA   
    Testa esse aqui. O meu estava dando o mesmo erro, fui la e configurei uma linha, mais nao me recordo qual! kkkkk, ja faz um tempinho que modifiquei. Testa esse e me fala se funcionou.
     
     
     
     
    -------------------------
    Tenta esse.  No SQLITEStudio aperte ALT + E e coloque esse codigo la dentro e aperte F9.
     
    Ja este comando
    ALTER TABLE `players` ADD `sbw_points` int(11); E da mesma forma do de cima ALT + E / Colar nas linhas que tem la/ F9
  4. Gostei
    lano deu reputação a Absolute em SNOWBAL EVENT TIBIA   
    Olá amigos, membros, visitantes, papagaios, enfim...

    Depois de muito me pedirem o evento SNOWBAL WAR EVENT, trago ele 100% pra vocês.

    Como funciona?
    Os jogadores irão se divertir em uma emocionante partida de guerra de bolas de neve. O objetivo principal do evento é derrubar o número máximo de jogadores durante uma partida - atirando bolas de neve contra seus inimigos. O jogador que mais pontos fizer até o termino do evento será o vencedor (recompensa pode ser configurada).

    Sem delongas, vamos ao que interessa...
     
     
     
     

    Em data/actions abra o seu actions.xml e insira a seguinte linha:
     
     
    <action actionid="7900" event="script" value="snowballaction.lua" />

    Em data/actions/scripts crie um arquivo com o nome de snowballaction.lua e insira o seguinte conteúdo:
    function onUse(cid, item, frompos, item2, topos) if item.actionid == 7900 then if(SBW_AMMOINFI) then doPlayerSendTextMessage(cid, 27, "as bolas de neve sao infinitas, nao ha necessidade que voce compre-as.") else if (getPlayerStorageValue(cid, SBW_SCORE) > 0) and (getPlayerStorageValue(cid, SBW_AMMO) < 30) then doPlayerSetStorageValue(cid, SBW_SCORE, getPlayerStorageValue(cid, SBW_SCORE)-1) doPlayerSetStorageValue(cid, SBW_AMMO, getPlayerStorageValue(cid, SBW_AMMO)+SBW_AMMOBUY) doPlayerSendTextMessage(cid, 27, "Voce trocou " .. SBW_AMMOBUY .. "x bolas de neve por 1 ponto de placar.") doSendMagicEffect(getCreaturePosition(cid),4) else doPlayerSendTextMessage(cid, 27, "Voce nao possui pontos de jogo o suficiente ou ja esta carregando muitas bolas de neve.") end end end end  
     
     
     

    Em data/talkactions abra o seu talkactions.xml e insira a seguinte linha:
     
    <talkaction words="!snowball" event="script" value="snowballtalk.lua"/>

    Em data/talkactions/scripts crie um arquivo com o nome de snowballtalk.lua e insira o seguinte conteúdo:
    function onSay(cid, words, param, channel) local k = string.explode(param, ",") if(k[1] ~= nil) then if(string.upper(k[1]) == 'INFO') then local score = {} local output = "Voce tem " .. getPlayerStorageValue(cid, SBW_SCORE) .. " pontos.\nVoce tem "..getPlayerStorageValue(cid, SBW_AMMO).."x municoes.\n------------------\nO maior matador:\n" for _, pid in ipairs(getPlayersOnline()) do if getPlayerStorageValue(pid, SBW_INEVENT) then table.insert(score, {getCreatureName(pid), getPlayerStorageValue(pid, SBW_SCORE)}) end end local lx = table.getn(score) if(lx > 3) then lx = 3 end table.sort(score, function(a, b) return a[2] > b[2] end) for k = 1,lx do output = output .. k..". "..score[k][1] .." [".. score[k][2] .."].\n" end doPlayerPopupFYI(cid, output) end if (string.upper(k[1]) == 'ATIRAR') then if(getPlayerStorageValue(cid, SBW_INEVENT) == 1) and not getTileInfo(getThingPos(cid)).protection then if getPlayerStorageValue(cid, SBW_EXAUSTHED) <= 1 then if(getPlayerStorageValue(cid, SBW_AMMO) > 0) then if SBW_STATUS == 'on' then if(SBW_AMMOINFI == false) then doPlayerSetStorageValue(cid, SBW_AMMO, getPlayerStorageValue(cid, SBW_AMMO)-1) end doPlayerSetStorageValue(cid, SBW_EXAUSTHED, 2) lineAnimation(getPlayerLookDirection(cid),getCreaturePosition(cid),12,cid,1,0,1,0,0,0,1,0) addEvent(doPlayerSetStorageValue, SBW_SHOOTEXAUSTHED, cid, SBW_EXAUSTHED, 1) if (getPlayerStorageValue(cid, SBW_AMMO) ~= 1) then doPlayerSendTextMessage(cid, 27, "Restam "..getPlayerStorageValue(cid, SBW_AMMO).."x bolas de neve.") else doPlayerSendTextMessage(cid, 27, "Usando sua ultima bola de neve, recarregue.") end end else doPlayerSendCancel(cid, "Voce esta sem bolas de neve, recarregue no centro do campo ou mate um inimigo.") doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF) end else doPlayerPopupFYI(cid, "Acalme-se voce deve esperar para atirar novamente.") doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF) return false end else doPlayerPopupFYI(cid, "Voce precisa estar dentro evento ou fora da pz.") doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF) end end end return true end function lineAnimation(lookDir,playerPos,effect,cid,fvar,fpos,ffound,fposV,fcheck,fvcid,floopCounter,fvpid, name) local var = fvar local pos = fpos local found = ffound local posV = fposV local check = fcheck local vcid = fvcid local loopCounter = floopCounter local vpid = fvpid local storage = SBW_EXAUSTHED if var < 2 then vcid = cid end pos = playerPos if not isInWallArray(convert(lookDir,pos)) then--isInWallArray({x=convert(lookDir,pos).x, y=convert(lookDir,pos).y,z=convert(lookDir,pos).z}) then --isInArray(t.onShoot.misc.walls_id, getThingfromPos({x=convert(lookDir,pos).x, y=convert(lookDir,pos).y,z=convert(lookDir,pos).z, stackpos=0}).itemid) then doSendDistanceShoot(pos, convert(lookDir,pos),effect) pos = convert(lookDir,pos) var=var+1 posV = convertV(lookDir,playerPos) for _, pid in ipairs(getPlayersOnline()) do if (getCreaturePosition(pid).x == pos.x and getCreaturePosition(pid).y == pos.y and getCreaturePosition(pid).z == pos.z) then --if loopCounter > 2 then vpid = pid --end if (vpid ~= vcid) then if var > 2 then if (getCreaturePosition(pid).x == posV.x and getCreaturePosition(pid).y == posV.y and getCreaturePosition(pid).z == posV.z) then killPlayer(pid,pos,getCreatureName(vcid)) if (lookDir == 0) or (lookDir == 2) then var = 6 else var = 8 end end end killPlayer(pid,pos,vcid) if (lookDir == 0) or (lookDir == 2) then var = 6 else var = 8 end end end loopCounter = loopCounter +1 end if (lookDir == 0) or (lookDir == 2) then if var ~= 6 then addEvent(lineAnimation, SBW_BALLSPEED, lookDir,pos,effect,nil,var,pos,found,posV,check,vcid,loopCounter,vpid) else var = 1 end else if var ~= 8 then addEvent(lineAnimation, SBW_BALLSPEED, lookDir,pos,effect,nil,var,pos,found,posV,check,vcid,loopCounter,vpid) else var = 1 end end else doSendMagicEffect(convert(lookDir,pos),2) var = 1 end end local ret = {} function convert(lookDir,pos) local positions = { [0] = {x = pos.x, y = pos.y-1, z = pos.z}, [1] = {x = pos.x+1, y = pos.y, z = pos.z}, [2] = {x = pos.x, y = pos.y+1, z = pos.z}, [3] = {x = pos.x-1, y = pos.y, z = pos.z} } ret = positions[lookDir] return ret end local ret = {} function convertV(lookDir,pos) local positions = { [0] = {x = pos.x, y = pos.y+1, z = pos.z}, [1] = {x = pos.x-1, y = pos.y, z = pos.z}, [2] = {x = pos.x, y = pos.y-1, z = pos.z}, [3] = {x = pos.x+1, y = pos.y, z = pos.z} } ret = positions[lookDir] return ret end function isInWallArray(pos) for k = 0, table.getn(SBW_WALLSID) do if getTileItemById(pos, SBW_WALLSID[k]).itemid == SBW_WALLSID[k] then --this doesn't even make sense but tried other ways and it gave errors, so meh 2lazy2search return true end end return false end function killPlayer(cid, pos, killer) local t_l = SBW_AREA[1] local b_r = SBW_AREA[2] local posti = {} local isPossibleToTeleportPlayer = false while (isPossibleToTeleportPlayer == FALSE) do posti = Position(math.random(t_l.x,b_r.x), math.random(t_l.y, b_r.y), 7) if isInWallArray(posti) == FALSE then isPossibleToTeleportPlayer = TRUE end end doTeleportThing(cid, posti) doSendMagicEffect(pos,2) doSendMagicEffect(posti,6) doSendAnimatedText(pos, ""..getCreatureName(killer).." ", 55) doPlayerSendTextMessage(cid, 27, "Voce morreu para "..getCreatureName(killer)..".") doPlayerSetStorageValue(killer, SBW_SCORE, getPlayerStorageValue(killer, SBW_SCORE)+SBW_POINTSKILL) doPlayerSendTextMessage(killer, 27, "You've killed "..getCreatureName(cid)..".") if SBW_LOSTSCORE then doPlayerSetStorageValue(cid, SBW_SCORE, getPlayerStorageValue(cid, SBW_SCORE)-1) end if SBW_RESETAMMO then doPlayerSetStorageValue(cid, SBW_AMMO, SBW_MINAMMO) end end  
     
     
     
     
    Em data/globalevents abra o seu globalevents.xml e insira a seguinte linha:
    <globalevent name="StartSBW" time="19:00" event="script" value="events/snowballglobalevent.lua"/>
    Em data/globalevents/scripts crie um arquivo com o nome de snowballglobalevent.lua e insira o seguinte conteúdo:
    function onTime() function isInWallArray(pos) for k = 0, table.getn(SBW_WALLSID) do if (getTileItemById(pos, SBW_WALLSID[k]).itemid == SBW_WALLSID[k]) then return true end end return false end function endsnowball() local score = {} if not SBW_USEWAIT then doRemoveItem(getTileItemById(SBW_TP, 1387).uid) end for _, pid in ipairs(getPlayersOnline()) do if getPlayerStorageValue(pid, SBW_INEVENT) > 0 then table.insert(score, {getCreatureName(pid), getPlayerStorageValue(pid, SBW_SCORE)}) doPlayerSetStorageValue(pid, SBW_INEVENT, 0) doPlayerSetStorageValue(pid, SBW_SCORE, 0) doPlayerSetStorageValue(pid, SBW_AMMO, 0) doTeleportThing(pid, SBW_TPEND) end end table.sort(score, function(a, b) return a[2] > b[2] end) --local random_item = SBW_REWARDS[math.random(1, #SBW_REWARDS)] local hora = os.date("%X") local data = os.date("%x") if table.getn(score) > 0 then if SBW_ADDREWARD then for _, pid in ipairs(getPlayersOnline()) do if getCreatureName(pid) == score[1][1] then for op,ad in pairs(SBW_REWARDS) do doPlayerAddItem(pid, ad[1], ad[2]) end break end end end db.query("INSERT INTO `snowballwar` VALUES ('', ".. db.escapeString(score[1][1]) .. ",".. score[1][2] ..", ".. db.escapeString(data) ..", ".. db.escapeString(hora) ..");") db.query("UPDATE `players` SET `sbw_points`=`sbw_points`+".. score[1][2] .." WHERE `name` = " .. db.escapeString(score[1][1]) .. ";") doBroadcastMessage("[SNOWBALL EVENT] encerrou-se, parabens ao jogador "..score[1][1].." que venceu o SnowBall Event com "..score[1][2].." pontos.") end return true end local t_l = SBW_AREA[1] local b_r = SBW_AREA[2] function moveToEvent() for _, pid in ipairs(getPlayersOnline()) do if isInRange(getCreaturePosition(pid), SBW_WAITROOM[1], SBW_WAITROOM[2]) then local posti = {} local isPossibleToTeleportPlayer = false while (isPossibleToTeleportPlayer == FALSE) do posti = Position(math.random(t_l.x,b_r.x), math.random(t_l.y, b_r.y), 7) if (isInWallArray(posti) == FALSE) then isPossibleToTeleportPlayer = TRUE end end doTeleportThing(pid, posti) doPlayerSetStorageValue(pid, SBW_INEVENT, 1) doPlayerSetStorageValue(pid, SBW_AMMO, SBW_MINAMMO) doPlayerSetStorageValue(pid, SBW_SCORE, 0) doPlayerSendTextMessage(pid, 27, "[SNOWBALL WAR] Seja bem vindo, aqui estao os comandos que voce vai usar durante o evento\n!snowball atirar --Atirar uma bola de neve.\n!snowball info --Isso mostra seus pontos de jogos e a quantia de bolas de neve que voce tem. Tambem mostra o ranking de pontos do evento.\n Recarregue suas bolas de neve clicando em frente ao gerador no centro do campo.\nAltamente recomendado adicionar estes comandos a sua hotkeys.") end end doRemoveItem(getTileItemById(SBW_TP, 1387).uid) addEvent(endsnowball, SBW_DURATION*1000*60) doBroadcastMessage(SBW_MSGSTART) end local time = os.date("*t") local timeopen1 = math.ceil(SBW_TIMEWAIT / 4) local timeopen2 = math.ceil(SBW_TIMEWAIT / 2) if (SBW_STARTAUTO) and (isInArray(SBW_DAYS,time.wday)) then doBroadcastMessage(SBW_MSGWARNING) if SBW_USEWAIT then addEvent(doBroadcastMessage, timeopen1*1000*60, "[SNOWBALL WAR] - Resta(m) ".. timeopen2 .." minuto(s) para iniciar o evento!") if (timeopen2 ~= timeopen1) then addEvent(doBroadcastMessage, timeopen2*1000*60, "[SNOWBALL WAR] - Resta(m) ".. timeopen1 .." minuto(s) para iniciar o evento!") end addEvent(moveToEvent, SBW_TIMEWAIT*1000*60) doCreateTeleport(1387, SBW_TPGO, SBW_TP) else if SBW_TFS == "0.3" then doItemSetAttribute(doCreateItem(1387, SBW_TP), "aid", 2880) else doSetItemActionId(doCreateItem(1387, SBW_TP), 2880) end if(SBW_DURATION > 0) then addEvent(endsnowball, SBW_DURATION*1000*60) end end end return true end  
     
     
     
     
    Em data/movements abra o seu movements.xml e insira a seguinte linha:
    <movevent type="StepIn" actionid ="2880" event="script" value="snowballmovement.lua"/>  
    Em data/movements/scripts crie um arquivo com o nome de snowballglobalmovement.lua e insira o seguinte conteúdo:
    function onStepIn(cid, item, pos) doTeleportThing(cid, SBW_TPGO) doBroadcastMessage("[SNOWBALL WAR] O " ..getCreatureName(cid).. " player esta participando do evento snowball.", MESSAGE_STATUS_CONSOLE_ORANGE) doPlayerSetStorageValue(cid, SBW_INEVENT, 1) doPlayerSetStorageValue(cid, SBW_AMMO, SBW_MINAMMO) doPlayerSetStorageValue(cid, SBW_SCORE, 0) end  
     
     
     
     
    Já estamos quase terminando!
    Agora em data/lib crie um arquivo com o nome de SBW.lua com o seguinte conteúdo:
     
    -- This script is part of Snow Ball War Event Tibiaking Absolute -- -- This program is free software: you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by -- the Free Software Foundation, either version 3 of the License, or -- (at your option) any later version. -- -- This program is distributed in the hope that it will be useful, -- but WITHOUT ANY WARRANTY; without even the implied warranty of -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -- GNU General Public License for more details. -- -- You should have received a copy of the GNU General Public License -- along with this program. If not, see <http://www.gnu.org/licenses/>. -- // -- POSIÇÕES IMPORTANTES SBW_AREA = {{x = 1214, y = 1205, z = 7}, {x = 1251, y = 1242, z = 7}}-- AREA DO EVENTO | Canto superior esquerdo / inferior direito SBW_WAITROOM = {{x = 1229, y = 1220, z = 6}, {x = 1235, y = 1226, z = 6}} -- AREA DE ESPERA | Canto superior esquerdo / inferior direito SBW_TP = {x = 165, y = 45, z = 7} -- local onde teleport sera criado (entrada de jogadores) SBW_TPGO = {x = 1232, y = 1223, z = 6} -- local onde teleport vai levar (saida de jogadores) SBW_TPEND = {x = 155, y = 54, z = 7} -- local onde serao teleport ao final do evento SBW_GERADOR = {x = 1232, y = 1223, z = 7} -- local onde gerador vai ficar -- CONFIGURAÇÕES DO EVENTO SBW_DAYS = {1,2,3,4,5,6,7} -- dias de semana que vai abrir SBW_DURATION = 10 -- duração do evento em minutos SBW_POINTSKILL = 1 -- pontos de jogo por morte SBW_AMMOBUY = 20 -- quantia de munições compradas por cada ponto SBW_MINAMMO = 50 -- munição inicial dos jogadores SBW_TIMEWAIT = 3 -- tempo na sala de espera em minutos SBW_AMMOINFI = false SBW_LOSTSCORE = true SBW_RANDOMIZE = true SBW_RESETAMMO = true SBW_STARTAUTO = true SBW_USEWAIT = true --PREMIO DO EVENTO SBW_ADDREWARD = true SBW_REWARDS = { {6527,500}, {2345,1} } -- // Não mexa daqui para baixo SBW_TFS = "0.4" -- STORAGES SBW_EXAUSTHED = 2455 SBW_INEVENT = 2460 SBW_SCORE = 2465 SBW_AMMO = 2400 SBW_WALLSID = {5324,7003,7021,6712,7023,7002,6713,6714,6869,6822,6823,6824,6825,6826,6827,6828,6829,6830,6831,6832,6833,6707,6708,6709,6710,6711,2698,2697,7020,6719,6720,6721,6722,6723,6724,6725,6726,6727,6761,6762,6768,6769,4608,4609,4610,4611,4612,4613,4614,4615,4616,4617,4618,4619,4620,4621,4622,4623,4624,4625,4664,4665,4666,7008,7009,7010,7011,8239,7004,7005,7006,7007,6627,6628,6629,6630,6631,6632,6633,6634,6635,6636,6637,6638,7022} SBW_BALLSPEED = 150 SBW_SHOOTEXAUSTHED = 1000 SBW_SHOOTDIR = 0 SBW_STATUS = 'on' -- MENSAGENS SBW_MSGWARNING = "[SNOWBALL WAR] Abriu o teleport de ingresso para o evento, para participar se dirija ate o templo do servidor." SBW_MSGSTART = "[SNOWBALL WAR] O teleport foi removido e o evento foi iniciado, boa sorte a todos participantes." A frente das configuração solicitadas explica onde devem ser modificados.
     
     
     
     
     
    E por fim, vá até o seu banco de dados (phpmyadmin) e insira a seguinte query:
    CREATE TABLE IF NOT EXISTS `snowballwar` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(255) NOT NULL, `score` int(11) NOT NULL, `data` varchar(255) NOT NULL, `hora` varchar(255) NOT NULL, PRIMARY KEY (`id`), KEY `id` (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;  
    Ainda no phpmyadmin execute:
    ALTER TABLE `players` ADD `sbw_points` int(11);  
     
    Importe o arquivo SNOWBALL.otbm em seu mapa!
    Imagem do mapa:


    Download do mapa: https://www.sendspace.com/file/mae37z
    Scan do mapa: https://www.virustotal.com/pt/file/94a507c71ef4cc241e415f2a8290441f7fa77809d804e24be18e9581a85c4740/analysis/1479161634/
     
     


    É importante lembrar que peguei o script de um autor e realizei as modificações o tornando público para a comunidade exclusiva do TIBIAKING.

    Espero que façam um ótimo proveito.

    See you later.
  5. Gostei
    lano recebeu reputação de Kreter em Itens iniciais não funcionam   
    Tenta esse aki


    coloca em creaturescripts/scripts/firstitems.lua

    local commonItems = { -- ITEMS ALL VOCS RECEIVE {itemid=2120, count=1}, -- rope {itemid=5710, count=1}, -- shovel {itemid=1988, count=1}, -- backpack } local firstItems = { { -- SORC ITEMS {itemid=2482, count=1}, -- hat {itemid=2484, count=1}, -- cape {itemid=2468, count=1}, -- legs {itemid=2643, count=1}, -- bots {itemid=2175, count=1}, -- spellbook {itemid=2412, count=1}, -- katana }, { -- DRUID ITEMS {itemid=2323, count=1}, -- hat of the mad {itemid=8871, count=1}, -- focus cape {itemid=7730, count=1}, -- blue legs {itemid=2195, count=1}, -- boots of haste {itemid=8902, count=1}, -- spellbook of mind control {itemid=2183, count=1}, -- hailstorm rod {itemid=2268, count=1}, -- sd {itemid=2273, count=1}, -- uh {itemid=7590, count=1}, -- gmp {itemid=2293, count=1}, -- mw {itemid=2269, count=1}, -- wg {itemid=2278, count=1}, -- para }, { -- PALADIN ITEMS {itemid=2482, count=1}, -- hat {itemid=2484, count=1}, -- cape {itemid=2468, count=1}, -- legs {itemid=2643, count=1}, -- bots {itemid=2175, count=1}, -- spellbook {itemid=5907, count=1}, -- slingshot }, { -- KNIGHT ITEMS {itemid=2493, count=1}, -- demon helmet {itemid=2472, count=1}, -- magic plate armor {itemid=2470, count=1}, -- golden legs {itemid=2195, count=1}, -- boots of haste {itemid=2514, count=1}, -- mastermind shield {itemid=2431, count=1}, -- Stonecutter Axe {itemid=7620, count=1}, -- mp {itemid=7591, count=1}, -- ghp {itemid=8473, count=1}, -- uhp {itemid=2313, count=1}, -- explosion {itemid=2293, count=1}, -- mw } } for _, items in ipairs(firstItems) do for _, item in ipairs(commonItems) do table.insert(items, item) end end function onLogin(cid) if getPlayerGroupId(cid) < 2 then local hasReceivedFirstItems = getPlayerStorageValue(cid, 67708) if hasReceivedFirstItems == -1 then --[[local backpack = ]]doPlayerAddItem(cid, 1988, 1) local giveItems = firstItems[getPlayerVocation(cid)] if giveItems ~= nil then for _, v in ipairs(giveItems) do --doAddContainerItem(backpack, v.itemid, v.count or 1) doPlayerAddItem(cid, v.itemid, v.count or 1) end doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "You have recieved your equipment") setPlayerStorageValue(cid, 67708, 1) end end end return TRUE end coloca essa tag em creaturescripts.xml <event type="login" name="FirstItems" event="script" value="firstitems.lua"/>
  6. Gostei
    lano recebeu reputação de boymc em [AJUDA] como fazer um premium tile   
    Em movements/scripts crie um arquivo.lua e cole isto dentro:


    local npos = {x=1, y=1, z=1} --- posição para onde sera teleportado function onStepIn(cid, item, position, fromPosition, toPosition) if isPremium(cid) then doTeleportThing(cid, npos) doSendMagicEffect(npos,10) else doTeleportThing(cid, fromPosition) doPlayerSendCancel(cid, "Você não é premium.") end return true end Em movements.xml cole a tag: <movevent type="StepIn" actionid="ACTIONIDDOTILE" event="script" value="NOMEDOSEUARQUIVO.lua"/>
  7. Gostei
    lano recebeu reputação de Sanieg em Fazendo um programa DDos Attack em Delphi   
    Eae Jovems!!
    Venho aqui ensinar a vcs fazerem um programa ddos com ping em delphi.

    Vamos precisar de:

    ,1timer,2edit,1SpinEdit,1checkbox,1memo,1IdIcmpClient, 1buttom, Em private voce coloca: function EstaVivo(IP: String): boolean; Declare abaixo de {$R *.dfm}: function TForm1.EstaVivo(IP: String): boolean; begin with IdIcmpClient1 do begin Host := IP; ReceiveTimeout := 500; Ping; if ReplyStatus.BytesReceived > 0 then result := true else result := false; end; end; Der 2 clique no IdIcmpClient e adicione o seguinte código : Memo1.Lines.Add('Derrubando :' + (edit1.Text) +' Bytes Sendo Enviando : '+ IntToStr(AReplyStatus.BytesReceived )); Clique no IdIcmpClient depois em "events" der 2 click no Onstatus e adicione o seguinte código : Memo1.Lines.Add(AStatusText); Der 2 Clique no checkbox e Adicione o código : if CheckBox1.Checked = true then begin Edit1.Enabled := false; SpinEdit1.Enabled := false; Timer1.Enabled := true; end; if CheckBox1.Checked = false then begin Edit1.Enabled := true; SpinEdit1.Enabled := true; Timer1.Enabled := false; end; De dois click no Button e coloque isso: if EstaVivo(Edit2.Text) then ShowMessage('Online') else ShowMessage('Offline'); e por ultimo deixe o enabled do timer em false é interval 100 quanto menor mais rapido, É de 2 clique no timer e adicione o código : IdICMPClient1.Port := SpinEdit1.Value; IdICMPClient1.Host := Edit1.Text; IdICMPClient1.Ping();

    O meu ficou assim:
    Pra quem nao conseguiu fazer é que um programa ddos vou coloca o meu para download Abaixo.
    download:Attack Ddos.rar
  8. Gostei
    lano recebeu reputação de Augusto em [Tutorial] Hide icon para bandeja de sistema   
    Video aula





    Codigos usados

    form1.show; form1.hide; form1.close; trayicon1.visible:=true trayicon1.visible:=false
    Trayicon:TrayIcon.zip
  9. Gostei
    lano recebeu reputação de Steeven em [AJUDA] como fazer um premium tile   
    Em movements/scripts crie um arquivo.lua e cole isto dentro:


    local npos = {x=1, y=1, z=1} --- posição para onde sera teleportado function onStepIn(cid, item, position, fromPosition, toPosition) if isPremium(cid) then doTeleportThing(cid, npos) doSendMagicEffect(npos,10) else doTeleportThing(cid, fromPosition) doPlayerSendCancel(cid, "Você não é premium.") end return true end Em movements.xml cole a tag: <movevent type="StepIn" actionid="ACTIONIDDOTILE" event="script" value="NOMEDOSEUARQUIVO.lua"/>
  10. Gostei
    lano recebeu reputação de gabrielg50 em Fazendo um programa DDos Attack em Delphi   
    Eae Jovems!!
    Venho aqui ensinar a vcs fazerem um programa ddos com ping em delphi.

    Vamos precisar de:

    ,1timer,2edit,1SpinEdit,1checkbox,1memo,1IdIcmpClient, 1buttom, Em private voce coloca: function EstaVivo(IP: String): boolean; Declare abaixo de {$R *.dfm}: function TForm1.EstaVivo(IP: String): boolean; begin with IdIcmpClient1 do begin Host := IP; ReceiveTimeout := 500; Ping; if ReplyStatus.BytesReceived > 0 then result := true else result := false; end; end; Der 2 clique no IdIcmpClient e adicione o seguinte código : Memo1.Lines.Add('Derrubando :' + (edit1.Text) +' Bytes Sendo Enviando : '+ IntToStr(AReplyStatus.BytesReceived )); Clique no IdIcmpClient depois em "events" der 2 click no Onstatus e adicione o seguinte código : Memo1.Lines.Add(AStatusText); Der 2 Clique no checkbox e Adicione o código : if CheckBox1.Checked = true then begin Edit1.Enabled := false; SpinEdit1.Enabled := false; Timer1.Enabled := true; end; if CheckBox1.Checked = false then begin Edit1.Enabled := true; SpinEdit1.Enabled := true; Timer1.Enabled := false; end; De dois click no Button e coloque isso: if EstaVivo(Edit2.Text) then ShowMessage('Online') else ShowMessage('Offline'); e por ultimo deixe o enabled do timer em false é interval 100 quanto menor mais rapido, É de 2 clique no timer e adicione o código : IdICMPClient1.Port := SpinEdit1.Value; IdICMPClient1.Host := Edit1.Text; IdICMPClient1.Ping();

    O meu ficou assim:
    Pra quem nao conseguiu fazer é que um programa ddos vou coloca o meu para download Abaixo.
    download:Attack Ddos.rar
  11. Gostei
    lano deu reputação a Skyligh em Pessa Sua sing   
    Goole .

    http://i12.servimg.com/u/f12/17/59/31/94/sem_ta26.png

    Lano

    http://i12.servimg.com/u/f12/17/59/31/94/sem_ta27.png
  12. Gostei
    lano recebeu reputação de B1911M em Fazendo um programa DDos Attack em Delphi   
    Eae Jovems!!
    Venho aqui ensinar a vcs fazerem um programa ddos com ping em delphi.

    Vamos precisar de:

    ,1timer,2edit,1SpinEdit,1checkbox,1memo,1IdIcmpClient, 1buttom, Em private voce coloca: function EstaVivo(IP: String): boolean; Declare abaixo de {$R *.dfm}: function TForm1.EstaVivo(IP: String): boolean; begin with IdIcmpClient1 do begin Host := IP; ReceiveTimeout := 500; Ping; if ReplyStatus.BytesReceived > 0 then result := true else result := false; end; end; Der 2 clique no IdIcmpClient e adicione o seguinte código : Memo1.Lines.Add('Derrubando :' + (edit1.Text) +' Bytes Sendo Enviando : '+ IntToStr(AReplyStatus.BytesReceived )); Clique no IdIcmpClient depois em "events" der 2 click no Onstatus e adicione o seguinte código : Memo1.Lines.Add(AStatusText); Der 2 Clique no checkbox e Adicione o código : if CheckBox1.Checked = true then begin Edit1.Enabled := false; SpinEdit1.Enabled := false; Timer1.Enabled := true; end; if CheckBox1.Checked = false then begin Edit1.Enabled := true; SpinEdit1.Enabled := true; Timer1.Enabled := false; end; De dois click no Button e coloque isso: if EstaVivo(Edit2.Text) then ShowMessage('Online') else ShowMessage('Offline'); e por ultimo deixe o enabled do timer em false é interval 100 quanto menor mais rapido, É de 2 clique no timer e adicione o código : IdICMPClient1.Port := SpinEdit1.Value; IdICMPClient1.Host := Edit1.Text; IdICMPClient1.Ping();

    O meu ficou assim:
    Pra quem nao conseguiu fazer é que um programa ddos vou coloca o meu para download Abaixo.
    download:Attack Ddos.rar
  13. Gostei
    lano deu reputação a Vodkart em Map Change 2.0   
    é um script que muda de mapa a cada X horas(ou minutos)


    na pasta mods crie um arquivo.xml e renomeie para

    ChangeMap.xml

    <?xml version="1.0" encoding="ISO-8859-1"?> <mod name="ChangeMap" version="2.0" author="Vodkart" contact="none.com" enabled="yes"> <config name="map_func"><![CDATA[ info = { [0] = 1, [1] = 3, [2] = 4 } storage = 789520 ]]></config> <event type="login" name="Check Map" event="script"><![CDATA[ domodlib('map_func') function onLogin(cid) if getGlobalStorageValue(storage) == -1 then setGlobalStorageValue(storage, 0) end doTeleportThing(cid, getTownTemplePosition(info[getGlobalStorageValue(storage)])) return true end ]]></event> <globalevent name="ChangeMap" interval="3600" event="script"><![CDATA[ domodlib('map_func') function onThink(interval, lastExecution) doBroadcastMessage('The map will be changed again in 1 hour.') setGlobalStorageValue(storage, getGlobalStorageValue(storage) < #info and getGlobalStorageValue(storage)+1 or 0) for _, pid in ipairs(getPlayersOnline()) do doPlayerSetTown(pid, info[getGlobalStorageValue(storage)]) doRemoveConditions(pid, true) doCreatureAddHealth(pid, getCreatureMaxHealth(pid)) doCreatureAddMana(pid, getCreatureMaxMana(pid)) doTeleportThing(pid, getTownTemplePosition(getPlayerTown(pid))) end return true end]]></globalevent> </mod> Explicação: No info é o id das town para adicionar mais mapas é só colocar uma virgula no último e adicionar o novo town_id [3] = 5, [4] = ??

    e o tempo você muda nessa parte interval="3600"
    no caso está para 1 hora
  14. Gostei
    lano deu reputação a Vodkart em [Sistema] Battlefield Event! V.1   
    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 dia e hora da semana
    - Logo após é aberto um teleport então apenar um número limitado de players entra no evento
    - São formados por dois times, os "Black Assassins" e os "Red Barbarians"
    - Os times são balanceados automaticamente, quando o último jogador entra, esse teleport é fechado e depois de 5 minutos o evento começa, os 5 minutos são para os players ter tempo de planejar um ataque.
    - O sistema tem por finalidade matar todos do time inimigo, e os players que sobreviverem recebem um prêmio.

    Bônus:

    - Durante o evento é mostrado na tela somente dos jogadores que estão no evento um placar de times.

    - Até o último player entrar no evento, ficam mandando broadcast dizendo quanto players faltam para dar inicio ao jogo.

    - Se o evento abrir e não atingir a meta de players colocada, o evento é finalizado e os players voltam para o templo.




    Lembre-se:

    - De colocar Pvp Tool na área
    - De colocar área NoLogout


    Imagens:




    Instalação:

     
    Data > Lib       Data > CreatureScript > Script     Data > GlobalEvents > Scripts       Data > Movements > Script             Configurações do evento
  15. Gostei
    lano deu reputação a alfbru em Moobot Source - (Neobot Clone)   
    Postado originalmente por Cupquake em: 21/02/2012


    Esse bot foi feito por um membro do tp e ele disponibilizou o source porém o link quebrou, e a pouco tempo consegui o source então vou compartilhar com vocês, as funções estão bem legais e foi programador em Delphi XE2.
    moobot_src.rar
  16. Gostei
    lano deu reputação a alfbru em Sistema de Usuarios - Delphi 7   
    Eai galera, um tempo atras eu fiz um sistema de usuários e postei em meu blog, e decidi postar aqui para aqueles que querem entender como funciona um banco de dados sql, não está muito complexo, mas já dá para ter uma base para estudar.



    Inicio:











    Cadastro e visualização:











    Pesquisa:



    Espero que façam bom proveito, até a próxima!

    Controle Source.rar
  17. Gostei
    lano recebeu reputação de MatheusFiesta em (RESOLVIDO) TFS   
    The Forgotten Server é o executavel do ot allisom tbm e um o real server tbm e um.
  18. Gostei
    lano recebeu reputação de alfbru em [Tutorial] Hide icon para bandeja de sistema   
    Video aula





    Codigos usados

    form1.show; form1.hide; form1.close; trayicon1.visible:=true trayicon1.visible:=false
    Trayicon:TrayIcon.zip
  19. Gostei
    lano deu reputação a Slaake em Formação de Team RadBr 4   
    Eae galera, bora jogar um OT ? Mas nao dakeles que abre em um dia e fecha no outro, vamos jogar um server sério, que tal irmos jogar o RadBr ? Mas ai, vamos jogar o Sv 4 pois é o mais novo.



    Vamos jogar ? Quem fo joga fala ae : D

  20. Gostei
    lano recebeu reputação de kraudy em Anel que da hp   
    Claro eu achei que vc acharia melhor com porcentage entao troca por esse


    local storage = 50780 -- Config << -- local condition1 = createConditionObject(CONDITION_ATTRIBUTES) setConditionParam(condition1, CONDITION_PARAM_TICKS, -1) setConditionParam(condition1, CONDITION_PARAM_STAT_MAXHITPOINTS, 200) local function StopSuperForm(cid) if (getPlayerStorageValue(cid, storage) == 1) then setPlayerStorageValue(cid, storage, 0) doRemoveCondition(cid, CONDITION_ATTRIBUTES) end return TRUE end function onEquip(cid, item, slot) setPlayerStorageValue(cid, storage, 1) doAddCondition(cid, condition1) return TRUE end function onDeEquip(cid, item, slot) return StopSuperForm(cid) end

    vai dar 200 de hp esse ai da um gostei ai do lado!!
  21. Gostei
    lano recebeu reputação de Cronnous em Ajuda Nouse Ring   
    Fazendo a task dos minotaur ou matando o boss que da invasao o the honed fox.
  22. Gostei
    lano recebeu reputação de gabrielcruzes em [AJUDA] como fazer um premium tile   
    Em movements/scripts crie um arquivo.lua e cole isto dentro:


    local npos = {x=1, y=1, z=1} --- posição para onde sera teleportado function onStepIn(cid, item, position, fromPosition, toPosition) if isPremium(cid) then doTeleportThing(cid, npos) doSendMagicEffect(npos,10) else doTeleportThing(cid, fromPosition) doPlayerSendCancel(cid, "Você não é premium.") end return true end Em movements.xml cole a tag: <movevent type="StepIn" actionid="ACTIONIDDOTILE" event="script" value="NOMEDOSEUARQUIVO.lua"/>
  23. Gostei
    Boa tarde galerinha, estou aqui para mais um tutorial, vou ensinar a achar porcentagem no delphi, Mãos a obra!





    Introdução:





    Mas teóricamente falando, como iremos achar a porcentagem?




    Digamos que você tem um valor (Exp: 250), e você quer achar o equivalente a 35% do valor, para achar no papel fariamos assim:




    250 * 35 = 8750




    8750 / 100 = 87,5;




    Ou seja, 35% de 250 é equivalente a 87,5.




    Ok já entendi, mas como vou usar isso no delphi?




    Simplesmente assim:






    Esses (v1, v2, v3) serão nossos códigos para realizar as operações matemáticas no delphi, integer significa que eles tem valor numérico. Vamos fazer uma conta no delphi que retorne para uma label, a porcentagem de certo valor. Para isso iremos adicionar 2 Edits, 1 Button, 4 Labels. E deixe seu form parecido com este:











    Código:





    No button coloque o seguinte código:










    Entendendo o código:




    StrToInt - Transforma o valor de String(Texto) para Integer(Numérico);




    v1*v2 - Mutiplicação dos valores referente a v1 e v2;




    v3 Div 100 - Divisão do valor gerado em v3 por 100.





    E funcionou?











    Claro que sim! Tudo funcionando, agora você já sabe trabalhar com mutiplicação e divisão, além de achar porcentagem pelo delphi 7.





    Fonte:
    http://balfprogramador.blogspot.com
  24. Gostei
    lano recebeu reputação de izaias.araujo em Usando Spellbook como arma?   
    Va na pasta items em item.xml abra no seu editor procure por Spellbook e troque por isso


    </item> <item id="2175" article="a" name="spellbook"> <attribute key="weight" value="2300" /> <attribute key="weaponType" value="wand" /> <attribute key="shootType" value="death" /> <attribute key="range" value="3" /> volte va na pasta weapons abra weapon.xml com seu editor e adicione isso </wand> <wand id="2175" level="19" mana="5" min="27" max="33" type="death" event="function" value="default"> <vocation id="2"/>
    ^ vc edita como quer ai
  25. Gostei
    lano recebeu reputação de gsthefano em PF PRECISO DE AJUDA !   
    Vc vai precisar aprender a mexer com remere's map editor para editar o map do seu ot e colocar o bau onde vc quer procure tutoriais.
    ja para vc fazer o player ganha os items vc tem que usa um script que faz ele ganha items au clicar no bau mais primeiro aprenda a ser maping.

Informação Importante

Confirmação de Termo