Histórico de Curtidas
-
Leandro6434 deu reputação a Caronte em pbOT [8.6] FullMuito 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...
-
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.!
-
Leandro6434 deu reputação a LucasS em Porta 7171 7172 ubuntuEstado: 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.
-
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
-
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..
-
Leandro6434 deu reputação a Augusto em Passando Servidor para LinuxMuito 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!
-
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.
-
Leandro6434 deu reputação a Wakon em Teleport por levelVá 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.
-
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?
-
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)
-
Leandro6434 deu reputação a leo4784 em Fist Fighting/AttackspeedTNC CARA EXPLICA TUDO NAO EXPLICA AONDE TA OS BAGUIO.
-
Leandro6434 deu reputação a KekezitoLHP em Fist Fighting/AttackspeedNome: 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.
-
Leandro6434 deu reputação a Danihcv em [PEDIDO] Contagem de Frags no LookCrie 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
-
Leandro6434 deu reputação a 157kolosso em (Resolvido)War System (Do Matheus) - Erro Distro 0.4Lyon
o cara que mau conheço mas já considero pakas
Rep+
-
Leandro6434 deu reputação a bianchine1 em (Resolvido)War System (Do Matheus) - Erro Distro 0.4Sim, Resolvido!
Obrigado!
-
Leandro6434 deu reputação a Lyon em (Resolvido)War System (Do Matheus) - Erro Distro 0.4Apenas 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!
-
Leandro6434 deu reputação a Lyon em (Resolvido)War System (Do Matheus) - Erro Distro 0.4Tente 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 -
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: -
Leandro6434 deu reputação a Natanael Beckman em GesiorACC 2019 8.60 UPDATE 29/06/2019Atualizaçã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++)
-
Leandro6434 deu reputação a Fir3element em [8.60] The Forgotten Server 0.4 By Fir3Element (SQL and MYSQL)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/