Ir para conteúdo

Matheusxnoia

Campones
  • Total de itens

    6
  • Registro em

  • Última visita

Histórico de Reputação

  1. Thanks
    Matheusxnoia deu reputação a Yan Liima em [Sistema] Trade Points   
    #Introdução
    Reparei que muitas pessoas estão atrás desse sistema que o DBOBR & NTOBR usa, e atualmente o VitorSubhi postou um, porém é necessário modificar as sources. Apesar de achar o dele bem melhor, estarei deixando este meu sistema(não é necessário mexer nas sources).
     
    #Funcionamente
    O jogador vai até um NPC e compra um papel, após ter comprado ele pode estar dando trade nesse papel e negociando com algum jogador, em troca de qualquer item. Ao finalizar a negociação, os points são transferidos/removidos(caso houver points na conta). Também é possivel comprar o papel por comando, estarei disponibilizando ambos para vocês.
     
    #Alguns prints:
     
    Estarei deixando o script para vocês em inglês, modifique como quiser ;D
    Então vamos lá...
     
    #Instalação
    Em data/lib crie um arquivo chamado tradepoints.lua cole isto dentro:
     
    Em data/creaturescript/tradepoints.lua:
     
    TAG:
    <event type="tradeaccept" name="Trade_Points" event="script" value="tradepoints.lua"/> <event type="traderequest" name="Trade_Points_Request" event="script" value="tradepoints.lua"/> login.lua:
    registerCreatureEvent(cid, "Trade_Points") registerCreatureEvent(cid, "Trade_Points_Request") NPC XML:
    <?xml version="1.0" encoding="UTF-8"?> <npc name="Frodo" script="data/npc/scripts/trade_points.lua" walkinterval="2000" floorchange="0" access="5" level="1" maglevel="1"> <health now="150" max="150"/> <look type="275" head="114" body="113" legs="113" feet="113" corpse="2212"/> <parameters> <parameter key="module_shop" value="1" /> <parameter key="message_greet" value="Hello |PLAYERNAME|. I sell some utensils and Premium Points Transfer for you to transfer points to other players, remember to buy use '10' to 10 points." /> </parameters> </npc> Data/npc/scripts/trade_points.lua:
     
    Caso queira que a compra do papel seja feita por talkactions, aqui está:
     
    TAG:
    <talkaction words="!sellpoints;/sellpoints" event="script" value="trade_points.lua"/>  
    Prontinho xD
    Agradecimentos ao Junior(lordzetros) por ajudar na função scanContainer e ao @VitorSubhi
  2. Upvote
    Matheusxnoia deu reputação a Yan Liima em xTibia - Vagas Abertas 2019!   
    Vagas abertas para quem quer fazer parte da equipe do xTibia!
    Se você gosta da comunidade, tem conhecimento em OTServs e deseja fazer parte da equipe, essa é a hora. Preencha o formulário que se encontra abaixo:
    >> Formulário <<  
    Estaremos validando e se for necessario estaremos entrando em contato, boa sorte! xD
     
    Caso haja duvidas com o cargo de mod/coordenador, veja:
    Moderador xTibia
    Coordenador xTibia
  3. Upvote
    Matheusxnoia deu reputação a Yan Liima em [8.60] TFS 0.4 Rev3996 War & Cast   
    Salve salve pessoal, no inicio desse ano estava dando uma estudada e mexendo com a TFS 0.4 rev3884, e vi que havia alguns bugs e que não tinha Cast incluso. Com base nisso decidi atualizar e otimizar a source, já que ainda ela é uma das mais utilizadas no mundo de Otserv. Decidi compartilhar esse meu trabalho com vocês! Acredito que possa ser uma das melhores REV atualmente.
     
    Conto com o seu feedback, caso haja algum bug, algo que tenha que mudar/optimizar, não exite em avisar aqui no tópico. Toda ajuda será bem vinda xD
     
    The Forgotten Server, Tibia Versão: 8.60
    O que contém nela?
     
    Dentro da pasta contém o config.lua com todas as tag já adicionadas.
     
    Não esquecam de executar a Query do Cast na DB:
     
    Downloads uint8(Effects até 255)
    Distro: TheForgottenServer.exe
    Src + datapack: Source & Data
    Downloads uint8 sem o CAST incluso
    Distro: TheForgottenServer.exe
    Src + datapack: Source & Data
    -------------------------------------------------------
    Downloads uint16(Effects até 65534)
    Distro: TheForgottenServer.exe
    Src + datapack: Source & Data
    É necessário fazer a modificação do Hexadecimal no cliente.
    Aqui tem um já pronto: Cliente.exe(com mc) ou Cliente.exe(sem mc) (só será necessario se utilizar a src com o uint 16.)
    Lembrado também que precisa utilizar a lib 000-constant.lua deste datapack.
    -------------------------------------------------------
    Scans:
    Distro(uint8) & Distro(uint16)
    Source
    Cliente
     
    Obs: Os virus detectado é um falso positivo, então não se preocupem!
     
    A distro foi testada em Windows e em Linux Ubuntu 14.04, em ambos funcionaram muito bem!
     
    E para quem se interessa em saber onde se localiza os code do Cast, aqui está uma imagem. Você pode achar procurando por "//CAST"
     
    Façam um ótimo aproveito
     
  4. Upvote
    Matheusxnoia deu reputação a Yan Liima em [Resolvido] evento de league of legends   
    O evento no qual você procura é o DTT(Defend the Towers). É possivel achar ele em muitos OTS de tibia que estão para download. Mesmo assim estarei deixando ele completo aqui para você. Não é dificil de configurar.
    Event DTT lolzin.rar
  5. Thanks
    Matheusxnoia deu reputação a Yan Liima em [Resolvido] Effect após morrer.   
    Pra tu ajeitar a posição você poderia por isso:
    local pos = getPlayerPosition(cid) local position = {x = pos.x, y = pos.y - 1, z = pos.z} Só por o valor -1 ou +1 ... Dai o doSendMagicEffect tu poderia deixar assim:
    doSendMagicEffect(position, config[getPlayerVocation(cid)]) Ou você poderia ajusta isso na sprite mesmo, deixar ela de acordo com o personagem...
    E para funcionar o mesmo efeito em todos deixe o script assim:
     
  6. Upvote
    Matheusxnoia deu reputação a Yan Liima em todos os player ja nascem pk red !   
    Só ir no seu login.lua e por abaixo de function onLogin(cid) isso:
    if getCreatureSkullType(cid) == SKULL_NONE then doCreatureSetSkullType(cid, SKULL_RED) end return true end Da pra fazer por script separado também, mas não vejo necessidade em algo simples assim rs
    Caso queira que isso aconteça só uma vez, basta por storage:
    if getPlayerStorageValue(cid, 9876540) <= 0 then elseif getCreatureSkullType(cid) == SKULL_NONE then doCreatureSetSkullType(cid, SKULL_RED) setPlayerStorageValue(cid, 9876540,1) end return true end  
  7. Thanks
    Matheusxnoia deu reputação a Yan Liima em [Resolvido] player mata outro e ganha item ,dinheiro e xp.   
    local config = { items = {{2160,20},{2148,2}}, -- ID DO ITEM, QUANTIDADE level = 1, -- Quanto irá adicionar de level storage = 673420 -- Storage } function onDeath(cid, corpse, deathList) if not isPlayer(cid) then return true end local killer = deathList[1] if isPlayer(killer) and getPlayerStorageValue(killer, config.storage) <= 0 then doPlayerAddExperience(killer, (getPlayerExperience(cid) + config.level)) for i = 1, #config.items do doPlayerAddItem(killer, config.items[i][1], config.items[i][2]) setPlayerStorageValue(killer, config.storage, 1) end return true end return true end function onLogin(cid) registerCreatureEvent(cid, "LootPlayerDeath") return true end  
  8. Upvote
    Matheusxnoia deu reputação a Yan Liima em [Resolvido] player mata outro e ganha item ,dinheiro e xp.   
    @EmoooooApesar de eu ter entendido é sempre bom fornecer mais informações...
    Em creaturescript crie um arquivo.lua e cole isso:
    function onDeath(cid, corpse, deathList) if not isPlayer(cid) then return true end local killer = deathList[1] local items = {{2160,20},{2148,2}} -- ID DO ITEM, QUANTIDADE if isPlayer(killer) then doPlayerAddExperience(killer, (getPlayerExperience(cid) + 1)) -- Irá adicionar 1 de level. for i = 1, #items do doPlayerAddItem(killer, items[i][1], items[i][2]) end return true end return true end function onLogin(cid) registerCreatureEvent(cid, "LootPlayerDeath") return true end XML:
    <event type="login" name="LootPlayerLogin" event="script" value="arquivo.lua"/> <event type="death" name="LootPlayerDeath" event="script" value="arquivo.lua"/>  
  9. Thanks
    Matheusxnoia deu reputação a Yan Liima em [Resolvido] Efeito Staff (PARA TFS 0.4)   
    @diarmaint Creaturescript.
     
    local configEffect = { [6] = {message = '[GOD]', color = 25, time = 2}, --[Group ID] {MENSAGEM, tempo em segundos} [5] = {message = '[CM]', color = 25, time = 2}, [4] = {message = '[GM]', color = 25, color = 25,time = 2}, [3] = {message = '[Senior Tutor]', color = 25, time = 2}, [2] = {message = '[Tutor]', color = 25, time = 2} } function onLogin(cid) registerCreatureEvent(cid, "animatedTextStaff") if configEffect[getPlayerGroupId(cid)] then effectGroup(cid) end return true end function effectGroup(cid) if isPlayer(cid) and not isPlayerGhost(cid) then local config = configEffect[getPlayerGroupId(cid)] doSendAnimatedText(getThingPos(cid), config.message, config.color) addEvent(effectGroup, config.time*1000,cid) end end <event type="login" name="animatedTextStaff" event="script" value="animatedTextStaff.lua"/>  
  10. Upvote
    Matheusxnoia deu reputação a Yan Liima em [Resolvido] [Pedido] 3 Npcs [Acredito Médio]   
    Fiz como pediu, teste ai:
    local DESTINO = {x=1024, y=1026, z=7} -- POS local DESTINO2 = {x=1358, y=669, z=6} -- POS local DESTINO3 = {x=592, y=829, z=7} -- POS local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg:lower()) end function onThink() npcHandler:onThink() end local talkState = {} function creatureSayCallback(cid, type, msg) if(not npcHandler:isFocused(cid)) then return false end local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid if getCreatureCondition(cid, CONDITION_INFIGHT) == false then if msgcontains(msg, "viajar") then selfSay("Posso te levar para: {Hakai City}, {Desert City}, {Ice City}.", cid) talkState[talkUser] = 1 end if talkState[talkUser] == 1 then if msgcontains(msg, "hakai city") then if isPremium(cid) == false then -- Altere o "false" para "true" caso precise de premium. selfSay("OK!", cid) doSendMagicEffect(getThingPos(cid), 10) npcHandler:releaseFocus(cid) doTeleportThing(cid, DESTINO) doSendMagicEffect(DESTINO, 10) talkState[talkUser] = 0 else selfSay("Você não é premium account!", cid) end end if msgcontains(msg, "desert city") then if isPremium(cid) == false then -- Altere o "false" para "true" caso precise de premium. selfSay("OK!", cid) doSendMagicEffect(getThingPos(cid), 10) npcHandler:releaseFocus(cid) doTeleportThing(cid, DESTINO2) doSendMagicEffect(DESTINO2, 10) talkState[talkUser] = 0 else selfSay("Você não é premium account!", cid) end end if msgcontains(msg, "ice city") then if isPremium(cid) == false then -- Altere o "false" para "true" caso precise de premium. selfSay("OK!", cid) doSendMagicEffect(getThingPos(cid), 10) npcHandler:releaseFocus(cid) doTeleportThing(cid, DESTINO3) doSendMagicEffect(DESTINO3, 10) talkState[talkUser] = 0 else selfSay("Você não é premium account!", cid) end end end else selfSay("Desculpe, mas você está em batalha.", cid) end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new())  
  11. Upvote
    Matheusxnoia deu reputação a Yan Liima em [Resolvido] Script Inicial   
    35% é uma porcentagem bem alta e não sabe qual o tipo de script? rsrs. Vamos lá... O que você quer é uma script de actions, acabei de fazer de duas formas aqui. Teste os dois e se funcionar me diz xD
     
    TAG:
    <action uniqueid="32145" event="script" value="arquivo.lua"/> LUA:
    function onUse(cid, item, fromPosition) local config = { str = 5555, msgWelcome = "Bem-Vindo", msgCancel = "Voce ainda nao pegou o seu pokemon inicial!" } local PosDoor = {x=getThingPosition(item.uid).x, y=getThingPosition(item.uid).y, z=getThingPosition(item.uid).z} local PosDoJogador = {x=getCreaturePosition(cid).x, y=getCreaturePosition(cid).y, z=getCreaturePosition(cid).z} if PosDoJogador.x > PosDoor.x and getPlayerStorageValue(cid, config.str) >= 1 then doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, config.msgWelcome) doTeleportThing(cid, {x= PosDoor.x-1, y= PosDoor.y, z= PosDoor.z}) elseif PosDoJogador.x < PosDoor.x and getPlayerStorageValue(cid, config.str) >= 1 then doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, config.msgWelcome) doTeleportThing(cid, {x= PosDoor.x+1, y= PosDoor.y, z= PosDoor.z}) elseif PosDoJogador.y > PosDoor.y and getPlayerStorageValue(cid, config.str) >= 1 then doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, config.msgWelcome) doTeleportThing(cid, {x= PosDoor.x, y= PosDoor.y-1, z= PosDoor.z}) elseif PosDoJogador.y < PosDoor.y and getPlayerStorageValue(cid, config.str) >= 1 then doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, config.msgWelcome) doTeleportThing(cid, {x= PosDoor.x, y= PosDoor.y+1, z= PosDoor.z}) elseif getPlayerStorageValue(cid, config.str) < 1 then doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING, config.msgCancel) doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF) end return true end LUA simples:
    function onUse(cid, item, fromPosition) local config = { str = 5555, msgWelcome = "Bem-Vindo", msgCancel = "Voce ainda nao pegou o seu pokemon inicial!" } if getPlayerStorageValue(cid, config.str) >= 1 then doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, config.msgWelcome) doTeleportThing(cid, fromPosition, true) doTransformItem(item.uid, item.itemid+1) else doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING, config.msgCancel) doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF) end return true end Seguinte, no seu mapa editor você vai por o uniqueID da porta 32145. Localize a script no qual você utiliza dos pokemons iniciais(provavelmente vai estar em movements ou em actions) pega a storage que é adicionado no jogador, e remove o "5555" e substitui pela qual os jogadores recebem ao pegar um pokémon.
  12. Thanks
    Matheusxnoia deu reputação a Yan Liima em Ajuda Urgente (Alguem sabe?)   
    Além de scripts, mexo com sites também. Isso dai é bestera, só ajeitar direitinho que roda sem xD. E na pasta config do site já da pra por um .htaccess para proibir o acesso de terceiros. No caso dele, não estava no config...
    .htaccess.rar
  13. Thanks
    Matheusxnoia deu reputação a Yan Liima em Ajuda Urgente (Alguem sabe?)   
    Isso dai é possivel fazer em todos sites, não facilita na invasão não! Na verdade irá depender... o config.lua seria basicamente um formato em .txt, se tu localizar ele e por o diretório dele no link você irá conseguir ler numa boa, a não ser que tenha um .htaccess, mas isso impediria de outras host acessar o site todo... O config.lua jamais deve estar na pasta do site, ele apenas tem que permanecer na pasta do servidor, caso você queira pegar alguma informação dele usando o PHP basta fazer uma conexão com o arquivo na pasta do server, que seria mais seguro do que por ele no proprio site. 
    parse_ini_file('C:\Users\USUARIO\Desktop\SERVIDOR/config.lua'); Em alguns casos podemos utilizar index.html como uma forma de ajudar a proteger. Mas de certa forma, o problema dele só seria o arquivo config.lua no inicio do htdocs. Não tem necessidade nenhuma estar ali, Só deletar e pronto!
  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...