Ir para conteúdo
  • 0

Fábrica de Scripts


LuckOake

Pergunta

Olá galera.

 

Tava aqui de boa sem o que fazer, aí tive essa ideia de fazer um tópico pros membros pedirem scripts simples.

 

Regrinhas:

  1. NÃO PEÇA EVENTOS AQUI, SÓ SCRIPTS OU SISTEMAS SIMPLES;
  2. NÃO PEÇA SCRIPTS QUE JÁ EXISTEM;
  3. Se você quer algum script que está sendo vendido em algum lugar, poste aqui que eu faço pra você. Nesse tipo de caso, a regra número 1 pode ser desobedecida;
  4. Sem floods, comentários ou conversas no tópico;
  5. Por uma questão de organização, não gostaria que outros usuários sem minha permissão postassem scripts prontos para resolver pedidos aqui. Se quiserem resolver o pedido de um usuário, mande PM pra ele ou crie um tópico e poste;
  6. Faço qualquer tipo de script desde que seja da versão 8.54 até a 9.8;
  7. Não faço scripts para TFS 1.0;
  8. Não peça scripts ou sistemas que envolvam sources;
  9. Somente scripts que envolvam no máximo dois arquivos serão feitos;
  10. Máximo de dois pedidos por vez para cada usuário;
  11. Use um português adequado e detalhe bem seu pedido. Pedidos pouco detalhados ou com português ruim serão ignorados. Se não for bom com português, ao menos TENTE escrever adequadamente.
  12. O Oneshot e o Manoel Neto tem permissão para atender pedidos no tópico. Oneshot trabalha como quer, do jeito que quer e quando quer. Obs: E odeia leechers.

Caso você não entenda o por quê de postar aqui ao invés de criar um tópico, pense no seguinte. Você quer um script bem feito, bem explicado e de fácil configuração ou um que qualquer usuário chega lá e faz? Garanto que todos os scripts que farei nesse tópico serão, no mínimo, de alta qualidade.

 

Abraços e aproveitem a oportunidade. Ao contrários dos outros tópicos de fábrica de scripts, aqui não vou tentar fazer. Se estiver dentro das regras, vou fazer.

Editado por LuckOake
Link para o comentário
Compartilhar em outros sites

Posts Recomendados

  • 0

gostaria de um comando, no qual eu exemplo falo, "/resetdatabase". e reseta-se todas as houses/guilds/contas/players. e tive-se a opçao quando fala-se. /resetdatabase. "Voce deseja realmente resetar a database?, ai eu digita-se. yes. ai o ot seria desligado, com a database resetada.

 

espero que de pra fazer, se nao for mt complicado.

 

PS: uso servidor com estrutura, mysql.

Editado por Maenilse
Link para o comentário
Compartilhar em outros sites

  • 0

gostaria de um comando, no qual eu exemplo falo, "/resetdatabase". e reseta-se todas as houses/guilds/contas/players. e tive-se a opçao quando fala-se. /resetdatabase. "Voce deseja realmente resetar a database?, ai eu digita-se. yes. ai o ot seria desligado, com a database resetada.

 

espero que de pra fazer, se nao for mt complicado.

 

PS: uso servidor com estrutura, mysql.

 

Não é aconselhável fazer isso que você quer, resetar a database com o servidor ligado. Além do que, com ele desligado, não é possível executar scripts.

 

É melhor simplesmente usar o phpMyAdmin mesmo com o servidor desligado.

 

O motivo para não fazer isso com o server ligado é que só remover os valores das tabelas da database não é suficiente pra resetar mesmo. Os players continuariam online, os items continuariam nas houses, etc, aí no próximo server save voltaria tudo.

Link para o comentário
Compartilhar em outros sites

  • 0

 

 

xi0h.png

 

 

 

Perto das alavancas 1 e 2, tem mais 2, que serão inutilizadas.. O cara chega, tem que puxar as 2 alavancas certas(1 e 2 mostradas na imagem), aí ele da a volta, puxa a alavanca 3 e a porta de pedra some para os players passarem, aí depois de uns 15 segundos ela aparece de novo e fecha a passagem novamente.

(ps: se alguma outra alavanca estiver ativa,além das 3, a porta não abrirá)

Cordenadas das alavancas:

1= {x=669, y=1079, z=7, stackpos=1}

2= {x=669, y=1081, z=7, stackpos=1}

3 = {x=678, y=1081, z=7, stackpos=1}

 

ID da parede: 9118

