Ir para conteúdo

caotic

Infante
  • Total de itens

    1599
  • Registro em

  • Última visita

  • Dias Ganhos

    7

Tudo que caotic postou

  1. Mais para que usar o gusb sendo que você ja vai separar a string . Ou melhor para que ":" Usa só string.explode()
  2. Venho trazer a versão do 1.0 do banimento system Segue o link: http://www.xtibia.co...to-system-beta/ O script foi todo reformulado. O player fala /ban(nome do player,dias de ban,porque ele foi banido,["true" para banir o ip]) E o player e kikado e depois quando ele tentar logar aparece a mensagem de banimento. O player também podera ver a lista de banidos dizendo /bans. Vá na sua database e execute os seguintes comandos: CREATE TABLE "ban" ( "player" INT NOT NULL, "ip" INT NOT NULL, "time" INT NOT NULL, `coment` text ) Vá em lib e crie um arquivo lua chamado de ban e coloque isto: function setBanTime(cid, time, coment, ip) db.executeQuery("INSERT INTO `ban` VALUES (".. getPlayerGUID(cid) ..", ".. ip ..", ".. os.time() + time*36000 ..", '".. coment .."')") end function getPlayerBans(cid) local ban = db.getResult("SELECT * FROM `ban` WHERE `player` = ".. getPlayerGUID(cid) ..";") if ban:getID() == -1 then return false end local time = ban:getDataInt("time") > os.time() and ban:getDataInt("time") < 100+os.time() return time and false or true end function getPlayerComent(cid) local ban = db.getResult("SELECT * FROM `ban` WHERE `player` = ".. getPlayerGUID(cid) ..";") return ban:getDataString("coment") end function getPlayerTimeBan(cid) local ban = db.getResult("SELECT * FROM `ban` WHERE `player` = ".. getPlayerGUID(cid) ..";") return ban:getDataInt("time") - os.time() end function getPlayerIpBan(cid) local ban = db.getResult("SELECT * FROM `ban` WHERE `player` ORDER BY `time`") if ban:getID() == -1 then return false end while true do local ips = ban:getDataInt("ip") if getPlayerIp(cid) == ips then return true end if not ban:next() then return false end end end function doShowTextBans(cid) local ban = db.getResult("SELECT * FROM `ban` WHERE `player` ORDER BY `time`") str = "Players Banidos:\n\n" if ban:getID() == -1 then doShowTextDialog(cid, 1387, "Não existe nenhum player Banido") return true end while true do local name = ban:getDataInt("player") local player = getPlayerNameByGUID(name) local time = ban:getDataInt("time") - os.time() str = str .. player .. " - Banido por "..math.floor((time/36000)).." \n\n" if not ban:next() then doShowTextDialog(cid, 1397, str) break end end end Vá em talkactions e crie um arquivo lua chamado de ban e coloque isto: function onSay(cid, words, param, channel) local t = string.explode(param, ",") if param == " " or param == "" or not param or isNumeric(param) then return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Coloque o nome do player dizendo /ban(nome do player,dias de ban,por que ele foi banido)") end if t[2] == " " or t[2] == "" or not t[2] then return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Coloque os dias do player dizendo /ban(nome do player,dias de ban,por que ele foi banido)") end if t[3] == " " or t[3] == "" or not t[3] then return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Coloque o comentario do banimento dizendo /ban(nome do player,dias de ban,comentario)") end local player = getPlayerByNameWildcard(t[1], false) if not player then return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Este player "..t[1].." não existe") end setBanTime(player, t[2], t[3], t[4] == "true" and getPlayerIp(player) or 0) doRemoveCreature(player) return true end Continuando em talkactions crie um arquivo lua chamado de bans e coloque isto: function onSay(cid, words, param, channel) doShowTextBans(cid) return true end Agora vá em talkactions.xml e coloque estas tags: Agora vá em creaturescripts e crie um arquivo lua chamado de ban e coloque isto: function onLogin(cid) if getPlayerBans(cid) then local time = math.floor(getPlayerTimeBan(cid)/36000) doPlayerPopupFYI(cid, "Você esta banido por "..getPlayerComent(cid).." durante "..time.." dias") return addEvent(doRemoveCreature, 180, cid) end if getPlayerIpBan(cid) then doPlayerPopupFYI(cid, "Seu ip esta banido") return addEvent(doRemoveCreature, 180, cid) end return true end Agora vá em login.lua e registre o evento colocando isto antes do ultimo return: registerCreatureEvent(cid, "ban") Coloque esta tag em talkactions.xml
  3. Opa fico legal. E melhor salvar as pos tudo em uma storage depois usar gmatch para procurar os valores(como o script que luck monstro). Mais ta legal sim. Parabéns
  4. Tópico movido para a seção de dúvidas e pedidos resolvidos.
  5. Usar gmatch e gusb e uma boa. Além de que fico mais bonito sua função. Entendi o sentindo e a execução da função parabéns. O interessante que o procedimento e um pouco mais complicado porque você procura o separador e depois vai reformulando a string. Fica mais bonito usar: ""..str..""..char..""
  6. Tópico movido para a seção de dúvidas e pedidos resolvidos.
  7. 1 - Organize seu tópico com informações 2 - Se precisa de equipe crie um tópico na seção de monte sua equipe Tópico Fechado
  8. Especifique mais sua duvida. E crie seu tópico em pedidos e duvidas de scripting. Tópico Fechado
  9. Esta terceira fiko epica. Insertar todas as caracteres para depois comparar todas. Gostei ehauehauehaueh'
  10. caotic

    Pedido de Script

    Tópico movido para a seção de dúvidas e pedidos resolvidos.
  11. Tópico movido para a seção de dúvidas e pedidos resolvidos.
  12. MANO, SÓ DIGO UMA COISA PRA VC: string.rep("HUE",math.huge) e eu acho q devia parar de tentar pogar, querendo ou nao isso ainda deixa o script 1 bosta e desnecessariamente complicado flw Po cara e meu jeito de programar e isto ai. Ninguém muda isto não. Mais ....
  13. corujinha11 cuidado com o flood. Flood são todos os post desnecessário ao tópico. Favor ler as regras.
  14. Banir o oneshot era demais o que precisa era só chamar a atenção. E como a área de scripting vai andar sem uns dos melhores coord. do xtibia? Ele só expôs a opinião dele. (Eu digo isto sendo uma pessoa que mais tive intriga com o oneshot)
  15. Acredito em 8.x para cima. E claro o items.xml não deve ter erros grandes.
  16. Ola galera xtibiana. As vezes precisamos ler arquivos mais nem sempre eles são organizados e fáceis de ler um exemplo e a xml items do seu otserv. Ler um arquivo grande e com informações que muitas das vezes você não ira precisar no momento se torna uma tarefa árdua e cansativa. Pensando nisso desenvolvi um código que lé seu arquivo items.xml e procura informações crucias organizando tudo em apenas um documento. Além disso você pode colocar anotações e modificar livremente o arquivo gerado. Quando estiver procurando algum item em especial ficará muito mais fácil acha - lo e descobrir de maneira pratica suas informações. O código e pequeno e simples basta executar uma vez a talkaction. Vamos a instalação. Crie um arquivo de texto chamado de log na pasta raiz do seu otserv onde fica seu arquivo config.lua. Depois vá em talkactions e crie um arquivo lua chamado de itens e coloque isto: function onSay(cid, words, param, channel) function getItensAndAttrItens() local dir = "data/items/items.xml" local item = io.open(dir, "r") str = "Itens Disponiveis no Otserv\n" for i in item:read("*a"):gmatch('</item>(.-)</item>') do local itemid = tonumber(i:match('item id="(.-)"')) or tonumber(i:match('toid="(.-)"')) local name = tostring(i:match('name="(.-)"')) local desc = tostring(i:match('<attribute key="description" value="(.-)" />')) str = ""..str.."\n-"..itemid.."-Nome do item = "..name.." - Desc = "..desc.."" io.close() end return str end local file = io.open("./log.txt", "a") file:write(getItensAndAttrItens()) file:close() return true end Agora vá em talkactions.xml e coloque isto: <talkaction words="/item" event="script" value="itens.lua"/>
  17. caotic

    storage

    Tópico movido para a seção de dúvidas e pedidos resolvidos.
  18. Existe este bug. E porque o player desloga e ele não executa a função. Tanto que ele ficará com a storage da tv. Você precisar resolver seus erros de crash
  19. Ola galera venho trazer a função string.explode ela ja existe mais resolvi fazer com os encantos do pog. A função separa uma string por um carácter e depois ele e insertado numa table podendo assim manipular cada parte. function string.explode(str, char) k = 1 x = {} i = 1 str = ""..str..""..char.."" while #str > k do local t = string.sub(str, k, k) if t == char then table.insert(x, string.sub(str, i, k-1)) k = k+1 i = k end k = k+1 end return x end str = "Ola,Oi,Sua,Vida,Taste, oi" for i=1, #string.explode(str, ",") do print(string.explode(str, ",")[i]) end
  20. Se você quer action coloque esta tag: <movevent type="StepIn" actionid="2324" event="script" value="vocs.lua"/> Depois e so pegar o id 2324 e colocar no seu piso não esqueça de adicionar o script.
  21. Vá em moveements e crie um arquivo lua chamado de vocs e coloque isto: function onStepIn(cid, item, pos, fromPosition) local vocs = {5,6,7,8} --- Vocações permitidas if not isInArray(vocs, getPlayerVocation(cid)) then doTeleportThing(cid, fromPosition, true) str = "Vocações permitidas" for i = 1,#vocs do str = ""..str.."\n"..vocs[i].."" end doShowTextDialog(cid, 1397, str) return true end return true end Vá em moveements.xml e coloque esta tag: <movevent type="StepIn" itemid="293" event="script" value="vocs.lua"/>
  22. Se você pelo menos tivesse a vontade de ler as regras e pelo postar o tópico em área correta Eu poderia te ajudar ao invez de mover seu tópico.
  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...