
Histórico de Curtidas
-
Gabriel Ribeiro deu reputação a Zauster em [TalkActions] Sistema de LojaVersã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 !
-
Gabriel Ribeiro deu reputação a Skyforever em Anti PushEae 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.
-
Gabriel Ribeiro deu reputação a Killua em Account VIP System por KilluaEsse é 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.
-
Gabriel Ribeiro deu reputação a Guilherme. em [GlobalEvent] Estações do AnoOlá 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.