-
Total de itens
631 -
Registro em
-
Última visita
-
Dias Ganhos
13
Tudo que jhon992 postou
-
Tinham errado feio a minha area hem, mais pelo visto ja concertaram, valeu aew o parabens @DuhhCarvalho, e parabens para todos os selecionados e boa sorte com suas entrevistas.
-
Aqui tem uma lista que eu uso: http://www.xtibia.com/forum/topic/138081-lualista-de-funcoes/ E procura alguns tutorias no forum ou me add no msn que te dou umas dicas.
-
Ja testei o meu, ta funcional...
- 10 respostas
-
- da uma força aki galera.
- script
- (e 1 mais)
-
n sei n velho, usa assim como eu fiz n muda tempo n, esse tempo é da função addevent é diferente do de globalevents e talz. e creio que o script esteja funcionando, pode usar @Blinkrox.
- 10 respostas
-
- da uma força aki galera.
- script
- (e 1 mais)
-
vai em data/creaturescripts/scripts, duplica um arquivo e nomeia para "login_gain" sem as aspas e nele cole: function onLogin(cid) local timeOn = 4 -- quantidade de hras on para ganhar um dos itens addEvent(gainItem, timeOn*3600000, timeOn, cid) return true end function gainItem(timeOn, cid) if (isPlayer(cid)) then local itens_gain = {1234,5678,9101,4567} -- id dos itens doPlayerAddItem(cid, tonumber(itens_gain[math.random(1,#itens_gain)])) addEvent(gainItem, timeOn*3600000, timeOn, cid) end end Agora no creaturescripts.xml cole a tag: <event type="login" name="Gain" script="login_gain.lua"/> Ta pronto. Eu configurei para dar um dos itens que estão naquela lista, se quiser dar apenas um item especifico basta apagar os outros ids. Obs: nem testei, qualquer erro me fala.
- 10 respostas
-
- da uma força aki galera.
- script
- (e 1 mais)
-
function onSay(cid, words, param, channel) if(param == '') then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Command param required.") return true end local t = string.explode(param, ",") local player = getPlayerByNameWildcard(tostring(t[1])) local item_id = tonumber(t[2]) local quant = tonumber(t[3]) if(not isPlayer(player)) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Player nao existe.") return true elseif (getPlayerItemCount(player, item_id) <= 0) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "O player não possui este item.") return true elseif (getPlayerItemCount(player, item_id) < quant) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "O player não possui essa quantidade de item.") return true end doPlayerRemoveItem(player, item_id, quant) return true end
-
(Pedido) Como colocar uma Auto-Mensagem na cor verde?
pergunta respondeu ao MarcioSkate22 de jhon992 em Scripts
Assim funcionara: function onThink(interval, lastExecution) -- Configurações local cor = 25 -- Defina a cor da mensagem (25 = verde) local mensagens ={ [[Você esta jogando Ryan War, feito por HisashiItYamaguti! Qualquer dúvida pergunte ao npc ajudante localizado para lá >>> do templo! Bom Jogo]] } -- Fim de Configurações doBroadcastMessage(mensagens[math.random(1,table.maxn(mensagens))], cor) return TRUE end Para testar as cores, entre com o gm em seu ot e teste "/y numerodacor". -
function onUse(cid, item, fromPosition, itemEx, toPosition) local min_hp = 100 -- minimo de life que ira encher local max_hp = 200 -- maximo de life que ira encher local min_mana = 100 -- minimo de mana que ira encher local max_mana = 200 -- maximo de mana que ira encher local effect = 30 -- efeito no player local exhaust_sec = 2 -- exausted em segundos if(exhaustion.check(cid, 34539) == TRUE) then doPlayerSendCancel(cid, "Voçê só pode usar após [" .. exhaustion.get(cid, 34539).."] segundos.") return TRUE end doCreatureAddHealth(cid, math.random(min_hp,max_hp)) doCreatureAddMana(cid, math.random(min_mana,max_mana)) exhaustion.set(cid, 34539, exhaust_sec) doRemoveItem(item.uid, 1) doSendMagicEffect(getPlayerPosition(cid), effect) return TRUE end
-
Primeira Chamada Para Estagiários Xtibia.com!
tópico respondeu ao Henrique Moura de jhon992 em Noticias
Formulário Nome completo: Jhonatan Souza de Carvalho Idade: 19 Experiências com trabalho em equipe: Tenho pouca experiencia com trabalho em equipe, mais uma das minhas caracteristicas é que aprendo muito rapido. Experiências em sua área (mapping, scripting ou imprensa - deixar links para tópicos e/ou trabalhos aqui no fórum): Sou scripter, trabalho com .lua a um tempinho sou fã de programação, curso ciências da computação na universidade. Costumo ficar online no XTibia boa parte do dia, sempre em Dúvidas sobre Scripts e Pedidos de Scripts, tento responder o máximo de dúvidas que posso. Álias uns 90% dos meus pontos de Rep+ foi por ajuda aos usuarios. Por quê você deve ser um estagiário do XTibia.com? Até um tempo não queria ser estagiário, mais hoje sei que estão precisando de gente na equipe então resolvi me candidatar. E assim continuar ajudando a comunidade só que com um cargo de maior importancia que membro.- 60 respostas
-
- seja um candidato
- otserv
-
(e 2 mais)
Tags:
-
local m = 10 --rebirth(reset) nessesarios para passar function onSetpIn(cid,item,pos) if isPlayer(cid) then if getPlayerStorageValue(cid, 72345) >= m then doTeleportThing(cid, pos) return TRUE end end return TRUE end Créditos @lordbug99
-
tanta assim: function onUse(cid, item, frompos, item2, topos) -- Item ID and Uniqueid -- switchUniqueID = 29796 switchID = 1945 switch2ID = 1946 swordID = 8306 -- Pure Energy para knights crossbowID = 8300 -- Flawless Ice Crystal para paladins appleID = 8305 -- Mother Soil para druids spellbookID = 8304 -- Eternal Flames para sorcerer -- Level to do the quest -- questlevel = 80 piece1pos = {x=33265, y=31835, z=10, stackpos=1} -- Where the first piece will be placed knight getpiece1 = getThingfromPos(piece1pos) piece2pos = {x=33271, y=31835, z=10, stackpos=1} -- Where the second piece will be placed paladin getpiece2 = getThingfromPos(piece2pos) piece3pos = {x=33268, y=31839, z=10, stackpos=1} -- Where the third piece will be placed druid getpiece3 = getThingfromPos(piece3pos) piece4pos = {x=33268, y=31832, z=10, stackpos=1} -- Where the fourth piece will be placed sorcerer getpiece4 = getThingfromPos(piece4pos) player1pos = {x=33266, y=31835, z=10, stackpos=253} -- Where player1 will stand before pressing lever knight player1 = getThingfromPos(player1pos) player2pos = {x=33270, y=31835, z=10, stackpos=253} -- Where player2 will stand before pressing lever paladin player2 = getThingfromPos(player2pos) player3pos = {x=33268, y=31838, z=10, stackpos=253} -- Where player3 will stand before pressing lever druid player3 = getThingfromPos(player3pos) player4pos = {x=33268, y=31833, z=10, stackpos=253} -- Where player4 will stand before pressing lever sorcerer player4 = getThingfromPos(player4pos) knightvoc = getPlayerVocation(player1.uid) -- The vocation of player1 paladinvoc = getPlayerVocation(player2.uid) -- The vocation of player2 druidvoc = getPlayerVocation(player3.uid) -- The vocation of player3 sorcerervoc = getPlayerVocation(player4.uid) -- The vocation of player4 nplayer1pos = {x=33263, y=31831, z=12} -- The new position of player1 nplayer2pos = {x=33272, y=31831, z=12} -- The new position of player2 nplayer3pos = {x=33263, y=31840, z=12} -- The new position of player3 nplayer4pos = {x=33272, y=31840, z=12} -- The new position of player4 player1level = getPlayerLevel(player1.uid) -- Checking the level of player1 player2level = getPlayerLevel(player2.uid) -- Checking the level of player2 player3level = getPlayerLevel(player3.uid) -- Checking the level of player3 player4level = getPlayerLevel(player4.uid) -- Checking the level of player4 -- Check if all players has the correct vocation if knightvoc == 4 or knightvoc == 8 and paladinvoc == 3 or paladinvoc == 7 and druidvoc == 2 or druidvoc == 6 and sorcerervoc == 1 or sorcerervoc == 5 then -- Check if all players are standing on the correct positions if player1.itemid > 0 and player2.itemid > 0 and player3.itemid > 0 and player4.itemid > 0 then if player1level >= questlevel and player2level >= questlevel and player3level >= questlevel and player4level >= questlevel then if item.uid == switchUniqueID and item.itemid == switchID and getpiece1.itemid == swordID and getpiece2.itemid == crossbowID and getpiece3.itemid == appleID and getpiece4.itemid == spellbookID then doSendMagicEffect(player1pos,2) doTeleportThing(player1.uid,nplayer1pos) doSendMagicEffect(nplayer1pos,10) doRemoveItem(getpiece1.uid,1) doSendMagicEffect(player2pos,2) doTeleportThing(player2.uid,nplayer2pos) doSendMagicEffect(nplayer2pos,10) doRemoveItem(getpiece2.uid,1) doSendMagicEffect(player3pos,2) doTeleportThing(player3.uid,nplayer3pos) doSendMagicEffect(nplayer3pos,10) doRemoveItem(getpiece3.uid,1) doSendMagicEffect(player4pos,2) doTeleportThing(player4.uid,nplayer4pos) doSendMagicEffect(nplayer4pos,10) doRemoveItem(getpiece4.uid,1) doTransformItem(item.uid,item.itemid+1) doSummonCreature("Lord of the Elements", {x= 33267,y=31835,z=12}) return TRUE elseif item.uid == switchUniqueID and item.itemid == switch2ID then doTransformItem(item.uid,item.itemid-1) else doPlayerSendTextMessage(cid,19,"Sorry, you need to put the correct stuffs at the correct basins.") end else doPlayerSendTextMessage(cid,19,"All Players have to be level 80 to do this quest.") end else doPlayerSendTextMessage(cid,19,"You need 4 players to do this quest.") end end return TRUE end
-
Nem analizei seu código, mais eu uso esse e funciona. Testa aew: -- [( Script edited by Doidin for XTibia.com )] -- function onSay(cid, item, words, param) local count = getPlayerInstantSpellCount(cid) local text = "" local t = {} local prevLevel = -1 local line = "" for i = 0, count - 1 do local spell = getPlayerInstantSpellInfo(cid, i) if spell.level ~= 0 then if spell.manapercent > 0 then spell.mana = spell.manapercent .. "%" end table.insert(t, spell) end end table.sort(t, function(a, b) return a.level < b.level end) for i, spell in ipairs(t) do if prevLevel ~= spell.level then if i ~= 1 then line = "" end line = line .. "- Spells for Level " .. spell.level .. ":\n" prevLevel = spell.level end text = text .. line .."• ".. spell.words .." - " .. spell.name .. ": " .. spell.mana .. "\n" end doShowTextDialog(cid, 7528, text) return TRUE end
-
Vai nos monstros da task. Por exemplo o Troll e antes disso, que é a última linha do monstro: </monster> Cole aquilo, ficando assim: <script> <event name="KillingInTheNameOf"/> </script> </monster>
-
http://www.xtibia.com/forum/topic/128237-killing-in-the-name-of-todos-os-monstros-todas-as-recompensas/
-
Acho que assim fica mais organizado e explicado: Vai em data/movements/scripts/ duplica um arquivo e nomeia para "tp_town1" sem as aspas e nele cole: local pos = {x=100, y=200, z=7} -- coordenada do templo local cidade_id = 1 -- id da cidade function onStepIn(cid, item, position, lastPosition, fromPosition, toPosition, actor) if getPlayerStorageValue(cid, 109823) == cidade_id then doPlayerSendTextMessage(cid, "Você ja é morador desta cidade") doTeleportThing(cid, lastPosition) else doTeleportThing(cid, pos) doSendMagicEffect(getPlayerPosition(cid), 10) doPlayerSetTown(cid, cidade_id) doPlayerSendTextMessage(cid, "Você agora é um morador de " .. getTownName(cidade_id) .."!") setPlayerStorageValue(cid, 109823, cidade_id) end return TRUE end Agora em data/movements/movements.xml cole a tag: <movevent type="StepIn" actionid="20305" event="script" value="tp_town1.lua"/> Para funcionar basta apenas colocar o actionid=20305, no teleport pelo Map Editor. Dae em cada cidade poem um teleport diferente, duplica o arquivo "tp_town1" renomeia e dentro dele muda apenas o cidade_id. Depois duplica a tag no xml e troca o actionid. Créditos pro @xFkyx.
-
Na última parte faltou um "end" era pra estar assim: ---Piccolo--- if getPlayerVocation(cid) == 378 then if getPlayerLevel(cid) >= 450 then doPlayerSetVocation(cid,407) doSetCreatureOutfit(cid, piccolo, -1) addEvent(trans,ext,cid) doSendMagicEffect(getPlayerPosition(cid), 233) else doPlayerSendCancel(cid, "You need 450 level to first transform") doSendMagicEffect(getPlayerPosition(cid), 2) end elseif getPlayerVocation(cid) == 407 then if getPlayerLevel(cid) >= 600 then doPlayerSetVocation(cid,408) addEvent(trans1,ext,cid) doSendMagicEffect(getPlayerPosition(cid), 33) doSetCreatureOutfit(cid, piccolo1, -1) else doPlayerSendCancel(cid, "You need 600 level to next transform") doSendMagicEffect(getPlayerPosition(cid), 2) end elseif getPlayerVocation(cid) == 408 then if getPlayerLevel(cid) >= 850 then doPlayerSetVocation(cid,409) addEvent(trans2,ext,cid) doSendMagicEffect(getPlayerPosition(cid), 18) doSetCreatureOutfit(cid, piccolo2, -1) else doPlayerSendCancel(cid, "You need 850 level to next transform") doSendMagicEffect(getPlayerPosition(cid), 2) end end
-
esse aqui é um ótimo npc de task, sóh saber configurar. http://www.xtibia.com/forum/topic/172790-npc-de-task/ [1] = {questStarted = 1510, questStorage = 65000, killsRequired = 100, raceName = "Trolls", rewards = {first = {enable = true, type = "exp", values = 200}, second = {enable = true, type = "money", values = 200}, third = {enable = true, type = "item", values = {1234, 5678}}}}, killsRequired > Quantidade para matar raceName > Nome do monstro rewards > recompensa first = {enable = true, type = "exp", values = 200} > primeira = {verdadeira, experiencia, 200} second = {enable = true, type = "money", values = 200} > segunda = {verdadeira, dinheiro, 200} third = {enable = true, type = "item", values = {1234, 5678}} > terceira = {verdadeira, itens, id 1234,5678}
-
da pra fazer assim oh: http://www.xtibia.com/forum/topic/158192-sistema-de-novos-items/
- 1 resposta
-
- itens
- como criar itens
-
(e 1 mais)
Tags:
-
function onCastSpell(cid, var) target = getCreatureTarget(cid) if (target ~= 0) then Shar_Dim = {x=2458, y=2467, z=7} -- posição que teletronsportara doTeleportThing(target, Shar_Dim) return true end return false end
- 8 respostas
-
- teleport
- transporte
-
(e 1 mais)
Tags:
-
ashudahu, não néh. ta arrumado pq eu modifiquei o último post, então é sóh substituir os scripts.
-
ta arrumado.
-
[Creaturescripts] Walking Effect On Outfit
tópico respondeu ao AnneMotta de jhon992 em Globalevents e Spells
script muito bom, parabéns em Anne ta ficando cada dia melhor -
Modifiquei para aceitar dias, sóh testar. Vai em data/globalscripts/scripts/ duplica um arquivo e nomeia para "houseclean" sem as aspas e nele cole: function onThink(interval, lastExecution, thinkInterval) local days = 15 -- quantidade de dias para executar local b = 0 local d = db.getResult("SELECT `owner` FROM `houses` WHERE `owner` > "..b..";") if (d:getDataInt("owner") ~= false) then local c = db.getResult("SELECT `name` FROM `players` WHERE `id` == "..d:getDataInt("owner")..";") local lastLogin = getPlayerLastLoginSaved(getPlayerByName(c:getDataString("name"))) local e = db.getResult("SELECT `id` FROM `houses` WHERE `owner` == "..d:getDataInt("owner")..";") if (os.date("%d") - os.date("%d", lastLogin) >= days) then doCleanHouse(e:getDataInt("id")) setHouseOwner(e:getDataInt("id"), 0) elseif (os.date("%d") < 30 and os.date("%b", lastLogin) ~= os.date("%b")) then if ((30 - os.date("%d", lastLogin)) + os.date("%d") > days) then doCleanHouse(e:getDataInt("id")) setHouseOwner(e:getDataInt("id"), 0) end end end while (d:next() ~= false) do c = db.getResult("SELECT `name` FROM `players` WHERE `group_id` == "..d:getDataInt("owner")..";") lastLogin = getPlayerLastLoginSaved(getPlayerByName(c:getDataString("name"))) e = db.getResult("SELECT `id` FROM `houses` WHERE `owner` == "..d:getDataInt("owner")..";") if (os.date("%d") - os.date("%d", lastLogin) >= days) then doCleanHouse(e:getDataInt("id")) setHouseOwner(e:getDataInt("id"), 0) elseif (os.date("%d") < 30 and os.date("%b", lastLogin) ~= os.date("%b")) then if ((30 - os.date("%d", lastLogin)) + os.date("%d") > days) then doCleanHouse(e:getDataInt("id")) setHouseOwner(e:getDataInt("id"), 0) end end end return true end Agora em globalevents.xml cole a tag: <globalevent name="houseclean" interval="3600" event="script" value="houseclean.lua"/> O script vai ser executado a cada 1 hra e verificara tem não loga a + de 15 dias. Pode modificar a execução é sóh alterando o interval do globalevents. E para mudar a quantidade de dias para remover a house é sóh alterar o "local days = 15 -- quantidade de dias para executar".
-
Fiz um aqui, testei mais pouco. Qualquer erro fala. E funciona quando o player fica 30 dias sem logar. Eu tava fazendo antes do Beeki postar, então vou postar msm assim. Vai em data/globalscripts/scripts/ duplica um arquivo e nomeia para "houseclean" sem as aspas e nele cole: function onThink(interval, lastExecution, thinkInterval) local b = 0 local d = db.getResult("SELECT `owner` FROM `houses` WHERE `owner` > "..b..";") if (d:getDataInt("owner") ~= false) then local c = db.getResult("SELECT `name` FROM `players` WHERE `id` == "..d:getDataInt("owner")..";") local lastLogin = getPlayerLastLoginSaved(getPlayerByName(c:getDataString("name"))) local e = db.getResult("SELECT `id` FROM `houses` WHERE `owner` == "..d:getDataInt("owner")..";") if (os.date("%d", lastLogin) <= os.date("%d") and os.date("%b", lastLogin) ~= os.date("%b")) then doCleanHouse(e:getDataInt("id")) setHouseOwner(e:getDataInt("id"), 0) end end while (d:next() ~= false) do c = db.getResult("SELECT `name` FROM `players` WHERE `group_id` == "..d:getDataInt("owner")..";") lastLogin = getPlayerLastLoginSaved(getPlayerByName(c:getDataString("name"))) e = db.getResult("SELECT `id` FROM `houses` WHERE `owner` == "..d:getDataInt("owner")..";") if (os.date("%d", lastLogin) <= os.date("%d") and os.date("%b", lastLogin) ~= os.date("%b")) then doCleanHouse(e:getDataInt("id")) setHouseOwner(e:getDataInt("id"), 0) end end return true end Agora em globalevents.xml cole a tag: <globalevent name="houseclean" interval="86400" event="script" value="houseclean.lua"/>
-
[Talkactions] Preciso De !promotion Personalizado
tópico respondeu ao Leandrinhow de jhon992 em Lixeira Pública
Adiciona promotion depois usa o comando "!promotion days" e me diz oque aparece.
-
Quem Está Navegando 0 membros estão online
- Nenhum usuário registrado visualizando esta página.