Cara eu nam autorizei vc a postar o meu servidor aqui pra Download, e tem otra voce nao fez nada no mapa so abriu o RME mudou o chao e ta falando q é teu e essas edições q tu fez ta POWER LIXO, bom agora q tu ja fez a cagassa e posto aqui esse ai horrivel q voce editou em breve eu irei postar o meu original
@EDIT
Se voces quiserem baixar o meu Original:
http://www.xtibia.com/forum/topic/159404-baiak-fenix/
Olá galerinha (:, hoje irei postar meu primeiro script, na verdade não é nem 100% meu, alguns Scripters me ajudaram, mas o que mais
me ajudou foi O Marcelin (Marcello Mkez), meu professor . Espero que o script agrade a todos e fiz mesmo para treinar e praticar
e espero publicar muito mais scripts para vocês.
Bom essa talkaction possibilita ao player de terminada vocação, com uma certa quantidade de um certo item
adquirir o skill que você determinar e com um limite de compra, si o player uma quantidade máxima
considerada skill full no seu server ele não poderá usar mais. Sem mais explicações vamos ao script:
Function: (By Vodkart)
Nota: É importante a instalação da function para que funcione, pois ela permite que o skill seja adicionado sem erros e diretamente na DB.
Em data/lib/050-function...
Talkactions:
(By, Vodkart Função Principal, Xapinhal Condições, Marcello Mkez Mensagens e Org. do script e DemonBH por um pequeno erro na condição getItem).
Em data/talkactions/talkactions.xml ...Adicione:
Em data/talkactions/scripts ... Crie um script chamado skill.lua E adicione o seguinte:
Configuração: Infelizmente não aprendi variável ainda, então teremos que configurar assim :x.
Magic Level: Para comprar ml, você precisa mudar algumas funções então para facilitar:
Concordo com oque Sour falou, voce tem futuro, so procure ler uns tutorias, ver videos de como por sombras nos itens e etc, colocar mais realidade nos itens e eu te recomendo a usar o Paint pra fazer seus itens. Mas mesmo assim eu nunca tentei e/ou fiz os itens no Photoshop dai nem sei. Boa sorte nessa nova carreira e nao desista, qualquer coisa to sempre ae pra apoiar.
Esta é uma versão do [GesiorAcc] ,um site completo e bem amplo ,com várias modificações e algumas novas funções,uma excelente opção para quem procura algo diferente ou pra quem está começando um servidor.
O que há de novo?
* Novos Estilos (Backgrounds,Buttons,Headers e Artworks.)
* Pagina de download com Tibia 8.60, Ip Changer, HyperCam e Team Speaker.
* Guild War System Customized (Scripts pegar na aba Tutoriais de WebSite)
* Top 100 Killer do Servidor
* Advanced Character Page (Traduzida ,bem formal e "Única".)
* Who is Online? (Versão 0.3.8 modificada para adaptações em todos os servidores)
* Trade System (Explicações no site e em PT)
* Novo Support List
* Addons Page (Com fotos,Premium Required,Male of Female e Itens necessários.)
* Pagina Server Info (Modificada,bem simples e no jeito de colocar as informações do seu servidor.)
* Novo Shop Offer com novo estilo (Preto e Amarelo) e as abas | Dias Vip | Itens a Venda | Outros | !
* Pagina Benefícios totalmente reformulada e muito simples para modificar.
* Novo ! Pagina de Buypoints auto-explicativa...e semi-automática ! >> Leia Abaixo sobre <<
A pagina consiste em: O player escreve o nome do char e escolhe a quantidade de pontos que deseja comprar,clica em finalizar e é redirecionado para a página do pagseguro para terminar o pagamento. No pagseguro será mostrado o nome do char e a quantidade de pontos,assim,quando o pagamento for confirmado voce já saberá para quem os pontos devem ser entregues,não precisando mais de Confirmação de Pagamentos.
Abaixo,veja algumas fotos das principais modificações:
New Addons Page
Pagina de Benefícios
Pagina de Characters Customizada
Pagina de Downloads
Novo Estilo do Shop Offer
Trade System
Obs:
1° O site ja vai com alguns sistemas que necessitam das tabelas na sua database,como o War System,Trade System e o Top 100 Killer,
então vou posta-las abaixo para que adicionem no SQL.(Quem não quiser utilizar os sistemas é so apagar as paginas ditas acima do layout.)
Link das Tabelas
2° Em Htdocs/Config/Config.php , vá lá em baixo e coloque seu email pagseguro para o sistema de compra funcionar.
3° A página Houses não está a vista...mas está configurada para funcionar,quem quiser é so adiciona-la no Layout.
*É isso ,por favor não postem erros de tabelas aqui,ja foi explicado acima que pode dar error por causa dos sistemas que estão nosite ,basta voce adicionar as tables que postei no download acima ou então apagar as paginas do layout ou do index.php !
Depois de muita espera eu dei a chance de liberar o script, disse que iria postar assim que descobrissem como criar um tile onde não tem. Pois bem um cara desse forum chamado kydrai descobriu e coube ao lucas123 mostrar. Parabens kydrai ;D
Script dedicado a vc.
A minnha funçao é essa:
function doCreateTile(id,pos) -- By mock
doAreaCombatHealth(0,0,pos,0,0,0,255)
doCreateItem(id,1,pos)
end
E a dele é essa:
function doCreateTile(cid, tileid, pos) -- by Kydrai
doCombatAreaHealth(cid, 0, pos, 0, 0, 0, CONST_ME_NONE)
doCreateItem(tileid, 1, pos)
end
O principio é o mesmo. Abusar de um bug do distro que cria um tile quando executa uma spell. E com o tile pode criar o SQM.
Bom vamos começar.
Primeiro crie um arquivo chamado flylib.lua na pasta data/lib do seu server e coloque isso:
CONST_FLYVOID = 460
CONT_FLYOUTFIT = 239
IGNORED = {6495,7096,7099,5167,5162,5163,405,7100,
5315,5521,5316,5193,5192,5191,945,5048,923,950,951,
952,953,3623,954,955,949,9101,3352,9106,9103,1524,
1111,437,433,443,434,442,436,445,941,444,435,943,
1027,925,930,926,928,922,921,1112,406,904,931,934,
932,933,5319} --- Config here
up = {}
down = {}
fly = {}
fly.win = function(cid)-- Script by mock
setPlayerStorageValue(cid, 102015,1)
doPlayerSendTextMessage(cid,27,'Now you can fly.')
end
fly.add = function(cid)-- Script by mock
if getPlayerStorageValue(cid, 102015) == -1 or getPlayerStorageValue(cid,13241) == 1 then
return false
end
if getPlayerStorageValue(cid, 102059) <= 0 then
local outfit = getCreatureOutfit(cid)
outfit.lookType = CONT_FLYOUTFIT
doSetCreatureOutfit(cid, outfit, -1)
setPlayerStorageValue(cid, 102059,1)
doChangeSpeed(cid, 390)
doPlayerSendTextMessage(cid,27,'Fale \'up\' e \'down\'.' )
return true
else
doPlayerSendTextMessage(cid,27, "Você ja esta voando.")
return false
end
end
function isWalkable(pos, creature, proj, pz)-- by Nord
if getTileThingByPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0}).itemid == 0 then return false end
if getTopCreature(pos).uid > 0 and creature then return false end
if getTileInfo(pos).protection and pz then return false, true end
local n = not proj and 3 or 2
for i = 0, 255 do
pos.stackpos = i
local tile = getTileThingByPos(pos)
if tile.itemid ~= 0 and not isCreature(tile.uid) then
if hasProperty(tile.uid, n) or hasProperty(tile.uid, 7) then
return false
end
end
end
return true
end
fly.using=function(cid)-- Script by mock
return getPlayerStorageValue(cid, 102059) > 0
end
fly.logout = function(cid)-- Script by mock
if fly.using(cid) then
local p = getCreaturePosition(cid)
setPlayerStorageValue(cid, 102010,1)
setPlayerStorageValue(cid, 102011,p.x)
setPlayerStorageValue(cid, 102012,p.y)
setPlayerStorageValue(cid, 102013,p.z)
deletarEmVolta(p)
fly.del(cid)
end
return true
end
fly.login = function(cid)-- Script by mock
if getPlayerStorageValue(cid, 102010) ~= -1 then
setPlayerStorageValue(cid, 102010,-1)
local p = {}
p.x = getPlayerStorageValue(cid, 102011)
p.y = getPlayerStorageValue(cid, 102012)
p.z = getPlayerStorageValue(cid, 102013)
if not checkAround(p) then
fly.add(cid)
down.gerarEmVolta(p)
doTeleportThing(cid,p)
end
end
return true
end
fly.die = function(cid)-- Script by mock
if fly.using(cid) then
local p = getCreaturePosition(cid)
setPlayerStorageValue(cid, 102011,-1)
setPlayerStorageValue(cid, 102012,-1)
setPlayerStorageValue(cid, 102013,-1)
deletarEmVolta(p)
fly.del(cid)
end
return true
end
fly.del = function(cid)-- Script by mock
if getPlayerStorageValue(cid, 102059) > 0 then
if getSqmId(getCreaturePosition(cid)).itemid == CONST_FLYVOID then
return false
end
doRemoveCondition(cid, CONDITION_OUTFIT)
setPlayerStorageValue(cid, 102059,-1)
doChangeSpeed(cid, -390)
return true
end
end
function hasSqm2(pos)-- Script by mock
local f = getTileThingByPos(pos)
if f.itemid ~= 0 and f.itemid ~= 1 and (not isWalkable(pos) and not isInArray(IGNORED,f.itemid)) then
return true
end
return false
end
function hasSqm3(pos)-- Script by mock
local f = getTileThingByPos(pos)
if f.itemid ~= 0 and f.itemid ~= 1 and f.itemid ~= CONST_FLYVOID and not isInArray(IGNORED,f.itemid) then
return true
end
return false
end
function deletar(pos)-- Script by mock
if hasSqm(pos) then
local sqm = getSqmId(pos)
if sqm.itemid == CONST_FLYVOID then
doRemoveItem(sqm.uid,1)
end
end
end
function deletarEmVolta(pos)
for x=-1,1 do
for y=-1,1 do
deletar({x=pos.x+x,y=pos.y+y,z=pos.z})
end
end
end
function checkAround(pos)-- Script by mock
for x=-1,1 do
for y=-1,1 do
if hasSqm2({x=pos.x+x,y=pos.y+y,z=pos.z}) then
return true
end
end
end
return false
end
function fly.checkAround(pos)-- Script by mock
local n = 0
for x=-1,1 do
for y=-1,1 do
local g = getTileThingByPos({x=pos.x+x,y=pos.y+y,z=pos.z})
if g.itemid == CONST_FLYVOID then
n = n+1
end
if isCreature(getTopCreature({x=pos.x+x,y=pos.y+y,z=pos.z}).uid) then
return false
end
end
end
if n == 9 then
return true
end
return false
end
function up.checkAround(pos)-- Script by mock
for x=-1,1 do
for y=-1,1 do
local g = getTileThingByPos({x=pos.x+x,y=pos.y+y,z=pos.z})
if hasSqm3({x=pos.x+x,y=pos.y+y,z=pos.z}) or g.itemid == CONST_FLYVOID then
return true
end
end
end
return false
end
function down.checkAround(pos,f)-- Script by mock
for x=-1,1 do
for y=-1,1 do
local g = getTileThingByPos({x=pos.x+x,y=pos.y+y,z=pos.z})
if (not f and hasSqm2({x=pos.x+x,y=pos.y+y,z=pos.z})) or g.itemid == CONST_FLYVOID then
return true
end
end
end
return false
end
function gerarEmVolta(pos)-- Script by mock
local n = 30000
for x=-1,1 do
for y=-1,1 do
n =n+1
doItem({x=pos.x+x,y=pos.y+y,z=pos.z},n)
end
end
end
function doItem(pos,a,d)-- Script by mock
if not hasSqm2(pos) then
doCreateTile(CONST_FLYVOID,pos)
pos.stackpos = 0
local c = getTileThingByPos(pos)
doSetItemActionId(c.uid, a)
end
end
function getSqmId(pos,t)-- Script by mock
if hasSqm(pos) or t then
pos.stackpos = 0
local i = getTileThingByPos(pos)
return i
end
return nil
end
function down.doItem(pos,a)-- Script by mock
if not hasSqm(pos) then
doCreateTile(CONST_FLYVOID,pos)
pos.stackpos = 0
local c = getTileThingByPos(pos)
doSetItemActionId(c.uid, a)
end
end
function down.gerarEmVolta(pos)-- Script by mock
local n = 30000
for x=-1,1 do
for y=-1,1 do
n =n+1
down.doItem({x=pos.x+x,y=pos.y+y,z=pos.z},n)
end
end
end
function doCreateTile(id,pos) -- Script by mock
doAreaCombatHealth(0,0,pos,0,0,0,255)
doCreateItem(id,1,pos)
end
Agora é 1 scritp em creaturescripts, 3 em talkactions e 1 em movements.
Creaturescripts
Em seu login.lua coloque isso:
fly.login(cid)
no seu logout.lua coloque isso:
fly.logout(cid)
e no script que o player morre coloque isso:
fly.die(cid)
Isso é para quando o player entrar e sair do server pra voltar onde ele estava :coolface:
Movements
---Script by mock the bear
function doCopyItem(item,pos) ---Script by mock the bear
for i=1,6 do
pos.z = pos.z+1
if hasSqm(pos) and getSqmId(pos).itemid ~= 10217 then
local i = doCreateItem(item.itemid,item.type,pos)
if item.actionid ~= 0 then
doSetItemActionid(i,item.actionid)
end
doSendMagicEffect(pos,9)
return i
else
local p2 = {x=pos.x+1,y=pos.y+1,z=pos.z}
doSendDistanceShoot(pos,p2,40)
doSendMagicEffect(pos,2)
end
end
end
function onAddItem(item,pos,k) ---Script by mock the bear
doCopyItem(item,k)
doRemoveItem(item.uid,item.type == 0 and 1 or item.type)
end
function onStepIn(cid, item, position, fromPosition) ---Script by mock the bear
local dir = {
[30004] = {0,6,7},
[30007] = {7,0,6,1,5},
[30008] = {1,5,7},
[30009] = {5,4,2,1,7},
[30006] = {2,5,4},
[30003] = {4,3,6,2,5},
[30002] = {3,4,6},
[30001] = {6,0,7,3,4},
}
if isPlayer(cid) then
local chkps = {x=position.x,y=position.y,z=position.z}
local ig = false
for i,b in pairs(dir[item.actionid]) do
local nw = getPosByDir(chkps,b)
local g = getTileThingByPos(nw)
if hasSqm3(nw) or g.itemid == CONST_FLYVOID or nw.x < 35 or nw.y < 35 then
ig = true
break
end
end
if not ig then
deletarEmVolta(fromPosition)
gerarEmVolta(getCreaturePosition(cid))
else
doTeleportThing(cid,fromPosition,false)
doPlayerSendTextMessage(cid,27, "Sorry, you cannot fly here.")
end
end
end
function onStepOut(cid, item, position, fromPosition,q)
addEvent(function(pos) if fly.checkAround(pos) then deletarEmVolta(pos) end end,10000,position)
end
Talkactions
function onSay(cid, words, param) --- By moc kthe bear (MTB)
if param ~= '' and getPlayerGroupId(cid) > 3 then
local cida = getPlayerByName(param)
if cida and isPlayer(cida) then
fly.win(cida)
end
return true
end
if fly.using(cid) then
local p = getCreaturePosition(cid)
p.stackpos = 0
local f = getTileThingByPos(p)
if fly.del(cid) then
if f.itemid ~= 0 and f.itemid ~= 1 and f.itemid ~= CONST_FLYVOID then
return true
else
setPlayerStorageValue(cid,10941,1)
local p = getCreaturePosition(cid)
setPlayerStorageValue(cid, 102011,p.x)
setPlayerStorageValue(cid, 102012,p.y)
setPlayerStorageValue(cid, 102013,p.z)
return true
end
else
doPlayerSendTextMessage(cid,27,'You cannot turn off the fly here.')
end
else
if fly.add(cid) then
local pos = getCreaturePosition(cid)
if getSqmId(pos).itemid == 10217 then
down.gerarEmVolta(pos)
end
return true
else
doPlayerSendTextMessage(cid,27,'You cannot fly.')
return true
end
end
return true
end
Flyup.lua
function onSay(cid)--- By moc kthe bear (MTB)
local time = os.time()
if time < getPlayerStorageValue(cid, 102054) then
doPlayerSendCancel(cid, "You are exhausted.")
return true
end
if not fly.using(cid) then
return false
end
local pos = getCreaturePosition(cid)
pos.z = pos.z-1
if hasSqm(pos) or pos.z < 0 or up.checkAround(pos) then
doPlayerSendTextMessage(cid,27,'You cannot fly higger.')
return true
else
gerarEmVolta(pos)
doTeleportThing(cid,pos)
pos.z = pos.z+1
deletarEmVolta(pos)
end
return true
end
Flydown.lua
function onSay(cid)--- By moc kthe bear (MTB)
local time = os.time()
if time < getPlayerStorageValue(cid, 102054) then
doPlayerSendCancel(cid, "You are exhausted.")
return true
end
if not fly.using(cid) then
return false
end
local pos = getCreaturePosition(cid)
pos.stackpos = 0
local g = getTileThingByPos(pos)
pos.z = pos.z+1
local f = getTileThingByPos(pos)
if getSqmId(getCreaturePosition(cid)).itemid ~= CONST_FLYVOID
or down.checkAround(pos)
or (g.itemid ~= CONST_FLYVOID and f.itemid ~= CONST_FLYVOID and f.itemid ~= 0 and f.itemid ~= 1)
or (not isWalkable(pos,true,false,false) and hasSqm(pos))
or (hasSqm(pos) and not getTileHouseInfo(pos)) == 0 then
doPlayerSendTextMessage(cid,27,'You cannot go to down here.')
return true
else
down.gerarEmVolta(pos)
doTeleportThing(cid,pos)
pos.z = pos.z-1
deletarEmVolta(pos)
end
return true
end
E pronto. Esse não tem o recurso de cair que tem no video por que aquilo é do K.A junto do flysystem 2.0. Esse ja foi do K.A porem agora ele tem um melhor. Esse ai é bom sim porem não serve mais pro k.a entao ta liberado. Façam bom uso modifiquem da forma que quiserem corrijam os bugs e repostem melhorado contanto que nao tire meus creditos. Lembrando que nao precisa mudança na source.
Eu sei ta um pog do baralho nao tive paciencia pra faze um remake.
Se gostaram clica no meu ovinho da assinatura
Quem Está Navegando
0 membros estão online
Nenhum usuário registrado visualizando esta página.