Tudo que Beyond Sky postou
- Modern Acc Bugs Fixed
-
Gesior - TFS1.0
Foi exatamente esse que tentei parceiro, a cada STEP da instalação dava um erro eu arrumava procurava nos fórum concertava e dava outro erro até que desisti velho.
-
Znote AAC 1.5 (TFS 0.2/0.3/0.4 & 1.0)
Uma database para usar nele tem ?
-
Gesior - TFS1.0
Existe um Gesior que funcione na versão TFS 1.0 pelo amor de Deus até mesmo a do github da Gesior AAC não está funfando cheio de erros e conflitos com a Database por isso a cada dia que passa OTserver está em decadência tudo se tornou mais difícil
-
The Forgotten Server 1.0
E as DLL são as mesmas de sempre ?
- Script - Aprimoramento Weapon
-
[Aula 10] O Comando for
Boa noite Max, olha eu aqui enchendo o saco denovo ... Enfim a minha dúvida é referente a esta linha hoje parceiro for _, v in pairs(skinning) doBom eu não entendi a função do "_" (underline) e do v nesta condição se tiver como me dar uma ajudada aí em relação a isso agradeço,o script é este parceiro? ... inclusive aquele break ali é realmente necessário ? local skinning = { {monster = "Vampire", corpse = 2956, after = 2957, skin = 5905, chance = 20 }, {monster = "Vampire Viscount", corpse = 21275, after = 21276, skin = 5905, chance = 20 }, {monster = "Vampire Bride", corpse = 9654, after = 9658, skin = 5905, chance = 20 }, {monster = "Vampire Lords", corpse = 8938, after = 8939, skin = 5905, chance = 20 }, {monster = "Demons", corpse = 2916, after = 2917, skin = 5906, chance = 20 } } function onUse(cid, item, fromPosition, itemEx, toPosition) for _, v in pairs(skinning) do if v.corpse == itemEx.itemid then local iEx = Item(itemEx.uid) if (math.random(1, 100) <= v.chance) then iEx:transform(v.after) toPosition:sendMagicEffect(CONST_ME_MAGIC_GREEN) Player(cid):addItem(v.skin, 1, true) else toPosition:sendMagicEffect(CONST_ME_BLOCKHIT) iEx:transform(v.after) end break end end return true end
-
Script - Aprimoramento Weapon
Fiz um script que funciona da seguinte maneira, o player posiciona uma arma em uma mesa e um item que funcionaria com uma gema encantadora em outra mesa então puxa a alavanca os dois items somem e surge uma arma encantada, porém existem quatro locais diferentes para se fazer isso o local onde será encantada uma arma de fogo, um local para arma de gelo, para arma de tera e a de energy cada elemento terá uma chance diferente para ter sucesso no aprimoramento da arma, okay fiz tudo certinho ao meu ver porém na hora que fui testar fiz as devidas ações (posicionei os items e puxei alavanca) e aparece o erro da função getitem se alguém poder me ajudar agradeço. function onUse(cid, item, fromPos, itemEx, toPos) -- [[INICIO CONFIG - Beyond Sky]] armasfire = { [1] = {id = 2383, idfire = 7744, item = "spike sword"}, [2] = {id = 7383, idfire = 7748, item = "relic sword"}, [3] = {id = 7384, idfire = 7746, item = "mystic blade"}, [4] = {id = 7406, idfire = 7747, item = "blacksteel sword"}, [5] = {id = 7402, idfire = 7748, item = "dragon slayer"}, [6] = {id = 2423, idfire = 7754, item = "clerical mace"}, [7] = {id = 2445, idfire = 7755, item = "crystal mace"}, [8] = {id = 7415, idfire = 7756, item = "cranial basher"}, [9] = {id = 7392, idfire = 7757, item = "orcish maul"}, [10] = {id = 2391, idfire = 7758, item = "war hammer"}, [11] = {id = 2429, idfire = 7749, item = "barbarian axe"}, [12] = {id = 7402, idfire = 7750, item = "knight axe"}, [13] = {id = 7402, idfire = 7751, item = "heroic axe"}, [14] = {id = 7402, idfire = 7752, item = "headchopper"}, [15] = {id = 7402, idfire = 7753, item = "war axe"} } armasice = { [1] = {id = 2383, idice = 7763,item = "spike sword"}, [2] = {id = 7383, idice = 7764, item = "relic sword"}, [3] = {id = 7384, idice = 7765, item = "mystic blade"}, [4] = {id = 7406, idice = 7766, item = "blacksteel sword"}, [5] = {id = 7402, idice = 7767, item = "dragon slayer"}, [6] = {id = 2423, idice = 7773, item = "clerical mace"}, [7] = {id = 2445, idice = 7774, item = "crystal mace"}, [8] = {id = 7415, idice = 7775, item = "cranial basher"}, [9] = {id = 7392, idice = 7776, item = "orcish maul"}, [10] = {id = 2391, idice = 7777, item = "war hammer"}, [11] = {id = 2429, idice = 7768, item = "barbarian axe"}, [12] = {id = 7402, idice = 7769, item = "knight axe"}, [13] = {id = 7402, idice = 7770, item = "heroic axe"}, [14] = {id = 7402, idice = 7771, item = "headchopper"}, [15] = {id = 7402, idice = 7772, item = "war axe"} } armastera = { [1] = {id = 2383, idtera = 7854, item = "spike sword"}, [2] = {id = 7383, idtera = 7855, item = "relic sword"}, [3] = {id = 7384, idtera = 7856, item = "mystic blade"}, [4] = {id = 7406, idtera = 7857, item = "blacksteel sword"}, [5] = {id = 7402, idtera = 7858, item = "dragon slayer"}, [6] = {id = 2423, idtera = 7864, item = "clerical mace"}, [7] = {id = 2445, idtera = 7865, item = "crystal mace"}, [8] = {id = 7415, idtera = 7866, item = "cranial basher"}, [9] = {id = 7392, idtera = 7867, item = "orcish maul"}, [10] = {id = 2391, idtera = 7868, item = "war hammer"}, [11] = {id = 2429, idtera = 7859, item = "barbarian axe"}, [12] = {id = 7402, idtera = 7860, item = "knight axe"}, [13] = {id = 7402, idtera = 7861, item = "heroic axe"}, [14] = {id = 7402, idtera = 7862, item = "headchopper"}, [15] = {id = 7402, idtera = 7863, item = "war axe"} } armasenergy = { [1] = {id = 2383, idenergy = 7869, item = "spike sword"}, [2] = {id = 7383, idenergy = 7870, item = "relic sword"}, [3] = {id = 7384, idenergy = 7871, item = "mystic blade"}, [4] = {id = 7406, idenergy = 7872, item = "blacksteel sword"}, [5] = {id = 7402, idenergy = 7873, item = "dragon slayer"}, [6] = {id = 2423, idenergy = 7879, item = "clerical mace"}, [7] = {id = 2445, idenergy = 7880, item = "crystal mace"}, [8] = {id = 7415, idenergy = 7881, item = "cranial basher"}, [9] = {id = 7392, idenergy = 7882, item = "orcish maul"}, [10] = {id = 2391, idenergy = 7883, item = "war hammer"}, [11] = {id = 2429, idenergy = 7874, item = "barbarian axe"}, [12] = {id = 7402, idenergy = 7875, item = "knight axe"}, [13] = {id = 7402, idenergy = 7876, item = "heroic axe"}, [14] = {id = 7402, idenergy = 7877, item = "headchopper"}, [15] = {id = 7402, idenergy = 7878, item = "war axe"} } chancepos = { [1] = {idignitum = 6550, chance = 75, posignitum = {x=2229, y=2081, z=8, stackpos = 255}, posarma = {x=2229, y=2081, z=8, stackpos = 255}, spot = "fire"}, [2] = {idignitum = 6551, chance = 50, posignitum = {x=2229, y=2081, z=8, stackpos = 255}, posarma = {x=2229, y=2081, z=8, stackpos = 255}, spot = "ice"}, [3] = {idignitum = 6549, chance = 25, posignitum = {x=2229, y=2081, z=8, stackpos = 255}, posarma = {x=2229, y=2081, z=8, stackpos = 255}, spot = "tera"}, [4] = {idignitum = 6548, chance = 15, posignitum = {x=2229, y=2081, z=8, stackpos = 255}, posarma = {x=2229, y=2081, z=8, stackpos = 255}, spot = "energy"}, } local uniqid = 9999 -- [[FIM CONFIG - Beyond Sky]] for i = 1, 15 do getitemfire = getThingfromPos(chancepos[1].posignitum) getitemice = getThingfromPos(chancepos[2].posignitum) getitemtera = getThingfromPos(chancepos[3].posignitum) getitemenergy = getThingfromPos(chancepos[4].posignitum) getitemfire2 = getThingfromPos(chancepos[1].posarma) getitemice2 = getThingfromPos(chancepos[2].posarma) getitemtera2 = getThingfromPos(chancepos[3].posarma) getitemenergy2 = getThingfromPos(chancepos[4].posarma) if item.uid == uniqid and item.itemid == 9825 then if (chancepos[i].chance >= math.random(1, 100)) then if (getitemfire.itemid == (chancepos[1].idignitum)) and (getitemfire2.itemid == (armasfire[i].id)) then doRemoveItem(getitemfire.uid,1) doRemoveItem(getitemfire2.uid,1) doSendMagicEffect(getitemfire, CONST_ME_MAGIC_RED) doCreateItem(armasfire[i].idfire, 1, getitemfire2) doSendMagicEffect(getitemfire2, CONST_ME_FIREAREA) doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "His weapon was successfully improved.") elseif (getitemice.itemid == (chancepos[2].idignitum)) and (getitemice2.itemid == (armasice[i].id)) then doRemoveItem(getitemice.uid,1) doRemoveItem(getitemice2.uid,1) doSendMagicEffect(getitemice, CONST_ME_MAGIC_BLUE) doCreateItem(armasice[i].idice, 1, getitemice2) doSendMagicEffect(getitemice2, CONST_ME_ICEAREA) doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "His weapon was successfully improved.") elseif (getitemtera.itemid == (chancepos[1].idignitum)) and (getitemtera2.itemid == (armastera[i].id)) then doRemoveItem(getitemtera.uid,1) doRemoveItem(getitemtera2.uid,1) doSendMagicEffect(getitemtera, CONST_ME_MAGIC_GREEN) doCreateItem(armastera[i].idtera, 1, getitemtera2) doSendMagicEffect(getitemtera2, CONST_ANI_EARTH) doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "His weapon was successfully improved.") elseif (getitemenergy.itemid == (chancepos[1].idignitum)) and (getitemenergy22.itemid == (armasenergy[i].id)) then doRemoveItem(getitemenergy.uid,1) doRemoveItem(getitemenergy2.uid,1) doSendMagicEffect(getitemenergy, CONST_ME_ENERGYHIT) doCreateItem(armasfire[i].idenergy, 1, getitemenergy2) doSendMagicEffect(getitemenergy2, CONST_ME_ENERGYAREA) doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "His weapon was successfully improved.") else doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "You are not using the necessary items or the items are not positioned correctly.") return TRUE end else doPlayerSendTextMessage(cid, MESSAGE_EVENT_DEFAULT, "Failed, not succeeded in improve its weapon. You lost both items.") end elseif item.uid == uniqid and item.itemid == 9826 then doTransformItem(item.uid, item.itemid - 1) end end end
- [2015] Gesior 1.0 - VictorWEBMaster
-
Função - getPlayerName fromPos
Eu uso bastante o tópico porém eu não consigo identificar uma função que retorne o nome de player "x" da posição "y". Creio que encontrei, caso alguém tenha a mesma dúvida pode usar a função getWaypointPosition(name) para descobrir a posição de um player pelo nome dele.
-
Função - getPlayerName fromPos
Eu estou desenvolvendo um script para dar uma treinada no comando For e pretendo publicar futuramente pra galera porém creio que vai demorar, enfim sem mais delongas eu preciso de uma condição nesse script que faria o seguinte ela vai verificar se o player que foi citado na talkaction usada está realmente na posição que deve estar. Para quem não entendeu ainda é o seguinte os dois players estarão posicionados em um tile especial e um deles irá desafiar o outro usando uma talk !desafiar, inimigo, valor do desafio, essa condição que procuro irá verificar se o player citado na talk é realmente o player que está no tile especial. Não sei se ficou bem claro mas agradeço a ajuda de quem entendeu a minha dúvida.
-
[Aula 10] O Comando for
Parabéns mais uma vez Max agora sim consegui fixar mais ou menos bem os segredos do comando consigo usar mais de forma bem simples ainda, agora eu tenho uma dúvida sobre o assunto estou desenvolvendo um script e peguei uma parte de um script aqui da annihi e parteé esta: for x = fromPos.x, toPos.x do for y = fromPos.y, toPos.y do for z = toPos.z, toPos.z do local creature = getTopCreature({x = x, y = y, z = z, stackpos = 255}).uid if(creature > 0) then if(isPlayer(creature)) then table.insert(cid, creature) count = count + 1 if(getPlayerLevel(creature) < 250) then return "You and your enemy must be level 250." end elseif(isMonster(creature)) then return "Players are allowed only." end end end end end Estou com dúvida sobre esses dois cara aqui table.insert(cid, creature) count = count + 1 Qual a função deles no script ?
-
[talkactions] Adicionar item para todos players online
Ótimo script parceiro, não sei se pode fazer isso mas creio eu que é relacionado ao assunto de qualquer forma. Estou tentando compreender o script e estou com uma dúvida nessa line do seu excelente script? local list = {} for i, tid in ipairs(getPlayersOnline()) do list[i] = tid end Por que essa condição foi usada e aquele ipairs ali não entendi muito bem estou tentando entender esses novos modelos de script e pego os mais simples e mesmo assim não consigo me acertar parceiro, detalhe conheço um pouco de for
- [GlobalEvents] Perfect Lottery System (MySql) - Atualizado
-
(Resolvido)[ERRO] SCRIPT
Qual a versão do seu servidor se for TFS 1.0 use player:registerEvent("killingInTheNameOfQuestKills")Agora se for TFS 0.4 registerCreatureEvent(cid, "KillingInTheNameOf")Coloque essas tags junto aos demais event no script data/creaturescript/scripts/login.lua
-
[Aula 6] Escopo
Cara parabéns pelo tutorial desculpa estar revivendo o tópico mas como o alerta sugere vou perguntar algo relevante e tem a ver com o tópico. Seguindo o que nos ensinou, eu posso construir e destruir um andar com (do, end) no caso, então aqui. var = 1 do local var = 2 do var = 3 end print(var) end do começou o primeiro andar foi setada a variável local igual a var = 2, então começa o segundo andar e foi setada a variável global var = 3 e finaliza o segundo andar e voltamos ao primeiro e var continua valendo 3 por que ? seguindo a lógica que nos passou não deveria ser 2 o valor de var ? Isso quer dizer que as variáveis globais predominam uma variável local ?
- (Resolvido)Diferença entre scripts
-
Gui's place - Show oFF
Faz muito tempo que parei de editar, mas futuramente estarei postando novas imagens, agradecido pelo elogio.
-
[CTF] Capture The Flag 2.0(Automático)
MaxWellden, tô louco pra por esse ótimo sistema no meu servidor porém está dando erro quando tento fazer download poderia resolver isso? Parabéns pelo sistema sempre admirei seus trabalhos.
-
(Resolvido)Diferença entre scripts
Estou voltando ao mundo do Open Tibia (na área de desenvolvimento) e estou testando meu potencial em scriptings quando me fiz ausente tinha um conhecimento bom já não tão grande mas quebrava um galho agora voltei e percebi que regredi bastante. Enfim, eu estava pegando uns scripts pra dar uma estudada e me deparei com uma coisa louca e gostaria muito que vocês experientes me ajudassem com isso. Peguei esse script da annihilator lever e está muito louco bem diferente do antigo postarei os dois e gostaria de saber qual a diferença entre os dois e se pudessem me explicar as vantagens e as condições usada no novo pq me embananei todo olhando esse script. Script Novo (que não entendi nada, o que aconteceu com a famosa function onUse(cid, item, frompos, item2, topos)) : local players_area = { {x = 33225, y = 31671, z = 13}, {x = 33222, y = 31671, z = 13} } local new_player_pos = { {x = 33222, y = 31659, z = 13}, {x = 33221, y = 31659, z = 13}, {x = 33220, y = 31659, z = 13}, {x = 33219, y = 31659, z = 13} } local demonPos = { {x = 33219, y = 31657, z = 13}, {x = 33221, y = 31657, z = 13}, {x = 33223, y = 31659, z = 13}, {x = 33224, y = 31659, z = 13}, {x = 33220, y = 31661, z = 13}, {x = 33222, y = 31661, z = 13} } function getPlayerCountInArea(toPos, fromPos) local count = 0 local cid = {} for x = fromPos.x, toPos.x do for y = fromPos.y, toPos.y do for z = toPos.z, toPos.z do local creature = getTopCreature({x = x, y = y, z = z, stackpos = 255}).uid if(creature > 0) then if(isPlayer(creature)) then table.insert(cid, creature) count = count + 1 if(getPlayerLevel(creature) < 100) then return "All players must be above level 100." end elseif(isMonster(creature)) then return "Players are allowed only." end end end end end if(count < 4) then return "You need 4 players." else for i = 1,4 do Player(cid[5-i]):teleportTo(new_player_pos[i]) Player(cid[5-i]):getPosition():sendMagicEffect(CONST_ME_TELEPORT) end end return true end function SummonDemon(Pos) local count = 0 local cid = {} for x = Pos[1].x, Pos[4].x do for y = Pos[1].y, Pos[6].y do for z = Pos[1].z, Pos[6].z do local creature = getTopCreature({x = x, y = y, z = z, stackpos = 255}).uid if(creature > 0) then if(isPlayer(creature)) then return "A team is already inside the quest room." elseif(isMonster(creature)) then table.insert(cid, creature) count = count + 1 end end end end end for i = 1, #cid do doRemoveCreature(cid[i]) end for i = 1, #Pos do doSummonCreature("Demon", Pos[i]) end return getPlayerCountInArea(players_area[1], players_area[2]) end function onUse(cid, item) if(item.itemid == 1946) then local condition = SummonDemon(demonPos) if(condition ~= true) then doPlayerSendCancel(cid, condition) end else Item(item.uid):transform(1946) end return true end Script Antigo (do qual tenho total conhecimento sobre o que acontece ou não e por que) -- Alavanca Annihilator Quest -- by Nottinghster function onUse(cid, item, frompos, item2, topos) if item.uid == 7000 and item.itemid == 1945 then player1pos = {x=1109, y=1204, z=11, stackpos=253} player1 = getThingfromPos(player1pos) player2pos = {x=1110, y=1204, z=11, stackpos=253} player2 = getThingfromPos(player2pos) player3pos = {x=1111, y=1204, z=11, stackpos=253} player3 = getThingfromPos(player3pos) player4pos = {x=1112, y=1204, z=11, stackpos=253} player4 = getThingfromPos(player4pos) if player1.itemid > 0 and player2.itemid > 0 and player3.itemid > 0 and player4.itemid > 0 then queststatus1 = getPlayerStorageValue(player1.uid,7000) queststatus2 = getPlayerStorageValue(player2.uid,7000) queststatus3 = getPlayerStorageValue(player3.uid,7000) queststatus4 = getPlayerStorageValue(player4.uid,7000) if queststatus1 == -1 and queststatus2 == -1 and queststatus3 == -1 and queststatus4 == -1 then nplayer1pos = {x=1128, y=1181, z=11} nplayer2pos = {x=1129, y=1181, z=11} nplayer3pos = {x=1130, y=1181, z=11} nplayer4pos = {x=1131, y=1181, z=11} doSendMagicEffect(player1pos,2) doSendMagicEffect(player2pos,2) doSendMagicEffect(player3pos,2) doSendMagicEffect(player4pos,2) doTeleportThing(player1.uid,nplayer1pos) doTeleportThing(player2.uid,nplayer2pos) doTeleportThing(player3.uid,nplayer3pos) doTeleportThing(player4.uid,nplayer4pos) doSendMagicEffect(nplayer1pos,10) doSendMagicEffect(nplayer2pos,10) doSendMagicEffect(nplayer3pos,10) doSendMagicEffect(nplayer4pos,10) doTransformItem(item.uid,item.itemid+1) else doPlayerSendCancel(cid,"Alguém em seu time já fez esta quest.") end else doPlayerSendCancel(cid,"Você precisa de um grupo de 4 pessoas para esta quest.") end elseif item.uid == 7000 and item.itemid == 1946 then if getPlayerAccess(cid) > 0 then doTransformItem(item.uid,item.itemid-1) else doPlayerSendCancel(cid,"Desculpe, não é possível.") end else return FALSE end return TRUE end
- DEV C++ Compilando TFS no Windows
-
[Mod] Automatic Raids [Dia E Hora Marcada]
O alerta que continha no tópico antes do meu post me alertava que eu não poderia postar desde que não fosse nada importante ou que não fosse relacionado ao assunto discutido creio que não cometi uma inflação.
-
[TFS 1.0] Mapa global full
As tasks estão 100% funcionais ? Com rank points e etc, quest log e tals? Gostaria de retirar o script do servidor.
-
The Forgotten Server 1.0
Eu estou ausente do mundo dos OTS como desenvolvedor desde a versão 8.6 mais ou menos e gostaria de saber se essa nova TFS complica muito em relação a usar scripts antigos ? LUA/LIB/XML enfim todas essas coisas mudaram muito a parte de Functions ali da própria TFS mudaram muitas coisas ? Existe 0.4 para versões atuais 10.37/10.35 ?
-
[Mod] Automatic Raids [Dia E Hora Marcada]
Cara o sistema está perfeito já, porém eu queria saber se pudesse ser feito da seguinte forma. No dia e hora marcado aconteceria uma invasão mas não uma específica iria ser randomizada.