Ir para conteúdo

Arysoooon

Membro
  • Registro em

  • Última visita

Histórico de Curtidas

  1. Gostei
    Arysoooon recebeu reputação de kaioboyy em [Creaturescripts] Avisar Quando um STAFF Entrar.   
    Fala Galera vim trazer o sistema que ja no titulo diz.. vamos lá!
     
    vá até data/creaturescripts/scripts Crie um arquivo chamado Admlg.lua e Adicione Isso>
     
     
     
    Agora vá até Creaturescripts.xml é add essa tag:
     
     
    Se te ajudei com esse post , der um Rep+ !! 
     
    Creditos: Equipe Pokemon x Evolution Por Criar o Script.
    Testado: em [TFS] Versão 1.0
  2. Gostei
    Arysoooon recebeu reputação de Matador18 em [Creaturescripts] Avisar Quando um STAFF Entrar.   
    Fala Galera vim trazer o sistema que ja no titulo diz.. vamos lá!
     
    vá até data/creaturescripts/scripts Crie um arquivo chamado Admlg.lua e Adicione Isso>
     
     
     
    Agora vá até Creaturescripts.xml é add essa tag:
     
     
    Se te ajudei com esse post , der um Rep+ !! 
     
    Creditos: Equipe Pokemon x Evolution Por Criar o Script.
    Testado: em [TFS] Versão 1.0
  3. Gostei
    Arysoooon recebeu reputação de Ser Luck em [Talkactions] Verificação de Uso De bot 100% [TFS] 1.0   
    Fala Galera! 
     
    Hoje vim trazer um Sistema Muito Bom,Creio que Seja o Único aqui no tibiaking. 
    Ele Funciona da seguinte maneira, você mandara uma verificação de bot Para o Player , 
    Uma Mensagem na tela dele ira alertar ele.. Essa: 
     
    Caso Ele Responde algo séra liberado! Esse comando é util Para aqueles poketibia que tem o erro de double click no mar. !! 
     
     
     
    Vá até data/talkactions/scripts crie um arquivo chamado CheckBot.lua e Adicione Isso dentro!: 
     
     
     
    Agora vá até talkactions.xml e adicione essa tag:
     
     
    Creditos: Equipe Pokemon x Evolution Por criar o script.
     
     
  4. Gostei
    Arysoooon recebeu reputação de linky123 em [Talkactions] Changename /rename   
    Fala Galera vim trazer hoje o comando '' /rename '' Ele Server Para Muda Nickname de Player Sem isso até o Editor de Account! 
     
    Vá até data\data\talkactions\scripts Crie um arquivo Chamado changename.lua Cole Isso:
     
     
    Agora vá em talkactions.xml e Adicione Essa tag:  
     
     
     
    Ajudei? Rep+ 
     
     
    Creditos: Pikeno Walker Por Criar o Script ! 
     
    Eu Por trazer ao tibiaking.
     
    VERSÃO TESTADA: 1.0 [TFS]
  5. Gostei
    Arysoooon recebeu reputação de hubulufuss em [Talkactions] Verificação de Uso De bot 100% [TFS] 1.0   
    Fala Galera! 
     
    Hoje vim trazer um Sistema Muito Bom,Creio que Seja o Único aqui no tibiaking. 
    Ele Funciona da seguinte maneira, você mandara uma verificação de bot Para o Player , 
    Uma Mensagem na tela dele ira alertar ele.. Essa: 
     
    Caso Ele Responde algo séra liberado! Esse comando é util Para aqueles poketibia que tem o erro de double click no mar. !! 
     
     
     
    Vá até data/talkactions/scripts crie um arquivo chamado CheckBot.lua e Adicione Isso dentro!: 
     
     
     
    Agora vá até talkactions.xml e adicione essa tag:
     
     
    Creditos: Equipe Pokemon x Evolution Por criar o script.
     
     
  6. Gostei
    Arysoooon recebeu reputação de Magalhaes92 em [Talkactions] Changename /rename   
    Fala Galera vim trazer hoje o comando '' /rename '' Ele Server Para Muda Nickname de Player Sem isso até o Editor de Account! 
     
    Vá até data\data\talkactions\scripts Crie um arquivo Chamado changename.lua Cole Isso:
     
     
    Agora vá em talkactions.xml e Adicione Essa tag:  
     
     
     
    Ajudei? Rep+ 
     
     
    Creditos: Pikeno Walker Por Criar o Script ! 
     
    Eu Por trazer ao tibiaking.
     
    VERSÃO TESTADA: 1.0 [TFS]
  7. Gostei
    Arysoooon recebeu reputação de Murasamaru1 em Sprite Shiny Lucario (2015) + Shiny Gliscor (2015)   
    Fala  Galera Do Tibiaking! Hoje com o Meu Segundo Post! venho Mostrar o Duas Sprites:
     
    Shiny Lucario E Shiny Gliscor..
     
    Ps: Todos Ambos Então Com Portrait Tudo Completinho.. sem Nenhum Erro Em Sua Movimentação.
     
    Todas Estão Vindo em Formato OBD Sera Possível Abrir Apenas com o Object Build , Caso Precise: 
     
     
     
    Download:
     
    Shiny Lucario  ↓ ↓ ↓
     
     
    Scan:
     
     
     
    Shiny Gliscor  ↓ ↓ ↓ ↓
     
     
    Não Tive Tempo do Scan Dele.. 4Shared ja Faz Scan  !! Bom Proveito!
     
     
     
     


     
     
     
    Créditos: Eduh Santos -
     
    Eu: Por Colocar as Cores Atuais... Ambas Estavam Foram de Tom. 
  8. Gostei
    Arysoooon deu reputação a GOD Vitor em [2016] Sprites Completas - PokeXGames   
    Eae Galera, estava vasculhando alguns fóruns e encontrei as novas sprites da PokeXGames, então resolvi trazer para o TK. Façam bom aproveito!
     
    Screenshot
     
    Como Abrir a spr pelo Object Builder
     
    Download
     
    Créditos
     
  9. Gostei
    Arysoooon deu reputação a rollback em Como que cria um npc de barco   
    Primeiro crie um arquivo.xml na pasta NPC com o nome de Capitao coruja depois coloque isso dentro.


    <npc name="Capitao Coruja" script="data/npc/scripts/coruja.lua" walkinterval="0" floorchange="0" access="5" level="1" maglevel="1"> <health now="150" max="150"/> <look type="129" head="114" body="119" legs="114" feet="114" corpse="2212"/> <parameters> <parameter key="message_greet" value="Ola |PLAYERNAME|. ! Eu posso te levar para {Dorion}, {yalahar}, {alfon}, {venonh}, {anknor}, {smallville} e {goroma}.. Onde deseja ir?" /> <parameter key="message_decline" value="Vai custar |TOTALCOST| gold coins. Vai viajar? Voce pode ir em outras cidades indo ao tapete do meu primo!"/> </parameters> </npc> enceguida abra a pasta NPC/SCRIPTS crie um arquivo coruja.xml e coloque isso dentro. local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) -- OTServ event handling functions start function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end function onThink() npcHandler:onThink() end -- OTServ event handling functions end -- Don't forget npcHandler = npcHandler in the parameters. It is required for all StdModule functions! local travelNode = keywordHandler:addKeyword({'yalahar'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Voce quer viajar para Yalahar por 210 gold coins?'}) travelNode:addChildKeyword({'yes'}, StdModule.travel, {npcHandler = npcHandler, premium = true, level = 2, cost = 210, destination = {x=1555, y=2576, z=6} }) travelNode:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, reset = true, text = 'I wouldn\'t go there either.'}) keywordHandler:addKeyword({'destination'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Eu posso te levar para {dorion}, {Yalahar}, {Alfon}, {venonh} e {Anknor} por um pequeno custo.'}) -- Don't forget npcHandler = npcHandler in the parameters. It is required for all StdModule functions! local travelNode = keywordHandler:addKeyword({'dorion'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Voce quer viajar para Dorion por 110 gold coins?'}) travelNode:addChildKeyword({'yes'}, StdModule.travel, {npcHandler = npcHandler, premium = true, level = 2, cost = 110, destination = {x=31, y=79, z=6} }) travelNode:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, reset = true, text = 'I wouldn\'t go there either.'}) keywordHandler:addKeyword({'destination'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'I can take you to \'dorion\' for just a small fee.'}) -- Don't forget npcHandler = npcHandler in the parameters. It is required for all StdModule functions! local travelNode = keywordHandler:addKeyword({'alfon'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Voce quer viajar para alfon por 115 gold coins?'}) travelNode:addChildKeyword({'yes'}, StdModule.travel, {npcHandler = npcHandler, premium = true, level = 2, cost = 115, destination = {x=114, y=282, z=6} }) travelNode:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, reset = true, text = 'I wouldn\'t go there either.'}) keywordHandler:addKeyword({'destination'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'I can take you to \'Alfon\' for just a small fee.'}) -- Don't forget npcHandler = npcHandler in the parameters. It is required for all StdModule functions! local travelNode = keywordHandler:addKeyword({'venonh'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Voce quer viajar para venonh por 100 gold coins?'}) travelNode:addChildKeyword({'yes'}, StdModule.travel, {npcHandler = npcHandler, premium = true, level = 2, cost = 100, destination = {x=238, y=370, z=6} }) travelNode:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, reset = true, text = 'I wouldn\'t go there either.'}) keywordHandler:addKeyword({'destination'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'I can take you to \'venohn\' for just a small fee.'}) -- Don't forget npcHandler = npcHandler in the parameters. It is required for all StdModule functions! local travelNode = keywordHandler:addKeyword({'anknor'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Voce quer viajar para anknor por 175 gold coins?'}) travelNode:addChildKeyword({'yes'}, StdModule.travel, {npcHandler = npcHandler, premium = true, level = 2, cost = 175, destination = {x=487, y=261, z=6} }) travelNode:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, reset = true, text = 'I wouldn\'t go there either.'}) keywordHandler:addKeyword({'destination'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'I can take you to \'Anknor\' for just a small fee.'}) -- Don't forget npcHandler = npcHandler in the parameters. It is required for all StdModule functions! local travelNode = keywordHandler:addKeyword({'anknor'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Voce quer viajar para anknor por 100 gold coins?'}) travelNode:addChildKeyword({'yes'}, StdModule.travel, {npcHandler = npcHandler, premium = true, level = 2, cost = 100, destination = {x=487, y=261, z=6} }) travelNode:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, reset = true, text = 'I wouldn\'t go there either.'}) keywordHandler:addKeyword({'destination'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'I can take you to \'anknor\' for just a small fee.'}) -- Don't forget npcHandler = npcHandler in the parameters. It is required for all StdModule functions! local travelNode = keywordHandler:addKeyword({'smallville'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Voce quer viajar para smallville por 190 gold coins?'}) travelNode:addChildKeyword({'yes'}, StdModule.travel, {npcHandler = npcHandler, premium = true, level = 2, cost = 190, destination = {x=1995, y=2394, z=6} }) travelNode:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, reset = true, text = 'I wouldn\'t go there either.'}) keywordHandler:addKeyword({'destination'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'I can take you to \'smallville\' for just a small fee.'}) -- Don't forget npcHandler = npcHandler in the parameters. It is required for all StdModule functions! local travelNode = keywordHandler:addKeyword({'goroma'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Voce quer viajar para Goroma por 55 gold coins?'}) travelNode:addChildKeyword({'yes'}, StdModule.travel, {npcHandler = npcHandler, premium = true, level = 2, cost = 55, destination = {x=1367, y=195, z=6} }) travelNode:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, reset = true, text = 'I wouldn\'t go there either.'}) keywordHandler:addKeyword({'destination'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'I can take you to \'goroma\' for just a small fee.'}) -- Makes sure the npc reacts when you say hi, bye etc. npcHandler:addModule(FocusModule:new())


    Agora editando o script


    local travelNode = keywordHandler:addKeyword({'yalahar'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Voce quer viajar para Yalahar por 210 gold coins?'})
    travelNode:addChildKeyword({'yes'}, StdModule.travel, {npcHandler = npcHandler, premium = true, level = 2, cost = 210, destination = {x=1555, y=2576, z=6} })
    travelNode:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, reset = true, text = 'I wouldn\'t go there either.'})

    keywordHandler:addKeyword({'destination'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Eu posso te levar para {dorion}, {Yalahar}, {Alfon}, {venonh} e {Anknor} por um pequeno custo.'})

    Vermelho é a menssagem que ele vai perguntar para o player
    Amarelo premium = true aque é se pode viajar so premmy ou free tbm pra por free coloca premium = false já pra so premmy premium = true
    Verde level = 2 se precisar de level vc edita pra o lvl que quiser
    cost = 210 , é o preço da viagem.
    destination = {x=1555, y=2576, z=6 voce edita pra onde o player vai ser levado e assim é a mesma coisa em todos.

    Já para editar a menssagem do npc você muda em capitao coruja.xml

    Eu posso te levar para {Dorion}, {yalahar}, {alfon}, {venonh}, {anknor}, {smallville} e {goroma}.. Onde deseja ir?
    Te ajudei? REP+
  10. Gostei
    Arysoooon deu reputação a Absolute em [Battlefield Event New!] Exclusivo e mais legal ;p   
    Fala galerinha linda do TK, vejo muita gente reclamando do battlefield do nosso amigo Vodkart, mas aqui funciona 100%, creio que seja rejeição nos TFS, mas então resolvi trazer a vocês um battlefield que venho customizando a algum tempo, o mesmo possui em alguns servidores poloneses, globalwar e cia.
     
    O Evento é um pouco modificado do que o tradicional battlefield, porém acho que ficou mais legal, é de pegar a bandeira do time inimigo, para dar um pouco mais de emoção que tal? rs.
     
    Preste atenção nos arquivos e como configurar, estarei explicando tudo passo a passo.
     
    Atenção, o comando para abrir o evento é: /battlefield 20 (o 20 é o número de participantes, no caso 10 no time vermelho e 10 no preto, coloque sempre números pares para balancear corretamente o evento)
     
    Vamos ao que interessa:
     

    Primeiramente, em data/libs crie um arquivo com o nome de battlefield.lua e adicione o seguinte dentro:
    battlefield = { storage = 201206300801, storage2 = 201206300802, tpPos = {x=32342, y=32213, z=7}, -- aonde aparecerá o teleport pos_team_1 = {x=31621,y=31860,z=7}, -- posição do team 1 (do lado direito) pos_team_2 = {x=31582,y=31860,z=7}, -- posição do team 2 (do lado esquerdo) spectors = {{x=31593,y=31853,z=6},{x=31609,y=31853,z=6},{x=31593,y=31866,z=6},{x=31609,y=31866,z=6}}, -- aonde aparecerá os espectadores (em volta do battlefield) team1Name = "Black Assassins", team2Name = "Red Barbarians", } function doBroadCastBattle(type,msg) for _, cid in pairs(getPlayersOnline()) do if getPlayerStorageValue(cid, battlefield.storage2) ~= -1 then doPlayerSendTextMessage(cid,type,msg) end end return true end function removeTp() local t = getTileItemById(battlefield.tpPos, 1387) if t then doRemoveItem(t.uid, 1) doSendMagicEffect(battlefield.tpPos, CONST_ME_POFF) end end function OpenWallBattle() local x = true local B = { [1] = {1056,{x=31601, y=31858, z=6, stackpos = 1}}, -- posição da barreira [2] = {1056,{x=31601, y=31859, z=6, stackpos = 1}}, -- posição da barreira [3] = {1056,{x=31601, y=31860, z=6, stackpos = 1}}, -- posição da barreira [4] = {1056,{x=31601, y=31861, z=6, stackpos = 1}} -- posição da barreira } for i = 1, #B do if getTileItemById(B[i][2], B[i][1]).uid == 0 then x = false end if x == true then doRemoveItem(getThingfromPos(B[i][2]).uid,1) else doCreateItem(B[i][1], 1, B[i][2]) end end end function getWinnersBattle(storage) local team = storage == 1 and battlefield.team1Name or battlefield.team2Name doBroadcastMessage("Players from team ".. team .." won the event battlefield,they received a Master Surprise Bag!") setGlobalStorageValue(battlefield.storage, -1) removeTp() OpenWallBattle() for _, cid in pairs(getPlayersOnline()) do if getPlayerStorageValue(cid, battlefield.storage2) ~= -1 then doRemoveCondition(cid, CONDITION_OUTFIT) doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid))) if getPlayerStorageValue(cid, battlefield.storage2) == storage then doPlayerAddItem(cid,6571,1) end setPlayerStorageValue(cid, battlefield.storage2, -1) end end end Como configurar este passo;
     
     
     
    Pós o primeiro passo, crie um arquivo em actions/scripts com o nome de battlefieldAbsolute.lua e adicione o seguinte dentro:
    function onUse(cid, item, fromPosition, itemEx, toPosition) local team = getPlayerStorageValue(cid, battlefield.storage2) if (item.actionid == 45001 and team == 1) or (item.actionid == 45002 and team == 2) then getWinnersBattle(team) end return true end
    Em actions.xml, adicione as seguintes linhas:
    <action actionid="49901" event="script" value="battlefieldAbsolute.lua"/> <action actionid="45002" event="script" value="battlefieldAbsolute.lua"/> Pós o segundo passo, vá até sua pasta creaturescripts/scripts e crie um arquivo com o nome de combat.lua e adicione o seguinte:
    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 Ainda na mesma pasta crie outro arquivo com o nome de pdeath.lua com o seguinte conteúdo: (ATENÇÃO QUE NA MESMA PASTA SÃO 2 ARQUIVOS)
    function onPrepareDeath(cid, corpse, lastHitKiller, mostDamageKiller) if getPlayerStorageValue(cid, config_tvt.green_kills) > 0 then doTeleportThing(cid, config_tvt.green_pos) setGlobalStorageValue(red_kills, getGlobalStorageValue(red_kills) + 1) end if getPlayerStorageValue(cid, config_tvt.red_kills) > 0 then doTeleportThing(cid, config_tvt.red_pos) setGlobalStorageValue(red_kills, getGlobalStorageValue(green_kills) + 1) end doPlayerSendTextMessage(cid, 27, "You dead! by Absolute") return true end Em creaturescripts/creaturescripts.xml adicione as seguintes linhas:
    <event type="preparedeath" name="BattlefieldP" event="script" value="pdeath.lua"/> <event type="combat" name="BattlefieldC" event="script" value="combat.lua"/> Pós o terceiro passo, em movements/scripts crie um arquivo com o nome de battlefieldAbsolute.lua e adicione o seguinte:
    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, battlefield.pos_team_1) return true elseif getGlobalStorageValue(battlefield.storage) == 0 then doTeleportThing(cid, battlefield.spectors[math.random(#battlefield.spectors)]) return true end if getGlobalStorageValue(battlefield.storage) > 0 then if getGlobalStorageValue(battlefield.storage) % 2 == 0 then setPlayerStorageValue(cid, battlefield.storage2, 1) doAddCondition(cid, conditionBlack) doTeleportThing(cid, battlefield.pos_team_1) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You will join the team " .. battlefield.team1Name .. "!") else setPlayerStorageValue(cid, battlefield.storage2, 2) doAddCondition(cid, conditionRed) doTeleportThing(cid, battlefield.pos_team_2) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You will join the team " .. battlefield.team2Name .. "!") end setGlobalStorageValue(battlefield.storage, getGlobalStorageValue(battlefield.storage)-1) if getGlobalStorageValue(battlefield.storage) == 0 then doBroadcastMessage("Battlefield will start in 1 minute, please create your strategy!") addEvent(doBroadcastMessage, 60*1000, "BattleField will begin now!") addEvent(OpenWallBattle, 60*1000) else doBroadcastMessage("We are waiting "..getGlobalStorageValue(battlefield.storage).." players to Battlefield starts.") end end return true end Em movements.xml adicione a seguinte linha:
    <movevent type="StepIn" actionid="45000" event="script" value="battlefieldAbsolute.lua"/> Á pedidos fiz o comando para abrir manualmente, então em talkactions/scripts crie um arquivo com o nome de battlefieldopenAbsolute.lua e coloque:
    function onSay(cid, words, param) if getGlobalStorageValue(battlefield.storage) ~= -1 then doPlayerSendCancel(cid, "The event is already open.") return true elseif not tonumber(param) or param % 2 ~= 0 then doPlayerSendCancel(cid, "You must choose an even number.") return true end doBroadcastMessage("The event BattleField was opened and We are waiting "..param.." Players! Team divided into "..((param)/2).." VS "..((param)/2)) setGlobalStorageValue(battlefield.storage, tonumber(param)) local tp = doCreateItem(1387, 1, battlefield.tpPos) doItemSetAttribute(tp, "aid", 45000) return true end Em talkactions.xml adicione a linha:
    <talkaction words="/battlefield" access="3" event="script" value="battlefieldopenAbsolute.lua"/> Screenshots do mapa do evento; Clique em spoiler para ver.
     
     
    Download & Scan do mapa;
  11. Gostei
    Arysoooon recebeu reputação de Weddson em [Talkactions] Changename /rename   
    Fala Galera vim trazer hoje o comando '' /rename '' Ele Server Para Muda Nickname de Player Sem isso até o Editor de Account! 
     
    Vá até data\data\talkactions\scripts Crie um arquivo Chamado changename.lua Cole Isso:
     
     
    Agora vá em talkactions.xml e Adicione Essa tag:  
     
     
     
    Ajudei? Rep+ 
     
     
    Creditos: Pikeno Walker Por Criar o Script ! 
     
    Eu Por trazer ao tibiaking.
     
    VERSÃO TESTADA: 1.0 [TFS]
  12. Gostei
    Arysoooon deu reputação a Absolute em [FireStorm Event] Chuva de fogos! Desespero [ON]   
    Hello nação TK, de um tempo pra cá eu e o membro ViitinG resolvemos trabalhar em cima de um novo evento para vocês, é o FireStorm event!
     
    Eu vim trabalhando no script do evento em MODS e o Victor no mapa do mesmo.
     
    WTF DE FAIRIEISTORMIII IS IT?
    Pois é galera, o nome já diz tudo "Chuva de Fogos".
    Algum membro da equipe executará o comando !startfire para dar início ao evento, então irá aparecer uma mensagem para todos os jogadores do servidor que o evento Fire Storm foi aberto.
    Então os jogadores irão dizer: !joinfire para entrar no evento, os jogadores ficarão imóveis até que o evento comece, o jogador não poderá usar o comando quando estiver com battle fight.
    Pós dar o tempo para inciar o evento (configurável no script) os jogadores serão teleportados para a área específica do mesmo onde em 1 minuto começará a cair FOGOS do céu, onde os jogadores contaram com a habilidade e a sorte para fugir dos fogos.
    A regra é clara Casa Grande, foi atingido é teleportado para o templo com a mensagem "You loss" VOCÊ PERDEU BABY!
     
    O Último sobrevivente da arena é recompensado com X item automáticamente (configurável).
     
     
     
    Sem mimimi vamos ao que interessa:
     
    Na pasta incial do seu servidor há uma pasta com o nome de MODS, então crie um arquivo com o nome de w-fire.xml dentro dela com o conteúdo abaixo:
    <?xml version="1.0" encoding="UTF-8"?> <mod name="Fire_Storm_Event" version="0.1" author="Absolute Version" contact="lu.lukinha" enabled="yes">     <config name="config_fire_storm_event">         <![CDATA[             configFireStormEvent = {                 storages = {                     main = 'fireStormEventMain', -- set free storage                     player = 'fireStormEventPlayer', -- set free storage                     joining = 'fireStormEventJoining', -- set free storage                     exhaust = 'fireStormEventExhaust', -- set free storage                     countEvent = 'fireStormEventCountEvent' -- set free storage                 },                                  position = {x=890 ,y=993,z=7}, -- posiotion to which player is teleporting                 room = {                     from = {x=736,y=933,z=7}, -- left top corner of event room                     to = {x=781,y=955,z=7} -- right bottom corner of event room                 },                 rewards = {8858, 2346, 2538, 2437}, -- reward id which player can win (reward is random)                 players = {                     max = 80,                     min = 2,                     minLevel = 100                 },                 days = {                     ['Tuesday'] = {'19:59:20'},                     ['Thursday'] = {'19:59:20'},                     ['Sunday'] = {'19:59:20'}                 },                 fireStormDelay = 1000, -- milisecond                                  delayTime = 5.0, -- time in which players who joined to event are teleporting to teleport position                 startEvent = 5 -- time from teleport to start event                 text = '-PL-\nAby wygrac i otrzymac nagrode, utrzymaj sie jak najdluzej na arenie.\n\n-ENG-\nTo win and get a Rewards, to stay as long as possible in the arena.'             }             y, x = 1, 1 -- don't change it         ]]>     </config>          <lib name="lib_fire_storm_event">         <![CDATA[             function doStartFireStormEvent()                 doSetStorage(configFireStormEvent.storages.joining, -1)                                  if configFireStormEvent.players.min <= doCountPlayersFireStormEvent() then                             for _, cid in ipairs(getPlayersOnline()) do                         if getCreatureStorage(cid, configFireStormEvent.storages.player) > 0 then                             doCreatureSetNoMove(cid, false)                             doRemoveCondition(cid, CONDITION_INFIGHT)                             doTeleportThing(cid, configFireStormEvent.position)                             doCreatureSetStorage(cid, configFireStormEvent.storages.player, -1)                                                          doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, 'Get ready. Fire Storm Event start in '..configFireStormEvent.startEvent..' seconds.')                         end                     end                                          addEvent(doSetStorage, configFireStormEvent.startEvent * 1000, configFireStormEvent.storages.main, 1)                     addEvent(doRepeatCheckFireStorm, configFireStormEvent.startEvent * 1000 + 2000)                                          doBroadcastMessage('Fire Storm Event has started. LET\'S GO!')                 else                     for _, cid in ipairs(getPlayersOnline()) do                         if getCreatureStorage(cid, configFireStormEvent.storages.player) > 0 then                             doCreatureSetNoMove(cid, false)                             doRemoveCondition(cid, CONDITION_INFIGHT)                         end                     end                                          doBroadcastMessage('Fire Storm hasn\'t started beacuse there were not enough players.')                 end             end                          function doRepeatCheckFireStorm()                 if getStorage(configFireStormEvent.storages.main) > 0 then                     local xTable, yTable, playerTable = {}, {}, {}                     for x = configFireStormEvent.room.from.x, configFireStormEvent.room.to.x do                         for y = configFireStormEvent.room.from.y, configFireStormEvent.room.to.y do                             table.insert(xTable, x)                             table.insert(yTable, y)                             local n, i = getTileInfo({x=x, y=y, z=configFireStormEvent.room.to.z}).creatures, 1                             if n ~= 0 then                                 local v = getThingfromPos({x=x, y=y, z=configFireStormEvent.room.to.z, stackpos=i}).uid                                 while v ~= 0 do                                     if isPlayer(v) then                                         table.insert(playerTable, v)                                         if n == #playerTable then                                             break                                         end                                     end                                     i = i + 1                                     v = getThingfromPos({x=x, y=y, z=configFireStormEvent.room.to.z, stackpos=i}).uid                                 end                             end                         end                     end                     if #playerTable == 1 then                         local prize = math.random(#configFireStormEvent.rewards)                         doCreatureAddHealth(playerTable[1], getCreatureMaxHealth(playerTable[1]) - getCreatureHealth(playerTable[1]))                         doCreatureAddMana(playerTable[1], getCreatureMaxMana(playerTable[1]) - getCreatureMana(playerTable[1]))                         doTeleportThing(playerTable[1], getTownTemplePosition(getPlayerTown(playerTable[1])), true)                         doPlayerAddItem(playerTable[1], configFireStormEvent.rewards[prize], 1)                         doPlayerSendTextMessage(playerTable[1], MESSAGE_EVENT_ADVANCE, 'You win! You have received ' .. getItemNameById(configFireStormEvent.rewards[prize]) .. ' as reward.')                         doBroadcastMessage('Fire Storm Event has finished. The winner is ' .. getCreatureName(playerTable[1]) .. '. Congratulations.')                         doSetStorage(configFireStormEvent.storages.main, -1)                                                  db.query("INSERT INTO `events` (`event_name`, `winner_name`, `won_item`, `time_win`) VALUES (\"Fire\", \"" .. getCreatureName(playerTable[1]) .. "\", \"" .. getItemNameById(configFireStormEvent.rewards[prize]) .. "\", " .. getStorage(configFireStormEvent.storages.countEvent) ..");")                         doSetStorage(configFireStormEvent.storages.countEvent, getStorage(configFireStormEvent.storages.countEvent) + 1)                                                  x, y = 1, 1                     elseif #playerTable > 1 then                         for a = 1, y do                             addEvent(                                 function()                                     local pos = {x=xTable[math.random(#xTable)], y=yTable[math.random(#yTable)], z=7}                                     for _, player in ipairs(playerTable) do                                         local pPos = getThingPos(player)                                         if pPos.x == pos.x and pPos.y == pos.y and pPos.z == pos.z then                                             doCreatureAddHealth(player, - getCreatureMaxHealth(player))                                         end                                     end                                     doSendDistanceShoot({x = pos.x - math.random(4, 6), y = pos.y - 5, z = pos.z}, pos, CONST_ANI_FIRE)                                     addEvent(doSendMagicEffect, 150, pos, CONST_ME_HITBYFIRE)                                     addEvent(doSendMagicEffect, 150, pos, CONST_ME_FIREAREA)                                 end,                                 math.random(100,1000)                             )                         end                         if x == 5 * y then                             y = y + 1                         end                                                  x = x + 1                     else                         doBroadcastMessage('No one have won in Fire Storm Event.')                         doSetStorage(configFireStormEvent.storages.main, -1)                                                 doSetStorage(configFireStormEvent.storages.countEvent, getStorage(configFireStormEvent.storages.countEvent) + 1)                         x, y = 1, 1                     end                                          addEvent(doRepeatCheckFireStorm, configFireStormEvent.fireStormDelay)                 end             end                          function doCountPlayersFireStormEvent()                 local x = 0                 for _, cid in ipairs(getPlayersOnline()) do                     if getCreatureStorage(cid, configFireStormEvent.storages.player) > 0 then                         x = x + 1                     end                 end                 return x             end                          function doStartCountingFireStormEvent(x)                 if configFireStormEvent.delayTime-x > 0 then                     doBroadcastMessage('Fire Storm Event will start in '..configFireStormEvent.delayTime-x..' minutes. You can join to the event by say "!fire join".')                     addEvent(doStartCountingFireStormEvent, 60*1000, x+1)                 end             end         ]]>     </lib>     <talkaction words="!fire" event="script">         <![CDATA[             domodlib("config_fire_storm_event")             function onSay(cid, words, param)                 if getStorage(configFireStormEvent.storages.joining) ~= 1 then                     return doPlayerSendCancel(cid, 'Fire Storm Event hasn\'t started yet.')                 elseif param == '' then                     return doPlayerSendCancel(cid, 'Command param required (say: "!fire join" or "!fire leave.").')                 elseif getPlayerLevel(cid) < configFireStormEvent.players.minLevel then                     return doPlayerSendCancel(cid, 'You can\'t join to the event if you don\'t have a require '..configFireStormEvent.players.minLevel..' level.')                 elseif getTileInfo(getThingPos(cid)).protection ~= true then                     return doPlayerSendCancel(cid, 'You can\'t join to the event if you aren\'t in protection zone.')                 elseif exhaustion.check(cid, configFireStormEvent.storages.exhaust) ~= false then                     return doPlayerSendCancel(cid, 'You must wait '..exhaustion.get(cid, configFireStormEvent.storages.exhaust)..' seconds to use this command again.')                 end                 if param == 'join' then                     if getCreatureStorage(cid, configFireStormEvent.storages.player) > 0 then                         return doPlayerSendCancel(cid, 'You have arleady joined to event. Wait patiently for start.')                     elseif doCountPlayersFireStormEvent() == configFireStormEvent.players.max then                         return doPlayerSendCancel(cid, 'Max players in the event have been reached.')                     end                                          doCreatureSetNoMove(cid, true)                     doPlayerPopupFYI(cid, configFireStormEvent.text)                     doCreatureSetStorage(cid, configFireStormEvent.storages.player, 1)                     doAddCondition(cid, createConditionObject(CONDITION_INFIGHT, -1))                     doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, 'You have joined to Fire Storm Event. You can\'t move until event don\'t start. Wait patiently for the event start.')                     doPlayerSendTextMessage(cid, MESSAGE_EVENT_ORANGE, 'You have joined to Fire Storm Event.')                 elseif param == 'leave' then                     if getCreatureStorage(cid, configFireStormEvent.storages.player) <= 0 then                         return doPlayerSendCancel(cid, 'You can\'t leave from the event if you don\'t join.')                     end                                          doCreatureSetNoMove(cid, false)                     doRemoveCondition(cid, CONDITION_INFIGHT)                     doCreatureSetStorage(cid, configFireStormEvent.storages.player, -1)                     doPlayerSendTextMessage(cid, MESSAGE_EVENT_ORANGE, 'You have left from the Fire Storm Event.')                 end                                  exhaustion.set(cid, configFireStormEvent.storages.exhaust, 5)                                  return true             end         ]]>     </talkaction>          <talkaction words="!startfire" access="4" event="script">         <![CDATA[             domodlib("config_fire_storm_event")             domodlib("lib_fire_storm_event")             function onSay(cid, words, param)                 if getStorage(configFireStormEvent.storages.main) > 0 then                     return doPlayerSendCancel(cid, 'Fire Storm Event is already running.')                 end                              doStartCountingFireStormEvent(0)                                  for _, pid in ipairs(getPlayersOnline()) do                     if getCreatureStorage(pid, configFireStormEvent.storages.player) > 0 then                         doCreatureSetStorage(pid, configFireStormEvent.storages.player, -1)                         doTeleportThing(pid, getTownTemplePosition(getPlayerTown(pid)), true)                     end                 end                                  doSetStorage(configFireStormEvent.storages.joining, 1)                 addEvent(doStartFireStormEvent, configFireStormEvent.delayTime * 60 * 1000)                 return true             end         ]]>     </talkaction>     <globalevent name="Fire_Storm_Event_Days" interval="1000" event="script">         <![CDATA[             domodlib("config_fire_storm_event")             domodlib("lib_fire_storm_event")             local daysOpen = {}                         for k, v in pairs(configFireStormEvent.days) do                 table.insert(daysOpen, k)             end                          function onThink(interval)                 if isInArray(daysOpen, os.date('%A')) then                     if isInArray(configFireStormEvent.days[os.date('%A')], os.date('%X', os.time())) then                         if getStorage(configFireStormEvent.storages.joining) ~= 1 then                             doStartCountingFireStormEvent(0)                                                          for _, pid in ipairs(getPlayersOnline()) do                                 if getCreatureStorage(pid, configFireStormEvent.storages.player) > 0 then                                     doCreatureSetStorage(pid, configFireStormEvent.storages.player, -1)                                     doTeleportThing(pid, getTownTemplePosition(getPlayerTown(pid)), true)                                 end                             end                                                          doSetStorage(configFireStormEvent.storages.joining, 1)                             addEvent(doStartFireStormEvent, configFireStormEvent.delayTime * 60 * 1000)                         end                     end                 end                 return true             end         ]]>     </globalevent>     <event type="statschange" name="Fire_Storm_Event_Dead" event="script">         <![CDATA[             domodlib("config_fire_storm_event")             function onStatsChange(cid, attacker, type, combat, value)                 if type == 1 and getCreatureHealth(cid) <= value then                     if isInRange(getThingPos(cid), configFireStormEvent.room.from, configFireStormEvent.room.to) then                         doCreatureAddHealth(cid, getCreatureMaxHealth(cid) - getCreatureHealth(cid))                         doCreatureAddMana(cid, getCreatureMaxMana(cid) - getCreatureMana(cid))                         doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)))                         doPlayerSendTextMessage(cid, MESSAGE_EVENT_ORANGE, 'You loss.')                         return false                     end                 end                 return true             end         ]]>     </event>          <event type="login" name="Fire_Storm_Event_Login" event="script">         <![CDATA[             domodlib("config_fire_storm_event")                      function onLogin(cid)                 if getCreatureStorage(cid, configFireStormEvent.storages.player) > 0 then                     doCreatureSetStorage(cid, configFireStormEvent.storages.player, -1)                     doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)), true)                     doCreatureSetNoMove(cid, false)                     doRemoveCondition(cid, CONDITION_INFIGHT)                 end                 registerCreatureEvent(cid, 'Fire_Storm_Event_Dead')                 return true             end         ]]>     </event>          <globalevent name="Fire_Storm_Event_Start" type="startup" event="script">         <![CDATA[             domodlib("config_fire_storm_event")             function onStartup()                 doSetStorage(configFireStormEvent.storages.main, -1)                 doSetStorage(configFireStormEvent.storages.joining, -1)                 return true             end         ]]>     </globalevent> </mod> Como configurar:
     
    position = {x=890 ,y=993,z=7}, -- posiotion to which player is teleporting - Aqui você deve colocar o centro da posição do mapa que o linduxo do meu querido amigo e parceiro vosso disponibiliza AQUI
    from = {x=736,y=933,z=7}, -- left top corner of event room - Aqui você deve colocar a posição superior esquerda da área do evento, como exemplo na imagem:



    to = {x=781,y=955,z=7} -- right bottom corner of event room - Aqui você deve colocar a posição inferior direita da área do evento, como exemplo na imagem:



     
    Configurar prêmio:
    rewards = {8858, 2346, 2538, 2437}, -- reward id which player can win (reward is random) - onde está os números de exemplo 8858, 2346, 2538, 2437 são os IDS dos items que você colocará como premiação, o player ganhará apenas UM item que pode ser um dos 4 (sorteio).
    Caso você queira colocar apenas 1 item específico altere para:
    rewards = {8858}, -- reward id which player can win (reward is random)
     
     
    Permissão para abrir o evento:
    <talkaction words="!startfire" access="4" event="script"> - em acess="4" você poderá alterar o membro da staff que poderá abrir, o número 4 indica que CM e ADMS poderão abrir, caso troque para 3, GM'S, CM'S E ADM'S poderão executar o comando !startfire para abrir o evento quando quiser.
     
     
    Configuração automática:
        days = {
                        ['Tuesday'] = {'19:59:20'},
                        ['Thursday'] = {'19:59:20'},
                        ['Sunday'] = {'19:59:20'}
     
    Simples, os dias são colocados em inglês, então basta ajustar, por exemplo, você quer que o evento ocorra na segunda-feira ás 19:00, segue um exemplo:
       ['Monday'] = {'19:00:00'},
     
    Lembrando que o dia e horário deve corresponder com o horário atual da máquina onde roda o servidor.
     
     
    É isso meus queridos, na próxima versão do evento colocarei para entrar no mesmo por teleport.
     
    Não esqueçam de baixar e usar o mapa que recomendo do Victor aqui. É ideal para o evento =)
     
     
    Qualquer dúvida não deixe de me perguntar.
     
     
     
    Créditos:
    CollocorpuseK base do evento
    Absolute (adaptação, funções e abertura por comando)
    VitiinG (mapa)
     
     
     
     
     
    Nós vemos na próxima versão!
    Enjoy.
  13. Gostei
    Arysoooon deu reputação a L3K0T em Bug HP poketibia, print anexo   
    gainhp="45"  lá em vocations.xml deixa 45 vai da muita vida a cada level que ele upar um 300 mais oumenos vai ter uns 12 ha 13k de vida
  14. Gostei
    Arysoooon deu reputação a Gabrieltxu em Criando Client com launcher   
    Você já jogou GrandChase, League of Legends? Se já, Você deve ter reparado que quando você abre esses jogos, aparece uma janela com promoções, opções do jogo, um botão para abrir o jogo. Alem disso, essa janela baixa atualizações, mostra o progresso, atualiza o seu jogo e habilita você abrir o jogo. Isso é um Launcher, e é isso que eu estou disponibilizando para a comunidade! Um meio fácil, simples de mostrar promoções, video, tweets e qualquer tipo de Media que possa ser inserida em um site. Um meio fácil e simples de atualizar o seu próprio jogo. Um Launcher que é totalmente que a interface é totalmente configurável com um sistema de Skins.
    Está interessado? Baixe Já o Launcher e aprenda no meu post como configura-lo!

    Download:http://www.mediafire...xmohk7hy8rgniep


    Oque ele é?


    O Launcher funciona de uma forma Simples.Ele abre o site que irá mostrar as propagandas, media, etc. Depois, ele compara os arquivos do computador do player com os arquivos no servidor. Caso existam arquivos novos ou caso algum arquivo foi modificado ou até deletado, o Launcher baixa esses arquivos e coloca/substituiu eles no lugar certo ou deleta o arquivo caso ele não exista mais no servidor. Enquanto está baixando, o Launcher mostra para o player qual arquivo está baixando, quantos por cento do total da atualização já foi concluída com uma barra de progresso. Quando a atualização acaba, o Launcher mostra uma mensagem para o player e habilita um botão para que o player possa abrir o jogo. Simples assim



    Como Usar


    Descompacte o arquivo UpdateFiles.7z em qualquer lugar. Abra a pasta UpdateFiles, depois, abra a pasta Launcher. Todos esses arquivos são o Launcher. Esses são os arquivos que devem estar no computador do player, como o client do tibia. Use instaladores e crie um atalho(area de trabalho, barra de iniciação rapida) com o nome e ícone do seu server.Importante: Antes de entregar o launcher ao player, certifique-se de configura-lo e configurar o servidor.





    Configurando o Launcher



    O launcher.exe é a parte principal do Launcher. Você o configura de duas maneiras: Launcher.ini e Skin.ini. No Launcher.ini você configura as principais configurações do Launcher.exe. No Skin.ini, você configura a interface grafica(sistema de skins) do Launcher, e as imagens que são usadas nela.





    Launcher.ini




    O launcher.ini é encontrado na mesma pasta que o launcher.exe.

    [General] ; Titulo da janela do Launcher, que aparece na barra de tarefas, etc Title=Launcher! ;É o link da pagina que vai aparecer dentro do Launcher. Dentro do rentangulo da pagina. ViewSite=www.google.com.br ;É o site de Download dos arquivos. DownloadSite=www.google.com.br ;Seu id unico. ELe serve para abrir apenas uma instancia do Launcher. MutexID=idunico ;Nome do executavel do Launcher. Não editar. LauncherExe=Launcher.exe ;Nome do executavel do seu jogo. Ex: tibia.exe, etc. executable=pbr.exe ;Mensagem que aparece quando a atualização está completa FinishMsg=Atualização completa Esse é o arquivo de configuração. Mas como disse Jack Stripador, vamos por partes: Title: É o titulo do launcher. o Titulo da janela, que aparece na barra de tarefas e tal. ViewSite: É o link da pagina que vai aparecer dentro do Launcher. DownloadSite: É o link de download dos arquivos: Ex: www.seusite.com.br/UpdateFiles/ MutexID: É um id unico seu. Ele serve para que existe apenas uma instancia do Launcher aberta no computador do player. LauncherExe: É o nome do executavel. altere isso caso você mude o nome do launcher.Recomendo que não altere, inves disso, crie no instalador um atalho com o nome do seu server que aponte para o Launcher.exe. Executable: É executável do seu client. FinishMsg: É a mensagem que aparece quando a atualização está completa. Ela aparece em um label dentro do programa, no mesmo lugar que aparece o nome do arquivo que está sendo baixado no momento. [General] ;Posição X(horizontal) e Y(horizontal) em pixels do Botão OK/Enter(o butão que abre O Cliente quando a atualização está completa) EnterBtnX=100 EnterBTnY=250[/b][/font][/color] [b];Posição X(horizontal) e Y(horizontal) em pixels do Botão Minimizar MinimizeBtnX=350 MinimizeBTnY=40[/b] [b];Posição X(horizontal) e Y(horizontal) em pixels do Botão Fechar CloseBtnX=450 CloseBtnY=10[/b] [b];Posição X(horizontal) e Y(horizontal) em pixels da barra de progresso(que mostra o progresso do download) ProgressX=10 ProgressY=300 ;Tamanho em X(horizontal) e Y(horizontal) em pixels da barra de progresso(que mostra o progresso do download) ProgressWidth=100 ProgressHeight=20 ;A cor da barra de progresso cheia ProgressColor=16776960 ;A cor de fundo da barra de progresso ProgressBackColor=16776960[/b] [b];Posição X(horizontal) e Y(horizontal) em pixels do retangulo da pagina de internet(viewsite) ScreenX=10 ScreenY=10 ;Tamanho em X(horizontal) e Y(horizontal) em pixels do retangulo da pagina de internet(viewsite) ScreenWidth=200 ScreenHeight=200[/b] [b];Posição X(horizontal) e Y(horizontal) em pixels do label(texto) que mostra os arquivos sendo baixados e mostra a actualizedMsg FileLbX=200 FileLby=200 ;Tamanho em X(horizontal) e Y(horizontal) em pixels do label(texto) que mostra os arquivos sendo baixados e mostra a actualizedMsg FileLbWidth=100 FileLbHeight=20[/b] [b]


    lembrando que o tamanho dos butões(em x e y) é configurado a partir das imagens da skin.

    Imagens:

    Na pasta Skin, existe a pasta IMG, essa pasta tem as imagens que são usadas no Launcher e fazem parte da skin,Por exemplo, botões, fundo do launcher.
    você deve substituir essas imagens para ter seu proprio design. Elas são:
    background.png: É o fundo do Launcher, a imagem que fica atraz, pode ser transparente.
    close.png: É a imagem do butão de fechar.
    minimize.png: é a imagem do butão de minimizar.
    enteron.png: É a imagem do butão Enter quando o client está atualizado e pronto para ser aberto.
    enteroff.png: É a imagem do butão enter quando o client está desatualizado.
    loadbackground.png: É a imagem de fundo de quando o launcher está carregando, pode ser transparente(efeito dahora )



    Brinque a vontade com as skins! Assim você ficará mais familiarizado com a interface gráfica.






    Servidor







    O sistema de Update do Launcher é muito simples. Ele apenas faz uma copia do servidor. O computador do player sempre está igual ao servidor. Caso mude algo no servidor, no computador do player essa mudança irá ser baixada e atualizada.



    Configurando



    Primeiro, coloque todos os arquivos(como uma pasta chamada client que contem o seu client tibia e os arquivos dele) que devem ser atualizados dentro da pasta update que fica dentro da pasta UpdateFiles. Todo arquivo ou pastas que devam ser atualizada devem ser estar dentro da pasta Update.
    Depois, certifique-se de configurar o launcher da maneira que quiser. Depois, execute O gendata.exe. A seguir, copie a pasta UpdateFiles para a pasta Htdocs dentro da pasta do XAMP. Pronto, o servidor está pronto.
    Lembre-se que caso exista algum arquivo no computador do player que esteja dentro da mesma pasta do Launcher e não foi configurado no servidor com o gendata, ele foi vai ser deletado. Isso serve para deletar arquivos que não são mais usados.
    A pasta "updatefiles" vai estar acessivel pela internet por esse link "www.seusite.com.br/updatefiles/.
    Esse link você deve botar no DownloadSite no launcher.ini.
    O sistema de download do Launcher é como se você bota-se o seu client para download no seu proprio site usando o seu proprio servidor para o download. Geralmente, você coloca o arquivo na htdocs, e depois bota no site o link(www.seusite.com.br/arquivo.exe). O launcher funciona da mesma forma, só que é automatizado. Você usa o gendata, coloca a UpdateFiles dentro da htdocs e coloca no downloadsite(launcher.ini) do launcher: www.seusite.com.br/updatefiles/ . Assim, ele sabe a pasta que estão os arquivos e faz o download de cada um.

    Esse modelo é muito simples, e muito util. Cada vez que você quiser modificar o Launcher no computador do player(caso eu atualize o launcher ou você mude alguma configuração) é so modificar os arquivos da pasta Launcher dentro da UpdateFiles e usar o gendata denovo. Para atualizar os arquivos do Client, apenas mude o que tem dentro da pasta client que fica dentro da pasta Update e execute o GenData.

    Lembre-se de atualizar o instalador do jogo cada vez que modificar/atualizar o launcher.

    Os arquivos, quando são baixados do servidor, são colocados na pasta do Launcher no computador do Player. Por exemplo, os arquivos dentro da pasta Client, ficam dentro de uma pasta Client na pasta do Launcher no computador do Player.Todas as pastas e arquivos dentro da pasta Update vão para a mesma pasta do Launcher.


    Caso exista um arquivo novo que não exista no computador do player, o launcher baixa esse arquivo novo. Caso um arquivo não exista mais no servidor(foi removido da pasta update) o launcher deleta no computador do Player.

    O launcher e o gendata aceitam qualquer tipo de arquivos e pastas. Quer dizer, caso você crie pastas dentro de pastas, o launcher irá criar essas pastas no computador do player e irá colocar o arquivo no lugar certo. Assim, o launcher é funcional para qualquer tipo de update, alem de jogos e tibia.


    Creditos: cristofermartins e Gabrieltxu
    Skin.ini O skin.ini é encontrado na pasta skin, dentro da pasta que se encontra o launcher.exe.O skin.ini faz parte do sistema de Skins. Você pode construir varias skins, e quando quiser coloca-las no Launcher, você apenas modifica o skin.ini ou as imagens da pasta IMG. Ou Até substituir a pasta Skin inteira, trocando a skin por completo.
  15. Gostei
    Lokozoido o seu deve esta assim
     
    <talkaction words="!sellhouse" filter="word-spaced" event="function" value="houseSell"/>
     
     
    deixe como o klipstyle disse.
     
    <talkaction words="!sellhouse"  event="function" value="houseSell"/>
     
     
     
     
    Diferença:
     
    <talkaction words="!sellhouse" filter="word-spaced" event="function" value="houseSell"/>
    <talkaction words="!sellhouse"  event="function" value="houseSell"/>
  16. Gostei
    simplesmente troque no talkactions.xml a parte referente ao sell house por esta.
     
    <talkaction words="!sellhouse"  event="function" value="houseSell"/>
  17. Gostei
    Arysoooon recebeu reputação de isex em Sprite Shiny Lucario (2015) + Shiny Gliscor (2015)   
    Fala  Galera Do Tibiaking! Hoje com o Meu Segundo Post! venho Mostrar o Duas Sprites:
     
    Shiny Lucario E Shiny Gliscor..
     
    Ps: Todos Ambos Então Com Portrait Tudo Completinho.. sem Nenhum Erro Em Sua Movimentação.
     
    Todas Estão Vindo em Formato OBD Sera Possível Abrir Apenas com o Object Build , Caso Precise: 
     
     
     
    Download:
     
    Shiny Lucario  ↓ ↓ ↓
     
     
    Scan:
     
     
     
    Shiny Gliscor  ↓ ↓ ↓ ↓
     
     
    Não Tive Tempo do Scan Dele.. 4Shared ja Faz Scan  !! Bom Proveito!
     
     
     
     


     
     
     
    Créditos: Eduh Santos -
     
    Eu: Por Colocar as Cores Atuais... Ambas Estavam Foram de Tom. 
  18. Gostei
    Arysoooon deu reputação a L3K0T em Scripts Baú + Alavanca para TFS 1.0+   
    Bom pessoal venho aqui liberar um scripts que fiz então lá vai... esse scripts é bem simples mais não achei então comecei a estudar um pouco o tfs 1.0+ e ai está o Baú e Alavanca que está meio que completo.
     
    Vá em data/actions/ copie um arquivo .lua e renomeia para bau teste.lua e add
    LevelPlayer = 200 -- Level 200 para abrir o baú iddoitem, quantidade = 2160, 1 -- Id do Item, Quantidade do Item enviarplayerpara = {x = 65, y = 177, z = 6} -- para aonde o player vai ao clicar no baú ? Aviso = "Sua messagem caso o player não tenha o level" --"entre aspas"-- Sto = 565643 -- qual storage que o player pode ganhar ? para não clicar novamente no baú ? function onUse(cid, item, frompos, itemEx, topos) if getPlayerStorageValue(cid, Sto) == -1 then if getPlayerLevel(cid) <= LevelPlayer then doTeleportThing(cid, enviarplayerpara) doPlayerAddItem(cid, iddoitem, quantidade) doSendMagicEffect(getCreaturePosition(cid), CONST_ME_TELEPORT) --CONST_ME_TELEPORT = numero do efeito setPlayerStorageValue(cid, Sto, 0) else doPlayerSendCancel(cid, Aviso) end else doPlayerSendCancel(cid, "Você já pegou sua recompensa.") end return true end agora volte um pasta sendo data/actions abra o arquivo actions.xml e add a tag logo abaixo
    <action uniqueid="5001" script="bau teste.lua" /> para que tudo ocorra bem vá ao seu map editor e add no bau a uniqueis 5001 ou outra caso preferir e pronto!
    Bem simples  porém bem diferente do tfs anteriores.
     
    para alavanca ficaria assim 
     
    LevelPlayer = 200 -- Level 200 para abrir o baú iddoitem, quantidade = 2160, 1 -- Id do Item, Quantidade do Item enviarplayerpara = {x = 65, y = 177, z = 6} -- para aonde o player vai ao clicar no baú ? Aviso = "Sua messagem caso o player não tenha o level"  --"entre aspas"-- Sto = 565643 -- qual storage que o player pode ganhar ? para não clicar novamente no baú ? function onUse(cid, item, frompos, itemEx, topos) if item.itemid == 1945 then doTransformItem(item.uid, 1946) else doTransformItem(item.uid, 1945) end if getPlayerStorageValue(cid, Sto) == -1 then if getPlayerLevel(cid) <= LevelPlayer then doTeleportThing(cid, enviarplayerpara) doPlayerAddItem(cid, iddoitem, quantidade) doSendMagicEffect(getCreaturePosition(cid), CONST_ME_TELEPORT) --CONST_ME_TELEPORT = numero do efeito setPlayerStorageValue(cid, Sto, 0) else doPlayerSendCancel(cid, Aviso) end else doPlayerSendCancel(cid, "Você já pegou sua recompensa.") end return true end <action uniqueid="5001" script="alavanca teste.lua" /> deve fazer como no baú add uniqueid pelo mapa só que na alavanca
  19. Gostei
    Arysoooon deu reputação a Natanael Beckman em DEV C++ Compilando TFS no Windows   
    DEV C++,  aprenda a compila uma source TFS!
     
    Downloads(Baixe de acordo as configurações do seu windows):
    DEV C++ CONFIGURADO PARA 32BITS
    DEV C++ CONFIGURADO PARA 64BITS
    REV 3884 TFS 0.4
     
    Certo, feitos os downloads, extrai DEV C++ no Disco C e REV 3884 em Documentos.
    ======================================
    Abra o DEV C++:
    ======================================

    ======================================
    Abra a Source:
    ======================================

    ======================================
    Localize a pasta da Source e abra o arquivo TheForgottenServer.dev, Documentos> trunk.r3884> dev-cpp> TheForgottenServer.dev:
    ======================================

    =============================================================

    ======================================
    Aguarde carregar todos os arquivos:
    ======================================

    ======================================
    Vamos adicionar o parâmetro -D__CONSOLE__ no teclado digita ALT + P, clique em parameters e adicione o parâmetro... Feito? clique em OK:
    ======================================

    ======================================
    Vamos compilar Source, no teclado digite CTRL+F9 e aguarde finalizar o processo:
    ======================================

    ======================================
    Se der tudo certo em Log vai estar como mostra a imagem abaixo:
    ======================================

    ======================================
    Verifique na pasta Documentos> trunk.r3884> dev-cpp você vai encontrar o arquivo TheForgottenServer.exe e pronto meu parabéns você compilou!
    ======================================

    ===========================================
    Só isso galera tutorial rápido resumido e útil!
    Créditos Natanael Beckman!    
    ===========================================     
     
    Caso você adquira uma source com apenas os arquivos .cpp e .h e não sabe como compilar o projeto, abaixo vamos explicar:
    Na pasta onde está localizado os arquivos .cpp e .h crie uma pasta chamada dev-cpp, e dentro dela adicione uma imagem icone.
     

     
    Abra o DEV-C++, clique em  File> New> Project:
     

     
    Logo em seguida selecione Empty Project, em name terá o nome Project1 altere utilize o nome quer quiser, após isso clique em OK e em seguida selecione a pasta dev-cpp que criamos:
     

     
    Agora selecione a opção Win32GUI caso use source OTX ou TFS selecione Win32Console ao lado << Browse selecione a imagem do icone que está na pasta Dev-Cpp.
     

     
    No mesmo menu na aba Parameters em C++ compiler adicione os seguintes parâmetros:
    -D__ENABLE_SERVER_DIAGNOSTIC__ -D__ROOT_PERMISSION__ -D__GROUND_CACHE__ -D__USE_SQLITE__ -D__USE_MYSQL__ -D__CONSOLE__ -D__WAR_SYSTEM__ E em Linker adicione as seguintes libs:
    -lboost_filesystem -lboost_thread -lboost_system -lboost_regex -lsqlite3 -lwsock32 -llua5.1 -lws2_32 -leay32 -lmysql -lxml2 -lgmp -lz -s   No mesmo Menu na aba Build Option escreva na segunda coluna horizontal escreva Obj e dê OK.     Na lateral terá o nome do seu projeto o meu no caso é The Forgotten Server, clique com o botão direito do mouse em cima do nome e clique na opção Add Project:      Selecione na pasta da sua source todos os arquivos .cpp e .h após isso salva o projeto e já pode compilar CTRL+F9:         OpenSSL 0.9.8   1º baixe http://devpaks.org/details.php?devpak=73 2° abra Dev-Cpp > Tools > Packager Manager > Install > Seleciona o arquivo baixado e instala, fecha abre e testa!
      Clica aqui \/
  20. Gostei
    Arysoooon deu reputação a Bruno Carvalho em [Creaturescripts] Avisar Quando um STAFF Entrar.   
    Parabéns, seu tópico de conteúdo foi aprovado!
    Muito obrigado pela sua contribuição, nós do Tibia King agradecemos.
    Seu conteúdo com certeza ajudará à muitos outros, você recebeu +1 REP.
     
  21. Gostei
    Arysoooon recebeu reputação de Bruno Carvalho em [Talkactions] Changename /rename   
    Fala Galera vim trazer hoje o comando '' /rename '' Ele Server Para Muda Nickname de Player Sem isso até o Editor de Account! 
     
    Vá até data\data\talkactions\scripts Crie um arquivo Chamado changename.lua Cole Isso:
     
     
    Agora vá em talkactions.xml e Adicione Essa tag:  
     
     
     
    Ajudei? Rep+ 
     
     
    Creditos: Pikeno Walker Por Criar o Script ! 
     
    Eu Por trazer ao tibiaking.
     
    VERSÃO TESTADA: 1.0 [TFS]
  22. Gostei
    Arysoooon recebeu reputação de Bruno Carvalho em [Talkactions] Verificação de Uso De bot 100% [TFS] 1.0   
    Fala Galera! 
     
    Hoje vim trazer um Sistema Muito Bom,Creio que Seja o Único aqui no tibiaking. 
    Ele Funciona da seguinte maneira, você mandara uma verificação de bot Para o Player , 
    Uma Mensagem na tela dele ira alertar ele.. Essa: 
     
    Caso Ele Responde algo séra liberado! Esse comando é util Para aqueles poketibia que tem o erro de double click no mar. !! 
     
     
     
    Vá até data/talkactions/scripts crie um arquivo chamado CheckBot.lua e Adicione Isso dentro!: 
     
     
     
    Agora vá até talkactions.xml e adicione essa tag:
     
     
    Creditos: Equipe Pokemon x Evolution Por criar o script.
     
     
  23. Gostei
    Arysoooon recebeu reputação de Bruno Carvalho em [Creaturescripts] Avisar Quando um STAFF Entrar.   
    Fala Galera vim trazer o sistema que ja no titulo diz.. vamos lá!
     
    vá até data/creaturescripts/scripts Crie um arquivo chamado Admlg.lua e Adicione Isso>
     
     
     
    Agora vá até Creaturescripts.xml é add essa tag:
     
     
    Se te ajudei com esse post , der um Rep+ !! 
     
    Creditos: Equipe Pokemon x Evolution Por Criar o Script.
    Testado: em [TFS] Versão 1.0
  24. Gostei
    Arysoooon deu reputação a L3K0T em [Talkactions] Changename /rename   
    isso ja tem na cipsoft eh um script padrão... mais obg por compartilhar
  25. Gostei
    Arysoooon recebeu reputação de Shadow Lemes em NPC - Bank   
    Testado é Esta Funcionando Perfeitamente Ok'
     
     
    Vamos ao Que Interessa:
     
    Crie um arquivo chamado "bank.xml" na pasta "data / npc"... Cole o código abaixo dentro do arquivo:
     
     
    Salve e feche o arquivo.
     
    Agora vá na pasta Scripts e crie um arquivo chamado "bank.lua" e cole o código abaixo dentro do mesmo:
     
     
     
    Salve e Feche-o Arquivo!
     
    Prontinho
     
    Agora Adicione-o Pelo Seu Map Editor , e Seja Feliz!
     
     
    Obs: o Npc Bank Pode Vim com uma outifit nada Bonita com alguns bugs.
    Basta abrir Data/Npc:
     
    e Procure Isso Acima.
     
     
    Te Ajudei? Rep+
     
    Qualquer Duvida Comente.
     
     
    Creditos:
     
    Adriano SwaTT
     
     

Informação Importante

Confirmação de Termo