Editado por N4K4MUR4
Link para o comentário
Compartilhar em outros sites

  • 0

 

 

xi0h.png

 

 

 

Perto das alavancas 1 e 2, tem mais 2, que serão inutilizadas.. O cara chega, tem que puxar as 2 alavancas certas(1 e 2 mostradas na imagem), aí ele da a volta, puxa a alavanca 3 e a porta de pedra some para os players passarem, aí depois de uns 15 segundos ela aparece de novo e fecha a passagem novamente.

(ps: se alguma outra alavanca estiver ativa,além das 3, a porta não abrirá)

Cordenadas das alavancas:

1= {x=669, y=1079, z=7, stackpos=1}

2= {x=669, y=1081, z=7, stackpos=1}

3 = {x=678, y=1081, z=7, stackpos=1}

 

ID da parede: 9118

 

Acho que isso aqui dá:

 


function onUse(cid, item)
local door_pos = {x = 93, y = 125, z = 7, stackpos = 1} -- Posição da porta
local global_storage = 13891 -- Global Storage da lever que remove a porta
local lever_istorage = 13892 -- Global Storage das levers erradas
local lever_cstorage = 13893 -- Global Storage das levers corretas
local door_id = 1111 -- ID da porta
local back_time = 15 -- Tempo, em segundos, para a porta reaparecer
local lever_pulled = 1945 -- ID da lever não puxada
local lever_normal = 1946 -- ID da lever puxada
local levers = {
[19010] = {gstorage = lever_istorage, add = 1, n_aid = 19011},
[19011] = {gstorage = lever_istorage, add = -1, n_aid = 19010},
[19012] = {gstorage = lever_cstorage, add = 1, n_aid = 19013},
[19013] = {gstorage = lever_cstorage, add = -1, n_aid = 19012},
[19014] = door_pos,
}
if not levers[item.actionid].gstorage then
if getGlobalStorageValue(global_storage) == 1 or getGlobalStorageValue(lever_istorage) ~= -1 or getGlobalStorageValue(lever_cstorage) < 1 then return true end
doRemoveItem(getThingFromPos(door_pos).uid, 1)
setGlobalStorageValue(global_storage, 1)
addEvent(function()
setGlobalStorageValue(global_storage, -1)
doCreateItem(door_id, 1, door_pos)
end, back_time*1000)
else
setGlobalStorageValue(levers[item.actionid].gstorage, getGlobalStorageValue(levers[item.actionid].gstorage)+levers[item.actionid].add)
doItemSetAttribute(item.uid, "aid", levers[item.actionid].n_aid)
doTransformItem(item.uid, item.itemid == lever_pulled and lever_normal or lever_pulled)
end
return true
end

 

 

 

Nas levers erradas, coloque action id como 19010, e nas certas como 19012. Na lever que abre a porta, 19014.

 

Tag:

<action actionid="19010;19011;19012;19013;19014" script="xxxx.lua"/>

No lugar de xxxx coloque o nome do script criado.

 

Configurações estão no script. Quaisquer erros, poste aqui.

 

------------------------------------------------------------------------------------------------------------------------

queria que você fize-se isso para mim

 

http://www.xtibia.com/forum/topic/221771-alguem-ajuda-aque/

 

Crie um arquivo em data/actions/scripts chamado jester_doll.lua e coloque isso dentro:

 

function onUse(cid, item)
    local doll_id = 9693 -- ID do boneco completo
    local doll_parts = {9694, 9695, 9696, 9697, 9698, 9699} -- Partes do Jester Doll
    
    for a, b in ipairs(doll_parts) do
        if getPlayerItemCount(cid, b) < 1 then
            return doPlayerSendCancel(cid, "Você não possui todas as partes do addon.")
        end
    end
    for a, b in ipairs(doll_parts) do
        doPlayerRemoveItem(cid, b, 1)
    end
    doPlayerAddItem(cid, doll_id)
return true
end

 

 

 

Actions.xml:

<action fromid="9694" toid="9699" script="jester_doll.lua"/>
Editado por LuckOake
Link para o comentário
Compartilhar em outros sites

  • 0

Sistema de KAGE ou seja somente 5 players poderão se tornar kage tipo um HOKAGE, 1 MIZUKAGE, 1 RAIKAGE, 1 TSUCHIKAGE e 1 KAZEKAGE.

