Tudo que GiovaniRodrigo postou
-
[Resolvido] [Pedido] Magia com pedra
Tenta agora, modifiquei algumas coisas.
-
Aprimorar talkction evento castle war e concertar bug da escada não ser removida
Testa esse local THRONE_POS = {x = 559, y = 453, z = 7} local STORAGE_EVENT = 83902 local STORAGE_PLAYER = 73289 local DUR = 30 -- in minutes function OpenEvent() for _, tid in ipairs(getPlayersOnline()) do setPlayerStorageValue(tid, STORAGE_PLAYER, 1) end setGlobalStorageValue(STORAGE_EVENT, 1) doBroadcastMessage("O Evento castle foi aberto.", 25) end function getWinnerCastle(cid) CastleWalls() local player = getTopCreature(THRONE_POS).uid if getGlobalStorageValue(STORAGE_EVENT) < 0 then return true end if (isPlayer(player)) then if (getPlayerStorageValue(player, STORAGE_PLAYER) > 0) then pid = getPlayerGUID(cid) setHouseOwner(100, pid) doPlayerAddPremiumDays(player, 7) for _, cid in ipairs(getPlayersOnline()) do setPlayerStorageValue(cid, STORAGE_PLAYER, 0) doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid))) end doBroadcastMessage(getCreatureName(player) .. " ganhou o evento.", 25) doTeleportThing(player, {x = 531, y = 459, z = 7}) doCreateItem(391, 1, {x = 559, y = 453, z = 7}) end else doBroadcastMessage("Ningúem ganhou o evento.", 27) for _, pid in ipairs(getPlayersOnline()) do setPlayerStorageValue(pid, STORAGE_PLAYER, 0) doTeleportThing(pid, getTownTemplePosition(getPlayerTown(pid))) end end setGlobalStorageValue(STORAGE_EVENT, 0) return db.executeQuery("DELETE FROM `player_storage` WHERE `key` = " .. STORAGE_PLAYER) end function CastleWalls() local pedra = getTileItemById({ x = 539, y = 474, z = 7}, 1285) local escada = getTileItemById({ x = 539, y = 474, z = 7}, 3687) if pedra.uid > 0 then return doRemoveItem(pedra.uid) else return doCreateItem(1285, 1, { x = 539, y = 474, z = 7}) end if escada.uid > 0 then return doRemoveItem(escada.uid) else return doCreateItem(3687, 1, {x = 539, y = 474, z = 7}) end end function onSay(cid, words, param, channel) if ((param == "abrir") and (getGlobalStorageValue(STORAGE_EVENT) == 1)) then doPlayerSendTextMessage(cid, 27, "O evento já esta aberto.") return true elseif ((param == "fechar") and (getGlobalStorageValue(STORAGE_EVENT) == 1)) then getWinnerCastle() CastleWalls() return true end doCreateItem(3687, 1, {x = 539, y = 474, z = 7}) OpenEvent() CastleWalls() addEvent(getWinnerCastle, DUR * 60 * 1000) return true end A questão da escada não sumir eu teria que refazer o script do zero, não sou muito bom em editar script já pronto, mas agora estou sem tempo de refazer o script. Por favor, caso der erro poste o erro, não faça igual alguns membros que apenas diz "Deu Erro" e mais nada. Att. Giovani Rodrigo
-
[Resolvido] [Pedido] Magia com pedra
Crie um arquivo chamado fire strike.lua na pasta data/spells/scripts/attack e cole isso local combat1 = createCombatObject() setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_HOLYDAMAGE) setCombatParam(combat1, COMBAT_PARAM_EFFECT, 30) setCombatFormula(combat1, COMBAT_FORMULA_LEVELMAGIC, -42.6, -45.5, -47.5, -49.5) local condition1 = createConditionObject(CONDITION_PARALYZE) setConditionParam(condition1, CONDITION_PARAM_TICKS, 2) --setConditionParam(condition1, CONDITION_PARAM_SPEED, -500) setConditionFormula(condition1, -07, 0, -08, 0) setCombatCondition(combat1, condition1) local combat2 = createCombatObject() setCombatParam(combat2, COMBAT_PARAM_TYPE, COMBAT_ICEDAMAGE) setCombatParam(combat2, COMBAT_PARAM_EFFECT, 29) setCombatFormula(combat2, COMBAT_FORMULA_LEVELMAGIC, -42.6, -45.5, -47.5, -49.5) local condition2 = createConditionObject(CONDITION_CURSED) setConditionParam(condition2, CONDITION_PARAM_DELAYED, 1) addDamageCondition(condition2, 10, 2, -2) setCombatCondition(combat2, condition2) local combat3 = createCombatObject() setCombatParam(combat3, COMBAT_PARAM_TYPE, COMBAT_ICEDAMAGE) setCombatParam(combat3, COMBAT_PARAM_EFFECT, 53) setCombatFormula(combat3, COMBAT_FORMULA_LEVELMAGIC, -42.6, -45.5, -47.5, -49.5) local condition3 = createConditionObject(CONDITION_DAZZLED) setConditionParam(condition3, CONDITION_PARAM_DELAYED, 1) addDamageCondition(condition3, 10, 2, -2) setCombatCondition(combat3, condition3) arr1 = { {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0}, {0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0}, {0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0}, {0, 0, 0, 1, 1, 3, 1, 1, 0, 0, 0}, {0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0}, {0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0}, {0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, } arr2 = { {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0}, {0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0}, {0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0}, {0, 1, 1, 1, 1, 3, 1, 1, 1, 1, 0}, {0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0}, {0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0}, {0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, } arr3 = { {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0}, {0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0}, {0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0}, {0, 1, 1, 1, 1, 3, 1, 1, 1, 1, 0}, {0, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0}, {0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0}, {0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, } local area1 = createCombatArea(arr1) local area2 = createCombatArea(arr2) local area3 = createCombatArea(arr3) setCombatArea(combat1, area1) setCombatArea(combat2, area2) setCombatArea(combat3, area3) local function onCastSpell1(parameters) doCombat(parameters.cid, parameters.combat1, parameters.var) end local function onCastSpell2(parameters) doCombat(parameters.cid, parameters.combat2, parameters.var) end local function onCastSpell3(parameters) doCombat(parameters.cid, parameters.combat3, parameters.var) end function onCastSpell(cid, var) local parameters = { cid = cid, var = var, combat1 = combat1, combat2 = combat2, combat3 = combat3 } if getPlayerItemCount(cid, 8302) >= 1 then addEvent(onCastSpell1, 1, parameters) addEvent(onCastSpell2, 2, parameters) addEvent(onCastSpell3, 3, parameters) else doPlayerSendTextMessage(cid, 22, 'You need 1 or more of '.. getItemNameById(8302) ..'.') end return true end Adicione a seguinte linha no arquivo spells.xml que se encontra na pasta data/spells <instant name="strike" words="caldera" lvl="250" maglv="5" mana="500" exhaustion="2000" prem="0" needlearn="1" casterTargetOrDirection="1" selftarget="1" blockwalls="0" aggressive="1" event="script" value="attack/fire strike.lua"> <vocation id="0"/> <vocation name="Master Sorcerer"/> <vocation name="Elder Druid"/> <vocation name="Royal Paladin"/> <vocation name="Elite Knight"/> </instant> Crie um arquivo chamado strike.lua na pasta data/actions/scripts e cole isso function onUse(cid, item, frompos, item2, topos) if isPlayer(cid) then doPlayerLearnInstantSpell(cid, "strike") doSendMagicEffect(getCreaturePosition(cid), 14) doPlayerSendTextMessage(cid, 22, 'You learn a new spell.') end return TRUE end Adicione a seguinte linha no arquivo actions.xml que se encontra na pasta data/actions <action itemid="8302" event="script" value="strike.lua"/> Não testado Dúvidas? Me avise. Att. Giovani Rodrigo
-
[Resolvido] [PEDIDO] NPC Troca Item por outro Item
Faça mesmo procedimento que eu citei só substitua o script do Jax.lua por esse local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local talkState = {} function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end function onThink() npcHandler:onThink() end local items = { item1 = {2346, 2349}, -- item1 item que será pedido e que será dado na primeira troca item2 = {2033, 15515} -- item2 item que será pedido e que será dado na segunda troca } local counts = { count1 = {1, 1}, -- count1 quantidade que será pedido e que será dado na primeira troca count2 = {10, 1} -- count2 quantidade que será pedido e que será dado na segunda troca } function creatureSayCallback(cid, type, msg) if(not npcHandler:isFocused(cid)) then return false end local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid if msgcontains(msg, 'blue note') then selfSay('You want to swap '.. counts.count1[1] ..' '.. getItemNameById(items.item1[1]) ..' for '.. counts.count1[2] ..' '.. getItemNameById(items.item1[2]) ..'.',cid) talkState[talkUser] = 1 elseif talkState[talkUser] == 1 then if msgcontains(msg, 'yes') then if getPlayerItemCount(cid, items.item1[1]) >= counts.count1[1] then doPlayerRemoveItem(cid, items.item1[1], counts.count1[1]) doPlayerAddItem(cid, items.item1[2], counts.count1[2]) selfSay('You just swap '.. counts.count1[1] ..' '.. getItemNameById(items.item1[1]) ..' for '.. counts.count1[2] ..' '.. getItemNameById(items.item1[2]) ..'.', cid) talkState[talkUser] = 0 else selfSay('You need '.. counts.count1[1] ..' '.. getItemNameById(items.item1[1]) ..'.', cid) end else selSay('Ok then!', cid) talkState[talkUser] = 0 end elseif msgcontains(msg, 'bar of gold') then selfSay('You want to swap '.. counts.count2[1] ..' '.. getItemNameById(items.item2[1]) ..' for '.. counts.count2[2] ..' '.. getItemNameById(items.item2[2]) ..'.', cid) talkState[talkUser] = 2 elseif talkSate[talkUser] == 2 if msgcontains(msg, 'yes') then if getPlayerItemCount(cid, items.item2[1]) >= counts.count2[1] then doPlayerRemoveItem(cid, items.item2[1], counts.count2[1]) doPlayerAddItem(cid, items.item2[2], counts.count2[2]) selfSay('You just swap '.. counts.count2[1] ..' '.. getItemNameById(items.item2[1]) ..' for '.. counts.count2[2] ..' '.. getItemNameById(items.item2[2]) ..'.', cid) talkState[talkUser] = 0 else selfSay('You need '.. counts.count2[1] ..' '.. getItemNameById(items.item2[1]) ..'.', cid) end else selfSay('Ok then!', cid) talkState[talkUser] = 0 end end return TRUE end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) Att. Giovani Rodrigo
-
Pedido de script de book
Crie um arquivo chamado booktrainer.lua na pasta data/actions/scripts e cole isso function onUse(cid, item, frompos, item2, topos) return doShowTextDialog(cid, item.itemid, 'Aqui voce coloca\nAs informaçoes.') -- Entre as aspas simples você coloca o que aparecerá no livro. O \n significa quebra de linha (pular linha) end Adicione essa linha na arquivo actions.xml que se encontra na pasta data/actions <action itemid="1950" event="script" value="book.lua"/> <!-- itemid="1950" é o id do livro --> Att. Giovani Rodrigo
- [Fórum parado] /reload staff
-
[Ajuda] Script Mutated Human + Deposit + pots
Explique cada um dos sistemas, sem informações não consigo fazer nada.
-
Guitar Hero - Editado
Estava eu sem fazer nada no computador quando me surgiu a ideia genial de estragar o Guitar Hero - Legends of Rock (Guitar Hero - III) Ai esta o resultado das merdas que eu fiz: Say Goodnight - Bullet for My Valentine Tears Don't Fall - Bullet for My Valentine Enough - Disturbed Torn - Disturbed Perfect Insanity - Disturbed The Unforgiven II - Metallica Sulfur - Slipknot Eyeless - Slipknot Disasterpieces - Slipknot Duality - Slipknot Lembrando que eu não toquei nenhuma delas, coloquei no AutoPlay, esses videos é só para divulgar o meu trabalho. Queria saber porque tem limite de usar a tag media? Achei ofensivo. Att. Giovani Rodrigo
-
NPC Perguntar se Sim
Removido!
-
[Fórum parado] /reload staff
Concordo com você, muitos da equipe pode ser menor de idade e não tem condições de bancar uma premium time pra um evento pra apenas 8 participar. Eu acho que se não está havendo evento não é por relaxo da equipe ou do administrador, cada um tem um problema pessoal, seja tempo, dinheiro, etc... Criar eventos tem um custo, custo material para o prêmio, tempo para avaliar os concorrentes, tempo para divulgar o evento, etc... Se evento valendo bens materiais o pessoal já não está participando, imagina sem prêmios. Muitos participam por diversão, mas existem varias pessoas que participa por interesses materiais.
- [Fórum parado] /reload staff
-
Tem como colocar uma área de trainers no script changemap?
Não tem como eu testar a mudança de cidade aqui no meu OT de teste, mas eu teste da seguinte maneira: Se o jogador estiver na área escolhida no script ele recebe uma mensagem, mas se caso ele não estiver nessa área escolhida ele recebe outra mensagem e funcionou perfeitamente. Eu modifiquei o script que eu postei da primeira vez, se puder copiar tudo de novo e testar seria ótimo.
-
[Resolvido] [pedido] Tp para evento
Tente esse script local cfg = { tPos = {x=1061, y=1033, z=7, stackpos=1}, -- Loca que o telepor irá aparecer eventPos = {x=1062, y=1038, z=7}, -- Local que sera teleportado duration = 5 -- Tempo para o teleport desaparecer em minutos } function onSay(cid, words, param) doBroadcastMessage('The Dota Event was opened. Will be closed in '.. cfg.duration ..' minutes.') doCreateTeleport(1387, cfg.eventPos, cfg.tPos) addEvent(onRemove, cfg.duration*60*1000) return TRUE end function onRemove() local getTp = getThingfromPos(cfg.tPos) if getTp.itemid == 1387 then doRemoveItem(getTp.uid, 1) doBroadcastMessage('The Dota Event was closed.') doSendMagicEffect(cfg.tPos, 2) end return TRUE end Testado e está 100% funcional. Att. Giovani Rodrigo
-
[Resolvido] [pedido] Tp para evento
Tem sim, mas eu estou vendo ali e parece que são dois eventos, isso eu não conseguiria fazer sou muito novato. Já apenas um, acho que consigo.
-
[Resolvido] [pedido] Tp para evento
Tenta agora.
-
VPS WINDOWS
Todo VPS WINDOWS vai ser caro, pois o dono da empresa de VPS paga pela senha de ativação do WINDOWS, já LINUX é de distribuição gratuita por isso é mais barato. Se você quer segurança e qualidade escolha uma empresa de sua preferência e pegue um VPS Linux. Por ser de distribuição gratuita não existe muitos vírus para Linux ou não existe vírus. Os hackers geralmente criam vírus ou invadem sistemas com o intuito de mostrar ao usuário que o que ele está pagando não tem qualidade nem segurança, como Linux é gratuito não tem necessidade disso. Att. Giovani Rodrigo
-
[Resolvido] [pedido] Tp para evento
Modifiquei algumas coisas no script do MaXwEllDeN local events = { ["dota"] = {tp_pos = {x = 160, y = 54, z = 7}, event_pos = {x = 720, y = 30, z = 7}, duration = 5}, ["ctf"] = {tp_pos = {x = 230, y = 150, z = 7}, event_pos = {x = 210, y = 180, z = 6}, duration = 1} } function onSay(cid, words, param) local event = events[param:lower()] if not event then local str = "Eventos disponíveis:" for i, _ in pairs(events) do str = str .. "\n".. string.upper(i:sub(1, 1)) .. i:sub(2, #i) end return doPlayerPopupFYI(cid, str) end addEvent(remover, event.duration*60000, event.tp_pos, param) doBroadcastMessage("[".. getCreatureName(cid) .. "]: O evento ".. param .. " está aberto por ".. event.duration .. " minutos!") doCreateTeleport(1387, event.event_pos, event.tp_pos) return true end function remover(pos, param) local tp = getTileItemById(pos, 1347).uid if tp > 100 then doBroadcastMessage("O evento ".. param .." foi fechado!") doRemoveItem(tp, 1) end return true end Créditos: MaXwEllDeN Não testado. Dúvidas? Me avise. Att. Giovani Rodrigo
-
Tem como colocar uma área de trainers no script changemap?
Colocou como está na Imagem 1 e recopiou o código que eu postei?
-
Tem como colocar uma área de trainers no script changemap?
Explicando: Imagem 1 A fromPos é a posição do piso superior esquerdo ou o piso contornado de azul como mostra na Imagem 1. A toPos é a posição do piso inferior direito ou o piso contornado de vermelho como mostra a Imagem 1. Pergunta: Mas o que tem a ver essa fromPos e toPos com a área do trainer? Resposta: Esses dois pisos tem uma função bem simples que é marcar a área de um quadrado ou retângulo. Continua não entendendo? Vou explicar melhor. Imagem 2 Veja que na Imagem 2 tem quatro linhas marcando os eixos X e Y de cada piso, veja também que as linhas se encontram formando um quadrado ou retângulo, isso faz com que os dois pisos que não era de nenhuma importância sejam as peças principais na formação de um quadrado ou retângulo. Pergunta: Mas porque determinar essa área? Resposta: Se você prestar atenção eu não modifiquei só isso, eu adicionei o seguinte comando. if isPlayer(getPlayer.uid) then doPlayerSendTextMessage(cid, 18, 'You are training, so there will be teleported.') else Traduzindo O código diz o seguinte: Se existir um jogador em determinada área faça (Pergunta: Faça o que?). Envie a seguinte mensagem(Mensagem a ser enviada). Senão (Caso não tenha um jogador em determinada área). Executar o script que teletransportará o jogador para a outra cidade. Entendeu? Recopie o código pois editei algumas coisas. Testado 50% (Apenas abri o OT e não deu nenhum erro). Att. Giovani Rodrigo
- bug no meu mapa ajuda!
-
Tem como colocar uma área de trainers no script changemap?
Teste esse <?xml version="1.0" encoding="ISO-8859-1"?> <mod name="ChangeMap" version="2.0" author="Vodkart" contact="none.com" enabled="yes"> <config name="map_func"><![CDATA[ info = { [1] = 3, [2] = 5, [3] = 7, [4] = 9, [5] = 11, [6] = 13, [7] = 14, [8] = 15, [9] = 16, [10] = 17 } storage = 789520 fromPos = {x = 1059, y = 1034, z = 7} -- Posição do piso superior esquerdo toPos = {x = 1062, y = 1036, z = 7} -- Posição do piso inferior direito ]]></config> <event type="login" name="Check Map" event="script"><![CDATA[ domodlib('map_func') function onLogin(cid) local fromp, top = fromPos, toPos for x = fromp.x, top.x do for y = fromp.y, top.y do local areapos = {x=x, y=y, z=fromPos.z} getPlayer = getThingfromPos(areapos) if isPlayer(getPlayer.uid) then doPlayerSendTextMessage(cid, 18, 'You are training, so there will be teleported.') end if getGlobalStorageValue(storage) == -1 then setGlobalStorageValue(storage, 0) end doTeleportThing(cid, getTownTemplePosition(info[getGlobalStorageValue(storage)])) end end return true end ]]></event> <globalevent name="ChangeMap" interval="3600" event="script"><![CDATA[ domodlib('map_func') function onThink(interval, lastExecution, thinkInterval) local fromp, top = fromPos, toPos for x = fromp.x, top.x do for y = fromp.y, top.y do local areapos = {x=x, y=y, z=fromPos.z} getPlayer = getThingfromPos(areapos) if isPlayer(getPlayer.uid) then doPlayerSendTextMessage(cid, 18, 'You are training, so there will be teleported.') end doBroadcastMessage('The map will be changed again in 1 hour.') setGlobalStorageValue(storage, getGlobalStorageValue(storage) < #info and getGlobalStorageValue(storage)+1 or 0) for _, pid in ipairs(getPlayersOnline()) do doPlayerSetTown(pid, info[getGlobalStorageValue(storage)]) doRemoveConditions(pid, true) doCreatureAddHealth(pid, getCreatureMaxHealth(pid)) doCreatureAddMana(pid, getCreatureMaxMana(pid)) doTeleportThing(pid, getTownTemplePosition(getPlayerTown(pid))) end end end return true end ]]></globalevent> </mod> Dúvidas? Me avise. Att. Giovani Rodrigo
-
Duvidas sobre HOST .
Eu acho que ele pega uns 500 jogadores de boa sem lag nenhum. Já vi gente rodar baiak com 1.8 de processador, 1gb de memória e 1mb de internet com 50 jogadores sem lag. Ai vai de você fazer testes.
-
[Resolvido] [duvida] Combo.
De nada, mas lembrando que o seu problema resolvido não era na vocação e sim na spell que estava em grupo diferente. Att. Giovani Rodrigo
-
[Resolvido] [PEDIDO] NPC Troca Item por outro Item
Muito obrigado a vocês que trazem esses desafios, é um imenso prazer ajudar todos vocês do TK. Sempre que precisar estamos ai. Att. Giovani Rodrigo
-
[Resolvido] [duvida] Combo.
Troque apenas esse <instant name="Fierce Berserk" words="exori gran" lvl="90" mana="340" prem="1" needweapon="1" exhaustion="2000" groups="4,2000" icon="105" needlearn="0" event="script" value="attack/fierce berserk.lua"> <vocation id="4;8"/> </instant> Unica coisa que eu mudei foi o groups="4,2000" pois ele decide o grupo da magia, se ela é attack, suport, heal, e outro que eu esqueci o nome. Att. Giovani Rodrigo