-
Total de itens
39 -
Registro em
-
Última visita
-
Dias Ganhos
2
Tudo que Mock postou
-
Esculaxed ._.' Em fim o que acho que deveria ter é um filtro. pelo que se ve as pessoas podem simplemente xegar dar ctrl-c no BB code e ctrl-v aqui e postar e pronto. poderia aver um controle como exite em outros forums, quando se posta um AMD avalia, quando ripping nao sai ao pulblico e evita constrangimento para ambos os lados. E venho notado que des de sempre existe rippings principalmente aqui e naquele outro forum chamado terra ot em ingles pois ambos nao tem um controle nas postagens.
-
inutil nao. vocÊ vai usar umas 30 linhas pra pegar so o HP max de um monstro no XML ou algo do loot nisso vc usa 3~4 linhas e pronto.
-
poderia tirar o conteudo desse topico tambem? sem autorização.
-
opa opa opa. Poderiam deletar o topico? ele trouxe pra ca sem fala comigo.
-
eu me pergunto MAIS QUE PORRA Q VCS CISMA EM USAR if item.itemid == xxxx then se vc define no XML que o item so sera executado se der use pelo ID pra que vcs poe isso? tao verificando praticamente se 1+1 é 2 -.- sobre o script. podia estar bem melhor. muito grande, sem identação.
-
ele da refresh quando da save no server.
-
Você que criou? tem certeza :withstupidsmiley:
-
simples, pegar informações do XML rapido, facil e pratico usando isso. Vo faze um script usando isso c vai ve ^^
-
obrigado pelo ripping. http://forums. (omg) .com.br/f29/8-4-tfs-0-3-in-game-ranks-76305/
-
talkaction [talkaction] Removendo Red Skull
tópico respondeu ao Benefactor de Mock em Actions e Talkactions
nao é por nada nao mais esse lyu elite ripou esse script de outro cara ._. -
mas esse script funciona em servidores até 8.1 ^^
-
Servidor testado: TFS 0.3.1 (possivelmente em versoes anteriores) Servidor testado2: Matriz Autor: Mock -- eu xP Versão: 1.2.1 Percebi que muitos otservers 8.5 não tem esse sistema justamente por o TFS nao ter integrado ele ainda, apenas matriz o possue, a certeza que esse script pode funcionar em até servidores 8.22 ou 8.1 é que ele funciona em matriz e antigamente até as versoes 8.1 e 8.22 quase todos usavam servidores a base da matriz (otserv original) e quase ninguem usava TFS, entao tive que fazer 2 versoes, só estarei postando a versão do TFS, caso alguem queira a da matriz peça por PVT. Vamos começar. Bom uma função que mudou de função no TFS é a getItemName, no TFS pega por UID e na matriz por itemid entao fiz algumas mudanças, mais deixe de lado vamos instalar. Vá até a pasta creaturescripts, abra o login.lua. antes do utimo: return TRUE end Adcione uma linha ficando assim: registerCreatureEvent(cid, "loot") return TRUE end Salve. e abra o creaturescripts.xml e adcione esta tag: <event type="kill" name="loot" event="script" value="loot.lua"/> Feito o mesmo abra a pasta scripts e crie o arquivo loot.lua e insira isso: --- Script by mock local function find(pa)--- Script by mock for i=1,255 do pa.stackpos = i local corpse = getThingfromPos(pa) if isCorpse(corpse.uid) == TRUE then if isContainer(corpse.uid) == TRUE then return corpse.uid end end end return FALSE end local function getConteiner(item)--- Script by mock if isContainer(item.uid) == FALSE then return "" end local items = getItemName(item.itemid)..": (" local g = doAddContainerItem(item.uid,2815,1) for i=1, getContainerCap(item.uid) do local k = getContainerItem(item.uid, i) if k.itemid ~= 0 then if isContainer(k.uid) == TRUE then items = items..getConteiner(k)..', ' print('o0') else if k.type > 1 then items = items..k.type..'x '..getItemNameById(k.itemid).."s, " else items = items..getItemNameById(k.itemid)..", " end end end end items = items:sub(1,#items-2)..'.' doRemoveItem(g,-1) return items..')' end function getLoot(pa,cid,nam)--- Script by mock corpse = find(pa) if corpse == FALSE then return FALSE end local g = doAddContainerItem(corpse,2815,1) local str = 'Loot de '..nam..': ' for i=1, getContainerCap(corpse) do local a = getContainerItem(corpse, i) if a.itemid ~= 0 then if isContainer(a.uid) == TRUE then str = str..getConteiner(a)..' , ' else if a.type > 1 then str = str..a.type..'x '..getItemNameById(a.itemid)..'s, ' else str = str..getItemNameById(a.itemid)..', ' end end end end doRemoveItem(g,-1) str = str:sub(1,#str-2)..'.' doPlayerSendTextMessage(cid, 23, str) end function onKill(cid, target)--- Script by mock addEvent(getLoot,100,getCreaturePosition(target),cid,getCreatureName(target)) return 1 end Apos isso, salve e feche o server, nao adianta dar reload pois todos os players tem que fazer login dinovo. Apos isso toda vez que um monstro morrer os players verão seu loot conforme a foto: Só relembrando, tem servidores que ja possue esse sistema como a matriz, algums ja editaram o TFS inserindo esse sistema, porem o oficial não o possue então serve para ele. Divirtam-se
-
.... ._. isso é pra usar em lua, nos otservers...
-
talkaction [talkaction] Removendo Red Skull
tópico respondeu ao Benefactor de Mock em Actions e Talkactions
ruim demais pra ot servers serios e EXP alta, a pessoa usando esse comando tira sua propria skull apos matar 1/4 do servidor. -
Olá, estou aqui postando 5 funções para mexer com XML (pegar dados apenas) vi que algumas pessoas tem dificuldade para pegar dados de um XML entao decidi fazer essa lib, apesar de ser bem inutil para pessoas experientes ela serve para iniciantes, ficou bem simples, defidi mesmo fazela para ter mais um motivo para usar POO em uma lib Essa lib roda em qualquer otserver pois rodou no debugger do SCITE e do otscript live se nao rodar no seu server e por causa da função string.explode. Em fim sim eu sou mock daquele forum concorrente ._. decidi postar essa lib aqui tambem pois aqui tem muitos usuarios que ela poderia ser util. Vamos adciona-la logo, vá até funcions.lua e adcione essa linha: dofile('Easy-xml-lib.lua') Depois fassa o download da lib aqui: http://lua.pastey.net/119938 ou se preferir crie o arquivo easy-xml-lib.lua e ponha o seguinte conteudo: --[[ * Author: Mock * Version: 1.00.0 * How to use: > local kind = 2 -- you can change to see another mode > local XML = [==[ <?xml version="1.0" encoding="UTF-8"?> <flags> <flag summonable="0"/> <flag attackable="0"/> <flag hostile="1"/> <flag illusionable="0"/> <flag convinceable="0"/> <flag pushable="1"/> <flag canpushitems="1"/> <flag canpushcreatures="0"/> <flag targetdistance="1"/> <flag staticattack="90"/> <flag runonhealth="0"/> </flags> ]==] > local read = xml:open(XML) -- or xml:open('<xml string="..../>') > read:setSess('flags','flag','mysession') -- <flags>, <flag summonable="0"/>, name of this session? > print(type(read:getSess('mysession'))) --- Will print on console an swtring with XML code fo session flag: <flags><flag summonab... > if kind == 1 then >> table_ = read:readSess('mysession') > else >> table_ = read:readFree('flag') > end > print('-----') > for k,v in pairs(table_) do >> for m,n in pairs(v) do >>> print(m,n) >> end > end >>> print: table ----- summonable, 0 attackable, 0 hostile, 1 illusionable, 0 convinceable, 0 pushable, 1 canpushitems, 1 canpushcreatures, 0 targetdistance, 1 staticattack, 90 runonhealth, 0 * Special thanks for: ** Skyen hasus ** Magus ]]-- xml = {} -- classe function xml:open(file,kind) if kind ~= nil then local file2 = assert(io.open(file,'r')) file = file2:read(-1) file2:close() end if file == nil then return error('File is empyt') end alt = string.explode(file,'\n',2) if alt[1] == nil or string.find(alt[1],"<?xml") == nil then return error('Bad xml format') end file = {text=alt[2],encoding=alt,session={}} setmetatable(file, {__index = xml}) return file end function xml:setSess(sessname,tagname,setSess) xmlstr = self.text local f = "" for ret in xmlstr:gmatch('<'..sessname..'>(.-)</'..sessname..'>') do f = ret end if f:len() == 0 then return error('Cannot find session called '..sessname..'.') end self.session[setSess] = {f,tagname=tagname,sessname=sessname} return TRUE end function xml:getSess(SessName) return self.session[SessName] end function xml:readSess(SessName) local ret = self.session[SessName] local t,x = {},1 for xmla in ret[1]:gmatch('<'..ret.tagname..' (.-)/>') do t[x] = {} for i, v in xmla:gmatch('([^ ]-)="(.-)"') do t[x][i] = v end x = x + 1 end return t end function xml:readFree(tagname) local ret = self.text local t,x = {},1 for xmla in ret:gmatch('<'..tagname..' (.-)/>') do t[x] = {} for i, v in xmla:gmatch('([^ ]-)="(.-)"') do t[x][i] = v end x = x + 1 end return t end No proprio script tem ensinando a usar: local kind = 2 -- you can change to see another mode local XML = [==[ <?xml version="1.0" encoding="UTF-8"?> <flags> <flag summonable="0"/> <flag attackable="0"/> <flag hostile="1"/> <flag illusionable="0"/> <flag convinceable="0"/> <flag pushable="1"/> <flag canpushitems="1"/> <flag canpushcreatures="0"/> <flag targetdistance="1"/> <flag staticattack="90"/> <flag runonhealth="0"/> </flags> ]==] local read = xml:open(XML) -- or xml:open('<xml string="..../>') read:setSess('flags','flag','mysession') -- <flags>, <flag summonable="0"/>, name of this session? print(type(read:getSess('mysession'))) --- Will print on console an swtring with XML code fo session flag: <flags><flag summonab... if kind == 1 then table_ = read:readSess('mysession') else table_ = read:readFree('flag') end print('-----') for k,v in pairs(table_) do for m,n in pairs(v) do print(m,n) end end Apesar disso ainda fiz uma função adcional para aprenderem melhor ocmo se usa a lib: local XML = [==[ <?xml version="1.0" encoding="UTF-8"?> <vars> <var name="Mock" id="123"/> <var level="27"/> </vars> <vars2> <var2 name="Skyen" id="321"/> <var2 level="12"/> </vars2> ]==] local v_a = xml:open(XML) v_a:setSess('vars','var','mocksess') v_a:setSess('vars2','var2','skyensess') ret = v_a:readSess('mocksess') print(ret[1].name) ret2 = v_a:readSess('skyensess') print(ret2[1].name) Ele vai mostar no console: Mock Skyen Resumindo ele retorna uma tabela +/- assim Table = { [1] = {name="mock", id=123}, [2] = {level=12} } caso eu tenha postado na seção errada perdão poderima mover para a correta? Caso seje a seção correta ignore oq eu disse acima.
-
Esse scritpt foi feito por Skyen Haus, no fórum concorrente e foi "ripado" pelo autor desse topic, e foi postado sem a autorização do usuario Skyen Haus Link Removido
-
1º Evento eterno Bom vou hoje lhes ensinar uma coisa que ate hoje so tem no meu server mas tenho 80% de ctz que quando voçÊ combinar esse script com o proximo seu server vai ter isso tambem esse script e apenas um loop. (não se assutem seu server não vai travar por causa deles) é um loop controlado. bom essa 1ª parte ta mais pra um tutorial vo ensinar como fazer um e vou postar 1 aqui. 1º imagenem um loop como um motor de um carro voçê da da a partida ele liga um pistão sobe e o outro dece e o que sobe nele ocorre uma mini explosão forçando-o para baixo fazendo o outro subir. Isso vai ocorrer ate que: Seje desligado Ou acabe a gasolina. ^isso acima pode ser visto como vc interromper o loop com alguma forma ou sipplesmente fexar o server. Tah vamo ao q interessa logo local velocidade = 3000 -- 3 segundos local function loop(valores) --- Aqui poe as funçoes que ocorreram de 3 em 3 segundos. addEvent(loop, velocidade, valore) -- Não remova isso end --- isso abaixo e para iniciar o loop. function onUse(cid, item, frompos, item2, topos) valores = {cid = cid, topos = topos} -- Isso e so pra "encher linguiça" addEvent(loop, velocidade, valores) end Vc acredita que acabo? agora va no action.xml e ponha pra executar essa action da forma q lhe parecer melhor. ai pronto isso sera executado a cada 3 segundos. GRATZ MOCK E ONDE EU USO ISSO? Mock: Aqui \/ 2º TPS falantes Agora que voçê viu o evento eterno podemos faze um tp falante 1º vc instala o evento eterno no seu server. e depois e facil d+ fazer so vai falta a criatividade. bom vou dar uma amostra aqui nessa foto. Imagem rejeitada -> http://geocities.yahoo.com.br/limaoserv/all.bmp Bom como vc viu acima aparecem textos falando oq é cada tp pra aqueles q n gostam de dar look xD esse texto aparece de 3 em 3 segundos em cada tp. agora vou ensinar como se faz. Supondo que tem um tp na posição x 112 y 342 z 7 e fosse um tp p dragon vc faria isso: local velocidade = 3000 -- 3 segundos local color = TEXTCOLOR_RED local function loop(valores) doSendAnimatedText({x=112, y=342, z=7},"Dragons",color) addEvent(loop, velocidade, valore) -- Não remova isso end function onUse(cid, item, frompos, item2, topos) valore = {cid = cid, topos = topos} addEvent(loop, velocidade, valore) end Pronto ai a cada 3 segundos ira aparecer uma pequena msg caso queira fazer em todos os tps de sua sala de tp voçÊ TERA que fazer 1 POR 1 assim: local function loop(valores) doSendAnimatedText({x=112, y=342, z=7},"Dragons",color) doSendAnimatedText({x=118, y=342, z=7},"Demons",color) doSendAnimatedText({x=129, y=342, z=7},"wyvern",color) doSendAnimatedText({x=193, y=542, z=7},"DS",color) addEvent(loop, velocidade, valore) -- Não remova isso end Lembre-se que essa função tem um limite de 8 letras ai pra vc colocar + e so fazer assim: o Texto "Look pq é grande" faz assim: doSendAnimatedText({x=2, y=2, z=7},"Look pq",color) doSendAnimatedText({x=3, y=2, z=7},"E grande",color) Tag em actions.xml <action actionid="1483" script="coal.lua" />
-
sim... o clean e mais pratico so que tipo se um noob chega la no seu templo ai joga variso vials e seu server ta meio sobrecarregado ou voçê não quer dar clean p limpa os itens do npc e so vc usar esse bot e alem disso que isso diferencia seu server de outros
-
Bom esse script foi postado em outro forum la sou conhecido como Mock e venho postar aqui tambem. Bom esse script consta apenas um Bot que limpa o mapa. porem não e um script comun e um script revolucionario Bom antes de ver o script sugiro ver o video: http://br.youtube.com/watch?v=KaQlnGKkVfY Agora qu voçê ja viu vamos ao CONFIG 1º Crie um arquivo chamado lixoconfig.lua Ai nele ponha esse script: ---------------------Bot cleanner config by Mock---------- -----------------------Feito exclusivamente para ot net e Xtibia----- ----- Voçê não tem autorização para remover os creditos velocidade = 700 --- Velocidade em milisegundos que ele ira dar 1 passo. Efeito_normal = 46 -- magic effect do bot (nesse caso seria aquela plantinha carnivora verde exclusoes1 = 1740 --- Id de item que não sera deleto pelo bot (esseção) exclusoes2 = 2106 --- Id de item que não sera deleto pelo bot (esseção) exclusoes3 = 2207 --- Id de item que não sera deleto pelo bot (esseção) exclusoes4 = 1027 --- Id de item que não sera deleto pelo bot (esseção) exclusoes5 = 7840 --- Id de item que não sera deleto pelo bot (esseção) exclusoes6 = 2207 --- Id de item que não sera deleto pelo bot (esseção) Bomb_chance = 6 --- Chance de ele usar um "Clean berserk" Bomb_efeito = 13 --- Magic effect do "clean berserk" ----=======---- ----Atenção! ----Antes de usar leia atentamente a isto. ----As exclusoes acima são de ID's de itens que não serão deletados. ----Apenas itens que se movem são deletados. ----E deletado apenas 1 item por vez. ----Para delimitar uma area que ele não passa em volta desta area ponha action id 500 exemplo: Casas NPCS ----O action id DEVE ser posto no chao! ----======---- Bom feito isso agora fassa o seguinte va no actions.xml add esta tag: <action actionid="1473" script="lixo.lua" /> Agora em seu map editor ponha um action id 1473 no meio do templo no chao em uma alavanca o que voçê quiser (pois so asses 6+ vai poder dar use) feito isso sugjiro voçê por action id 500 no chao em volta do templo (CHAO! não conta como bordas paredes itens no chao é o chao mesmo o tile o sqm!) Não deixe 1 brecha no qual seje possivel ele passar pois esse bot é perigoso se ele entra em uma house ele não ta nen ai ele sai limpando. ele atravessa paredes anda em sqms sem ground! (fica aparecendo msg de erro na janelinha do server ) Bom agora preparem-se pois ai vem o script Script! ---------------Bot cleanner By mock-------------- ---------------Esclusivo para ot net e Xtibia------------- --------------- Hail limao server :) Hail ot net Hail xtibia---- dofile('lixoconfig.lua') local function andar(varli) ----- Falando local random = math.random(1,220) if random == 15 then doSendAnimatedText(varli.topos,"Olá",TEXTCOLOR_DAR KRED) elseif random == 20 then doSendAnimatedText(varli.topos,"Vou",TEXTCOLOR_DAR KRED) doSendAnimatedText({x = varli.topos.x+1, y = varli.topos.y ,z = varli.topos.z},"Destruir",TEXTCOLOR_DARKRED) elseif random == 25 then doSendAnimatedText(varli.topos,"Ahahaha",TEXTCOLOR _DARKRED) elseif random == 30 then doSendAnimatedText(varli.topos,"xD",TEXTCOLOR_DARK RED) elseif random == 35 then doSendAnimatedText(varli.topos,"Hail",TEXTCOLOR_DA RKRED) elseif random == 40 then doSendAnimatedText(varli.topos,"Blz?",TEXTCOLOR_DA RKRED) elseif random == 45 then doSendAnimatedText(varli.topos,"",TEXTCOLOR_DAR KRED) elseif random ==50 then doSendAnimatedText(varli.topos,"Limpo",TEXTCOLOR_D ARKRED) elseif random == 55 then doSendAnimatedText(varli.topos,":D",TEXTCOLOR_DARK RED) elseif random == 60 then doSendMagicEffect(varli.topos,math.random(1,53)) end if math.random(1,Bomb_chance) == 5 then maspos1 = {x = varli.topos.x, y = varli.topos.y +1,z = varli.topos.z,stackpos=255} doSendMagicEffect(maspos1,Bomb_efeito) Items = getThingfromPos(maspos1) if Items.itemid > 0 then if (isPlayer(Items.uid) == TRUE) then doSendAnimatedText(maspos1,"Player", TEXTCOLOR_PURPLE) else if Items.itemid == exclusoes1 or Items.itemid == exclusoes2 or Items.itemid == exclusoes3 or Items.itemid == exclusoes4 or Items.itemid == exclusoes5 or Items.itemid == exclusoes6 then doSendAnimatedText(maspos1,"Block", TEXTCOLOR_LIGHTGREEN) doSendMagicEffect(maspos1,31) else doRemoveItem(Items.uid, -1) doSendMagicEffect(maspos1,Efeito_normal) doSendAnimatedText(maspos1,"Deleted", TEXTCOLOR_DARKRED) end end end maspos1 = {x = varli.topos.x, y = varli.topos.y -1,z = varli.topos.z,stackpos=255} doSendMagicEffect(maspos1,Bomb_efeito) Items = getThingfromPos(maspos1) if Items.itemid > 0 then if (isPlayer(Items.uid) == TRUE) then doSendAnimatedText(maspos1,"Player", TEXTCOLOR_PURPLE) else if Items.itemid == exclusoes1 or Items.itemid == exclusoes2 or Items.itemid == exclusoes3 or Items.itemid == exclusoes4 or Items.itemid == exclusoes5 or Items.itemid == exclusoes6 then doSendAnimatedText(maspos1,"Block", TEXTCOLOR_LIGHTGREEN) doSendMagicEffect(maspos1,31) else doRemoveItem(Items.uid, -1) doSendMagicEffect(maspos1,Efeito_normal) doSendAnimatedText(maspos1,"Deleted", TEXTCOLOR_DARKRED) end end end maspos1 = {x = varli.topos.x+1, y = varli.topos.y +1,z = varli.topos.z,stackpos=255} doSendMagicEffect(maspos1,Bomb_efeito) Items = getThingfromPos(maspos1) if Items.itemid > 0 then if (isPlayer(Items.uid) == TRUE) then doSendAnimatedText(maspos1,"Player", TEXTCOLOR_PURPLE) else if Items.itemid == exclusoes1 or Items.itemid == exclusoes2 or Items.itemid == exclusoes3 or Items.itemid == exclusoes4 or Items.itemid == exclusoes5 or Items.itemid == exclusoes6 then doSendAnimatedText(maspos1,"Block", TEXTCOLOR_LIGHTGREEN) doSendMagicEffect(maspos1,31) else doRemoveItem(Items.uid, -1) doSendMagicEffect(maspos1,Efeito_normal) doSendAnimatedText(maspos1,"Deleted", TEXTCOLOR_DARKRED) end end end maspos1 = {x = varli.topos.x-1, y = varli.topos.y +1,z = varli.topos.z,stackpos=255} doSendMagicEffect(maspos1,Bomb_efeito) Items = getThingfromPos(maspos1) if Items.itemid > 0 then if (isPlayer(Items.uid) == TRUE) then doSendAnimatedText(maspos1,"Player", TEXTCOLOR_PURPLE) else if Items.itemid == exclusoes1 or Items.itemid == exclusoes2 or Items.itemid == exclusoes3 or Items.itemid == exclusoes4 or Items.itemid == exclusoes5 or Items.itemid == exclusoes6 then doSendAnimatedText(maspos1,"Block", TEXTCOLOR_LIGHTGREEN) doSendMagicEffect(maspos1,31) else doRemoveItem(Items.uid, -1) doSendMagicEffect(maspos1,Efeito_normal) doSendAnimatedText(maspos1,"Deleted", TEXTCOLOR_DARKRED) end end end maspos1 = {x = varli.topos.x-1, y = varli.topos.y -1,z = varli.topos.z,stackpos=255} doSendMagicEffect(maspos1,Bomb_efeito) Items = getThingfromPos(maspos1) if Items.itemid > 0 then if (isPlayer(Items.uid) == TRUE) then doSendAnimatedText(maspos1,"Player", TEXTCOLOR_PURPLE) else if Items.itemid == exclusoes1 or Items.itemid == exclusoes2 or Items.itemid == exclusoes3 or Items.itemid == exclusoes4 or Items.itemid == exclusoes5 or Items.itemid == exclusoes6 then doSendAnimatedText(maspos1,"Block", TEXTCOLOR_LIGHTGREEN) doSendMagicEffect(maspos1,31) else doRemoveItem(Items.uid, -1) doSendMagicEffect(maspos1,Efeito_normal) doSendAnimatedText(maspos1,"Deleted", TEXTCOLOR_DARKRED) end end end maspos1 = {x = varli.topos.x+1, y = varli.topos.y -1,z = varli.topos.z,stackpos=255} doSendMagicEffect(maspos1,Bomb_efeito) Items = getThingfromPos(maspos1) if Items.itemid > 0 then if (isPlayer(Items.uid) == TRUE) then doSendAnimatedText(maspos1,"Player", TEXTCOLOR_PURPLE) else if Items.itemid == exclusoes1 or Items.itemid == exclusoes2 or Items.itemid == exclusoes3 or Items.itemid == exclusoes4 or Items.itemid == exclusoes5 or Items.itemid == exclusoes6 then doSendAnimatedText(maspos1,"Block", TEXTCOLOR_LIGHTGREEN) doSendMagicEffect(maspos1,31) else doRemoveItem(Items.uid, -1) doSendMagicEffect(maspos1,Efeito_normal) doSendAnimatedText(maspos1,"Deleted", TEXTCOLOR_DARKRED) end end end maspos1 = {x = varli.topos.x-1, y = varli.topos.y ,z = varli.topos.z,stackpos=255} doSendMagicEffect(maspos1,Bomb_efeito) Items = getThingfromPos(maspos1) if Items.itemid > 0 then if (isPlayer(Items.uid) == TRUE) then doSendAnimatedText(maspos1,"Player", TEXTCOLOR_PURPLE) else if Items.itemid == exclusoes1 or Items.itemid == exclusoes2 or Items.itemid == exclusoes3 or Items.itemid == exclusoes4 or Items.itemid == exclusoes5 or Items.itemid == exclusoes6 then doSendAnimatedText(maspos1,"Block", TEXTCOLOR_LIGHTGREEN) doSendMagicEffect(maspos1,31) else doRemoveItem(Items.uid, -1) doSendMagicEffect(maspos1,Efeito_normal) doSendAnimatedText(maspos1,"Deleted", TEXTCOLOR_DARKRED) end end end maspos1 = {x = varli.topos.x+1, y = varli.topos.y ,z = varli.topos.z,stackpos=255} doSendMagicEffect(maspos1,Bomb_efeito) Items = getThingfromPos(maspos1) if Items.itemid > 0 then if (isPlayer(Items.uid) == TRUE) then doSendAnimatedText(maspos1,"Player", TEXTCOLOR_PURPLE) else if Items.itemid == exclusoes1 or Items.itemid == exclusoes2 or Items.itemid == exclusoes3 or Items.itemid == exclusoes4 or Items.itemid == exclusoes5 or Items.itemid == exclusoes6 then doSendAnimatedText(maspos1,"Block", TEXTCOLOR_LIGHTGREEN) doSendMagicEffect(maspos1,31) else doRemoveItem(Items.uid, -1) doSendMagicEffect(maspos1,Efeito_normal) doSendAnimatedText(maspos1,"Deleted", TEXTCOLOR_DARKRED) end end end end ---- Andando dire = math.random(1,4) if dire == 1 then maspos = {x = varli.topos.x, y = varli.topos.y +1,z = varli.topos.z,stackpos=255} Items = getThingfromPos(maspos) ------------------- Itempost = {x = varli.topos.x, y = varli.topos.y +1,z = varli.topos.z,stackpos=0} val = getThingfromPos(Itempost) if val.actionid ~= 500 then if Items.itemid > 0 then if (isPlayer(Items.uid) == TRUE) then doSendAnimatedText(maspos,"Player", TEXTCOLOR_PURPLE) varli = {cid = varli.cid, topos = maspos} else if Items.itemid == exclusoes1 or Items.itemid == exclusoes2 or Items.itemid == exclusoes3 or Items.itemid == exclusoes4 or Items.itemid == exclusoes5 or Items.itemid == exclusoes6 or val.actionid == 500 then doSendAnimatedText(maspos,"Block", TEXTCOLOR_LIGHTGREEN) masposa = {x = maspos.x, y = maspos.y -1,z = maspos.z,stackpos=255} varli = {cid = varli.cid, topos = masposa} doSendMagicEffect(masposa,31) else doRemoveItem(Items.uid, -1) doSendMagicEffect(maspos,Efeito_normal) doSendAnimatedText(maspos,"Deleted", TEXTCOLOR_DARKRED) varli = {cid = varli.cid, topos = maspos} end end else varli = {cid = varli.cid, topos = maspos} end else doSendAnimatedText(maspos,"Block", TEXTCOLOR_LIGHTGREEN) masposa = {x = maspos.x, y = maspos.y -1,z = maspos.z,stackpos=255} varli = {cid = varli.cid, topos = masposa} doSendMagicEffect(masposa,31) end --------------------- doSendMagicEffect(maspos,Efeito_normal) addEvent(andar, velocidade, varli) end if dire == 2 then maspos = {x = varli.topos.x, y = varli.topos.y -1,z = varli.topos.z,stackpos=255} Items = getThingfromPos(maspos) ----------- Itempost = {x = varli.topos.x, y = varli.topos.y -1,z = varli.topos.z,stackpos=0} val = getThingfromPos(Itempost) if val.actionid ~= 500 then if Items.itemid > 0 then if (isPlayer(Items.uid) == TRUE) then doSendAnimatedText(maspos,"Player", TEXTCOLOR_PURPLE) varli = {cid = varli.cid, topos = maspos} else if Items.itemid == exclusoes1 or Items.itemid == exclusoes2 or Items.itemid == exclusoes3 or Items.itemid == exclusoes4 or Items.itemid == exclusoes5 or Items.itemid == exclusoes6 or val.actionid == 500 then doSendAnimatedText(maspos,"Block", TEXTCOLOR_LIGHTGREEN) masposa = {x = maspos.x, y = maspos.y +1,z = maspos.z,stackpos=2} varli = {cid = varli.cid, topos = masposa} doSendMagicEffect(masposa,31) else doRemoveItem(Items.uid, -1) doSendMagicEffect(maspos,9) doSendAnimatedText(maspos,"Deleted", TEXTCOLOR_DARKRED) varli = {cid = varli.cid, topos = maspos} end end else varli = {cid = varli.cid, topos = maspos} end else doSendAnimatedText(maspos,"Block", TEXTCOLOR_LIGHTGREEN) masposa = {x = maspos.x, y = maspos.y +1,z = maspos.z,stackpos=2} varli = {cid = varli.cid, topos = masposa} doSendMagicEffect(masposa,31) end --------------------------- doSendMagicEffect(maspos,Efeito_normal) addEvent(andar, velocidade, varli) end if dire == 3 then maspos = {x = varli.topos.x +1, y = varli.topos.y ,z = varli.topos.z,stackpos=255} Items = getThingfromPos(maspos) Itempost = {x = varli.topos.x +1, y = varli.topos.y ,z = varli.topos.z,stackpos=0} val = getThingfromPos(Itempost) if val.actionid ~= 500 then if Items.itemid > 0 then if (isPlayer(Items.uid) == TRUE) then doSendAnimatedText(maspos,"Player", TEXTCOLOR_PURPLE) varli = {cid = varli.cid, topos = maspos} else if Items.itemid == exclusoes1 or Items.itemid == exclusoes2 or Items.itemid == exclusoes3 or Items.itemid == exclusoes4 or Items.itemid == exclusoes5 or Items.itemid == exclusoes6 or val.actionid == 500 then doSendAnimatedText(maspos,"Block", TEXTCOLOR_LIGHTGREEN) masposa = {x = maspos.x -1, y = maspos.y ,z = maspos.z,stackpos=255} varli = {cid = varli.cid, topos = masposa} doSendMagicEffect(masposa,31) else doRemoveItem(Items.uid, -1) doSendMagicEffect(maspos,9) doSendAnimatedText(maspos,"Deleted", TEXTCOLOR_DARKRED) varli = {cid = varli.cid, topos = maspos} end end else varli = {cid = varli.cid, topos = maspos} end else doSendAnimatedText(maspos,"Block", TEXTCOLOR_LIGHTGREEN) masposa = {x = maspos.x -1, y = maspos.y ,z = maspos.z,stackpos=255} varli = {cid = varli.cid, topos = masposa} doSendMagicEffect(masposa,31) end --------------------- doSendMagicEffect(maspos,Efeito_normal) addEvent(andar, velocidade, varli) end if dire == 4 then maspos = {x = varli.topos.x -1, y = varli.topos.y ,z = varli.topos.z,stackpos=255} Items = getThingfromPos(maspos) Itempost = {x = varli.topos.x -1, y = varli.topos.y ,z = varli.topos.z,stackpos=0} val = getThingfromPos(Itempost) if val.actionid ~= 500 then if Items.itemid > 0 then if (isPlayer(Items.uid) == TRUE) then doSendAnimatedText(maspos,"Player", TEXTCOLOR_PURPLE) varli = {cid = varli.cid, topos = maspos} else if Items.itemid == exclusoes1 or Items.itemid == exclusoes2 or Items.itemid == exclusoes3 or Items.itemid == exclusoes4 or Items.itemid == exclusoes5 or Items.itemid == exclusoes6 then doSendAnimatedText(maspos,"Block", TEXTCOLOR_LIGHTGREEN) masposa = {x = maspos.x +1, y = maspos.y ,z = maspos.z,stackpos=255} varli = {cid = varli.cid, topos = masposa} doSendMagicEffect(masposa,31) else doRemoveItem(Items.uid, -1) doSendMagicEffect(maspos,Efeito_normal) doSendAnimatedText(maspos,"Deleted", TEXTCOLOR_DARKRED) varli = {cid = varli.cid, topos = maspos} end end else varli = {cid = varli.cid, topos = maspos} end else doSendAnimatedText(maspos,"Block", TEXTCOLOR_LIGHTGREEN) masposa = {x = maspos.x +1, y = maspos.y ,z = maspos.z,stackpos=255} varli = {cid = varli.cid, topos = masposa} doSendMagicEffect(masposa,31) end ------------------- doSendMagicEffect(maspos,Efeito_normal) addEvent(andar, velocidade, varli) end end function onUse(cid, item, frompos, item2, topos) if getPlayerAccess(cid) >= 3 then varli = {cid = cid, topos = topos} addEvent(andar, velocidade, varli) end end Bom crie um arquivo.lua ponha o nome de lixo.lua salve ligue seu bot e deixe ele o dia todo limpando o templo quando players jogarem itens no chao e ele passar por la ele vai limpar *Ele não ve onde os itens estão *O movimento e aleatorio *Se ele passar por npcs vai ficar dando mensagem de erro *Cuidado pois se ele sair da area que voçê especificou pelo map por um sqm sem action id ele pode ir nas houses. voçê pode por quantos quiser de uma vez. *Para parar o bot e so usar o comando /reload actions Como esse script e meio revolucionario eu peço poucas coisas: Comenten Ponham em seus ot serves (se possivel) Podem modificar o bot avontade contanto que não tire os creditos Flws Vou dar mais atenção a esse forum tambem vou postar meus outros scritps aqui tambem. flws
-
Contando a historia e o seguinte... eu tava no em outro forum sem nd p faze "vagabundando" ai vi um script de carrinho de mina vi o video dele e do montanha russa system. ai eu vi OMG vo pro isso no meu e apenas tirei os comandos Maynotlogout e Maynotmove pq meu server n tem isso. ai eu peguei e fiz um trilho q dava 1 volta na minha cidade. quando fui testar... Omg Desastre! eu pensei q era so colocar os triolhos la e pronto. eu nen tinha olhado o script quando eu vi eu percebi que quanto maior o trilho maior o script. eu pensava q por o script ser grande o carrinho apenas seguia o trilho mas voçê deve definir o trilho no script. Bom ai como eu sou um NERD AOTA (N.A) Fiz um sistem q poucos servers possuem um PARECIDO. O script consta nisso: ao inves de ter que fazer um pedaço de script p cada sqm eu fiz e configurar o script p ele indentificar os sqms em volta do player ou seja voçê poe o trilho que o carrinho segue > (meu sript inteligente) Vamo para oq interessa 1º voçê deve definir o lugar onde o player vai começar a andar ou seja o inicil do trilho: la ponha uma alavanca um carrinho oq vc quiser com UniqueID: 7132 ai la no actions.xml ponha essa tag la: <action uniqueid="7132" script="minas.lua" /> se caso o uniqueid esteje sendo usado ponha outro qualquer. Bom crie um aqruivo chamado minas.lua e ponha isso dentro dele: -- Carrinho de mina system 2.0 By mock :D -- velocidade = 450 pessoass = 1 local function move(paramis) local npos = {x=centerpos.x+1, y=centerpos.y, z=centerpos.z, stackpos=1} local getplayer = getThingfromPos(npos) if getplayer.itemid == 7122 and getplayer.actionid ~= 100 then doTeleportThing(paramis.cida, {x=centerpos.x+1, y=centerpos.y, z=centerpos.z}) centerpos = {x=centerpos.x+1, y=centerpos.y, z=centerpos.z} addEvent(move, velocidade, paramis) doSetItemOutfit(paramis.cida, 7131, 6000) else local npos = {x=centerpos.x+1, y=centerpos.y, z=centerpos.z, stackpos=1} local getplayer = getThingfromPos(npos) if getplayer.itemid == 7124 and getplayer.actionid ~= 100 then doTeleportThing(paramis.cida, {x=centerpos.x+1, y=centerpos.y, z=centerpos.z}) centerpos = {x=centerpos.x+1, y=centerpos.y, z=centerpos.z} addEvent(move, velocidade, paramis) doSetItemOutfit(paramis.cida, 7131, 6000) else local npos = {x=centerpos.x, y=centerpos.y+1, z=centerpos.z, stackpos=1} local getplayer = getThingfromPos(npos) if getplayer.itemid == 7121 and getplayer.actionid ~= 100 then doTeleportThing(paramis.cida, {x=centerpos.x, y=centerpos.y+1, z=centerpos.z}) centerpos = {x=centerpos.x, y=centerpos.y+1, z=centerpos.z} addEvent(move, velocidade, paramis) doSetItemOutfit(paramis.cida, 7132, 6000) else local npos = {x=centerpos.x, y=centerpos.y-1, z=centerpos.z, stackpos=1} local getplayer = getThingfromPos(npos) if getplayer.itemid == 7121 and getplayer.actionid == 100 then doTeleportThing(paramis.cida, {x=centerpos.x, y=centerpos.y-1, z=centerpos.z}) centerpos = {x=centerpos.x, y=centerpos.y-1, z=centerpos.z} addEvent(move, velocidade, paramis) doSetItemOutfit(paramis.cida, 7132, 6000) else local npos = {x=centerpos.x-1, y=centerpos.y, z=centerpos.z, stackpos=1} local getplayer = getThingfromPos(npos) if getplayer.itemid == 7122 and getplayer.actionid == 100 then doTeleportThing(paramis.cida, {x=centerpos.x-1, y=centerpos.y, z=centerpos.z}) centerpos = {x=centerpos.x-1, y=centerpos.y, z=centerpos.z} addEvent(move, velocidade, paramis) doSetItemOutfit(paramis.cida, 7131, 6000) else local npos = {x=centerpos.x, y=centerpos.y+1, z=centerpos.z, stackpos=1} local getplayer = getThingfromPos(npos) if getplayer.itemid == 7126 and getplayer.actionid ~= 100 then doTeleportThing(paramis.cida, {x=centerpos.x, y=centerpos.y+1, z=centerpos.z}) centerpos = {x=centerpos.x, y=centerpos.y+1, z=centerpos.z} addEvent(move, velocidade, paramis) doSetItemOutfit(paramis.cida, 7132, 6000) else local npos = {x=centerpos.x-1, y=centerpos.y, z=centerpos.z, stackpos=1} local getplayer = getThingfromPos(npos) if getplayer.itemid == 7125 and getplayer.actionid == 100 then doTeleportThing(paramis.cida, {x=centerpos.x-1, y=centerpos.y, z=centerpos.z}) centerpos = {x=centerpos.x-1, y=centerpos.y, z=centerpos.z} addEvent(move, velocidade, paramis) doSetItemOutfit(paramis.cida, 7131, 6000) else local npos = {x=centerpos.x, y=centerpos.y-1, z=centerpos.z, stackpos=1} local getplayer = getThingfromPos(npos) if getplayer.itemid == 7124 and getplayer.actionid == 100 then doTeleportThing(paramis.cida, {x=centerpos.x, y=centerpos.y-1, z=centerpos.z}) centerpos = {x=centerpos.x, y=centerpos.y-1, z=centerpos.z} addEvent(move, velocidade, paramis) doSetItemOutfit(paramis.cida, 7132, 6000) else local npos = {x=centerpos.x-1, y=centerpos.y, z=centerpos.z, stackpos=1} local getplayer = getThingfromPos(npos) if getplayer.itemid == 7123 and getplayer.actionid ~= 100 then doTeleportThing(paramis.cida, {x=centerpos.x-1, y=centerpos.y, z=centerpos.z}) centerpos = {x=centerpos.x-1, y=centerpos.y, z=centerpos.z} addEvent(move, velocidade, paramis) doSetItemOutfit(paramis.cida, 7131, 6000) else local npos = {x=centerpos.x, y=centerpos.y+1, z=centerpos.z, stackpos=1} local getplayer = getThingfromPos(npos) if getplayer.itemid == 7125 and getplayer.actionid ~= 100 then doTeleportThing(paramis.cida, {x=centerpos.x, y=centerpos.y+1, z=centerpos.z}) centerpos = {x=centerpos.x, y=centerpos.y+1, z=centerpos.z} addEvent(move, velocidade, paramis) doSetItemOutfit(paramis.cida, 7132, 6000) else local npos = {x=centerpos.x+1, y=centerpos.y, z=centerpos.z, stackpos=1} local getplayer = getThingfromPos(npos) if getplayer.itemid == 7126 and getplayer.actionid == 100 then doTeleportThing(paramis.cida, {x=centerpos.x+1, y=centerpos.y, z=centerpos.z}) centerpos = {x=centerpos.x+1, y=centerpos.y, z=centerpos.z} addEvent(move, velocidade, paramis) doSetItemOutfit(paramis.cida, 7131, 6000) else local npos = {x=centerpos.x, y=centerpos.y-1, z=centerpos.z, stackpos=1} local getplayer = getThingfromPos(npos) if getplayer.itemid == 7123 and getplayer.actionid == 100 then doTeleportThing(paramis.cida, {x=centerpos.x, y=centerpos.y-1, z=centerpos.z}) centerpos = {x=centerpos.x, y=centerpos.y-1, z=centerpos.z} addEvent(move, velocidade, paramis) doSetItemOutfit(paramis.cida, 7132, 6000) else doSetItemOutfit(paramis.cida, 7131, 1) pessoass = 1 end end end end end end end end end end end end end function onUse(cid, item, frompos, item2, topos) if pessoass == 1 then local paramis = {cida = cid, poina = topos} centerpos = topos doTeleportThing(cid, centerpos) doSetItemOutfit(cid, 7131, 1000) addEvent(move, 400, paramis) pessoass = 2 else doSendAnimatedText(topos, "PERA!", TEXTCOLOR_BLUE) doPlayerSendCancel(cid,'Desculpe está sendo usado.') end end Bom todo bom scripter vai saber q o script funciona mas pode ser melhorado ainda pq eu puis mto if e end XD mas oq importa n e o script ficar bonito e sim funcionar. Em fim feito isso apenas fassa seu trilho e seje feliz mintira! tem mais coisa mwhahaha! Bom a posição central e difinida da posição do item no qual vc deu use no script n e presiso mudar nada mas tem umas coisas que voçÊ e obrigado a saber. Esse script alem de poderozo pode desencadear alguns loops em seu server se for mau usado portanto cuidado ao usa-lo. bom como ha poucos ids de tilho e n foram feitos para ser usado p isso no qual esta sendo eu tive q adcionar umas coisas. o tilho na horizontal sem action id empurra o carrinho para >> e com action id 100 joga o carrinho para la << ou seja se vc por um sqm com action id e o outro sem em uma reta o loop sera infinito ou seja o player nuca ira apra de se locomover para la > e para ca <. Uma desvantagem desse para o original é que o original pode ir varios players de uma vez esse não pois se um player estiver na usando e outro entra ele volta pro inicil e fica os 2 sendo teleprotados atre o final pode ate dar debug nos 2. a vantagem é q vc n presisa por 1 pedaço do scirpt p cada trilho: Bom para ensinar a voçês como usar os trilhos veja a SS abaixo: Aqui mostra os trilhos que com ou sem action id a direção que eles vão levar o player. outra coisa que limita o script e que o trilho fica na Stackpos 2 voçe pode jogar oque quiser no trilho que não atraplaa o trilho pode ate passar pela lava por sqm que n podem ser andandos etc mas lembre-se: Aquelas bordinhas q ficam em cima do chao como a grass ou aeia ate borda de agua ficam na stack pos 2 e consequentemente o trilho fica na 3. então ao caqrrinho encontrar uma borda ele ira parar pq ele indentificou uma Borda no stack pos 2 e não um trilho. então por onde o tilho passar não ponha bordas no memso SQM outra coisa importante e oque esta na SS abaixo: Os trilhos que são paralelos devem ter 1 sqm de separação entre eles. e aquels outros id de burificações o script n da eles como trilhos e o trem vai parar na frente dele. se o trem ver que no proximo sqm n tem trilho ele para. e caso um trilho por ventura encoste em outro paralelo pode iniciar um loop que o carrinho fique dando voltas em circulos. Bom e o seguitne Se gostaram doem ot$ ou comenten se n gostaram doem asism msmo Flws!!!! ps: Fiz justamente p posta aqui pq eu sou daqueles que faz scripts legais e n tem medo de posta-los Edited Esqueci como poe tipo faz o tilho de boa so que no INICIL dele vc poe um vagaozinho pode tae ser uma alavanca pedra ou qualquer coisa contanto que fique em cima do trilho e tenha o unique id.
-
Liberando Porta D-link 500 [generation Ii]
tópico respondeu ao Eigenlieb de Mock em Tutoriais de Infraestrutura
deu a mesma coisa aki
-
Quem Está Navegando 0 membros estão online
- Nenhum usuário registrado visualizando esta página.