É o seguinte o player irá ate o hokage da aldeia e falará com ele e somente 1 player se torna kage da aldeia mais isso so ate morrer quando ele morrer o nivel de kage se tornará vago para outro player se tornar ou ate ele msm.

Editado por Junior001
Link para o comentário
Compartilhar em outros sites

  • 0

Tipo: Spell ou Action


Oque vai ser: Uma Pistola


Descrição:


Gostaria que funciona-se assim, seleciona-se o target e sai-se o distance effect 1 e fise-se tal dano.


Observações:


O Player não vai poder usar sem o item id 2160 ao usar ele ira perder 1 quantidade do 2160 , Se ele não tiver o item 2160 aparece "Você não possui balas" e não solta-se o tiro.



Achei bem legal sua iniciativa mais quero lembrar a você que amanha ou hoje a noite terá varios pedidos e ira virar bagunça .


Editado por DarkHeel
Link para o comentário
Compartilhar em outros sites

  • 0

Tipo: Spell


Descrição:


O player usa a magia em outro o player,o player alvo é teleportado para X lugar,para ele sair de la ele precisa entrar no X tp que fica na x y z,quando ele entra no TP,ele volta de onde foi teleportado.


Link para o comentário
Compartilhar em outros sites

  • 0

pedido: Neblina

 

script só para o ADM.

Um script, quando o ADM do jogo da um comando, tudo fica com neblina.

ex: quando chove, cai pingos d´água.

 

nome: !neblina

ai tudo fica branco, com 80% da tonalidade da cor branca, na tela do jogo, por um período curto de 5 segundos.

 

-----------------------------------

 

mdr.gif No aguardo.

Link para o comentário
Compartilhar em outros sites

  • 0

 

Tipo: Spell ou Action

Oque vai ser: Uma Pistola

Descrição:

Gostaria que funciona-se assim, seleciona-se o target e sai-se o distance effect 1 e fise-se tal dano.

Observações:

O Player não vai poder usar sem o item id 2160 ao usar ele ira perder 1 quantidade do 2160 , Se ele não tiver o item 2160 aparece "Você não possui balas" e não solta-se o tiro.

Achei bem legal sua iniciativa mais quero lembrar a você que amanha ou hoje a noite terá varios pedidos e ira virar bagunça .

 

 

Crie um arquivo em data/actions/scripts com o nome de pistol.lua e coloque isso dentro:

 

function onUse(cid, item, fromPosition, itemEx, toPosition)
    local need_target = true -- Precisa de target? (true / false) Se false, o sistema utilizará o Use With.
    local bullet_id = 2160 -- ID da munição
    local shots_amount = 1 -- Tiros por vez
    local exhaustion_time = 1 -- Segundos de exhaustion
    local exhaust = 19301 -- Storage da exhaustion
    local dmg_min, dmg_max = -100, -200 -- Dano mínimo, dano máximo
    local shot_effect = 10 -- Efeito do tiro
    local shot_distance_effect = 1 -- Distance effect do tiro
    local damage_type = COMBAT_PHYSICALDAMAGE -- Tipo de dano
    local shots_delay = 200 -- Delay dos tiros (em milissegundos)
    
    if need_target then
        if getCreatureTarget(cid) <= 0 then
            return doPlayerSendCancel(cid, "Selecione um alvo primeiro.")
        elseif getPlayerItemCount(cid, bullet_id) < shots_amount then
            return doPlayerSendCancel(cid, "Você não possui munição.")
        elseif exhaustion.check(cid, exhaust) then
            return doPlayerSendCancel(cid, "Aguarde "..(exhaustion.get(cid, exhaust)).." segundos para usar a arma novamente.")
        end
        
        exhaustion.set(cid, exhaust, exhaustion_time)
        for i = 0, shots_amount-1 do
            addEvent(function()
                    if getCreatureTarget(cid) <= 0 then
                        return true
                    elseif getPlayerItemCount(cid, bullet_id) < 1 then
                        return doPlayerSendCancel(cid, "Você não possui munição.")
                    end
                    doSendDistanceShoot(getCreaturePosition(cid), getCreaturePosition(getCreatureTarget(cid)), shot_distance_effect)
                    doTargetCombatHealth(cid, getCreatureTarget(cid), damage_type, dmg_min, dmg_max, shot_effect)
                    doPlayerRemoveItem(cid, bullet_id, 1)
                end, shots_delay*i)
        end
    else
        if not isCreature(itemEx.uid) then
            return doPlayerSendCancel(cid, "Selecione um alvo primeiro.")
        elseif getPlayerItemCount(cid, bullet_id) < shots_amount then
            return doPlayerSendCancel(cid, "Você não possui munição.")
        elseif exhaustion.check(cid, exhaust) then
            return doPlayerSendCancel(cid, "Aguarde "..(exhaustion.get(cid, exhaust)).." segundos para usar a arma novamente.")
        end
        
        exhaustion.set(cid, exhaust, exhaustion_time)
        for i = 0, shots_amount-1 do
            addEvent(function()
                    if not isCreature(itemEx.uid) then
                        return true
                    elseif getPlayerItemCount(cid, bullet_id) < 1 then
                        return doPlayerSendCancel(cid, "Você não possui munição.")
                    end
                    doSendDistanceShoot(getCreaturePosition(cid), getCreaturePosition(itemEx.uid), shot_distance_effect)
                    doTargetCombatHealth(cid, itemEx.uid, damage_type, dmg_min, dmg_max, shot_effect)
                    doPlayerRemoveItem(cid, bullet_id, 1)
                end, shots_delay*i)
        end
    end
