
Tudo que So volto tarde postou
-
Contrato Programador
tenta postar na academia, só não pego porque to cheio de coisa pra fazer academia: https://discord.gg/fxqWJwJm
-
ERRO NA DISTRO
na minha citacao tem instruções do que fazer, o problema nao e no xml, se você apenas abrir o google tradutor vai saber do que se trata o erro basta voce identificar onde está o erro (ja te ajudei com isso) para que a comunidade possa ajudar
-
ERRO NA DISTRO
você usa aquele sisteminha de sair um efeito no pokemon quando determinado bixo morre né? (seta de stone e afins) se sim, manda ele aqui se não, vai ali no creaturescripts.xml, procure por todas as linhas que iniciam com "<event type="kill"" , abra o script delas e procure pela função getContainerSize, se tiver esta função, anexe o arquivo (script) nesse tópico
-
Mostrar os segundos que faltam pro boss nascer
você pode tirar o respawn e colocar um globalevent "onstartup" (se nao me falha a memoria) para que, quando o servidor iniciar, o monstro nascer em determinada posição
-
Mostrar os segundos que faltam pro boss nascer
é possível sim, tenho certeza que alguém do fórum pode te ajudar
-
(Resolvido)Exausted
ahh, saquei, quando for pro pc vou ver melhor e coloco aqui direitinho
-
(Resolvido)Exausted
function onUse(cid, item, frompos, item2, topos) local time = 1800 -- Tempo que durará em segundos local texto = 'Voce Ganhou 30 Minutos de Exp [3x]' -- Texto que irá receber ao usar a potion. textofinal = 'Bonus de Exp [3x] Finalizada' -- Texto que irá receber quando o efeito da potion acabar. local exp = 3.0 -- O quanto que você quer que dobre sua experiencia, por exemplo 2 é 2x as rates do seu server. expfinal = 1 --Não mude, isso é para a experiencia voltar ao normal. local stor = 12132 if ((tonumber(getPlayerStorageValue(cid, stor) - os.time())) >= 1) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, "em uso") end if item.itemid == 7440 then doRemoveItem(item.uid, 1) doPlayerSetExperienceRate(cid, exp) doSendMagicEffect(frompos, 13) doPlayerSendTextMessage(cid, 22, texto) addEvent(potion, time * 1000, cid) setPlayerStorageValue(cid, stor, os.time() + time) end end function potion(pos, cid) doPlayerSetExperienceRate(pos, expfinal) doPlayerSendTextMessage(pos,22, textofinal) end
-
(Resolvido)Exausted
se ele dura 30 minutos e voce quer um exhausted de 30 minutos, nao precisa necessariamente trabalhar com exhaustion, apenas verificar se o item está em uso function onUse(cid, item, frompos, item2, topos) local time = 1800 -- Tempo que durará em segundos local texto = 'Voce Ganhou 30 Minutos de Exp [3x]' -- Texto que irá receber ao usar a potion. textofinal = 'Bonus de Exp [3x] Finalizada' -- Texto que irá receber quando o efeito da potion acabar. local exp = 3.0 -- O quanto que você quer que dobre sua experiencia, por exemplo 2 é 2x as rates do seu server. expfinal = 1 --Não mude, isso é para a experiencia voltar ao normal. local stor = 12132 local stortime = getPlayerStorageValue(stor) - os.time() if (stortime >= 1) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, "em uso") end if item.itemid == 7440 then doRemoveItem(item.uid, 1) doPlayerSetExperienceRate(cid, exp) doSendMagicEffect(frompos, 13) doPlayerSendTextMessage(cid, 22, texto) addEvent(potion, time * 1000, cid) setPlayerStorageValue(cid, stor, os.time() + time) end end function potion(pos, cid) doPlayerSetExperienceRate(pos, expfinal) doPlayerSendTextMessage(pos,22, textofinal) end
-
usar item somente em determinada position
eu passei por um problema parecido quando fui me aventurar nesse código aqui o que acontece é que a função "getCreaturePosition(cid)" retorna uma tabela, se você passar ela para string e logo após enviar na tela do computador, vai poder ver isso perfeitamente, (doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, tostring(getCreaturePosition(cid))). e como você compara a posição de uma tabela que muda a todo momento, com outra tabela (algo como uma comparação do tipo if [table123123=table12121212] sempre vai retornar false e nunca entrará naquele bloco de código a solução é bem simples, como ela retorna uma tabela, basta acessar o valor dela "getCreaturePosition(cid).x" e agora sim, vai retornar a posição no eixo x do jogador, agora basta comparar código final:
-
Ajuda colocar efeito em spell e so funcionar em player
no monstro não adicionei nada sobre efeitos, no código você pode encontrar uma tabela "local effects", altere o "CONST_ME_POFF" para o efeito que quiser, ou, caso queira, pode deletar a tabela e alterar nas próprias linhas (17 e 18), ficando "doSendMagicEffect(getThingPos(cid), 11)". sendo 11 o id do effect //na real, vamos alterar, altere as linhas 17 e 18 para: ficando:
-
Ajuda colocar efeito em spell e so funcionar em player
function onCastSpell(cid, var) local target = getCreatureTarget(cid) local tPos = {x = getThingPos(target).x, y = getThingPos(target).y, z = getThingPos(target).z} local effects = { target = CONST_ME_POFF, user = CONST_ME_POFF -- alterar para o id do efeito } if(target > 0) then if (isMonster(target)) then doTeleportThing(cid, tPos) end doSendMagicEffect(getThingPos(cid), effects.user) doSendMagicEffect(getThingPos(target), effects.target) doTeleportThing(target, getThingPos(cid)) doTeleportThing(cid, tPos) else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, "selecione um alvo") end return true end
-
Ajuda colocar efeito em spell e so funcionar em player
function onCastSpell(cid, var) local target = getCreatureTarget(cid) local tPos = {x = getThingPos(target).x, y = getThingPos(target).y, z = getThingPos(target).z} local effects = { target = CONST_ME_POFF, user = CONST_ME_POFF -- alterar para o id do efeito } if(target > 0) then if (isMonster(target)) then doTeleportThing(cid, tPos) end doTeleportThing(target, getThingPos(cid)) doSendMagicEffect(getThingPos(cid), effects.user) doSendMagicEffect(tpos, effects.target) doTeleportThing(cid, tPos) else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, "selecione um alvo") end return true end
-
[Error - CreatureScript Interface]
function onThink(cid, interval) if (isPlayer(cid)) then local atualOutfit = getCreatureOutfit(cid) if(getTilePzInfo(getCreaturePosition(cid))) then if outfitChange[atualOutfit.lookType] then removeMount(cid) end end wnd quando for pro pc posso dar uma melhorada caso não funcione
-
[NPC] [POKETIBIA]
Este tópico foi movido para a seção de Suporte Otserv Alternativo
- [0.x] Player virar para a direção do target
-
KEY OPEN DOOR TFS 1.2
Este tópico foi movido para a seção de Suporte Otserv.
-
Action para LVL
function onUse(cid, item, fromPosition, itemEx, toPosition) local config = { min_lvl = 10, max_lxl = 20 } if (getPlayerLevel(cid) < config.min_lvl or getPlayerLevel(cid) > config.max_lxl) then doTeleportThing(cid, fromPosition) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, "u dont have lvl/have too much lvl") end return true end
-
War Global
você pode fazer o pedido do script adaptado pra versão que você quiser aqui, mas caso queira com certa rapidez, você pode visitar a academia de coding e dar uma visualizada no canal classificados o mapa creio que seja simples de fazer (um simples utilizável)
-
(Resolvido)[Pedido] Npc House 8.60
getHouseOwner(houseid) / getHouseAccessList(houseid, listid) dá pra você começar a partir destas funções, já tem alguns scripts no fórum que fazem esta verificação, como por exemplo:
-
(Resolvido)estou com um problema com npc interface
bacana, agora que vi, parece estar faltando o arquivo "zaiko.lua" no diretório que mencionei acima, mas mesmo assim, creio que nao seja algo que chegue ao ponto de não conseguir abrir o servidor
-
(Resolvido)[Pedido] Npc House 8.60
voce também pode capturar os npcs no evento "onTarget", como no exemplo abaixo: sendo assim, apenas alterando o escopo do código, fazemos seu pedido acontecer, gif: código: function onTarget(cid, target) if (isPlayer(cid) and isNpc(target) and getCreatureName(target) == "Alice") then doSendMagicEffect(getThingPos(target), CONST_ME_MAGIC_BLUE) doRemoveCreature(target) doPlayerAddItem(cid, 6570, 1) end return true end basta registrar no login.lua e creaturescripts servidor de testes: protocolo 8.60 tfs 0.3.6
-
(Resolvido)estou com um problema com npc interface
vai até o diretório "data/npc/scripts/vegetto black.lua" e anexe o ficheiro ao topico, amigo
-
(Resolvido)Feitiço caindo do céu
//solução: local SKILL_NAME = "Lava Plume" local SKILL_AREAS = { createCombatArea(AREA_CROSS6X6) } local combats = {} for i, skillArea in ipairs(SKILL_AREAS) do combats[i] = createCombatObject() onTargetCreature_LavaPlume = function(cid, target) doSkillDamage(cid, target, SKILL_NAME) if (not isCreature(target)) then return end -- Defeated if (not doPokemonSpecialAbilityCheck(target, POKEMON_SPECIAL_ABILITY_IDS.SHIELD_DUST, nil) and getRandom(0, 100) <= (doPokemonSpecialAbilityCheck(cid, POKEMON_SPECIAL_ABILITY_IDS.SERENA_GRACE, nil) and 60 or 30)) then doCreatureAddStatus(target, CREATURE_STATUS_BURN, getMonsterLevel(cid), cid) end end setCombatCallback(combats[i], CALLBACK_PARAM_TARGETCREATURE, "onTargetCreature_LavaPlume") setCombatArea(combats[i], skillArea) end local function doSpell(cid, combat, var) if (isCreature(cid)) then doCombat(cid, combat, var) end end local function fallProjectile(cid, pos) if not isCreature(cid) then return true end local apos = pos local frompos = {x=apos.x-7,y=apos.y-6,z=apos.z} doSendDistanceShoot(frompos, pos, 7) end local function sendEff(cid, pos) if not isCreature(cid) then return true end local apos = pos doSendMagicEffect(apos, CONST_ME_ICEATTACK) end function onCastSpell(cid, var) local t = {} local posic = getThingPos(cid) for x = -6, 6 do for y = -7, 8 do local posi = {x = posic.x + x, y = posic.y-5 + y, z = posic.z, stackpos = 0} table.insert(t, posi) end end for v = 1, #t do if (#t >= 1) then local random = math.random(1, #t) addEvent(fallProjectile, v * 12, cid, t[random]) addEvent(sendEff, v * 14, cid, t[random]) end end for i, combat in ipairs(combats) do addEvent(doSpell, 500 * (i - 1) + 1, cid, combat, var) end return true end
-
Paralyze pergaminho
Este tópico foi movido para a seção de Suporte Otserv.
-
(Resolvido)Aumentar Slot ( Monster )
dá pra alterar, abra o arquivo "items.xml" no diretório serverpack/data/items após isso, procure o item desejado, vou usar o dead troll como exemplo, segue: <item id="2806" article="a" name="dead troll"> <attribute key="weight" value="60000" /> <attribute key="containerSize" value="10" /> <attribute key="decayTo" value="2810" /> <attribute key="duration" value="600" /> <attribute key="corpseType" value="blood" /> <attribute key="fluidSource" value="blood" /> </item> na primeira linha, declaramos o id e o nome do item na segunda, declaramos que o peso do item será de 60000 na terceira, que é onde te interessa, declaramos que o container terá 10 espaços, para alterar, basta trocar de 10 para a quantidade desejada, ficando: <attribute key="containerSize" value="valor desejado" />