Ir para conteúdo

Leandro6434

Membro
  • Registro em

  • Última visita

Histórico de Curtidas

  1. Gostei
    Leandro6434 deu reputação a Caronte em pbOT [8.6] Full   
    Muito bom , 
     
    Tem a invasion do pbot ? 
    eu lembro que eu ficava 2 h atacando o bicho na frente do templo, e todo mundo lá atacando junto...
     
     
     
    O pbot acabou, era do pbgo.
     
    Era muito foda...
  2. Gostei
    Leandro6434 deu reputação a BielZet em pbOT [8.6] Full   
    • Mapa pbOT (pbGO) 8.0 Editado
    • Supreme Vocation;

    • Quests:
    - Anihi;
    - Supreme Vocation
    - Crystal Arrow
    - 7 Mares
    - Golden Set
    - Trad or Die
    - Quest 500k eu modifiquei e deixei 1kk
    - Ridorana
    - Death Castle Entrance
    - Deep Mines of Hell, entrance.
    - One 4all Entrance.
    - "Entre outras todas as quests estão funcionando. algumas apenas sofre-o umas mudança mais ganhara os mesmos items.!
    -------
    Arrumei as vocações
    - Hell Wizard
    - High Saintess
    - Force Archer
    - Titan Blader

    Adicionei Sistema de potion Por alavanca.


    Adicionei os Comandos !evento voce vai para o evento onde o GOD for fazer evento.
    Adicionei o Comando !Quest voce vai na quest que o GOD estiver fazendo evento
    adicionei o Sistema /invasao . Nasce bixos na cidade. exemplo ( /invasao 1 e em atemissias etc.!)

    Dp de artemissias.



    Cidade De Egeu (DP)


    Cidade de Styge (DP)


    Cidade de Horpus - Templo DP


    Cidade de Nissea. Templo!


    Famosa TP To Hell



    Final da quest TP TO HELL


    Tp To hell 2!


    A NOVA TP TO HELL FICA NO MESMO LUGAR DA ANTIGA SEGUE A IMAGEM A BAIXO!



    Final Da quest Asgard


    Server So esta Rodando com Site!.
    se for abrir com o site. ele nao da erro. caso nao abra com o site ele da muitos erros no distro!.
    Server ja vem com.
    Lunar staff - Donate/ Lunar Staff Free.
    G bow VIP/ G bow Free.
    Entre muitos items mais apenas se voce abrir com Site.

    Download - http://www.4shared.com/rar/w702u-dxba/otserver.html?

    Scan -> https://www.virustotal.com/pt/file/19f56087ec3f91d4dfdefcd9a41b1d6766b620b9062616c0a5d849b0fbb0ffaf/analysis/1417999032/

    Download - dos DLLS - que possa faltar em algums Computadores
    DLLS - http://www.4shared.com/rar/_zLpYh7Tce/Dlls_-_pbOT.html?

    Pessoal Recomando tfs 0.4 rev 3777 vs 1.0.6 Senão vai dar BUG!



    Pessoal o Scan Detecto 5 Virus. os virus são do DLL'S. não prejudica o PC!


    Créditos Abaixo




    Gosto do Server ? Gostou do Mapa ? da um REP+

    se alguem Abrir o Server Posta o IP! OU manda no PM . para mim poder ta entrando.!
    ------------------------------------------------------------------------------------------------------------------------

    Logo Menos. eu irei Postar o pbOT com account manager. Eu ja estou Editando ele.!
  3. Gostei
    Leandro6434 deu reputação a LucasS em Porta 7171 7172 ubuntu   
    Estado: ativo

    Para                       Ação        De
    ----                       ----        --
    7171/tcp                   ALLOW       Anywhere
    7172/tcp                   ALLOW       Anywhere
    8090/tcp                   ALLOW       Anywhere
    7171/tcp (v6)              ALLOW       Anywhere (v6)
    7172/tcp (v6)              ALLOW       Anywhere (v6)
    8090/tcp (v6)              ALLOW       Anywhere (v6)
     
    liguei o server, esperei 30 min +- tentei logar e nada, o site entra normalmente estranho e a porta 8090 funcionar e  7171 e 7172 não.
    essas são as imagens do teste que eu fiz em um site para saber se a porta esta aberta ou não :
     
    http://imgur.com/4H3WCjn
     
    http://imgur.com/9Emcjz7
     
    http://imgur.com/FOW5MKP

    venho aqui agradecer a todos pela ajuda, resolvi o problema.
     
    Global IP address(es): xxx.xxx.xxx.xxx
    Local IP address(es): 127.0.1.1 << subistitui pelo ip que o router fonece ex : 192.168.0.xxx
     
    sudo nano /etc/hosts
     
    antes:
    127.0.0.1       localhost
    127.0.1.1       PC-NOME
     
    Depois:
    127.0.0.1       localhost
    192.168.0.xxx       PC-NOME
     
    para salvar o arquivo :
     
    ctrl+x
    s
    enter
     
    quando estiver com tempo postarei algumas dificuldades que tive como usuário do ubuntu na criação de otserv.
  4. Gostei
    Leandro6434 deu reputação a luanluciano93 em Client MC (Todas versões e Client Próprio)   
    Olá pessoal, esse tutorial é funcional para todas as versões, tanto pra jogadores, como para donos de servers que queiram disponibilizar um client do tibia ou próprio como MC ... 
     
    • Primeiramente baixe o Hex Editor [xvi32] (está anexado a este tópico).
    • Após isso abra o Hex Editor, aperte CTRL+O, depois selecione o executável do seu servidor ...
    • Depois que abrir aperte CTRL+G e selecione a opção HEXADECIMAL, e na opção hexacimal coloque o código referente a versão do seu tibia (vou colocar a lista abaixo).
    • Agora substitua o valor de 75 por EB.
    • Aperte CTRL+S (para salvar), feche o programa e prontinho, já tem sua MC

    LISTA DE NÚMEROS HEXADECIMAIS POR VERSÃO:
    Créditos: MartyX
    É isso pessoal, espero que ajude.
    xvi32.rar
  5. Gostei
    Leandro6434 deu reputação a KotZletY em Cliente Próprio 8.60   
    @Leandro6434 pegue um client qualquer, você pode encontrar sua versão aqui "http://www.tibia-clients.com/",
    e olhe na área de tutoriais de client, lá tem tutoriais de como trocar o ip, como deixar mc, como mudar a rsa e etc..
  6. Gostei
    Leandro6434 deu reputação a Augusto em Passando Servidor para Linux   
    Muito provável que não, mas vou avisando, que o Linux é bem diferente do Windows, então, antes de sair mexendo nele, procure conhecer a distribuição que você vai usar, pois com certeza se você for passar, vão surgir "dificuldades" que são resolvidas com coisas básicas de administração de ambientes linux...

    Recomendo você a pesquisar qual distribuição irá usar, baixe e instale em uma máquina virtual, e vá aprendendo coisas básicas, como o sistema de permissões, criar pastas, remover, e por ai vai, para sim depois você na sua máquina virtual, tentar fazer essa mudança, e se ocorrer tudo bem, ai sim por a mão na massa para fazer em faze de produção!
  7. Gostei
    Leandro6434 deu reputação a krafa em Gesior Seguro ?   
    é a pasta webdav.
     
    Ao meu ver, o maior problema é o Gesior em si. Tem tantas versões e as pessoas o conhecem tão bem que as vulnerabilidades são mais conhecidas do que de outros acc makers.
    Um conselho seria não utilizar o Gesior e migrar pra outro.
  8. Gostei
    Leandro6434 deu reputação a Wakon em Teleport por level   
    Vá em "Data/movements/scripts", copie e cole um arquivo.lua, renomeie para nomedoscript.lua, apague tudo e cole:
    local t = { pos = {x = 160, y = 54, z = 7}, level = 300 } function onStepIn(cid, item, position, fromPosition) if getPlayerLevel(cid) < t.level then doPlayerSendCancel(cid, 'Apenas jogadores level '.. t.level ..' podem passar aqui.') doTeleportThing(cid, fromPosition) else doTeleportThing(cid, t.pos) end return true end Depois volte na pasta "Data/movements", abra o arquivo movements.xml e adicione a TAG:
    <movevent type="StepIn" actionid="XXXX" event="script" value="nomedoscript.lua"/> Em pos você coloca a posição que será teleportado caso seja level 300 ou mais e na tag em actionid="XXXX" você coloca a actionID desejada, depois é só colocar ela no teleport.
    Lembrando que você deve deixar o teleporte sem nenhuma posição lá no map editor, pois o script já faz a parte de teleportar.
  9. Gostei
    Leandro6434 deu reputação a xWhiteWolf em Novo Sistema de Trainer [0.36~0.4]   
    poderia me enviar um print dessa mensagem? ela aparece no rme ou no console do servidor?
  10. Gostei
    Leandro6434 deu reputação a Sekk em Compilando TFS 0.4 no MSVC(Com vídeo-aula)   
    LET'S GO!!!
     
    Video-aula ensinando:
     
     
     
     
    Baixe os arquivos no final do tópico.
     
    1º - Extraia o arquivo 3777-master.zip
     
    2º - Extraia o arquivo libvc10.rar para uma pasta e mova ela para o disco local C:/
     
    3º - Abra o MSVC2010, CTRL + O e selecione o arquivo /3777-master/src/vc10/theforgottenserver.vcxproj
     
    4º - Botão direito em 'theforgottenserver" > Properties e siga as imagens:
     
     
     
     
     
     
    Clique em Aplicar e Ok.
     
    Compilando:
    Vá no menu "Build" e selecione "Build Solution", ou apenas aperte a tecla F7.
     
    Espere até que o processo termine(pode demorar alguns minutos ~5minutos)
     
    O executável ficará dentro de 3777-master/src/vc10/x64/Release/theforgottenserver.exe
     
    Downloads e scan:
    MSVC + DEVCPP + MSVC SP1 + MSVC KEYGEN > https://mega.nz/#F!IxBFwAYC!JAtG8IKNwkw_xKl2lPjIYg
    Source - https://github.com/s3kk/tfs04
     
    Créditos:
    @Fir3element
    @Sekk(Eu)
  11. Gostei
    Leandro6434 deu reputação a leo4784 em Fist Fighting/Attackspeed   
    TNC CARA EXPLICA TUDO NAO EXPLICA AONDE TA OS BAGUIO.
     
     
  12. Gostei
    Leandro6434 deu reputação a KekezitoLHP em Fist Fighting/Attackspeed   
    Nome: Fist Fighting/Attackspeed
    Tipo: C++
    Autor: Oneshot
     
    Já vi alguns pedidos no fórum sobre a skill Fist Fighting, onde quanto mais você treinasse ela, mais rápido você atacaria no jogo, e parece que isto é um feature do Tibia. Como é uma modificação muito fácil nas sources, resolvi passar aí para a galera.
    Por padrão, o intervalo entre ataques do Tibia é 2000ms, ou seja, um ataque físico a cada dois segundos. Eu fiz uma pequena modificação nas sources onde o Fist Fighting seria inversamente proporcional ao tal intervalo, ou seja, quanto maior o valor da skill, menor seria o intervalo.

    Fiz de um modo que um jogador com Fist Fighting de nível 200, então, teria uma redução de 75% no intervalo de ataque, ou seja, um ataque a cada meio segundo ou dois ataques por segundo

    Leve em consideração que ele pega como base o attackspeed da vocação ou da arma usada, ou seja, se seu servidor já tem o tal chamado "fast attack", de nada adianta adicionar esse código C++.
     
     
    Abra seu player.cpp, procure por isso:
    Player::getAttackSpeed() Substitua toda a função, dependendo da versão de seu servidor:
     
    0.3.6
    uint32_t Player::getAttackSpeed() {     Item* weapon = getWeapon();     if(weapon && weapon->getAttackSpeed() != 0)         return std::ceil(weapon->getAttackSpeed() * (1 - (getSkill(SKILL_FIST, SKILL_LEVEL) * 0.00375)));     return std::ceil(vocation->getAttackSpeed() * (1 - (getSkill(SKILL_FIST, SKILL_LEVEL) * 0.00375))); } 0.4
    uint32_t Player::getAttackSpeed() const {     return std::ceil(((weapon && weapon->getAttackSpeed() != 0) ? weapon->getAttackSpeed() * (1 - (getSkill(SKILL_FIST, SKILL_LEVEL) * 0.00375)) : (vocation->getAttackSpeed() / std::max((size_t)1, getWeapons().size()) * (1 - (getSkill(SKILL_FIST, SKILL_LEVEL) * 0.00375))))); } Isso adiciona uma utilidade para a skill Fist Fighting que em muitos dos servidores é algo deixado de lado e inútil.
  13. Gostei
    Leandro6434 deu reputação a Danihcv em [PEDIDO] Contagem de Frags no Look   
    Crie um script chamado fraglook.lua na pasta data\creaturescripts\script:
    function getPlayerFrags(cid) local time = os.time() local times = {today = (time - 86400), week = (time - (7 * 86400))} local contents, result = {day = {}, week = {}, month = {}}, db.getResult("SELECT `pd`.`date`, `pd`.`level`, `p`.`name` FROM `player_killers` pk LEFT JOIN `killers` k ON `pk`.`kill_id` = `k`.`id` LEFT JOIN `player_deaths` pd ON `k`.`death_id` = `pd`.`id` LEFT JOIN `players` p ON `pd`.`player_id` = `p`.`id` WHERE `pk`.`player_id` = " .. getPlayerGUID(cid) .. " AND `k`.`unjustified` = 1 AND `pd`.`date` >= " .. (time - (30 * 86400)) .. " ORDER BY `pd`.`date` DESC") if(result:getID() ~= -1) then repeat local content = {date = result:getDataInt("date")} if(content.date > times.today) then table.insert(contents.day, content) elseif(content.date > times.week) then table.insert(contents.week, content) else table.insert(contents.month, content) end until not result:next() result:free() end local size = { day = table.maxn(contents.day), week = table.maxn(contents.week), month = table.maxn(contents.month) } return size.day + size.week + size.month end function onLogin(cid) registerCreatureEvent(cid, "fraglook") return true end function onLook(cid, thing, position, lookDistance) if isPlayer(thing.uid) and thing.uid ~= cid then doPlayerSetSpecialDescription(thing.uid,'[Frags: '..getPlayerFrags(thing.uid)..']') return true elseif thing.uid == cid then doPlayerSetSpecialDescription(cid,'[Frags: '..getPlayerFrags(cid)..']') local string = 'You see yourself.' if getPlayerFlagValue(cid, PLAYERFLAG_SHOWGROUPINSTEADOFVOCATION) then string = string..' You are '.. getPlayerGroupName(cid) ..'.' elseif getPlayerVocation(cid) ~= 0 then string = string..' You are '.. getPlayerVocationName(cid) ..'.' else string = string..' You have no vocation.' end string = string..getPlayerSpecialDescription(cid)..'' if getPlayerNameByGUID(getPlayerPartner(cid), false, false) ~= nil then string = string..' You are '.. (getPlayerSex(cid) == 0 and 'wife' or 'husband') ..' of '.. getPlayerNameByGUID(getPlayerPartner(cid)) ..'.' end if getPlayerGuildId(cid) > 0 then string = string..' You are ' .. (getPlayerGuildRank(cid) == '' and 'a member' or getPlayerGuildRank(cid)) ..' of the '.. getPlayerGuildName(cid) string = getPlayerGuildNick(cid) ~= '' and string..' ('.. getPlayerGuildNick(cid) ..').' or string..'.' end if getPlayerFlagValue(cid, PLAYERCUSTOMFLAG_CANSEECREATUREDETAILS) then string = string..'nHealth: ['.. getCreatureHealth(cid) ..' / '.. getCreatureMaxHealth(cid) ..'], Mana: ['.. getCreatureMana(cid) ..' / '.. getCreatureMaxMana(cid) ..'].' string = string..'nIP: '.. doConvertIntegerToIp(getPlayerIp(cid)) ..'.' end if getPlayerFlagValue(cid, PLAYERCUSTOMFLAG_CANSEEPOSITION) then string = string..'nPosition: [X:'.. position.x..'] [Y:'.. position.y..'] [Z:'.. position.z..'].' end doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, string) return false end return true end E no arquivo creaturescripts.xml adicione:
    <event type="login" name="fraglook_register" event="script" value="fraglook.lua"/> <event type="look" name="fraglook" event="script" value="fraglook.lua"/> Espero ter ajudado!
    Abraços
  14. Gostei
    Leandro6434 deu reputação a 157kolosso em (Resolvido)War System (Do Matheus) - Erro Distro 0.4   
    Lyon
    o cara que mau conheço mas já considero pakas 

    Rep+
  15. Gostei
    Leandro6434 deu reputação a bianchine1 em (Resolvido)War System (Do Matheus) - Erro Distro 0.4   
    Sim, Resolvido!
     
     
    Obrigado!
  16. Gostei
    Leandro6434 deu reputação a Lyon em (Resolvido)War System (Do Matheus) - Erro Distro 0.4   
    Apenas passei a minha talk,não sei oque tem de errado ,tbm,kkk
     
    Fico feliz que tenha lhe ajudado,marque o tópico como resolvido,abraços e sucesso!
  17. Gostei
    Leandro6434 deu reputação a Lyon em (Resolvido)War System (Do Matheus) - Erro Distro 0.4   
    Tente trocar por este:
    function onSay(cid, words, param, channel) local guild = getPlayerGuildId(cid) if(not guild or getPlayerGuildLevel(cid) < GUILDLEVEL_LEADER) then doPlayerSendChannelMessage(cid, "", "You cannot execute this talkaction.", TALKTYPE_CHANNEL_W, 0) return true end local t = string.explode(param, ",") if(not t[2]) then doPlayerSendChannelMessage(cid, "", "Not enough param(s).", TALKTYPE_CHANNEL_W, 0) return true end local enemy = getGuildId(t[2]) if(not enemy) then doPlayerSendChannelMessage(cid, "", "Guild \"" .. t[2] .. "\" does not exists.", TALKTYPE_CHANNEL_W, 0) return true end if(enemy == guild) then doPlayerSendChannelMessage(cid, "", "You cannot perform war action on your own guild.", TALKTYPE_CHANNEL_W, 0) return true end local enemyName, tmp = "", db.getResult("SELECT `name` FROM `guilds` WHERE `id` = " .. enemy) if(tmp:getID() ~= -1) then enemyName = tmp:getDataString("name") tmp:free() end if(isInArray({"accept", "reject", "cancel"}, t[1])) then local query = "`guild_id` = " .. enemy .. " AND `enemy_id` = " .. guild if(t[1] == "cancel") then query = "`guild_id` = " .. guild .. " AND `enemy_id` = " .. enemy end tmp = db.getResult("SELECT `id`, `begin`, `end`, `payment` FROM `guild_wars` WHERE " .. query .. " AND `status` = 0") if(tmp:getID() == -1) then doPlayerSendChannelMessage(cid, "", "Currently there's no pending invitation for a war with " .. enemyName .. ".", TALKTYPE_CHANNEL_W, 0) return true end if(t[1] == "accept") then local _tmp = db.getResult("SELECT `balance` FROM `guilds` WHERE `id` = " .. guild) local state = _tmp:getID() < 0 or _tmp:getDataInt("balance") < tmp:getDataInt("payment") _tmp:free() if(state) then doPlayerSendChannelMessage(cid, "", "Your guild balance is too low to accept this invitation.", TALKTYPE_CHANNEL_W, 0) return true end db.query("UPDATE `guilds` SET `balance` = `balance` - " .. tmp:getDataInt("payment") .. " WHERE `id` = " .. guild) end query = "UPDATE `guild_wars` SET " local msg = "accepted " .. enemyName .. " invitation to war." if(t[1] == "reject") then query = query .. "`end` = " .. os.time() .. ", `status` = 2" msg = "rejected " .. enemyName .. " invitation to war." elseif(t[1] == "cancel") then query = query .. "`end` = " .. os.time() .. ", `status` = 3" msg = "canceled invitation to a war with " .. enemyName .. "." else query = query .. "`begin` = " .. os.time() .. ", `end` = " .. (tmp:getDataInt("end") > 0 and (os.time() + ((tmp:getDataInt("begin") - tmp:getDataInt("end")) / 86400)) or 0) .. ", `status` = 1" end query = query .. " WHERE `id` = " .. tmp:getDataInt("id") if(t[1] == "accept") then doGuildAddEnemy(guild, enemy, tmp:getDataInt("id"), WAR_GUILD) doGuildAddEnemy(enemy, guild, tmp:getDataInt("id"), WAR_ENEMY) end tmp:free() db.query(query) doBroadcastMessage(getPlayerGuildName(cid) .. " has " .. msg, MESSAGE_EVENT_ADVANCE) return true end if(t[1] == "invite") then local str = "" tmp = db.getResult("SELECT `guild_id`, `status` FROM `guild_wars` WHERE `guild_id` IN (" .. guild .. "," .. enemy .. ") AND `enemy_id` IN (" .. enemy .. "," .. guild .. ") AND `status` IN (0, 1)") if(tmp:getID() ~= -1) then if(tmp:getDataInt("status") == 0) then if(tmp:getDataInt("guild_id") == guild) then str = "You have already invited " .. enemyName .. " to war." else str = enemyName .. " have already invited you to war." end else str = "You are already on a war with " .. enemyName .. "." end tmp:free() end if(str ~= "") then doPlayerSendChannelMessage(cid, "", str, TALKTYPE_CHANNEL_W, 0) return true end local frags = tonumber(t[3]) if(frags ~= nil) then frags = math.max(10, math.min(1000, frags)) else frags = 100 end local payment = tonumber(t[4]) if(payment ~= nil) then payment = math.max(100000, math.min(1000000000, payment)) tmp = db.getResult("SELECT `balance` FROM `guilds` WHERE `id` = " .. guild) local state = tmp:getID() < 0 or tmp:getDataInt("balance") < payment tmp:free() if(state) then doPlayerSendChannelMessage(cid, "", "Your guild balance is too low for such payment.", TALKTYPE_CHANNEL_W, 0) return true end db.query("UPDATE `guilds` SET `balance` = `balance` - " .. payment .. " WHERE `id` = " .. guild) else payment = 0 end local begining, ending = os.time(), tonumber(t[5]) if(ending ~= nil and ending ~= 0) then ending = begining + (ending * 86400) else ending = 0 end db.query("INSERT INTO `guild_wars` (`guild_id`, `enemy_id`, `begin`, `end`, `frags`, `payment`) VALUES (" .. guild .. ", " .. enemy .. ", " .. begining .. ", " .. ending .. ", " .. frags .. ", " .. payment .. ");") doBroadcastMessage(getPlayerGuildName(cid) .. " has invited " .. enemyName .. " to war till " .. frags .. " frags.", MESSAGE_EVENT_ADVANCE) return true end if(not isInArray({"end", "finish"}, t[1])) then return false end local status = (t[1] == "end" and 1 or 4) tmp = db.getResult("SELECT `id` FROM `guild_wars` WHERE `guild_id` = " .. guild .. " AND `enemy_id` = " .. enemy .. " AND `status` = " .. status) if(tmp:getID() ~= -1) then local query = "UPDATE `guild_wars` SET `end` = " .. os.time() .. ", `status` = 5 WHERE `id` = " .. tmp:getDataInt("id") tmp:free() doGuildRemoveEnemy(guild, enemy) doGuildRemoveEnemy(enemy, guild) db.query(query) doBroadcastMessage(getPlayerGuildName(cid) .. " has " .. (status == 4 and "mend fences" or "ended up a war") .. " with " .. enemyName .. ".", MESSAGE_EVENT_ADVANCE) return true end if(status == 4) then doPlayerSendChannelMessage(cid, "", "Currently there's no pending war truce from " .. enemyName .. ".", TALKTYPE_CHANNEL_W, 0) return true end tmp = db.getResult("SELECT `id`, `end` FROM `guild_wars` WHERE `guild_id` = " .. enemy .. " AND `enemy_id` = " .. guild .. " AND `status` = 1") if(tmp:getID() ~= -1) then if(tmp:getDataInt("end") > 0) then tmp:free() doPlayerSendChannelMessage(cid, "", "You cannot request ending for war with " .. enemyName .. ".", TALKTYPE_CHANNEL_W, 0) return true end local query = "UPDATE `guild_wars` SET `status` = 4, `end` = " .. os.time() .. " WHERE `id` = " .. tmp:getDataInt("id") tmp:free() db.query(query) doBroadcastMessage(getPlayerGuildName(cid) .. " has signed an armstice declaration on a war with " .. enemyName .. ".", MESSAGE_EVENT_ADVANCE) return true end doPlayerSendChannelMessage(cid, "", "Currently there's no active war with " .. enemyName .. ".", TALKTYPE_CHANNEL_W, 0) return true end
  18. Gostei
    Leandro6434 deu reputação a Slaake em [Tutorial] Criando novas Vocations (e o npc)   
    Eae galerinha do TK, como vocês estão ? Bom, eu resolvi criar um tutorial aki, bom, ja há um tutorial aki, mas achei mal organizado e talz, e vou explicar coisas a mais aki tmbm.



    Nesse tutorial, vou ensinar voces a como adicionar novas vocations, e, como recebe-las por um npc de promotion.



    Vamos la ?



    1º Vá em data/xml/vocations.xml e provavelmente estará assim:



    <?xml version="1.0" encoding="UTF-8"?> <vocations> <vocation id="0" name="None" description="none" needpremium="0" gaincap="5" gainhp="5" gainmana="5" gainhpticks="6" gainhpamount="10" gainmanaticks="6" gainmanaamount="10" manamultiplier="4.0" attackspeed="1000" soulmax="100" gainsoulticks="120" fromvoc="0" attackable="no"> <formula meleeDamage="1.0" distDamage="1.0" wandDamage="1.0" magDamage="1.0" magHealingDamage="2.0" defense="1.0" armor="1.0"/> <skill id="0" multiplier="1.5"/> <skill id="1" multiplier="2.0"/> <skill id="2" multiplier="2.0"/> <skill id="3" multiplier="2.0"/> <skill id="4" multiplier="2.0"/> <skill id="5" multiplier="1.5"/> <skill id="6" multiplier="1.1"/> </vocation> <vocation id="1" name="Sorcerer" description="a sorcerer" needpremium="0" gaincap="10" gainhp="5" gainmana="30" gainhpticks="4" gainhpamount="15" gainmanaticks="2.5" gainmanaamount="45" manamultiplier="1.1" attackspeed="2000" soulmax="100" gainsoulticks="120" fromvoc="1"> <formula meleeDamage="1.0" distDamage="1.0" wandDamage="1.0" magDamage="1.0" magHealingDamage="1.0" defense="1.0" armor="1.0"/> <skill id="0" multiplier="1.5"/> <skill id="1" multiplier="2.0"/> <skill id="2" multiplier="2.0"/> <skill id="3" multiplier="2.0"/> <skill id="4" multiplier="2.0"/> <skill id="5" multiplier="1.5"/> <skill id="6" multiplier="1.1"/> </vocation> <vocation id="2" name="Druid" description="a druid" needpremium="0" gaincap="10" gainhp="5" gainmana="30" gainhpticks="4" gainhpamount="15" gainmanaticks="2.5" gainmanaamount="45" manamultiplier="1.1" attackspeed="2000" soulmax="100" gainsoulticks="120" fromvoc="2"> <formula meleeDamage="1.0" distDamage="1.0" wandDamage="1.0" magDamage="1.0" magHealingDamage="1.0" defense="1.0" armor="1.0"/> <skill id="0" multiplier="1.5"/> <skill id="1" multiplier="1.8"/> <skill id="2" multiplier="1.8"/> <skill id="3" multiplier="1.8"/> <skill id="4" multiplier="1.8"/> <skill id="5" multiplier="1.5"/> <skill id="6" multiplier="1.1"/> </vocation> <vocation id="3" name="Paladin" description="a paladin" needpremium="0" gaincap="20" gainhp="10" gainmana="15" gainhpticks="2.5" gainhpamount="35" gainmanaticks="3" gainmanaamount="35" manamultiplier="1.4" attackspeed="2000" soulmax="100" gainsoulticks="120" fromvoc="3"> <formula meleeDamage="1.0" distDamage="1.0" wandDamage="1.0" magDamage="1.0" magHealingDamage="1.0" defense="1.0" armor="1.0"/> <skill id="0" multiplier="1.2"/> <skill id="1" multiplier="1.2"/> <skill id="2" multiplier="1.2"/> <skill id="3" multiplier="1.2"/> <skill id="4" multiplier="1.1"/> <skill id="5" multiplier="1.1"/> <skill id="6" multiplier="1.1"/> </vocation> <vocation id="4" name="Knight" description="a knight" needpremium="0" gaincap="25" gainhp="15" gainmana="5" gainhpticks="3" gainhpamount="50" gainmanaticks="3" gainmanaamount="25" manamultiplier="3.0" attackspeed="2000" soulmax="100" gainsoulticks="120" fromvoc="4"> <formula meleeDamage="1.1" distDamage="1.0" wandDamage="1.0" magDamage="1.0" magHealingDamage="1.0" defense="1.0" armor="1.0"/> <skill id="0" multiplier="1.1"/> <skill id="1" multiplier="1.1"/> <skill id="2" multiplier="1.1"/> <skill id="3" multiplier="1.1"/> <skill id="4" multiplier="1.4"/> <skill id="5" multiplier="1.1"/> <skill id="6" multiplier="1.1"/> </vocation> <vocation id="5" name="Master Sorcerer" description="a master sorcerer" needpremium="1" gaincap="10" gainhp="5" gainmana="30" gainhpticks="3" gainhpamount="30" gainmanaticks="2" gainmanaamount="60" manamultiplier="1.1" attackspeed="2000" soulmax="200" gainsoulticks="15" fromvoc="1" lessloss="30"> <formula meleeDamage="1.0" distDamage="1.0" wandDamage="1.0" magDamage="1.0" magHealingDamage="1.0" defense="1.0" armor="1.0"/> <skill id="0" multiplier="1.5"/> <skill id="1" multiplier="2.0"/> <skill id="2" multiplier="2.0"/> <skill id="3" multiplier="2.0"/> <skill id="4" multiplier="2.0"/> <skill id="5" multiplier="1.5"/> <skill id="6" multiplier="1.1"/> </vocation> <vocation id="6" name="Elder Druid" description="an elder druid" needpremium="1" gaincap="10" gainhp="5" gainmana="30" gainhpticks="3" gainhpamount="30" gainmanaticks="2" gainmanaamount="60" manamultiplier="1.1" attackspeed="2000" soulmax="200" gainsoulticks="15" fromvoc="2" lessloss="30"> <formula meleeDamage="1.0" distDamage="1.0" wandDamage="1.0" magDamage="1.0" magHealingDamage="1.0" defense="1.0" armor="1.0"/> <skill id="0" multiplier="1.5"/> <skill id="1" multiplier="1.8"/> <skill id="2" multiplier="1.8"/> <skill id="3" multiplier="1.8"/> <skill id="4" multiplier="1.8"/> <skill id="5" multiplier="1.5"/> <skill id="6" multiplier="1.1"/> </vocation> <vocation id="7" name="Royal Paladin" description="a royal paladin" needpremium="1" gaincap="20" gainhp="10" gainmana="15" gainhpticks="2.5" gainhpamount="40" gainmanaticks="2.5" gainmanaamount="50" manamultiplier="1.4" attackspeed="2000" soulmax="200" gainsoulticks="15" fromvoc="3" lessloss="30"> <formula meleeDamage="1.0" distDamage="1.0" wandDamage="1.0" magDamage="1.0" magHealingDamage="1.0" defense="1.0" armor="1.0"/> <skill id="0" multiplier="1.2"/> <skill id="1" multiplier="1.2"/> <skill id="2" multiplier="1.2"/> <skill id="3" multiplier="1.2"/> <skill id="4" multiplier="1.1"/> <skill id="5" multiplier="1.1"/> <skill id="6" multiplier="1.1"/> </vocation> <vocation id="8" name="Elite Knight" description="an elite knight" needpremium="1" gaincap="25" gainhp="15" gainmana="5" gainhpticks="2" gainhpamount="50" gainmanaticks="3" gainmanaamount="40" manamultiplier="3.0" attackspeed="2000" soulmax="200" gainsoulticks="15" fromvoc="4" lessloss="30"> <formula meleeDamage="1.1" distDamage="1.0" wandDamage="1.0" magDamage="1.0" magHealingDamage="1.0" defense="1.0" armor="1.0"/> <skill id="0" multiplier="1.1"/> <skill id="1" multiplier="1.1"/> <skill id="2" multiplier="1.1"/> <skill id="3" multiplier="1.1"/> <skill id="4" multiplier="1.4"/> <skill id="5" multiplier="1.1"/> <skill id="6" multiplier="1.1"/> </vocation> <vocation id="9" name="Epic Master Sorcerer" description="an master sorcerer" needpremium="0" gaincap="10" gainhp="5" gainmana="30" gainhpticks="4" gainhpamount="40" gainmanaticks="2" gainmanaamount="70" manamultiplier="1.1" attackspeed="1900" soulmax="299" gainsoulticks="15" fromvoc="5" lessloss="30"> <formula meleeDamage="1.0" distDamage="1.0" wandDamage="2.0" magDamage="1.2" magHealingDamage="1.0" defense="1.0" armor="1.0"/> <skill id="0" multiplier="1.5"/> <skill id="1" multiplier="2.0"/> <skill id="2" multiplier="2.0"/> <skill id="3" multiplier="2.0"/> <skill id="4" multiplier="2.0"/> <skill id="5" multiplier="1.5"/> <skill id="6" multiplier="1.1"/> </vocation> <vocation id="10" name="Epic Elder Druid" description="an elder druid" needpremium="0" gaincap="10" gainhp="5" gainmana="30" gainhpticks="4" gainhpamount="40" gainmanaticks="2" gainmanaamount="70" manamultiplier="1.1" attackspeed="1900" soulmax="299" gainsoulticks="15" fromvoc="6" lessloss="30"> <formula meleeDamage="1.0" distDamage="1.0" wandDamage="2.0" magDamage="1.2" magHealingDamage="1.0" defense="1.0" armor="1.0"/> <skill id="0" multiplier="1.5"/> <skill id="1" multiplier="1.8"/> <skill id="2" multiplier="1.8"/> <skill id="3" multiplier="1.8"/> <skill id="4" multiplier="1.8"/> <skill id="5" multiplier="1.5"/> <skill id="6" multiplier="1.1"/> </vocation> <vocation id="11" name="Epic Royal Paladin" description="an royal paladin" needpremium="0" gaincap="20" gainhp="10" gainmana="15" gainhpticks="3" gainhpamount="60" gainmanaticks="3" gainmanaamount="60" manamultiplier="1.4" attackspeed="1900" soulmax="299" gainsoulticks="15" fromvoc="7" lessloss="30"> <formula meleeDamage="1.1" distDamage="1.1" wandDamage="1.0" magDamage="1.1" magHealingDamage="1.0" defense="1.0" armor="1.0"/> <skill id="0" multiplier="1.2"/> <skill id="1" multiplier="1.2"/> <skill id="2" multiplier="1.2"/> <skill id="3" multiplier="1.2"/> <skill id="4" multiplier="1.1"/> <skill id="5" multiplier="1.1"/> <skill id="6" multiplier="1.1"/> </vocation> <vocation id="12" name="Epic Elite Knight" description="an elite knight" needpremium="0" gaincap="25" gainhp="15" gainmana="5" gainhpticks="8" gainhpamount="70" gainmanaticks="4" gainmanaamount="50" manamultiplier="3.0" attackspeed="1900" soulmax="299" gainsoulticks="15" fromvoc="8" lessloss="30"> <formula meleeDamage="1.2" distDamage="1.0" wandDamage="1.0" magDamage="1.1" magHealingDamage="1.0" defense="1.0" armor="1.0"/> <skill id="0" multiplier="1.1"/> <skill id="1" multiplier="1.1"/> <skill id="2" multiplier="1.1"/> <skill id="3" multiplier="1.1"/> <skill id="4" multiplier="1.4"/> <skill id="5" multiplier="1.1"/> <skill id="6" multiplier="1.1"/> </vocation> </vocations> <?xml version="1.0" encoding="UTF-8"?> <npc name="Second Promotion" script="data/npc/scripts/second.lua" walkinterval="2000" floorchange="0"> <mana now="800" max="800"/> <health now="200" max="200"/> <look type="133" head="114" body="119" legs="132" feet="114"/> </npc> 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) end function onThink() npcHandler:onThink() end local node1 = keywordHandler:addKeyword({'promot'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'I can promote you for 20000 gold coins. Do you want me to promote you?'}) node1:addChildKeyword({'yes'}, StdModule.promotePlayer, {npcHandler = npcHandler, cost = 20000, level = 20, promotion = 2, text = 'Congratulations! You are now promoted.'}) node1:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Alright then, come back when you are ready.', reset = true}) --[[ local node2 = keywordHandler:addKeyword({'epic'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'I can epicize you for 200000 gold coins. Do you want me to epicize you?'}) node2:addChildKeyword({'yes'}, StdModule.promotePlayer, {npcHandler = npcHandler, cost = 200000, level = 120, promotion = 2, text = 'Congratulations! You are now epicized.'}) node2:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Alright then, come back when you are ready.', reset = true}) ]]-- npcHandler:addModule(FocusModule:new()) cost = 20000, level = 20, promotion = 2, text = 'Congratulations! You are now promoted.'})



    cost= é o preço que a promotion irá custar.



    level= é o level necessário para adquirir a promotion.



    promotion= foi a promotion adicionada (2=9;10;11;12)



    text= é a mensagem que vai aparecer quando o Player receber a promotion.




    Bom, é isso galera, espero ter ajudado vocês
    , até a proxima



    Créditos:



    Slaake (por ter criado o tutorial)

    2º: Agora para voce adicionar, basta colocar esta linha (lembrando, caso voce queira por para npc, voce tem que sempre adicionar 4 (sorc,druid,pala e kina) se nao pode bugar o server. Adicione esta parte: Pronto! Sua vocation está criada, agora, vamos criar um NPC que venda essa promotion. 1º Vá em data/npc copie qualquer arquivo .xml renomeio para second promotion, abra-o, apague tudo que estiver la, e coloque isto: 2º Vá em data/npc/script , copie qualquer arquivo .lua renomeio para second, abra-o,apague tudo que estiver la, e coloque isto: Explicações de oque e onde mudou:
  19. Gostei
    Leandro6434 deu reputação a Natanael Beckman em GesiorACC 2019 8.60 UPDATE 29/06/2019   
    Atualização de 29/06/2019.
     
    Olá meus amigos, essa é a minha última contribuição free que faço na área de OTserver, fiz uma atualização bem completa do Gesior comparando com os que existem disponíveis, não vou falar muito pois grande parte já conhecem... Vou apenas posta algumas imagem das mudanças feitas.
    Sempre gostei de evoluir e de oferecer aos demais uma facilidade de obter um material grátis e de qualidade, nunca utilizei meu pouco conhecimento para prejudicar os demais, pelo o contrario sempre foi na intenção de ajudar e se em algum momento falhei, falhei inconscientemente.
     
    - Foi mudado algumas imagens de layout para renovar a estrutura.

     
    - Server Info + Most Power Ful Guilds na mesma estrura.

     
    - Create Account exigindo senhas com letras minusculas, maiúsculas e números, fortalecendo
    a segurança do seu cliente e dificultando futuras dores de cabeças.

     
    - Adicionado o mecanismo que identifica os valores de Premuim Points e Backup Points.
    - Algumas mudanças de layout.
    - Nome do player abaixo linkado.

     
    - Adicionado um Box de doação, com a intenção apenas de complementar
    o layout enriquecendo a pagina.

     
    - Fixado o bug edit town, e melhorado o layout.

     
    - Characters.php refeito, nesta imagem é uma visão de uma conta com access admin.

     
    - Visão normal.

     
    - Inventário completo.
    - Guilds com visão ampliada.

     
    - Detalhes...

     
    - Novo SHOP com as estrutura de layout melhorada e modernizada.
    - Sem BUGs lembre-se do CTRL + F5 para atualizar os cookies nesta pagina.

     
    - Detalhes...

     
    - Detalhes...

     
    - Detalhes...

     
    - Histórico do SHOP...

     
    DOWNLOAD SITE
    SHOP.LUA XAMPP 1.7.3 DATABASE LIMPA MYSQL DATABASE COMPLETA MYSQL   TUTORIAIS ÚTEIS E COMPATÍVEIS PARA O SITE: PAGSEGURO AUTOMATICO SHOPGUILD BACKUP_POINTS SISTEMA VIP_TIME   Créditos: Gesior.pl(WEBMaster) Felipe Monteiro(WEBMaster, WEBDesigner) Natanael Beckman(WEBNada) Nailan (WEBMaster) Ivens Pontes (WEBMaster) Marcio Porto (WEBMaster) Danyel Varejão (Programmer LUA, C++)
  20. Gostei
    Reporte qualquer bug encontrado.
     
    - Mudanças:
    * opcode adicionado
    * Monstros andando em cima de corpos
    * War system arrumado
    * Anti-divulgação melhorado
    * Cast system arrumado
    * Crash bugs arrumados
    * Adicionado exhaust ao comprar/vender items
    * Account manager com opção para cidades
    * /ghost stacking arrumado
    * !disband arrumado
    * Erros no linux arrumado
    * Aleta som arrumado
    * Bug nos rings arrumado
    * Adicionado suporte para Visual Studio
    * Remover battle ao entrar em PZ
    * Não pode jogar lixo em casas
    * Salt removido
     
    - Downloads:
    * Distro (x32): https://github.com/Fir3element/binaries/raw/master/x32-windows.zip
    * Distro (x64): https://github.com/Fir3element/binaries/raw/master/x64-windows.zip
    * Requisitos: Microsoft Visual C++ Redistributable Package
    * Source + datapack: https://github.com/Fir3element/3777/archive/refs/heads/main.zip
     
    - Scans:
    * Distro (x32): https://virustotal.com/pt/file/6683a91273b848a39ac21288da9d3abde341436744d6846e35a477c8e7c8f5f7/analysis/1480675335/
    * Distro (x64): https://virustotal.com/pt/file/21028857bb1124f19e0353e7f5775c8f66afc4f87f29df9cf4ab8ca1a046b816/analysis/1480675394/
    * Source + datapack: https://virustotal.com/pt/file/3761b48ee19f3f540d4c4a48c35c73c89a85615876307073494b1dcfed464d36/analysis/1480675473/

Informação Importante

Confirmação de Termo