return true
end

 

Actions.xml:

<action itemid="xxxx" script="pistol.lua"/>

 

No lugar de xxxx, coloque o id da arma.

 

Configure aqui:

 

   local need_target = true -- Precisa de target? (true / false) Se false, o sistema utilizará o Use With.
    local bullet_id = 2160 -- ID da munição
    local shots_amount = 1 -- Tiros por vez
    local exhaustion_time = 1 -- Segundos de exhaustion
    local exhaust = 19301 -- Storage da exhaustion
    local dmg_min, dmg_max = -100, -200 -- Dano mínimo, dano máximo
    local shot_effect = 10 -- Efeito do tiro
    local shot_distance_effect = 1 -- Distance effect do tiro
    local damage_type = COMBAT_PHYSICALDAMAGE -- Tipo de dano
    local shots_delay = 200 -- Delay dos tiros (em milissegundos)

 

Se der algum erro, poste aqui.

Link para o comentário
Compartilhar em outros sites

  • 0

LuckOake, não deu erro nenhum no console, ele simplesmente não funcionou, a porta nao some :/

 

fiz tudo direitinho, coloquei as action ID, configurei a posição da porta e a ID dela no script, mas nada acontece.

Link para o comentário
Compartilhar em outros sites

  • 0

 

Tipo: Spell

Descrição:

O player usa a magia em outro o player,o player alvo é teleportado para X lugar,para ele sair de la ele precisa entrar no X tp que fica na x y z,quando ele entra no TP,ele volta de onde foi teleportado.

 

 

Spell:

 

function onCastSpell(cid, var)
    local tp_pos = {x = 100, y = 100, z = 7}
    if getCreatureTarget(cid) <= 0 then
        doPlayerSendCancel(cid, "Você precisa selecionar um alvo")
        return false
    end
    
    local target = getCreatureTarget(cid)
    doTeleportThing(target, tp_pos)
    setPlayerStorageValue(target, 18500, "x = "..(getCreaturePosition(target).x)..",y = "..(getCreaturePosition(target).y)..",z = "..(getCreaturePosition(target).z)..",")
return true
end

 

 

 

Movement (spell_tp.lua):

 

function onStepIn(cid, item)
    local storage = getPlayerStorageValue(cid, 18500)
    local pos = {x = string.match(storage, "x = (.-),"), y = string.match(storage, "y = (.-),"), z = string.match(storage, "z = (.-),")}
    doTeleportThing(cid, pos)
return true
end

 

 

 

Tag (Movement):

<movevent type="StepIn" actionid="xxxx" script="spell_tp.lua"/>

No lugar do xxxx, coloque o action id do teleport. (OBS: Você deverá criar o teleport no map editor e colocar o action id nele)

 

Na spell, configure a posição do lugar onde o target será teleportado aqui:

local tp_pos = {x = 100, y = 100, z = 7}

-------------------------------------------------------------------------------------------------------------------------------------

 

pedido: Neblina

 

script só para o ADM.

Um script, quando o ADM do jogo da um comando, tudo fica com neblina.

ex: quando chove, cai pingos d´água.

 

nome: !neblina

ai tudo fica branco, com 80% da tonalidade da cor branca, na tela do jogo, por um período curto de 5 segundos.

 

-----------------------------------

 

mdr.gif No aguardo.

 

Impossível fazer isso sem OTClient e OPCodes.

Editado por LuckOake
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...