Isso pode ser que vc nao tenha adicionado a exceçao do executavel do servidor no firewall, colocar como rede publica.
Painel de Controle\Sistema e Segurança\Firewall do Windows\Aplicativos permitidos, Alterar configurações, Permitir outro aplivativo..., Procurar, depois de selecionar o exe, clica em tipos de rede e marque Pública. Dê Ok e Adicionar, e Ok
Boa noite, venho aqui postar esse script que achei em um tópico de 2011 que um membro abriu pedindo o script. Vamos lá!
Primeiro vá em creaturescripts/scripts/login.lua e adicione isso:
registerCreatureEvent(cid, "LevelMax")
Depois adicione essa tag em creaturescripts.xml:
<event type="advance" name="LevelMax" event="script" value="levelmax.lua"/>
Agora crie um arquilo .lua com o nome de levelmax e adicione este código dentro:
local LevelMax = 180
function onAdvance(cid, skill, oldLevel, newLevel)
if skill == 8 then
if newLevel >= LevelMax then
doPlayerAddExp(cid, getExperienceForLevel(LevelMax)-getPlayerExperience(cid))
return false
end
end
return true
end
Para trocar o level máximo basta editar em:
local LevelMax = 180
Espero que ajude!
Créditos a MatheusMkalo
Yo boyz!
Eu estava procurando um Addon System funcional e vi que todos tinham bugs, então eu peguei um código que achei em outro fórum, corrigi os bugs e fiz para que o sistema funcione com fly, ride, surf, look e que o addon suma quando o pokémon evoluir. Também é possível substituir um addon por outro, sem que o pokémon fique com o addon antigo.
São muitos arquivos envolvidos, então, se eu esquecer algo e o sistema não esteja 100%, por favor, me fale.
Deixei alguns exemplos no código para caso você esteja com preguiça e queira testar, além de comentar como adicionar novos addons.
OBS: Eu testei apenas em PDA PokexCyan (TFS 0.3.6).
actions/scripts
nome_arquivo.lua
local addons = {[14876] = {pokemon = "Shiny Charizard" , looktype = 1950},[12344] = {pokemon = "Pidgeot" , looktype = 205},[13990] = {pokemon = "Pidgeot" , looktype = 201},--[ID do item] = {nome do pokémon, looktype},}local function getOldAddon (looktype) for index, value in pairs (addons) do if value.looktype == looktype then return index end endendfunction onUse(cid, item, fromPosition, itemEx, toPosition) local numero = addons[item.itemid].looktype local pb = itemEx.uid local pk = addons[item.itemid].pokemon if not isPokeball(itemEx.itemid) then doPlayerSendCancel(cid, "Você só poder usar este item em uma poke ball.") return true end if getPlayerSlotItem (cid, 8).uid == pb and (getPlayerStorageValue(cid, 17000) >= 1 or getPlayerStorageValue(cid, 63215) >= 1) then doPlayerSendCancel (cid, "Desmonte do seu pokémon e volte-o para a poke ball.") return true end if getItemAttribute(pb, "addon") and getItemAttribute(pb, "addon") == numero then doPlayerSendCancel(cid, "Seu pokémon já está com este addon.") return true end if #getCreatureSummons(cid) > 0 then doPlayerSendCancel(cid, "Por favor, volte o seu pokémon para a poke ball.") return true end if getItemAttribute(pb, "poke") ~= pk then doPlayerSendCancel(cid, "Desculpe, você não pode adicionar este addon neste pokémon.") return true end if getItemAttribute (pb, "addon") and getItemAttribute (pb, "addon") > 1 then doPlayerSendTextMessage(cid, 27, "Você substituiu um "..getItemNameById (getOldAddon (getItemAttribute (pb, "addon"))).." por um "..getItemNameById (item.itemid).."!") else doPlayerSendTextMessage(cid, 27, "Agora seu pokémon usará este "..getItemNameById (item.itemid).."!") end doRemoveItem(item.uid, 1) doSetItemAttribute(pb, "addon", numero) return trueend
actions.xml:
<action itemid="13989;12344;13990;ID do item; ID do item;" event="script" value="nome_arquivo.lua"/>
em actions/order.lua, abaixo de:
if not isCreature(pk) then pk = doCreateMonster(pokemon, backupPos) if not isCreature(pk) then doPlayerSendCancel(cid, "You can't stop flying/riding here.") return true end doConvinceCreature(cid, pk) end
adicione:
local pb = getPlayerSlotItem(cid, 8).uid local flyAdd = flysAddon[getItemAttribute (pb, "addon")] local rideAdd = ridesAddon[getItemAttribute (pb, "addon")] if flyAdd then if getItemAttribute(pb, "addon") > 1 then doSetCreatureOutfit(pk, {lookType = getItemAttribute (pb, "addon")}, -1) end elseif rideAdd then if getItemAttribute(pb, "addon") > 1 then doSetCreatureOutfit(pk, {lookType = getItemAttribute (pb, "addon")}, -1) end end
em lib/configuration.lua, será necessário adicionar três tabelas, uma para fly, outra para ride e outra para surf. Nesta tabela, o nome do pokémon não é requirido, o que talvez faça você se perder. Se você achar necessário, comente com "--" o nome do pokémon.
Exemplo:
[205] = {540}, -- Pidgeot[850] = {210}, -- Dragonair
procure por: flys
e acima disso adicione:
flysAddon = {[205] = {540},[201] = {541},--[número do looktype do addon] = {looktype do addon voando}}
procure por: rides
e acima disso adicione:
ridesAddon = {[556] = {555},--[número do looktype do addon] = {looktype do addon montado}}
procure por: rides
e acima disso adicione:
surfsAddon = {[201] = {541},[552] = {553},--[número do looktype do addon] = {looktype do addon nadando}}
em lib/order.lua, procure por:
elseif skill == "fly" then
e abaixo adicione:
local pb = getPlayerSlotItem(cid, 8).uid if getItemAttribute(pb, "addon") < 1 then doSetCreatureOutfit(cid, {lookType = flys[getPokemonName(getCreatureSummons(cid)[1])][1] + 351}, -1) else doSetCreatureOutfit(cid, {lookType = flysAddon[getItemAttribute (pb, "addon")][1]}, -1) end
depois, no mesmo arquivo, procure por:
elseif skill == "ride" then
e abaixo adicione:
local pb = getPlayerSlotItem(cid, 8).uid if getItemAttribute(pb, "addon") < 1 then doSetCreatureOutfit(cid, {lookType = rides[getPokemonName(getCreatureSummons(cid)[1])][1] + 351}, -1) else doSetCreatureOutfit(cid, {lookType = ridesAddon[getItemAttribute (pb, "addon")][1]}, -1) end
em movements/surf.lua, procure por:
if getPlayerStorageValue(cid, 6598754) == 1 or getPlayerStorageValue(cid, 6598755) == 1 then doPlayerSendCancel(cid, "You can't do it while in the PVP Zone!") --alterado v1.7 doTeleportThing(cid, fromPosition, false)return trueend
e abaixo adicione:
local pb = getPlayerSlotItem(cid, 8).uid if getItemAttribute(pb, "addon") < 1 then doSetCreatureOutfit(cid, {lookType = surfs[getPokemonName(getCreatureSummons(cid)[1])].lookType}, -1)else doSetCreatureOutfit(cid, {lookType = surfsAddon[getItemAttribute(pb, "addon")][1]}, -1)end
logo abaixo disso, vocês vão encontrar:
(isso não envolve o funcionamento do sistema de addon, mas é um bug que eu achei no meu surf. Todos os pokémon tinham velocidade fixa de 1500.)
local speed = 75 + PlayerSpeed + getSpeed(getCreatureSummons(cid)[1]) * 8 * speedRate
substitua por:
local speed = 75 + PlayerSpeed + surfs[getPokemonName(getCreatureSummons(cid)[1])].speed * 8 * speedRate
no mesmo arquivo, procure por:
if getItemAttribute(item.uid, "nick") then doCreatureSay(cid, getItemAttribute(item.uid, "nick")..", I'm tired of surfing!", 1) else doCreatureSay(cid, getItemAttribute(item.uid, "poke")..", I'm tired of surfing!", 1) end doSummonMonster(cid, pokemon) local pk = getCreatureSummons(cid)[1]
e abaixo adicione:
local pb = getPlayerSlotItem(cid, 8).uid if surfsAddon[getItemAttribute(pb, "addon")] then if getItemAttribute(pb, "addon") > 1 then doSetCreatureOutfit(pk, {lookType = getItemAttribute(pb, "addon")}, -1) end end
em actions/goback.lua, procure por:
doSendMagicEffect(getCreaturePosition(pk), effect)
abaixo adicione:
local pk = getCreatureSummons(cid)[1] local pb = getPlayerSlotItem(cid, 8).uid local look = getItemAttribute(pb, "addon") if not look then doSetItemAttribute(pb, "addon", 0) end if look and look > 0 then doSetCreatureOutfit(pk, {lookType = look}, -1) end
em actions/evolution.lua, procure por:
local ball = getPlayerSlotItem(cid, 8).uid
há 12 linhas iguais a essa nesse arquivo e embaixo de TODAS elas, adicione:
doItemSetAttribute (ball, "addon", 0)
em creaturescripts/look.lua, procure por:
if getItemAttribute(thing.uid, "gender") == SEX_MALE then table.insert(str, "It is male.") elseif getItemAttribute(thing.uid, "gender") == SEX_FEMALE then table.insert(str, "It is female.") else table.insert(str, "It is genderless.") end
se novamente, esse código aparece duas vezes no arquivo.
E também, novamente, embaixo dos dois, adicione:
if getItemAttribute(thing.uid, "addon") then if flysAddon[getItemAttribute (thing.uid, "addon")] or ridesAddon[getItemAttribute (thing.uid, "addon")] or surfsAddon[getItemAttribute (thing.uid, "addon")] then if getItemAttribute(thing.uid, "addon") > 1 then table.insert(str, " Has the addon "..getItemNameById (getAddonId (getItemAttribute (thing.uid, "addon")))..".") end end end
E no começo desse arquivo, adicione:
local addons = {[14876] = {pokemon = "Shiny Charizard" , looktype = 1950},[12344] = {pokemon = "Pidgeot" , looktype = 205},[13990] = {pokemon = "Pidgeot" , looktype = 201},--[ID do item] = {nome do pokémon, looktype},}local function getAddonId (looktype) for index, value in pairs (addons) do if value.looktype == looktype then return index end endend
a tabela "addons" deve ser a mesma que a do actions/addon.lua. Então, quando você adicionar algo no addon.lua, deverá adicionar também no look.lua.
em login.lua, procure por:
doSetCreatureOutfit(cid, {lookType = flys[poke][1] + 351}, -1)
e substitua por:
if getItemAttribute(item.uid, "addon") < 1 then doSetCreatureOutfit(cid, {lookType = flys[poke][1] + 351}, -1) else doSetCreatureOutfit(cid, {lookType = flysAddon[getItemAttribute (item.uid, "addon")][1]}, -1) end
procure por:
doSetCreatureOutfit(cid, {lookType = surfs[poke].lookType + 351}, -1
substitua por:
if getItemAttribute(item.uid, "addon") < 1 then doSetCreatureOutfit(cid, {lookType = surfs[poke].looktype + 351}, -1) else doSetCreatureOutfit(cid, {lookType = surfsAddon[getItemAttribute (item.uid, "addon")][1]}, -1) end
procure por:
doSetCreatureOutfit(cid, {lookType = rides[poke][1] + 351}, -1)
substitua por:
if getItemAttribute(item.uid, "addon") < 1 then doSetCreatureOutfit(cid, {lookType = rides[poke][1] + 351}, -1) else doSetCreatureOutfit(cid, {lookType = ridesAddon[getItemAttribute (item.uid, "addon")][1]}, -1) end
Bom dia, postarei uma Lista de Servidores Derivados encontrados aqui na comunidade xT. Não colocarei todos, e sim, aqueles que serão úteis para algumas pessoas.
Então vamos lá!
Derivado Poketibia
Derivado Dragon Ball, Naruto, Biohazard
Peço à quem postar servidor novo, para que me mande uma MP ou comentar até mesmo aqui no tópico para que
eu possa fixar o tópico aqui. Obrigado!
Comecei a ler as páginas 9 da manhã, terminei todas agora, resumi pegando todos os erros e correções que o pessoal postou, então vou deixar num pastebin aqui, bom proveito pra quem quiser.
Eu só não entendo porque não criar um github e colocar o server lá e ir alterando bug por bug.
O que eu vejo aqui são 10 pessoas cada um com um server diferente alternando bugs entre si, consertar somente 1 server adiantaria muito serviço.
Ja que muitos não deu pra usar o cliente original, Estou postando tudo aqui completo pra vocês.
ja esta no ponto só abrir e rodar, cliente e servidor, qual quer duvida pode posta que responde como fiz, pra usar o cliente original sem erros e bugs...
pois muitos não quis ajudar e outros dizem que sabe mais nao ajuda ta ai a prova de que basta estudar um pouco você chega lá....
Client
Server
Scan: alguém posta pf...
Se ajudei + rep ;D
Créditos:WOP TEAM por vaza.
Garep por editar a source e deixa pronto pra rodar, se for posta em outro canto não esquece de por meus créditos.
Deixa eu ver se entendi, você quer criar novos shooteffects? Se sim é necessário fazer alterações na source.
Tutorial de Adicionar novos Efeitos
Caso você queira mudar apenas o shooteffect que o pokémon esta lançando de attack basico é:
<attribute key="shootEffect" value="você muda aqui"/>
Ficando assim:
<attribute key="shootEffect" value="explosion"/>
Nessa parte aqui meu amigo:
value="eartharrow"
Você só precisar saber quais são os shooteffects do seu servidor, geralmente fica na pasta lib no arquivo 000-constant.lua
Galera que tal começarmos a mexer no servidor original sem o patch? o primeiro download da lista, estou comparando as duas sources e vendo o que tem na source 2 para adicionar na 1.
@xYanz
@Josegvb
1 - coloque qualquer arquivo do client ali
2 - clique no encriptar
3 - para descriptar o arquivo
4 - código do seu arquivo criptado, dai é só pegar esse código e colocar no arquivo original que o client reconhece normalmente
Podem ver, no client encriptado, abra qualquer arquivo dele, copie o código, cole no 1, dps aperte no decriptar, muito simples
@xYanz
@Josegvb
1 - coloque qualquer arquivo do client ali
2 - clique no encriptar
3 - para descriptar o arquivo
4 - código do seu arquivo criptado, dai é só pegar esse código e colocar no arquivo original que o client reconhece normalmente
Podem ver, no client encriptado, abra qualquer arquivo dele, copie o código, cole no 1, dps aperte no decriptar, muito simples
onde eu mudo o "eff" para 0 para não sair nenhum e adiciono isso junto da linha do dano \/
onde 100 eh o tempo de espera para o efeito 'sair' do target, isso em milissegundos e o eff eh o efeito da skill, porem como a sua spell tem diferentes efeitos eh só vc chamar o "eff".
Correçao do Order no Ditto/Shiny fazendo que se destransforme:
action/scripts/basic/order:
Procure:
----------------- Ditto -----------------
Substitua todo o código do Ditto por este:
Correçao do Order no Ditto/Shiny fazendo que se destransforme:
action/scripts/basic/order:
Procure:
----------------- Ditto -----------------
Substitua todo o código do Ditto por este:
infelizmente quando fizeram esse remake bosta, nao fizeram o ride (ou se tem nao sei e tbm to cagando pra caso tiver...).
satisfeito? antigo client de um servidor meu
meu querido, pior coisa que existe na internet e na vida é fazer isso que vc fez
Eai, galerinha!
Vi o @Eskylo disponibilizando o Trade Center (mesmo com as sprites não voltadas ao DxP) e resolvi completar e dar o Training Room tbm !