Ir para conteúdo

Gabriel Ribeiro

Membro
  • Registro em

  • Última visita

Histórico de Curtidas

  1. Gostei
    Gabriel Ribeiro deu reputação a Zauster em [TalkActions] Sistema de Loja   
    Versão : 1.0
     
    Introdução
     
    Bem Este Script Foi Um Pouco Pensativo Ate Demais Para Fazer , Mas Ele Funciona Assim Quand Você Digitar /shop Ira Aparecer Uma Janela Onde Aparecerá Mais Comandos Tipo : /shop armas e /shop equipamentos , "Arma" São Espadas Etc.. Não Pensa Outra Coisa.. Dai Aparecerá Outra Janela Mostrando Ao Jogador As Ofertas Então Ele Poderá Comprar Uma Das Ofertas ! .. Bem Não Vou Explicar Muito Aqui , Explicarei Mais A Baixo... Não Sei se Existe Outro Sistema de Loja Igual Este , Mas Vamo Lá]
     
    Abra : Data/TalkActions/TalkActions.xml e adicione Está Tag :
     
     
    Depois Disto Abra : Data/TalkActions/Scripts e Copie Um Arquivo .lua e Renomeia Para SistemaDeLoja Remova Tudo Que Há Dentro e Coloque Isto :
     
    Configuração :
     
    (Script) (.lua) Simples , Abra Isto : Data/Items/Items.xml , Bem Ai Tem Alguns Items Do Seu Servidor No Caso Todos  , Aperte Ctrl + F e Pesquise o Item Que Você Quer Bem Eu Escolhi Este:
     
     
    o Id Dele é 7402 , Então Pronto Feche o Items.xml , Agora Abra : Data/TalkActions/Scripts/SistemaDeLoja Agora Começa a Complicar Pra Min e Pra Vocês , Pois Vai Ser Duro De Explica Isto..
    Lá No Inicio Do Script Contém Isto :
    No if (param == "buy flash kunai") then  , Vocês Editam Está Parte Que Está em Negrito : if (param == "buy flash kunai")  , e Edita Como Quiser , Tipo se Você Deixar Assim : if (param == "2") , o Jogador Tera Que Digitar /shop 2 , Para Aparecer Oque Vem Abaixo ! Mas Lembre Ele Serve Para Comprar Não Crie Uma Loja 2 Aqui , Crie Seilá Comprar Pokebola , Ai Compra Pokebola.. Assim Como Todos os if (param == "") , Bem Vamos Continuar Está Parte Agora : if doPlayerRemoveMoney(cid, 100000) == TRUE then  Editam Está Parte Que Está Em Negrito : if doPlayerRemoveMoney(cid, 100000) == TRUE then , Ela é o Dinheiro Que Irá Sumir Do Player Pode Coloca 1, 100 , 600000 Seilá Cria Oque Achar Melhor, Façam Isto Com Todos if doPlayerRemoveMoney(cid, )  , Continuando Está Parte Agora :
    Elá é Um Pouco Grande Vou Deixar No Spoiler , Editem Está Parte : #-ARMAS-#Loja Naruto Master#-ARMAS-#\n\nParabéns Você Comprou Uma Flash Kunai \n\nSeu Dinheiro Agora é De : " .. getPlayerMoney(cid) .. "\n\n#-ARMAS-#Loja Naruto Master#-ARMAS-# , Coloquem Oque Quiser Mais Não Removam Os \n\n Como Disse No Meu Outro Script , Elas Servem Para Pular de Linha Não Iram Aparecer No Jogo.. Bem Está Quase Terminando Agora Está Parte:  doPlayerAddItem(cid, 7382, 1) , Editem Apenas Está Parte em Negrito :  doPlayerAddItem(cid, 7382, 1) , Bem o Número 7382 , é aquele Número Que Pegamos La No Items.xml , o Id Que eu Peguei Foi : 7402 , Agora So Trocar Por Isto :  doPlayerAddItem(cid,7402, 1) , Viram ? So Coloquem o Id No Lugar do 7382 , Agora Aquele Número 1 Bem No Final é Tantos De Items Daquela ID , Que Irá Vim Se Colocar Dois Vai Vim Dois Items , O Meu Ficaria Assim : doPlayerAddItem(cid,7402, 2) , Irá Vim Dois Items Do ID 7402 , Agora:
    Else é se o Personagem Não Tiver o Dinheiro Que Você Colocou , Irá Aparecer Oque ? , Vamos Lá :
    Bem se Ele Não Tiver o Dinheiro Necessario Irá Aparecer Está Menssagem Vocês Editem Apartir Destá Parte :
    Outra Vez Falando Não Removam os \n\n Vocês Podem Trocar Eles de Lugar , Mas Eles Servem Para Pular Linhas Não Iram Aparecer No Seu Jogo
    Bem é Isto , a Explicação Não foi tão Boa , Mas Vocês Podem Editar Tudo , Tudo Que Coloquei Neste Tópico Vocês Podem Editar
     
    Comandos Originais do Script :
     
    /shop
     
    /shop equipamentos
     
    /shop armas
     
    Créditos :
     
    Zauster (100%)
     
    Deixa Rep+ se Gosto Vlw !
  2. Gostei
    Gabriel Ribeiro deu reputação a Skyforever em Anti Push   
    Eae denovo glr vim trazer um script que é bom para eventos eu acho o adm fla

    !antipush ai ninguem pode puxar ngm

    /data/talkactions/scripts
    nome.lua

    function onSay(cid, words, param) if getGlobalStorageValue(3213) > 0 then setGlobalStorageValue(3213, 0) doPlayerSendTextMessage(cid, "You desativo the anti-push.") else setGlobalStorageValue(3213, 1) doPlayerSendTextMessage(cid, 27, "You ativo the anti-push.") end return true end talkactions.xml <talkaction log="yes" access="5" words="!antipush" event="script" value="nome.lua"/> /data/creaturescripts/scripts nome.lua function onPush(cid, target) if getGlobalStorageValue(3213) > 0 then return false and doPlayerSendTextMessage(cid, 28, "You can't empurar players if anti-push está actived.") end end creaturescripts.xml <event type="push" name="antiPush" script="nome.lua"/> login.lua registerCreatureEvent(cid, "antiPush")

    nem sei se tá certo porque nunca usei onPush então a tag pode estar errada flws.
  3. Gostei
    Gabriel Ribeiro deu reputação a Killua em Account VIP System por Killua   
    Esse é um sistema de VIP por account, com comandos in game para adicionar/remover/checar dias de VIP.
     
    Para instalar crie Killua VIP System.lua em data/lib e coloque:
    -- Account VIP System criado por Vitor Bertolucci - Killua function installVipSystem()       local func = db.query or db.executeQuery       if func("CREATE TABLE `killua_vip_time` (`account_id` int(11) NOT NULL default '0', `time` varchar(255) NOT NULL default '0')") then             return print(os.date("%X").." - Killua VIP System instalado com sucesso.") and true       end       return print(os.date("%X").." - Killua VIP System ja esta instalado.") and false end function getAccountVipTime(accid)       local time_ = db.getResult("SELECT `time` FROM `killua_vip_time` WHERE `account_id` = '"..accid.."' LIMIT 1")       if time_:getID() ~= -1 then             return time_:getDataInt("time")       end       return false end function setAccountVipTime(accid, time)       local func = db.query or db.executeQuery       local time_ = db.getResult("SELECT `time` FROM `killua_vip_time` WHERE `account_id` = '"..accid.."' LIMIT 1")       if time_:getID() ~= -1 then             func("UPDATE `killua_vip_time` SET `time` = '"..time.."' WHERE `account_id` = '"..accid.."' LIMIT 1")             time_:free()             return true       end       return func("INSERT INTO `killua_vip_time` (`account_id`, `time`) VALUES ('"..accid.."', '"..time.."')") end function isVip(cid)       if getAccountVipTime(getPlayerAccountId(cid)) then             return getAccountVipTime(getPlayerAccountId(cid)) >= os.time()       end       return false end function doPlayerSetVipDays(cid, days)       if days and tonumber(days) and tonumber(days) >= 0 then             if tonumber(days) == 0 then                   return setAccountVipTime(getPlayerAccountId(cid), days)             end             return setAccountVipTime(getPlayerAccountId(cid), (os.time() + (days * 60 * 60 * 24)))       end       return print("Aviso: Nao foi possivel executar a funcao doPlayerAddVipDays. O parametro days deve ser um numero.") end function getPlayerVipDays(cid)       if getAccountVipTime(getPlayerAccountId(cid)) then             return getAccountVipTime(getPlayerAccountId(cid)) > 0 and math.ceil((getAccountVipTime(getPlayerAccountId(cid)) - os.time()) / 60 / 60 / 24) or 0       end       return 0 end PS: Se na sua pasta lib já tiver algum arquivo com vip no nome, delete o arquivo.   Em data/talkactions/scripst crie vip.lua e coloque:   -- Account VIP System criado por Vitor Bertolucci - Killua function onSay(cid, words, param, channel)       if param == "" then             return doPlayerSendCancel(cid, "Utilize os parametros corretos.")       end       local t = string.explode(param, ',')       if t[1] ~= "days" and getPlayerGroupId(cid) < 4 then             return doPlayerSendCancel(cid, "Comandos disponiveis apenas para gods. Player podem usar /vip days")       end       if t[1] == "days" then             if isVip(cid) then                   doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Voce tem "..getPlayerVipDays(cid).." dias de VIP.")             else                   doPlayerSendCancel(cid, "Voce nao tem VIP.")             end       elseif t[1] == "add" then             if getPlayerByName(t[2]) and tonumber(t[3]) and tonumber(t[3]) > 0 then                   doPlayerSetVipDays(getPlayerByName(t[2]), getPlayerVipDays(getPlayerByName(t[2])) + tonumber(t[3]))                   doPlayerSendTextMessage(getPlayerByName(t[2]), 25, "Voce recebeu "..t[3].." dias de VIP.")                   doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, t[3].." dias de VIP adicionados para "..t[2])             else                   doPlayerSendCancel(cid, "Voce fez algo errado! Utilize /vip add, PLAYERNAME, dias.")             end       elseif t[1] == "remove" then             if getPlayerByName(t[2]) and tonumber(t[3]) and tonumber(t[3]) > 0 then                   if isVip(getPlayerByName(t[2])) then                         if getPlayerVipDays(getPlayerByName(t[2])) > tonumber(t[3]) then                               doPlayerSetVipDays(getPlayerByName(t[2]), getPlayerVipDays(getPlayerByName(t[2])) - tonumber(t[3]))                               doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, t[3].." dias de vip removidos de "..t[2])                               doPlayerSendTextMessage(getPlayerByName(t[2]), MESSAGE_STATUS_WARNING, "Fora retirados "..t[3].." dias de VIP da sua account.")                         else                               doPlayerSetVipDays(getPlayerByName(t[2]), 0)                               doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, t[2].." tinha menos que "..t[3].." dias de VIP. A VIP dele foi removida.")                               doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING, "Sua VIP acabou.")                         end                   else                         doPlayerSendCancel(cid, t[2].." nao eh VIP.")                   end             else                   doPlayerSendCancel(cid, "Voce fez algo errado! Utilize /vip remove, PLAYERNAME, dias.")             end       elseif t[1] == "check" then             if getPlayerByName(t[2]) then                   if isVip(getPlayerByName(t[2])) then                       doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, t[2].." tem "..getPlayerVipDays(getPlayerByName(t[2])).." dias de VIP Account.")                   else                         doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, t[2].." nao eh VIP.")                   end            else                 doPlayerSendCancel(t[2].." Nao esta online ou nao existe!")            end       elseif t[1] == "install" then             if installVipSystem() then                   doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "O sistema foi instalado com sucesso.")             else                   doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "O sistema ja esta instalado.")             end       end       return true end E em talkactions.xml coloque: 
    <talkaction words="/vip" event="script" value="vip.lua"/> Comandos:
     
     
    Funções que fiz pro sistema e podem acabar sendo úteis:
     
     
      Pronto.   Vou por aqui tbm um piso que só jogadores VIP podem passar, usem esse script como base para criarem outros.   Crie piso vip.lua em data/movements/scripts e coloque:   function onStepIn(cid, item, position, lastPosition, fromPosition, toPosition, actor)       if not isVip(cid) then             doTeleportThing(cid, fromPosition)             doPlayerSendCancel(cid, "Somente jogadores VIP podem passar.")             doSendMagicEffect(fromPosition, CONST_ME_POFF)       else             doSendMagicEffect(toPosition, 12)       end       return true end E em movements.xml: 
    <movevent type="StepIn" actionid="5723" event="script" value="piso vip.lua"/> Depois disso é só colocar actionID 5723 nos pisos que somente jogadores VIP podem passar.
     
  4. Gostei
    Gabriel Ribeiro deu reputação a Guilherme. em [GlobalEvent] Estações do Ano   
    Olá galera, vim trazer mais um maravilhoso e criativo script do Teckman.

    *OBS; O Script não contém todos os items para todas as estações.

    Funciona assim: Quando você abrir o server ele irá substituir os items de acordo com as estações do ano, por exemplo, vai substituir as árvores por árvores de neve, pedras por pedras de neve, e assim por diante.
    O Script vai ser executado logo que o server ligar pois ocupa muito do CPU e da memória RAM, mas apenas para grandes mapas e por pouco tempo.

    Entre em /globalevents/scripts/ e então crie o arquivo seasons.lua, coloque o código abaixo no arquivo, salve e feche.


    local config = { areas = { [1] = { {x = 954, y = 1001, z = 7}, {x = 992, y = 1026, z = 7} } }, items = { ["winter"] = { [2700] = 2698, -- fir tree [2705] = 8139, -- pear tree [2703] = 2697, -- plum tree [2704] = 7020, -- red maple [2706] = 7071, -- yellow maple [2701] = 2698, -- sycamore [2707] = 7022, -- beech [2708] = 7020, -- poplar [2711] = 7021, -- dwarf tree [2712] = 7023, -- pine [4526] = 6580, -- grass [4527] = 6581, -- grass [4528] = 6582, -- grass [4529] = 6583, -- grass [4530] = 6584, -- grass [4531] = 6585, -- grass [4532] = 6586, -- grass [4533] = 6587, -- grass [4534] = 6588, -- grass [4535] = 6589, -- grass [4536] = 6590, -- grass [4537] = 6591, -- grass [4538] = 6592, -- grass [4539] = 6593, -- grass [4540] = 6580, -- grass [4541] = 6580, -- grass [6216] = 6715, -- grass tuffs [6217] = 6716, -- grass tuffs [6218] = 6717, -- grass tuffs [6219] = 6718, -- grass tuffs [387] = 6966, -- stalagmite [3610] = 6611, -- stones [3614] = 6610, -- stones [3666] = 6713, -- stone [3667] = 6714, -- stone [3668] = 6715, -- stone [468] = 483, -- hole [469] = 484, -- hole [3310] = 485, -- hole [3607] = 6999, -- medium stone [3609] = 7003, -- medium stone [3616] = 7002, -- medium stone [3663] = 7016, -- big stone [3664] = 7017, -- big stone [3615] = 7000, -- medium stone [3608] = 7001, -- medium stone [3659] = 7018, -- medium stone [3660] = 7019, -- medium stone [3617] = 7004, -- big stone [3618] = 7005, -- big stone [3619] = 7006, -- big stone [3620] = 7007, -- big stone [3624] = 7008, -- big stone [3625] = 7009, -- big stone [3626] = 7010, -- big stone [3627] = 7011, -- big stone [3628] = 7012, -- big stone [3629] = 7013, -- big stone [3630] = 7014, -- big stone [3631] = 7015, -- big stone [4470] = 6768, -- mountain [4471] = 6720, -- mountain [4472] = 6719, -- mountain [4476] = 6724, -- mountain [4477] = 6725, -- mountain [4478] = 6726, -- mountain [4479] = 6727, -- mountain [4473] = 6721, -- mountain [4474] = 6722, -- mountain [4475] = 6723, -- mountain [4468] = 6762, -- mountain [4469] = 6761, -- mountain [4542] = 4737, -- grass border [4543] = 4738, -- grass border [4544] = 4739, -- grass border [4545] = 4740, -- grass border [4546] = 4741, -- grass border [4547] = 4742, -- grass border [4548] = 4743, -- grass border [4549] = 4744, -- grass border [4550] = 4745, -- grass border [4551] = 4746, -- grass border [4552] = 4747, -- grass border [4553] = 4748, -- grass border } }, seasons = { ["monday"] = "winter", ["tuesday"] = "winter", ["wednesday"] = "autumn", ["thursday"] = "autumn", ["friday"] = "spring", ["saturday"] = "summer", ["sunday"] = "summer" } } function onStartup () doSetGameState(GAMESTATE_CLOSED) addEvent(doSetGameState, 1000 * 15, GAMESTATE_NORMAL) for i = 1, table.maxn(config.areas) do for x = ((config.areas)[i][1]).x, ((config.areas)[i][2]).x do for y = ((config.areas)[i][1]).y, ((config.areas)[i][2]).y do for z = ((config.areas)[i][1]).z, ((config.areas)[i][2]).z do for k, v in pairs(config.items[config.seasons[string.lower(os.date("%A"))]]) do pos = {x = x, y = y, z = z} if(getTileItemById(pos, k).uid > 0) then doTransformItem(getTileItemById(pos, k).uid, v) end end end end end end return true end Agora entre em /globalevents/globalevents.xml adicione a TAG abaixo, salve e feche. <globalevent name="seasons" type="start" event="script" value="seasons.lua"/>


    E é isso galera, vocês estão livres para editar o código e adicionar/retirar items, para fazer isso use o map editor ou então o arquivo items.xml para verificar o ID dos items.

Informação Importante

Confirmação de Termo