
Tudo que Thony D. Serv postou
-
(Resolvido)[Creaturescript] Spam No Default
Como Ja Esta Dizendo O Título Queria saber se alguem poderia me ajudar com um script que ta spammando no Default e eu queria por ele no Server Log Ele fica spammando os Segundos queria que aparecesse no server log ou então em um outro log Script:
-
Help nem website e nem client respondem pro endereço do No-ip
se a internet for compartilhada o teu site normalmente nao pode ser porta 80 tem que ser 8080 ou 8090 a parada do cliente deve ser que o teu moldem nao esta aceitando falta algo para liberar as portas
-
Spell Dando Error
Minha Spell Ta Dando Error Este Error Aqui O Meu Script É Esse
-
(Resolvido)Adicionar Tempo Em Cima De TP
Queria Adicionar O Tempo Em Cima Do Tp Tipo O Monstro Ira Aparecer Em 60 Segundos 60,59,58...0 o monstro apareceu o script é esse aki
- Dbo-Force (Projeto)
-
(Resolvido)por storage neste script
queria por um storage nesse script aki function onUse(cid, item, frompos, item2, topos) local small = {x=99, y=187, z=7} -- Posição para onde o player será teleportado. local bag = doPlayerAddItem(cid, 2002, 1) -- Configure a BAG que vc quer doAddContainerItem(bag, 13484, 1) -- Configure o Item que vai pra dentro da bag doTeleportThing(cid, small) doPlayerSendTextMessage(cid,20,"VOCÊ PEGOU SEU PREMIO E FOI TELEPORTADO PARA CITY.") return TRUE end ai quando o player tentar clicar denovo aparecer a seguinte frase "Voce Ja Fez A Quest De Algum Personagem"
-
[Resolvido] Bug das Mortes DBO
Geralmente Esse Bug Ele Acontecer Pelo Creaturescript Se Voce Ja Visualizou Tudo Do Creature E Ainda Continua O Bug O Mais Provavel Éq Quando Alguma Funçao Da Sua TFS É Concretizada Ela Trava E O Personagem Nao Volta Para O Temple E Quando Ele Desloga Ele Deve Voltar Como Se Nada Tivesse Acontecido No Mesmo Local Aonde Ele Deveria Ter Morrido
-
Error ao criar guild
tente por INTEGER
-
Error ao criar guild
tentou adicionar essa TABELA?? DROP TABLE IF EXISTS `guild_ranks`; CREATE TABLE `guild_ranks` ( `id` INT NOT NULL AUTO_INCREMENT, `guild_id` INT NOT NULL, `name` VARCHAR(255) NOT NULL, `level` INT NOT NULL COMMENT '1 - leader, 2 - vice leader, 3 - member', PRIMARY KEY (`id`), FOREIGN KEY (`guild_id`) REFERENCES `guilds`(`id`) ON DELETE CASCADE ) ENGINE = InnoDB; Ajudei? REP+
-
Error ao criar guild
o seu erro e porque nao tem as tabelas no SQLITE entao voce tem que adicionar todas tabelas de GUILDS irei deixa um topico ensinando a por todas tabelas ai voce so pega as tabelas com problemas no caso a da GUILD TOPICO... Ajudei? REP+
-
Me ajudem por esse Talkaction ? pff
Vai na pasta data/lib e cria um arquivo chamado 049-vipsys.lua e adiciona isso dentro: vip = { name = "Vip system"; author = "Mock"; version = "1.0.0.0"; query="ALTER TABLE `accounts` ADD `prem_days` INTEGER"; query2="ALTER TABLE `accounts` ADD `prem_days` INT(15) NOT NULL" } function vip.setTable() dofile('config.lua') if sqlType == "mysql" then db.executeQuery(vip.query) else db.executeQuery(vip.query2) end end function vip.getVip(cid) assert(tonumber(cid),'Parameter must be a number') if isPlayer(cid) == FALSE then error('Player don\'t find') end; ae = db.getResult("SELECT `vip_days` FROM `accounts` WHERE `name` = '"..getPlayerAccount(cid).."';") if ae:getID() == -1 then return 0 end local retee = ae:getDataInt("vip_time") or 0 ae:free() return retee end function vip.getVipByAcc(acc) assert(acc,'Account is nil') local a = db.getResult("SELECT `vip_days` FROM `accounts` WHERE `name` = '"..acc.."';") if a:getID() ~= -1 then return a:getDataInt("vip_time") or 0, a:free() else error('Account don\'t find.') end end function vip.setVip(cid,time) dofile("config.lua") assert(tonumber(cid),'Parameter must be a number') assert(tonumber(time),'Parameter must be a number') if isPlayer(cid) == FALSE then error('Player don\'t find') end; db.executeQuery("UPDATE `"..sqlDatabase.."`.`accounts` SET `vip_days` = '"..(os.time()+time).."' WHERE `accounts`.`name` ='".. getPlayerAccount(cid).."';") end function vip.getVipByAccount(acc) assert(acc,'Account is nil') return db.getResult("SELECT `vip_days` FROM `accounts` WHERE `name` = '"..acc.."';"):getDataInt("vip_time") or 0 end function vip.hasVip(cid) assert(tonumber(cid),'Parameter must be a number') if isPlayer(cid) == FALSE then return end; local t = vip.getVip(cid) or 0 if os.time(day) < t then return TRUE else return FALSE end end function vip.hasVips(cid) assert(tonumber(cid),'Parameter must be a number') if isPlayer(cid) == FALSE then return end; local t = vip.getVip(cid) if os.time(day) < t then return TRUE else return FALSE end end function vip.accountHasVip(acc) assert(acc,'Account is nil') if os.time() < vip.getVipByAccount(acc) then return TRUE else return FALSE end end function vip.getDays(days) return (3600 * 24 * days) end function vip.addVipByAccount(acc,time) assert(acc,'Account is nil') assert(tonumber(time),'Parameter must be a number') local a = vip.getVipByAcc(acc) a = os.difftime(a,os.time()) if a < 0 then a = 0 end; a = a+time return vip.setVipByAccount(acc,a) end function vip.setVipByAccount(acc,time) dofile("config.lua") assert(acc,'Account is nil') assert(tonumber(time),'Parameter must be a number') db.executeQuery("UPDATE `accounts` SET `vip_days` = '"..(os.time()+time).."' WHERE `accounts`.`name` ='"..acc.."';") return TRUE end function vip.returnVipString(cid) assert(tonumber(cid),'Parameter must be a number') if isPlayer(cid) == TRUE then return os.date("%d %B %Y %X ", vip.getVip(cid)) end end Agora vai na pasta data/talkactions e abre o arquivo talkactions.xml e adiciona essa tag: <talkaction words="@buyvip30" event="script" value="buyvip.lua"/> Agora vai na pasta data/talkactions/scripts e cria um arquivo chamado buyvip.lua e coloca isso dentro: function onSay(cid, words, param, channel) vip.addVipByAccount(getPlayerAccount(cid), vip.getDays(30)) doPlayerRemoveItem(cid, 2145, 30) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Voce adquiriu 30 dias de VIP!") return true end nao testei aki mais ve ae Ajudei? REP+
-
Guild System
hum entendo voce usa serve LINUX nesse painel deve dar direito a mais de 1 SERVIDOR tenta pegar 1 TFS (EXECUTADOR DE SERVE) de algum outro servidor que ja esteja na linux para testar
-
Error - Spell interface
deve ser sua TFS ou o MONSTRO que nao esta configurado certamente
-
Guild System
tenta troca a sua TFS por uma dessas aki TFS 0.4_DEV rev 3777 - 8.6 http://www.tibiaking.com/forum/applications/core/interface/file/attachment.php?id=1493 TFS 3884 - 8.6 http://www.4shared.com/rar/4KijpSs0ba/TheForgottenServer.html? OBS: nao tenho para 8.54 Ajudei ? REP+
-
Guild System
troque para este function onSay(cid, words, param, channel) local guild = getPlayerGuildId(cid) if(not guild or getPlayerGuildLevel(cid) < GUILDLEVEL_LEADER) then doPlayerSendChannelMessage(cid, "", "Voce não pode executar este talkaction.", TALKTYPE_CHANNEL_W, 0) return true end local t = string.explode(param, ",") if(not t[2]) then doPlayerSendChannelMessage(cid, "", "Nenhum parâmetro.", TALKTYPE_CHANNEL_W, 0) return true end local enemy = getGuildId(t[2]) if(not enemy) then doPlayerSendChannelMessage(cid, "", "A guild \"" .. t[2] .. "\" não existe.", TALKTYPE_CHANNEL_W, 0) return true end if(enemy == guild) then doPlayerSendChannelMessage(cid, "", "Você não pode declarar war com sua própria 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, "", "Atualmente não há nenhum convite pendente para uma war com " .. 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, "", "O saldo da sua guild é muito baixo para aceitar este convite.", 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 = "aceitou a guild " .. enemyName .. " para a war." if(t[1] == "reject") then query = query .. "`end` = " .. os.time() .. ", `status` = 2" msg = "rejeitou a guild " .. enemyName .. " para a war." elseif(t[1] == "cancel") then query = query .. "`end` = " .. os.time() .. ", `status` = 3" msg = "cancelou a war com a guild " .. 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) .. " " .. 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 = "Voce já invitou a guild " .. enemyName .. " para a war." else str = enemyName .. " já invitou voce para a war." end else str = "Voce já está em guerra com a guild " .. 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, "", "O saldo da sua guild é muito baixo para tal pagamento.", 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, "", "Atualmente não há trégua de guerra pendente da guild " .. 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, "", "Você não pode acabar com a war com " .. 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, "", "Atualmente não há nenhuma guerra ativa com a guild " .. enemyName .. ".", TALKTYPE_CHANNEL_W, 0) return true end OBS: se nao funcionar o seu TFS nao esta compilada com WAR_SISTEM Ajudei? REP+
-
Guild System
ou seria sua TFS que nao esta compilada com sistema de war ou seu talkaction posta o script que voce usa para sistema de guild
-
Error - Spell interface
Testa Esse aki local combat1 = createCombatObject() setCombatParam(combat1, COMBAT_PARAM_HITCOLOR, COLOR_PINK) setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat1, COMBAT_PARAM_EFFECT, 8) setCombatParam(combat1, COMBAT_PARAM_DISTANCEEFFECT, 10) setCombatFormula(combat1, COMBAT_FORMULA_LEVELMAGIC, -43.75, 0, -44.4, 0) local function onCastSpell1(parameters) if not isPlayer(parameters.cid) then return true end doCombat(parameters.cid, parameters.combat1, parameters.var) end function onCastSpell(cid, var) local parameters = {cid = cid, var = var, combat1 = combat1} for k = 1, 8 do addEvent(function() if isCreature(cid) then addEvent(onCastSpell1, 0, parameters) end end, 1 + ((k-1) * 300)) end return true end
-
Error - Spell interface
aki o monstro solta a spell normalmente o player tam bem e ficou sem o ERROR ESPERO QUE TENHA TE AJUDADO MARCA MELHOR RESPOSTA AE SE FUNCIONOU CERTINHO
-
Error - Spell interface
tenho um servidor com 100 players e nao da problema nenhum amigo nem LAG nem nada esse error e apenas 1 aviso que mostra que o quando o monstro morreu a spell nao foi cancelada nada mais Acabei De Achar 1 Topico Testei E Resolveu Esse Negocio De Erro Nas Spell Mais Como Disse Vai Ter Que Meche 1 Em 1 Topico:
-
Error - Spell interface
bem eu ja fiz varios topicos e as respostas nao me ajudaram creio que se tiver como concerta voce teria que adicionar de 1 a 1 spell Ajudei?? Rep+
-
Rates/ Stages Skill
vai no seu creaturescript.xml adicione isso <event type="login" name="SkillStagesLogin" event="script" value="skillstageslogin.lua"/> Crie Um Arquivo Chamado skillstageslogin.lua adicione isso dentro dele dofile(getDataDir() .. "creaturescripts/scripts/stagesconfig.lua") function onLogin(cid) for skill, skillStage in pairs(skillStages) do if(skill >= 0 and skill <= 6) then nowSkill = getPlayerSkillLevel(cid, skill) else nowSkill = getPlayerMagLevel(cid, true) end for i, skillRateInfo in pairs(skillStage) do if(nowSkill >= skillRateInfo[1]) then skillRate = skillRateInfo[2] else break end end doPlayerSetRate(cid, skill, skillRate) end if(showInfoOnLogin) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, getPlayerSkillRatesText(cid)) end registerCreatureEvent(cid, "SkillStagesAdvance") return TRUE end va no creaturescript.xml novamente adicione isso <event type="advance" name="SkillStagesAdvance" event="script" value="skillstagesadvance.lua"/> crie um arquivo chamado skillstagesadvance.lua dentro adicione isso dofile(getDataDir() .. "creaturescripts/scripts/stagesconfig.lua") function onAdvance(cid, skill, oldLevel, newLevel) if(skillStages[skill] ~= nil) then local skillRate = 1 local oldRates = getPlayerRates(cid) for i, skillRateInfo in pairs(skillStages[skill]) do if(newLevel >= skillRateInfo[1]) then skillRate = skillRateInfo[2] else break end end doPlayerSetRate(cid, skill, skillRate) if(showInfoOnAdvance and skillRate ~= oldRates[skill]) then if(skill >= 0 and skill <= 6) then configRate = skillConfig.skill else configRate = skillConfig.magiclevel end doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, SKILL_NAMES[skill] .. " rate alterado de " .. oldRates[skill] * configRate .. "x para " .. skillRate * configRate .. "x. " .. getPlayerSkillRatesText(cid)) end end return true end agora crie outro arquivo chamado stagesconfig.lua adicione isso skillConfig = {skill = getConfigValue('rateSkill'), magiclevel = getConfigValue('rateMagic')} skillStages = {} skillStages[SKILL_FIST] = {{0,10},{60,0}} skillStages[SKILL_CLUB] = {{0,10},{60,6},{80,0}} skillStages[SKILL_SWORD] = {{0,10},{60,6},{80,0}} skillStages[SKILL_AXE] = {{0,10},{60,6},{80,0}} skillStages[SKILL_DISTANCE] = {{0,10},{60,6},{80,0}} skillStages[SKILL_SHIELD] = {{0,10},{60,6},{80,0}} skillStages[SKILL_FISHING] = {{0,10},{60,6},{80,0}} -- voce pode retirar os -- desse script para ativar, por padrao esta desativado skillStages[SKILL__MAGLEVEL] = {{0,5},{100,4},{120,3},{135,2},{150,1},{155,0}} showInfoOnAdvance = true -- envia uma nova mensagem com a sua nova rate showInfoOnLogin = true -- envia mensagem da rate ao jogador ao logar function getPlayerSkillRatesText(cid) local skillInfo = getPlayerRates(cid) return "Rates Info: [ Magic Level: " .. skillInfo[SKILL__MAGLEVEL] * skillConfig.magiclevel .. "x || Attack Speed: " .. skillInfo[SKILL_FIST] * skillConfig.skill .. "x | Weapon: " .. skillInfo[SKILL_CLUB] * skillConfig.skill .. "x | Sword: " .. skillInfo[SKILL_SWORD] * skillConfig.skill .. "x | Strenght: " .. skillInfo[SKILL_AXE] * skillConfig.skill .. "x | Ki Blasting: " .. skillInfo[SKILL_DISTANCE] * skillConfig.skill .. " | Defense: " .. skillInfo[SKILL_SHIELD] * skillConfig.skill .. "x ]" end agora instalando tudo corretamente voce pode manusear as suas skills pelo stagesconfig Ajudei?? Rep+
-
Error - Spell interface
Isso Seria Erro De Quando 1 Monstro Morre E A Magia Nao Termina, Essa Magia Como Diz Seria 8 Shoots E Se Soltar 7 Shoots E O Monstro Morrer Da Esse Error Nao Prejudica Em Nada Pode Fica Tranquilo Ajudei? Rep+
-
Spawnar Boss Aleatoriamente
Eu Vi Este Topico Mais Queria 1 Que Apenas O Bixo Aleatoriamente Sumona Em Algum Dos 5 Lugares Que Eu Determinar E Mandasse As 5 Mensagens Em Verde
-
Spawnar Boss Aleatoriamente
Queria Um Script Que Aparecesse 1 Monstro Em Alguma Das 5 Posiçoes Que Eu Configurar Acada 4 Horas E Sempre Que O Monstro Aparecer Enviar 5 Mensagens Repetindo "--War Boss Apareceu Procure No Mapa--"
-
(Resolvido)!bless/BLESSING /BLESSED
Crie Um Arquivo .Lua No Seu Talkactions/Scripts/ARQUIVO.LUA Coloque Isso Dentro function onSay(cid, words, param) if getPlayerBlessing(cid, 1) or getPlayerBlessing(cid, 2) or getPlayerBlessing(cid, 3) or getPlayerBlessing(cid, 4) or getPlayerBlessing(cid, 5) then doPlayerSendCancel(cid,'Você ja esta com bless!') else if doPlayerRemoveMoney(cid, 50000) == TRUE then -- Preço Que Ira Custa A Bless Para Mudar O Preço Troque O (50000) doPlayerAddBlessing(cid, 1) doPlayerAddBlessing(cid, 2) doPlayerAddBlessing(cid, 3) doPlayerAddBlessing(cid, 4) doPlayerAddBlessing(cid, 5) doSendMagicEffect(getPlayerPosition(cid), 28) doPlayerSendTextMessage(cid,MESSAGE_EVENT_ADVANCE, 'You have been blessed by the gods!') else doPlayerSendCancel(cid, "You need 50000 gold coins to get blessed!") end end return TRUE end Dentro Do Talkactions/Talkactions.xml Coloque Isso Dentro <talkaction words="!buybless;/buybless;!bless;/bless" script="bless.lua" /> Ajudei? Rep+