
Tudo que Emooooo postou
-
BANK SYSTEM
existe isso para tfs 0.3.6
-
alguem da uma ajuda aqui rapidin
nao estou conseguir deixa que seja exibido apenas uma mensagem de loot quando a criatura morre , gostaria de deixar aparecer apenas a mensagem debaixo e colocar (boosted loot) . usei a I.A para fazer o script e ela nao resolve essa parte ai como esta sendo exibido. 13:08 Loot of rat: 3 gold coin, (boosted loot) 13:08 Loot of a rat: cheese, 3 gold coins, 3 gold coins. gostaria que fosse assim. 13:08 Loot of a rat: cheese, 3 gold coins, 3 gold coins. (boosted loot)
-
mudar esse script para tfs 0.3.6
weapon : tag creaturescripts : creaturescript : +rep
-
como cria um item assim
como criar um documento ja escrito que não pode ser apagado ou reescrito. exemplo : https://ibb.co/yPL5Dgh
- Critical Skill System
-
colocar roubo de mana ou vida junto com esse script e atacar monstro com ele
creaturescripts.xml <!-- CRITICAL SYSTEM --> <event type="statschange" name="critical" event="script" value="critical.lua"/> creaturescripts\scripts\login.lua --- CRITICAL SYSTEM ---- registerCreatureEvent(cid, "critical") if getPlayerStorageValue(cid, 48903) == -1 then setPlayerStorageValue(cid, 48903, 0) end creaturescripts\scripts\critical.lua: -----[[Critical System by Night Wolf]] local lvlcrit = 48903 local multiplier = 1.5 function onStatsChange(cid, attacker, type, combat, value) if (type == STATSCHANGE_HEALTHLOSS or type == STATSCHANGE_MANALOSS) and isPlayer(attacker) and isCreature(cid) then if (getPlayerStorageValue(attacker, lvlcrit)*3) >= math.random (0,1000) then value = math.ceil(value*(multiplier)) doTargetCombatHealth(attacker, cid, combat, -value, -value, 255) doSendAnimatedText(getCreaturePos(attacker), "CRITICAL!!", 144) return false end end return true end actions.xml: <action itemid="1294" script="criticalrock.lua"/> obs: muda o ID da pedra que vc for usar... aqui eu usei a small stone pra teste e em actions\scripts\criticalrock.lua: --- CRITICAL System by Night Wolf local config = { effectonuse = 14, -- efeito que sai levelscrit = 100, --- leveis que terão storagecrit = 48903 -- storage que será verificado } function onUse(cid, item, frompos, item2, topos) if getPlayerStorageValue(cid, config.storagecrit) < config.levelscrit then doRemoveItem(item.uid, 1) doSendMagicEffect(topos,config.effectonuse) doPlayerSendTextMessage(cid,22,"You've Leveled your Critical Skill to ["..(getPlayerStorageValue(cid, config.storagecrit)+1).."/100].") setPlayerStorageValue(cid, config.storagecrit, getPlayerStorageValue(cid, config.storagecrit)+1) elseif getPlayerStorageValue(cid, config.storagecrit) >= config.levelscrit then doPlayerSendTextMessage(cid,22,"You've already reached the MAX level of Critical Skill.\nCongratulations!!!!") return 0 end return 1 end
-
mudar esse script para tfs 0.3.6
fiz tudo certo e não funcionou , não deu nenhum erro no distrito https://freeimage.host/i/2YBff1t . achei esse aqui https://otland.net/threads/monsters-attack-each-other.246769/post-2446563 ta pra outro tfs. não funcionou no meu
-
mudar esse script para tfs 0.3.6
funcionou mas as criaturas continuam se atacando, se você tivesse um script que os monstros não se ataquem pra usar , pq ja coloquei algum e não funcionaram.
-
mudar esse script para tfs 0.3.6
function onStatsChange(cid, attacker, type, combat, value) -- This should block all damage monster cause on eachother expect player summons if isMonster(cid) and isMonster(attacker) then local master = getCreatureMaster(cid) if not master or not isPlayer(master) then return false end end return true end
-
Imbuement system 8.6
gostaria de um sistema em que o player usar um item nele, e quando ele bater no monstro ou outro player ele enchesse um pouco da mana e do life por porcentagem do dano causado, e com tempo de duração de duas horas depois tem que usar o item novamente. tfs 0.3.6 +rep
-
AJUDA NESSE RING
TERIA COMO COLOCAR PARA SUBIR SKILL MAS RÁPIDO , NESSE RING. PODERIA SER QUALQUER SKILL , CONTANDO QUE O PLAYER ESTIVESSE USANDO ELE. TODAS AS SKILL , SWORD - AXE - MAGIC function onEquip(cid, item, slot) doTransformItem(item.uid, 7697, 1) doPlayerSendTextMessage(cid, 22, 'Agora ganha 2x mais experiencia!') doPlayerSetExperienceRate(cid, getConfigValue("rateExperience")*1.5) return TRUE end function onDeEquip(cid, item, slot) doTransformItem(item.uid, 7708, 1) doPlayerSendTextMessage(cid, 22, 'Experiencia extra cancelada.') doPlayerSetExperienceRate(cid, 1) return TRUE end +REP
-
top level effect diferente
alguém poderia criar um efeito top level. que o jogador ganhasse um escudo de war ou uma caveira. em vez do efeito. tipo da imagem.
-
piso que avisa que estão invadindo o castel 24hrs
function onStepIn(cid, item, position, fromPosition) local castle_one_name = "Castle24H" -- Nome do castelo 1 local storages = {154154,54321,123123} -- Storages ( se vc eh iniciante, deixe como está...) local sto_ativ = getGlobalStorageValue(storages[2]) position = getCreaturePosition(cid) if isPlayerGuild(cid) == TRUE then if sto_ativ == 1 or sto_ativ == -1 then guildname = getPlayerGuildName(cid) guild = getPlayerGuildId(cid) guild_sto = getGlobalStorageValue(storages[3]) if guild ~= guild_sto then doBroadcastMessage("O(a) Jogador "..getCreatureName(cid)..". Esta Tentando Invadir O "..castle_one_name.." Da Guild \""..guildname..". Aviso Donos Atuais", 22) else doPlayerSendCancel(cid,"Avance") end else doPlayerSendCancel(cid,"Avance") end else doPlayerSendCancel(cid,"Avance") end return true end function isPlayerGuild(cid) if getPlayerGuildName(cid) ~= "" then return TRUE else return FALSE end end
-
piso que avisa que estão invadindo o castel 24hrs
alguém teria um piso que avisa que estão invadindo o castelo. o que eu tenho aqui só avisa uma vez. depois não avisa mas. tfs 0.3.6 +rep
-
war system erro
sim to usando com o leader da guild , so que meu ot ta pra ser sem site. e a guild ta sem nenhum membro ta sendo pra teste !
-
war system erro
quando eu o comando da war , dentro do chat da guild aparece isso. You cannot execute this talkaction. function onSay(cid, words, param, channel) local guild = getPlayerGuildId(cid) if(not guild or getPlayerGuildLevel(cid) < GUILDLEVEL_LEADER) then doPlayerSendChannelMessage(cid, "", "You cannot execute this talkaction.", TALKTYPE_CHANNEL_W, 0) return true end local t = string.explode(param, ",") if(not t[2]) then doPlayerSendChannelMessage(cid, "", "Not enough param(s).", TALKTYPE_CHANNEL_W, 0) return true end local enemy = getGuildId(t[2]) if(not enemy) then doPlayerSendChannelMessage(cid, "", "Guild \"" .. t[2] .. "\" does not exists.", TALKTYPE_CHANNEL_W, 0) return true end if(enemy == guild) then doPlayerSendChannelMessage(cid, "", "You cannot perform war action on your own guild.", TALKTYPE_CHANNEL_W, 0) return true end local enemyName, tmp = "", db.getResult("SELECT `name` FROM `guilds` WHERE `id` = " .. enemy) if(tmp:getID() ~= -1) then enemyName = tmp:getDataString("name") tmp:free() end if(isInArray({"accept", "reject", "cancel"}, t[1])) then local query = "`guild_id` = " .. enemy .. " AND `enemy_id` = " .. guild if(t[1] == "cancel") then query = "`guild_id` = " .. guild .. " AND `enemy_id` = " .. enemy end tmp = db.getResult("SELECT `id`, `begin`, `end`, `payment` FROM `guild_wars` WHERE " .. query .. " AND `status` = 0") if(tmp:getID() == -1) then doPlayerSendChannelMessage(cid, "", "Currently there's no pending invitation for a war with " .. enemyName .. ".", TALKTYPE_CHANNEL_W, 0) return true end if(t[1] == "accept") then local _tmp = db.getResult("SELECT `balance` FROM `guilds` WHERE `id` = " .. guild) local state = _tmp:getID() < 0 or _tmp:getDataInt("balance") < tmp:getDataInt("payment") _tmp:free() if(state) then doPlayerSendChannelMessage(cid, "", "Your guild balance is too low to accept this invitation.", TALKTYPE_CHANNEL_W, 0) return true end db.query("UPDATE `guilds` SET `balance` = `balance` - " .. tmp:getDataInt("payment") .. " WHERE `id` = " .. guild) end query = "UPDATE `guild_wars` SET " local msg = "accepted " .. enemyName .. " invitation to war." if(t[1] == "reject") then query = query .. "`end` = " .. os.time() .. ", `status` = 2" msg = "rejected " .. enemyName .. " invitation to war." elseif(t[1] == "cancel") then query = query .. "`end` = " .. os.time() .. ", `status` = 3" msg = "canceled invitation to a war with " .. enemyName .. "." else query = query .. "`begin` = " .. os.time() .. ", `end` = " .. (tmp:getDataInt("end") > 0 and (os.time() + ((tmp:getDataInt("begin") - tmp:getDataInt("end")) / 86400)) or 0) .. ", `status` = 1" end query = query .. " WHERE `id` = " .. tmp:getDataInt("id") if(t[1] == "accept") then doGuildAddEnemy(guild, enemy, tmp:getDataInt("id"), WAR_GUILD) doGuildAddEnemy(enemy, guild, tmp:getDataInt("id"), WAR_ENEMY) end tmp:free() db.query(query) doBroadcastMessage(getPlayerGuildName(cid) .. " has " .. msg, MESSAGE_EVENT_ADVANCE) return true end if(t[1] == "invite") then local str = "" tmp = db.getResult("SELECT `guild_id`, `status` FROM `guild_wars` WHERE `guild_id` IN (" .. guild .. "," .. enemy .. ") AND `enemy_id` IN (" .. enemy .. "," .. guild .. ") AND `status` IN (0, 1)") if(tmp:getID() ~= -1) then if(tmp:getDataInt("status") == 0) then if(tmp:getDataInt("guild_id") == guild) then str = "You have already invited " .. enemyName .. " to war." else str = enemyName .. " have already invited you to war." end else str = "You are already on a war with " .. enemyName .. "." end tmp:free() end if(str ~= "") then doPlayerSendChannelMessage(cid, "", str, TALKTYPE_CHANNEL_W, 0) return true end local frags = tonumber(t[3]) if(frags ~= nil) then frags = math.max(10, math.min(1000, frags)) else frags = 100 end local payment = tonumber(t[4]) if(payment ~= nil) then payment = math.max(100000, math.min(1000000000, payment)) tmp = db.getResult("SELECT `balance` FROM `guilds` WHERE `id` = " .. guild) local state = tmp:getID() < 0 or tmp:getDataInt("balance") < payment tmp:free() if(state) then doPlayerSendChannelMessage(cid, "", "Your guild balance is too low for such payment.", TALKTYPE_CHANNEL_W, 0) return true end db.query("UPDATE `guilds` SET `balance` = `balance` - " .. payment .. " WHERE `id` = " .. guild) else payment = 0 end local begining, ending = os.time(), tonumber(t[5]) if(ending ~= nil and ending ~= 0) then ending = begining + (ending * 86400) else ending = 0 end db.query("INSERT INTO `guild_wars` (`guild_id`, `enemy_id`, `begin`, `end`, `frags`, `payment`) VALUES (" .. guild .. ", " .. enemy .. ", " .. begining .. ", " .. ending .. ", " .. frags .. ", " .. payment .. ");") doBroadcastMessage(getPlayerGuildName(cid) .. " has invited " .. enemyName .. " to war till " .. frags .. " frags.", MESSAGE_EVENT_ADVANCE) return true end if(not isInArray({"end", "finish"}, t[1])) then return false end local status = (t[1] == "end" and 1 or 4) tmp = db.getResult("SELECT `id` FROM `guild_wars` WHERE `guild_id` = " .. guild .. " AND `enemy_id` = " .. enemy .. " AND `status` = " .. status) if(tmp:getID() ~= -1) then local query = "UPDATE `guild_wars` SET `end` = " .. os.time() .. ", `status` = 5 WHERE `id` = " .. tmp:getDataInt("id") tmp:free() doGuildRemoveEnemy(guild, enemy) doGuildRemoveEnemy(enemy, guild) db.query(query) doBroadcastMessage(getPlayerGuildName(cid) .. " has " .. (status == 4 and "mend fences" or "ended up a war") .. " with " .. enemyName .. ".", MESSAGE_EVENT_ADVANCE) return true end if(status == 4) then doPlayerSendChannelMessage(cid, "", "Currently there's no pending war truce from " .. enemyName .. ".", TALKTYPE_CHANNEL_W, 0) return true end tmp = db.getResult("SELECT `id`, `end` FROM `guild_wars` WHERE `guild_id` = " .. enemy .. " AND `enemy_id` = " .. guild .. " AND `status` = 1") if(tmp:getID() ~= -1) then if(tmp:getDataInt("end") > 0) then tmp:free() doPlayerSendChannelMessage(cid, "", "You cannot request ending for war with " .. enemyName .. ".", TALKTYPE_CHANNEL_W, 0) return true end local query = "UPDATE `guild_wars` SET `status` = 4, `end` = " .. os.time() .. " WHERE `id` = " .. tmp:getDataInt("id") tmp:free() db.query(query) doBroadcastMessage(getPlayerGuildName(cid) .. " has signed an armstice declaration on a war with " .. enemyName .. ".", MESSAGE_EVENT_ADVANCE) return true end doPlayerSendChannelMessage(cid, "", "Currently there's no active war with " .. enemyName .. ".", TALKTYPE_CHANNEL_W, 0) return true end
-
BACKGROUND TIBIA 11
-
AJUDA NESSE AMULET
sim
-
AJUDA NESSE AMULET
nao funcionou !
-
AJUDA NESSE AMULET
amuleto que funciona como aol , mas contem 5 cargas . mas ele não esta sumindo depois que morri 5 vezes. ajuda ae pra ele sumir depois que morri 5 vezes. tfs 0.3.6 +rep <item id="11387" article="a" name="Lucky Clover Amulet"> <attribute key="description" value="this amulet works as amulet of loss and in case of death you lose only 5% of xp." /> <attribute key="weight" value="830" /> <attribute key="slotType" value="necklace" /> <attribute key="charges" value="5" /> <attribute key="showattributes" value="1" /> <attribute key="showcharges" value="1" /> ------------------------------------------------------------------------------ script function onDeath(cid, corpse, deathList) local ID_ITEM = 11387 if (getPlayerSlotItem(cid, CONST_SLOT_NECKLACE).itemid == ID_ITEM) then doPlayerRemoveItem(cid, ID_ITEM, 1) doCreatureSetDropLoot(cid, false) doPlayerSetLossPercent(cid, experience, 5) end return true end
-
colocar exaustão nesse item
vo testa !
-
colocar exaustão nesse item
colocar exausted ou uma storage pra poder ser usa de 10 min em 10 min tfs 0.3.6 -- [( Script created by Doidin for XTibia.com )] -- function onUse(cid, item, fromPosition, item2, toPosition) local monstername1 = "Dragon Lord" -- Nome dos monstros que serão sumonados após o player clicar no item! local monstername2 = "Dragon" -- Nome dos monstros que serão sumonados após o player clicar no item! local monster1 = {x=930,y=907,z=7} -- Coordenas de a onde o monstro irá aparecer! (Dragon Lord) local monster2 = {x=925,y=910,z=7} -- Coordenas de a onde o monstro irá aparecer! (Dragon Lord) local monster3 = {x=929,y=906,z=7} -- Coordenas de a onde o monstro irá aparecer! (Dragon Lord) local monster4 = {x=928,y=912,z=7} -- Coordenas de a onde o monstro irá aparecer! (Dragon) local monster5 = {x=932,y=906,z=7} -- Coordenas de a onde o monstro irá aparecer! (Dragon) function Quest() doPlayerSendTextMessage(cid,22,"You have found the secret item!") doPlayerAddItem(cid,itemid,1) end function Summon() doSummonCreature(monstername1,monster1) doSummonCreature(monstername1,monster2) doSummonCreature(monstername1,monster3) doSummonCreature(monstername2,monster4) doSummonCreature(monstername2,monster5) doSendMagicEffect(monster1,36) doSendMagicEffect(monster2,36) doSendMagicEffect(monster3,36) doSendMagicEffect(monster4,36) doSendMagicEffect(monster5,36) end doCreatureSay(cid,"You went in the wrong place, beware!",TALKTYPE_ORANGE_1) addEvent(Summon,100) addEvent(Summon,15000) addEvent(Summon,30000) addEvent(Summon,45000) addEvent(Summon,60000) addEvent(Summon,75000) addEvent(Quest,6000) end
-
ajuda rapidao !
aonde modifica para , que possa fazer a anihi , com 2 , 3 ou 4 players ? +reppp local room = { -- room with demons fromX = 1069, fromY = 807, fromZ = 8, toX = 1075, toY = 813, toZ = 8 } local monster_pos = { [1] = {pos = {1074, 810, 8}, monster = "Demon"}, [2] = {pos = {1075, 810, 8}, monster = "Demon"}, [3] = {pos = {1072, 808, 8}, monster = "Demon"}, [4] = {pos = {1070, 808, 8}, monster = "Demon"}, [5] = {pos = {1073, 812, 8}, monster = "Demon"}, [6] = {pos = {1071, 812, 8}, monster = "Demon"} } local players_pos = { {x = 1099, y =842, z = 7, stackpos = 253}, {x = 1098, y =842, z = 7, stackpos = 253}, {x = 1097, y =842, z = 7, stackpos = 253}, {x = 1096, y =842, z = 7, stackpos = 253} } local new_player_pos = { {x = 1073, y = 810, z = 8}, {x = 1072, y = 810, z = 8}, {x = 1071, y = 810, z = 8}, {x = 1070, y = 810, z = 8} } local playersOnly = "no" local questLevel = 8 function onUse(cid, item, fromPosition, itemEx, toPosition) local all_ready, monsters, player, level = 0, 0, {}, 0 if item.itemid == 1945 then for i = 1, #players_pos do table.insert(player, 0) end for i = 1, #players_pos do player = getThingfromPos(players_pos) if player.itemid > 0 then if string.lower(playersOnly) == "yes" then if isPlayer(player.uid) == TRUE then all_ready = all_ready+1 else monsters = monsters+1 end else all_ready = all_ready+1 end end end if all_ready == #players_pos then for i = 1, #players_pos do player = getThingfromPos(players_pos) if isPlayer(player.uid) == TRUE then if getPlayerLevel(player.uid) >= questLevel then level = level+1 end else level = level+1 end end if level == #players_pos then if string.lower(playersOnly) == "yes" and monsters == 0 or string.lower(playersOnly) == "no" then for _, area in pairs(monster_pos) do doSummonCreature(area.monster,{x=area.pos[1],y=area.pos[2],z=area.pos[3]}) end for i = 1, #players_pos do doSendMagicEffect(players_pos, CONST_ME_POFF) doTeleportThing(player.uid, new_player_pos, FALSE) doSendMagicEffect(new_player_pos, CONST_ME_ENERGYAREA) doTransformItem(item.uid,1946) end else doPlayerSendTextMessage(cid,19,"Only players can do this quest.") end else doPlayerSendTextMessage(cid,19,"All Players have to be level "..questLevel.." to do this quest.") end else doPlayerSendTextMessage(cid,19,"You need "..table.getn(players_pos).." players to do this quest.") end elseif item.itemid == 1946 then local player_room = 0 for x = room.fromX, room.toX do for y = room.fromY, room.toY do for z = room.fromZ, room.toZ do local pos = {x=x, y=y, z=z,stackpos = 253} local thing = getThingfromPos(pos) if thing.itemid > 0 then if isPlayer(thing.uid) == TRUE then player_room = player_room+1 end end end end end if player_room >= 1 then doPlayerSendTextMessage(cid,19,"There is already a team in the quest room.") elseif player_room == 0 then for x = room.fromX, room.toX do for y = room.fromY, room.toY do for z = room.fromZ, room.toZ do local pos = {x=x, y=y, z=z,stackpos = 253} local thing = getThingfromPos(pos) if thing.itemid > 0 then doRemoveCreature(thing.uid) end end end end doTransformItem(item.uid,1945) end end return TRUE end
-
TILER que faz aparecer monstro
PISO QUE QUANDO O PLAYER PASSA FICA SPAWNANDO MONSTRO POR UM TEMPO DETERMINADO , DEPOIS FAZ OS MONSTROS SUMIREM E APARECE TELEPORTE. E NÃO DEIXAR DA ERRO QUANDO OS MONSTROS PASSAREM POR CIMA DO PISO. +REP TFS 0 3 6
-
npc cassino dando erro
o npc cassino não recolhe o dinheiro ! tfs 0.3.6 ta configurado tudo certo ! 08/04/2019 20:07:20] [Error - Npc interface] [08/04/2019 20:07:20] In a timer event called from: [08/04/2019 20:07:20] data/npc/scripts/cassino.lua:onCreatureSay [08/04/2019 20:07:20] Description: [08/04/2019 20:07:20] (luaDoRemoveItem) Item not found