-
Total de itens
1599 -
Registro em
-
Última visita
-
Dias Ganhos
7
Tudo que caotic postou
-
Eu nao permiti criarem um tpc sobre PBO sem minha permissao. Eu previa uma falta de organizaçao no topico como aconteceu.... Mais enfim. Logo eu irei fazer um topico mais organizado. Do mais. Fechem este topico
-
Injection. Igual pokemon com as barras.
-
Eae galera xtibiana hoje irei disponbilizar um novo sistema de audio. Ou melhor 2 sistemas de audios rs acho que alguns viram o sistema de som AFL que disponiblizei para o xtibia. Mais ele erá muito limitado e alem de alguns bugs. Então eu comecei um projeto pokemon(que ainda está em pé) e a primeira coisa que veio na cabeça e um sistema de som completo que não travesse e que funcione no client da cipsoft. Então vamos la: Vamos escolher qual sistema de som vamos usar primeiramente vou explicar cada ponto: Dll Audio - A dll e compacta e super eficiente mais tem uma instalação um pouco mais dificil e requer conhecimento *Junto vem um dll com o ip(127.0.0.1) mais não se preocupe coloquei o projeto do Visual C++ para você mudar o ip e recompilar. Ela está disponivel aki: Audio Dll+Project VC++.rar Prontinho agora vamos a instalação: Primeiro execute o server de audio junto ao seu otserv: Server Audio Dll or Vb Form.rar Instale a blibioteca lua socket no seu otserv: http://w3.impa.br/~diego/software/luasocket/ Agora coloque está funcão na sua lib: function sendAudio(cid, audio)require('socket') local ip = "127.0.0.1" -- Seu ip Akilocal client = socket.connect(ip, 1234)local t = "Send,"..doConvertIntegerToIp(getPlayerIp(cid))..","..audio.."" client:send(t.."\n") client:settimeout(0.1)client:close()end Pronto quando quiser executar um som basta usar a função sendAudio(cid, "id audio") Se tiver usando a dll todos o sons devem ser guardados junto a ela. Todos os formatos de audio devem ser ".wav" e todos precisam ser enumerados de 000 a 999 se não seguir tal regra terá varios problemas. Agora vou passar um codigo em vb que fiz para você injentar a dll antes que o seu client inicie: E NECESSARIO EXECUTAR DENTRO DE UM THEARED QUANDO FOR FAZER O SEU LAUNCHER. Audio Dll+Project VC++.rar Server Audio Dll or Vb Form.rar
-
[ Algumas fotos ] WargroundSever - 8.60
tópico respondeu ao Henrique Moura de caotic em Lixeira Pública
Gostei do servidor moura. E muito dificil inovar e mesmo assim continuar com o antigo rpg tibiano ainda mais com a decandencia dos servidores tibianos. Concordo com o vital que poderia ter ousado mais no servidor. Mais com as atualizações o servidor vai evoluindo... Se precisar de algo estou livre desejo boa sorte ao projeto. -
Curti as atualizações xtibia provo que pode se levantar.
-
Eu acho sacanagem privar o xtibia de tal tool mesmo pertecendo da concorrência. Então: Ela já esta online O domínio e outro mais como tem a url da concorrência teria que passar tal: http://208.115.238.245:8080/ld.lp Espero que gostem
- 12 respostas
-
- web paginas lua
- sites lua
- (e 6 mais)
-
E talvez um verificador de syntax tal como assert seria uma boa. Mais e melhor criar uma próprio verificador e rodar no código do CT antes dele executar.
- 7 respostas
-
- linguagem ct
- ct
-
(e 3 mais)
Tags:
-
ehauehauehauhe'. Pois é. Já me chamaram de doido(eventide fdp) porque to desenvolvendo ela.
- 7 respostas
-
- linguagem ct
- ct
-
(e 3 mais)
Tags:
-
Bem estava pensando em desenvolver uma sub - linguagem ela não chega a ser uma linguagem(OBVIO) porque mesmo que use o comandos dela você estará executando em Lua. No final de tudo você esta programando em Lua . Ela e mais primitiva e então eu fiz uma demozinha e vou disponibilizar o andamento dela. Por enquanto ela tem 3 estruturas básicas função,um looopzinho e uma verificação. str = "\n--function print ['oi hear'['ola'['verdade'\n--function print ['oi'\n--loopCT [4 [{--function print ['year'}\n--gets [7 > 6 [{--function print ['oi'}\n" function string.explode(e, sep) local result = {} e:gsub("[^".. sep .."]+", function(s) table.insert(result, s:match("^%s*(.-)%s*$")) end) return result end function maior(x, y) if x == y then return "" end return "," end function interpreteFunctionInCt(str) for i in str:gmatch("--function (.*)") do local t = string.explode(i, "[") str = "" for x=2, #t do str = str..""..t[x]..""..maior(x, #t).."" end local str = t[1].."("..str..")" loadstring(str) () end end function ifCT(str) for i in str:gmatch("--gets (.*)") do local t = string.explode(i, "[") y = loadstring('return (' .. t[1].. ')')() if y then local y = string.match(i, "{(.-)}") print(y) interpreteFunctionInCt(y) end end end function loopCT(str) for i in str:gmatch("--loopCT (.*)") do local t = string.explode(i, "[") print(t[1]) for x =1, tonumber(t[1]) do local y = string.match(i, "{(.-)}") interpreteFunctionInCt(y) end end end function detectCTtype(str) for i in str:gmatch("--(.-)\n") do if string.sub(i, 1, 6) == "--func" then interpreteFunctionInCt(i) end if string.sub(i, 1, 6) == "--loop" then loopCT(i) end if string.sub(i, 1, 6) == "--gets" then ifCT(i) end end return true end detectCTtype(str) As únicas regras que existem na syntax. Saltar Linhas Cada estrutura em uma linha E sempre obedecer o "--" Veja como ficaria: --function print ['oi hear'['ola'['verdade' ---- Printa --function print ['oi'\n --- Printa --loopCT [4 [{--function print ['year'} ---Faz um loop e printa 4 vezes a função --gets [7 > 6 [{--function print ['oi'}" ----Verifica 1 argumento se for true executa a função se for false não executa a função Obs: Para que usar CT? Quem sabe para pequenos scripts ou configs. Ou mesmo para aprendizagem afinal ela super fácil de manipular.
- 7 respostas
-
- linguagem ct
- ct
-
(e 3 mais)
Tags:
-
e uma spell pode usar qualquer tag de sua preferencia.
-
E nunca aconteceu isso comigo. Mais se alguém quiser testar algo mais fundo. Tinha insertar todos os valores numa table e verificar se não tem repetição.
-
local voc = { [1] = {level = 1, summon = "Demon"} } function onCastSpell(cid, var) if not voc[getPlayerVocation(cid)] then return 0 end local sum = voc[getPlayerVocation(cid)] local level = voc[getPlayerVocation(cid)].level local monster = voc[getPlayerVocation(cid)].summon if level <= getPlayerLevel(cid) then doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você necessita de "..level.." para summonar") return 0 end if #getCreatureSummons(cid) >= 1 then doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você já tem um summon") return 0 end local monstro = doCreateMonster(monster, getThingPos(cid)) doConvinceCreature(cid, monstro) return true end
-
Bem.. Tava conversando com o eventide sobre um verificador de storages para otserv. Basicamente ele rodaria todo seu otserv em busca de storages e te desse o valor delas. Antes de realizar o programa tem que fazer sua estrutura. Então fiz a função que iria buscar os valores e as storages: local str = "setPlayerStorageValue(cid, 23232, 1+2)\nsetPlayerStorageValue(cid, 211, 8)\n x(x, y)\n setPlayerStorageValue(cid, 2322, 1)\n" function string.explode(e, sep) local result = {} e:gsub("[^".. sep .."]+", function(s) table.insert(result, s:match("^%s*(.-)%s*$")) end) return result end function findStr(str, x) _ = "" for i in str:gmatch("setPlayerStorageValue(.-)\n") do explode = string.explode(i, ",") value = string.sub(explode[3], 1, #explode[3]-1) if x then y = loadstring('return (' .. value .. ')')() end _ = _.." \n" s = _..explode[2] _ = s.." Value = "..y or 'Not Value'.."" end return _ end print(findStr(str, true)) Já penso roda isto no seu otserv todo. Melhor ficarem so com a função e se quiserem usar no seu otserv. Recomendo a blibioteca lua file system e coragem. Abs
-
Umas melhorias . local exhausted = 10 function onSay(cid, words, param) if param ~= "" and getPlayerStorageValue(cid, 11450) > os.time() then doPlayerSendTextMessage(cid, 20, "Você deve aguardar "..getPlayerStorageValue(cid, 11450) - os.time().." segundos para mudar seus Status.") return true end if param == "clean" then setPlayerStorageValue(cid, 11449, -1) return true end if param == "" then str = "-- \\ Atualização de status // --" for _, pid in ipairs(getPlayersOnline()) do if getPlayerStorageValue(pid, 11449) == tonumber(-1) then return true end str = str..""..getCreatureName(pid)..": "..getPlayerStorageValue(pid, 11449).."\n" end doShowTextDialog(cid, 1397, str) return true end setPlayerStorageValue(cid, 11449, param) setPlayerStorageValue(cid, 11450, os.time() + exhausted) doPlayerSendTextMessage(cid, 20, "Você atualizou o seu Status para: {"..param.."}.") return true end
-
Olha eventide. Eu percebi uma certa facilidade talvez seja porque já desenvolvo em Lua. Seguidamente percebi que há limitações mais isto e obvio. Da uma olhada na plataforma. Tire suas próprias conclusões você vai gostar. E um grande projeto.
- 12 respostas
-
- web paginas lua
- sites lua
- (e 6 mais)
-
Digamos que eu gosto de usar o while: function reverse(str) local t = string.explode(str, " ") x = #t y = "" while x > 0 do _ = x-1 > 0 and t[x].." " or t[x] y = y.._ x = x-1 end return y end print(reverse("Ola oi ss kk"))
-
pedido [pedido] função que converte mes com o dia de uma string
pergunta respondeu ao drakylucas de caotic em Scripts
Bem de qualquer maneira eu recomendo a utilização da função. Porque se tiver apenas 1 digito vai bugar bastante a data. -
pedido [pedido] função que converte mes com o dia de uma string
pergunta respondeu ao drakylucas de caotic em Scripts
Deixa eu ver se entendi você quer uma função que mude de lugar na string dia/mês para mês/dia Se for e fácil function dateString(string) local function setDateStringTwoValues(string) y = string for i = 1, #y do local t = string.sub(y, i, i) if t == "/" and string.sub(y, i-2, i-2) == "" or t == "/" and string.sub(y, i-2, i-2) == "/" then y = ""..string.sub(y, 1, i-2).."0"..string.sub(y, i-1, #y).."" end end return y end local string = setDateStringTwoValues(string) local y = string.sub(string, 1, 3)..string.sub(string, 7, 10) local t = string.sub(string, 4, 6)..y return t end print(dateString("6/1/2013")) Funções acima analisa se a string verificando se o mês ou o dia tem apenas um único numeral. E se tiver apenas um único numeral ex: 2 ela transforma em dois ex :02(Isto evita bug) Depois ela só troca o lugar o mês pelo vice versa. E pronto -
Você pode usar o for no gmatch e ir procurando o groupId. Mais não seria mais fácil você já inserir na string do gtmach o que você procura tipo (""..id.."(.-)...") local t = "Ola EHEHEHE" for i in t:gmatch("Ola(.*)") do print(i) end
-
talkaction [TalkAction] Spell informations
tópico respondeu ao Skymagnum de caotic em Actions e Talkactions
Mais ou menos tinha suas diferenças mais era parecido sim. -
talkaction [TalkAction] Spell informations
tópico respondeu ao Skymagnum de caotic em Actions e Talkactions
Eu fiz uma talk parecida ela exibia as spells que o player pode usar o processo e o mesmo usando gmatch . -
Muito legal o criado do script fazer uma busca na database sendo que ele pode usar um for em getPlayerOnline. str = "Equipe On" for i =1, #getPlayersOnline() do local player = getPlayersOnline()[i] if getPlayerGroupId(player) > 2 then str = str..getPlayerName(player) end doShowTextDialog(cid, 1397, str) end
-
Opa então o projeto vai ficar online para a comunidade.
- 12 respostas
-
- web paginas lua
- sites lua
- (e 6 mais)
-
Quem Está Navegando 0 membros estão online
- Nenhum usuário registrado visualizando esta página.