Tudo que Yugami postou
-
summon controlado
Testa essa script colega: local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, 34) setCombatFormula(combat1, COMBAT_FORMULA_LEVELMAGIC, -5.2, -0 , -4.2, -0) local arr = { {0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0}, {0, 0, 1, 1, 1, 0, 0}, {0, 0, 1, 3, 1, 0, 0}, {0, 0, 1, 1, 1, 0, 0}, {0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0} } local area = createCombatArea(arr) setCombatArea(combat, area) function onCastSpell(cid, var) local summon = getCreatureSummons if (table.maxn(summon) == 1) then doCombat(summon[1], combat, var) doRemoveCreature(summon[1]) else doPlayerSendCancel(cid, "No have Summon") return false end end
-
(Resolvido)[pedido] storage que retorna o player morto para um local
Desculpe, estou montando pelo bloco de notas aqui do trampo ai acabo me desatentando a esses detalhes., copia la novamente eu me desatentei e esqueci de colocar o sinal de = após o from.
-
summon controlado
então não necessariamente precisaria ser um comando que ativa uma spell, no caso seria bom detalhar mais sobre o que faria a script, por exemplo: Precisava de um script na qual ao player utilizar X spell, se ele tiver um summon ativo, o summon morre/desaparece e vai dar um dano de x sqm, e o cooldown da spell sera de x segundos/minutos.
-
summon controlado
possível é, seria tipo estilo Poketibia ou Digitibia, entretanto essa sua ideia seria para um Summon? ou o jogadores invocaria mais de um Summon
-
(Resolvido)[pedido] storage que retorna o player morto para um local
fiz algumas correções na script local c = { storage = 20000, -- storage do evento ativo pos_zone = {from = {x = 2100, y = 2100, z = 7}, to = {x = 2100, y = 2100, z = 7}}, -- posição superior esquerda, posição inferior direita pos = {x = 2100, y = 2100, z = 7}, -- posição que o player sera teleportado dentro do storage oldPEffect = 200, -- efeito quando ele morrer newPEffect = 200, -- efeito quando ele renascer exit = {x = 1000, y = 1000, z = 7}, -- posição que ele sera levado caso ele não tenha a storage } function onDeath(cid, corpse, lasthitkiller, mostdamagekiller, lasthitunjustified, mostdamageunjustified) local zone = c.pos_zone if (isInRange(getCreaturePosition(cid), zone.from, zone.to)) then if (getCreatureStorage(cid, c.storage) ~= 0) then doCreatureAddHealth(cid, getCreatureMaxHealth(cid)) doCreatureAddMana(cid, getCreatureMaxMana(cid)) doSendMagicEffect(getCreaturePosition(cid), c.oldPEffect) doTeleportThing(cid, c.pos) doSendMagicEffect(getCreaturePosition(cid), c.newPEffect) else doTeleportThing(cid, c.pos) doSendMagicEffect(getCreaturePosition(cid), c.newPEffect) end end return false end
-
(Resolvido)Editar coordenadas do tp
Ola amigo, acredito que você precisa prestar mais atenção ao ler um tópico ou até mesmo uma script, pois a própria script já lhe responde estas perguntas pos -> posição de criação do teleport toPos -> posição na qual ele vai levar time -> tempo de duração do teleport storage -> valor da storage que vai adicionar value -> valor da storage ["Ushuriel"] = {pos = {x=33157, y=31730, z=11}, toPos = {x=33069, y=31783, z=13}, time = 60, storage = 56123, value = 1}, referente a sua duvida "código do boss", ele se refere ao arquivo na qual fica o código do monster, resumindo é o arquivo.xml que você criou na pasta data/monsters. ----------------EDIT-------------- Outra observação, o script acredito esta errado, pois o mesmo faz um laço em "players", porem não existe nenhuma variável players, Caso eu esteja enganado peço que alguem me corrija. -- EDIT -- caso queira testar para ver se funciona local tps = { ["Ushuriel"] = { pos_zone = {from = {x=33069, y=31783, z=13}, to = {x=33069, y=31783, z=13}}, -- from canto superior esquerdo, to canto inferior direito pos = {x=33157, y=31730, z=11}, -- posição que vai ser criado o teleport toPos = {x=33069, y=31783, z=13}, -- posição que vai levar o teleport time = 60, -- duração do teleport storage = 56123, -- numero da storage ganha value = 1 -- valor da storage ganha }, } local function removeTp(tp) local t = getTileItemById(tp.pos, 5023).uid if (t > 0) then doRemoveItem(t) doSendMagicEffect(tp.pos, CONST_ME_POFF end end function onDeath(cid) local tp = tps[getCreatureName(cid)] if tp then local zone = tp.zone for _, pid in ipairs(getPlayersOnline()) do if (isInRange(getPlayerPosition(cid), zone.from, zone.to)) then setCreatureStorageValue(pid, tp.storage, tp.value) end end doCreateTeleport(5023, tp.toPos, tp.pos) doCreatureSay(cid, "O teleport irá sumir em "..tp.time.." segundos.", TALKTYPE_ORANGE_1) addEvent(removeTp, tp.time*1000, tp) end return true end
-
Erro ao abrir a página de visualização do Character
Ola amigo, então o próprio erro já diz que ele esta tentando checar uma skill que é inexistente, verifica em qual tabela e coluna a função getSkill faz a busca, e em seguida verifica o padrão de numero de skills la, era pra ir de 0-6.
-
(Resolvido)[Pedido] Script Dimensão
Atah, ambos os erro foi por que esqueci de add o to na position, tenta agora, fiz uma edição no script .
-
(Resolvido)[Pedido] Script Dimensão
caso o do nosso amigo acima não funcione, e queira tentar oque eu tentei resumi do dele, fiz pelo bloco de notas qualquer erro só postar. local c = { cooldown = 25, -- tempo em segundos para usar novamente effect = 200, -- efeito que vai sair quando for utilizado a spell storage = 32598, -- storage do cooldown pos_user = { x = 1509, y = 1261, z = 7}, pos_target = { x = 1509, y = 1255, z = 7}, time_back = 15, -- tempo em segundos para retornar points = 70, -- pontos de skills que o usuario terar a mais spell_room = {from = {x = 1, y = 1, z = 1}, to = {x = 1, y = 1, z = 1}}, restricted_zones = { [1] = {from = {x = 1483, y = 1110, z = 7}, to = {x = 1648, y = 1275, z = 7}}, [2] = {from = {x = 1054, y = 910, z = 7}, to = {x = 1069, y = 925, z = 7}} } } local function teleportPlayer(cid, pos, time, posBack) addEvent(doTeleportThing, time, cid, posBack) doTeleportThing(cid, pos) end local condition = createConditionObject(CONDITION_ATTRIBUTES) setConditionParam(condition, CONDITION_PARAM_TICKS, c.time_back*1000) setConditionParam(condition, CONDITION_PARAM_STAT_MAGICLEVEL, c.points) setConditionParam(condition, CONDITION_PARAM_SKILL_FIST, c.points) setConditionParam(condition, CONDITION_PARAM_SKILL_SWORD, c.points) setConditionParam(condition, CONDITION_PARAM_SKILL_AXE, c.points) setConditionParam(condition, CONDITION_PARAM_SKILL_CLUB, c.points) setConditionParam(condition, CONDITION_PARAM_SKILL_DISTANCE, c.points) setConditionParam(condition, CONDITION_PARAM_SKILL_SHIELD, c.points) function onCastSpell(cid, var) local spellRoom = c.spell_room local restrictZones = c.restricted_zones local target = getCreatureTarget(cid) if (isInRange(getCreaturePosition(cid), spellRoom.from, spellRoom.to)) then doPlayerSendTextMessage(cid, 25, "You are already within the dimension of this spell.") doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF) return false end for _, zone in ipairs(restrictZones) do if (isInRange(getCreaturePosition(cid), zone.from, zone.to)) then doPlayerSendTextMessage(cid, 25, "It is impossible to use this spell here.") doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF) return false end end if (isPlayer(cid)) and (exhaustion.check(cid, c.storage)) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Wait ".. exhaustion.get(cid, c.storage) .. " seconds") return false end if (not isPlayer(target)) then doPlayerSendCancel(cid, "This spell can only be used in Player.") return false end teleportPlayer(cid, c.pos_target, c.time_back*1000, getCreaturePosition(target)) teleportPlayer(cid, c.pos_user, c.time_back*1000, getCreaturePosition(cid)) doSendMagicEffect(getCreaturePosition(target), c.effect) return TRUE end
-
(Resolvido)[pedido] storage que retorna o player morto para um local
local c = { storage = 20000, -- storage do evento ativo from,to = {x = 2100, y = 2100, z = 7}, {x = 2100, y = 2100, z = 7}, -- posição superior esquerda, posição inferior direita pos = {x = 2100, y = 2100, z = 7}, -- posição que o player sera teleportado dentro do storage oldPEffect = 200, -- efeito quando ele morrer newPEffect = 200, -- efeito quando ele renascer exit = {x = 1000, y = 1000, z = 7}, -- posição que ele sera levado caso ele não tenha a storage } function onDeath(cid, corpse, lasthitkiller, mostdamagekiller, lasthitunjustified, mostdamageunjustified) if (isInRange(getCreaturePosition(cid), c.from, c.to) then if ((cid, c.storage) ~= 0) then doCreatureAddHealth(cid, getCreatureMaxHealth(cid)) doCreatureAddMana(cid, getCreatureMaxMana(cid)) doSendMagicEffect(getCreaturePosition(cid), c.oldPEffect) doTeleportThing(cid, c.pos) doSendMagicEffect(getCreaturePosition(cid), c.newPEffect) else doTeleportThing(cid, c.pos) doSendMagicEffect(getCreaturePosition(cid), c.newPEffect) end end return false end tenta desta forma que coloquei acima.
-
(Resolvido)[pedido] storage que retorna o player morto para um local
Não entendi muito bem oque você quer, ver se funciona o script que fiz pelo bloco de notas: OBS: não esqueça de adicionar a tags do creaturescripts.xml, e dentro do login.lua. Após adicionar o script, se caso o servidor estiver aberto, feche-o e o abra novamente. local c = { storage = 20000, -- storage do evento ativo arena = {from = {x = 2100, y = 2100, z = 7}, to = {x = 2100, y = 2100, z = 7}}, -- posição superior esquerda, posição inferior direita pos = {x = 2100, y = 2100, z = 7}, -- posição que o player sera teleportado dentro do storage oldPEffect = 200, -- efeito quando ele morrer newPEffect = 200, -- efeito quando ele renascer exit = {x = 1000, y = 1000, z = 7}, -- posição que ele sera levado caso ele não tenha a storage } function onDeath(cid, corpse, lasthitkiller, mostdamagekiller, lasthitunjustified, mostdamageunjustified) if (isInRange(getCreaturePosition(cid), c.arena.from, c.arena.to)) then if (getPlayerStorageValue(cid, c.storage) ~= 0) then doCreatureAddHealth(cid, getCreatureMaxHealth(cid)) doCreatureAddMana(cid, getCreatureMaxMana(cid)) doSendMagicEffect(getCreaturePosition(cid), c.oldPEffect) doTeleportThing(cid, c.pos) doSendMagicEffect(getCreaturePosition(cid), c.newPEffect) else doTeleportThing(cid, c.pos) doSendMagicEffect(getCreaturePosition(cid), c.newPEffect) end end return false end
-
preciso de ajuda com um script que tenho
Tenta desta forma:
-
Player no anda ao clicar
Caro, acredito que se você precisar de ajuda seria bom reformular seu tópico, na minha opinião ninguém deve ter entendido direito oque você precisa.
-
erro ao criar conta myacc
Companheiro não tenho tantas noções de linguaguem de PHP e SQL, entretanto acredito que o erro é pelo seguinte motivo: #0 /var/www/html/system/libs/pot/OTS_Account.php(140): PDO->exec('INSERT INTO `ac...') ele esta tentando inserir um valor na coluna "vip_time", porem não existe nada que faça referencia ao mesmo, então o próprio banco de dados esta configurado para que quando inserir um valor vazio ele inserir um valor X, è neste valor X que esta o erro, pois o mesmo não deve estar configurado. acredito que seja isso.
-
player dropar x item aparecer x mensagem Creaturescript
se colocou a tag no Creaturescripts.xml e no login.lua? se não colocou faz assim: no creaturescripts.xml coloque e em login.lua se coloca se no creaturescripts.xml vc colocou "Nome_do_Sistema" com o N e S maiusculo, no login.lua tem que coloca da mesma forma, se for maiusculo coloca maiusculo e se for minusculo coloca minusculo...
-
player dropar x item aparecer x mensagem Creaturescript
testa agora.
-
player dropar x item aparecer x mensagem Creaturescript
tenta agora, eu esqueci de fexar as " . "
-
player dropar x item aparecer x mensagem Creaturescript
tenta isso local config = { [1] = {itemid= 2471}, [2] = {itemid= 2471}, [3] = {itemid= 2471}, } function examine(cid, position, corpse_id) if not isPlayer(cid) then return true end local corpse = getTileItemById(position, corpse_id).uid if corpse <= 1 or not isContainer(corpse) then return true end for slot = 0, getContainerSize(corpse) - 1 do local item = getContainerItem(corpse, slot) if item.uid <= 1 then return true end for i = 1, #config do if item.itemid == config[i].itemid then doBroadcastMessage("DROP MENSAGEM: O Jogador (" .. getCreatureName(cid) .. ") Dropou o Item (" .. getItemNameById(config[i].itemid) .. ")." , 19) end end end end function onKill(cid, target) if not isMonster(target) then return true end local corpse_id = getMonsterInfo(getCreatureName(target)).lookCorpse addEvent(examine, 2, cid, getThingPos(target), corpse_id) return true end
-
(Resolvido)Creaturescript de pvp enforced ganhando xp no summon, help pls
Tenta desta forma. function onKill(cid, target, lastHit) local target = getCreatureTarget(isPlayer(cid)) if target then doSendAnimatedText(getPlayerPosition(cid), "10000000", 215) doPlayerAddExperience(cid, getPlayerExperience(target) / 5000) end return TRUE end
-
(Resolvido)Ao Clickar pra abrir a Bp -DEBUG
então tu tem que arrumar os newtype de todos elas, provavelmente ela ta com algum "newtype" bugado que no client não tem, ou que esta com a descrição do objeto diferente por exemplo se no item.orb ele estiver com o useable marcado e no newtype do object buider, ele não tiver com esta opção marcada, possa ser que de divergência e acaba debugando mesmo. ai o jeito é tu deixa os dois iguais.
-
(Resolvido)Ao Clickar pra abrir a Bp -DEBUG
ser for a bp, tu procura o ID dela e axa ela la no item editor se for o item, tu procura o ID do item e axa ele la no item editor ali em cid é o "newtype" do objeto, esse newtype do objeto tu tem q axar pelo programa do Dat editor ou Object Buider
-
(Resolvido)Ao Clickar pra abrir a Bp -DEBUG
baixa este programa e depois extrai ele para alguma pasta, coloca seu tibia.spr e tibia.dat nesta mesma pasta, e abre o programa, ai só abri o seu itens.xml, caça o ID da potion, logo em seguida tu vai no programa abre o itens.orb procura esse mesmo ID que tava no itens.xml, e editar o ID da newtype que tiver la, para alguma que não debug
-
Script p/ quest
Ver se funciona no seu mapa vai na pasta do seu OT/data/actions/scripts e cria um arquivo.lua com nome de alavancaquestion e coloca este código dentro local config = { placa = 1945, -- ID da Placa exausted = 24, -- Exausted em Horas storage = 15555, -- Storage da Questão effect = 222, -- ID do efeito durante o teleport posteleport = {x=996, y=1087, z=7, stackpos=253}, -- Piso onde o Player vai ser teleportado } function onUse(cid, item, frompos, item2, topos) if item.itemid == config.placa then if getPlayerStorageValue(cid, config.storage) - os.time() >= 1 then local left = getPlayerStorageValue(cid, config.storage) - os.time() left = {hour = math.floor(left/3600), minutes = math.ceil((left % 3600)/60), seconds = math.ceil((left % 3600)%60)} doPlayerSendCancel(cid, 'Aguarde '.. left.hour ..' horas e '..left.minutes..' minutos e '..left.seconds..' segundos para fazer novamente.') return false end if getPlayerStorageValue(cid, config.storage) - os.time() < 1 then doSendMagicEffect(config.posteleport, config.effect) doTeleportThing(cid,config.posteleport) doPlayerSendCancel(cid,"Você foi teleportado.") -- MSG após ser teleportado return TRUE end end return TRUE end agora cria outro arquivo.lua com nome de bauquestion e coloca este outro código local config = { level = 222, -- Level necessário para fazer exausted = 24, -- Exausted em Horas storage = 15555, -- Storage da Questão } function onUse(cid, item, frompos, item2, topos) if getPlayerStorageValue(cid, config.storage) - os.time() < 1 and getPlayerLevel(cid) >= config.level then setPlayerStorageValue(cid, config.storage, 24 * 60 * 60 + os.time()) doPlayerAddItem(cid, 2150, 1) -- Item que vai ganha, e a quantidade doPlayerSendTextMessage(cid,20,"Você terminou quest.") -- MSG após termina a quest else doPlayerSendTextMessage(cid,20, "Você ainda não pode fazer esta questão.") -- MSG se ele ainda estiver com o exausted end end agora vai no actions.xml e coloca essas tag <action actionid="22222" event="script" value="alavancaquestion.lua" /> -- Actionid da alavanca <action actionid="22221" event="script" value="bauquestion.lua" /> -- Actionid do bau
-
(Resolvido)Ao Clickar pra abrir a Bp -DEBUG
qual versão do seu jogo? 854,860...?
-
(Resolvido)Ao Clickar pra abrir a Bp -DEBUG
você tem o programa "item editor" da versão do seu jogo?