-
Total de itens
137 -
Registro em
-
Última visita
Tudo que Sofft postou
-
Alguem poderia me dizer qual a diferença dele pra rev 3.7777??
-
Então, na verdade eu já sabia que isso resolveria meu problema, o negocio era os player que ja tinham sido ban. Fiz um beckup da coluna values ,deletei a tabela bans, e executei o seguinte código no sql. CREATE TABLE `bans` ( `id` INT UNSIGNED NOT NULL auto_increment, `type` TINYINT(1) NOT NULL COMMENT '1 - ip banishment, 2 - namelock, 3 - account banishment, 4 - notation, 5 - deletion', `value` INT UNSIGNED NOT NULL COMMENT 'ip address (integer), player guid or account number', `param` INT UNSIGNED NOT NULL DEFAULT 4294967295 COMMENT 'used only for ip banishment mask (integer)', `active` TINYINT(1) NOT NULL DEFAULT TRUE, `expires` INT NOT NULL, `added` INT UNSIGNED NOT NULL, `admin_id` INT UNSIGNED NOT NULL DEFAULT 0, `comment` TEXT NOT NULL, `reason` INT UNSIGNED NOT NULL DEFAULT 0, `action` INT UNSIGNED NOT NULL DEFAULT 0, `statement` VARCHAR(255) NOT NULL DEFAULT '', PRIMARY KEY (`id`), KEY `type` (`type`, `value`), KEY `active` (`active`) ) ENGINE = InnoDB; Rep+ pra vc Boors
-
@AnyurCT, sim, eu usava tfs 0.4 (8.60), ai fui fazer um teste com o crystal server (9.44), ai surgiu o problema. atualmente uso 8.60
-
Vesão:8.60 Xammp. Galera é o seguinte meu gesior funcionava perfeitamente, mas um dia resolvi testar um ot 9.44 e esqueci de fazer um backup da minha database, agora quando eu entro em Characters, e procuro por um player dá o seguinte erro: Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42S22]: Column not found: 1054 Unknown column 'reason' in 'field list'' in C:\xampp\htdocs\otserv\pot\OTS_AccountBan.php:56 Stack trace: #0 C:\xampp\htdocs\otserv\pot\OTS_AccountBan.php(56): PDO->query('SELECT `id`, `t...') #1 C:\xampp\htdocs\otserv\pot\OTS_Account.php(935): OTS_AccountBan->find('4026489') #2 C:\xampp\htdocs\otserv\characters.php(426): OTS_Account->isBanned() #3 C:\xampp\htdocs\otserv\index.php(177): include('C:\xampp\htdocs...') #4 {main} thrown in C:\xampp\htdocs\otserv\pot\OTS_AccountBan.php on line 56 esse erro também aparece quando eu vou editar uma 'News', e eu tenho certeza de que o problema é na database e não em nenhum código php(mas mesmo assim irei posta-los aqui), mas não consigo solucionar, por favor me ajudem! Characters.php OTS_AccountBan:
-
Galera, preciso de outra ajuda aqui, estou usando o task system do otprojects, porem há alguns bosses que não estão configurados, como o boss do mammoth, gostaria qua alguem me ajudasse a configurar. Ex: [14011] = {'mammoth', 'Happy hunting, friend! Come back to me when you are done hunting.', 'Alright, then return to your duties! Day light is a-wasting! You have already smashed %u mammoths. Come back to me when you are done.', 'Jolly good job you did there, but now I have a special task for you. The citizens of Svargrond live in fear because of a frightfully bad-tempered mammoth they call \'Blood Tusk\'. Go there and put an end to him. Happy hunting!', 'Bloodtusk', 4000, 1}, eu coloco o UniqueID 14011 em um tp, mas ele não funciona, não acontece nada. Se alguém puder me ajudar, ou tiver um task system 100% me ajude por favor.
-
@Jhon992, perfeito, meu rep+ de hj também vai para você, não só pelo script, mas pela intenção de ajudar!
-
Concordo! só que na minha opinião Deus > Família > Paz > Saúde > Segurança mas você disse ali NÃO NECESSARIAMENTE NESSA ORDEM.
-
Paz > Saúde > All, do que adianta segurança se você esta prestes a morrer, do que adianta dinheiro, se não tem prazer em gasta-lo, do que adianta saúde se não tiver paz!
-
@Jhon992, cara funcionou certinho PERFEITO! já levou meu rep+, agora queria pedir outro favor queria que esse item voltasse com ActionID 10000.
-
Antes de começarem a dizer merda que ja existe esse tópico aqui no fórum, que isso que aquilo. Sim! já existe tópicos assim no fórum, só que esse especificamente eu peguei em um post do baiakizicksz e editei, os créditos são do criador do script, que até então ninguém conhece, se souberem o nome dele, diga que colocarei seu nome aqui. O que esse sistema tem de diferente? A gema é ativada pelo vip acc (testado no Vip acc by Mock), quando o player coloca vip, ele ganha gema respectiva a sua vocação, quando acaba a vip, acaba a gema. Ai VAI!. Pasta Lib { gems.lua function onUse(cid, item, fromPosition, itemEx, toPosition) gem = gems.id[getPlayerVocation(cid)] if item.itemid == gem then doUseGem(cid, item, getPlayerVocation(cid)) end return TRUE end pivi.lua function doUseGem(cid, item)local voc = getPlayerVocation(cid) local interval = gems.interval[voc] if item.itemid ~= gems.id[voc] or getPlayerStorageValue(cid, gems.storage[voc]) > 0 then return FALSE end setPlayerStorageValue(cid, gems.storage[voc], 1) sendGemEffect(cid, gems.storage[voc], gems.interval[voc]) doRemoveItem(item.uid, 1) return TRUE end function sendGemEffect(cid, storage, interval) local pos = getThingPos(cid) local voc = getPlayerVocation(cid) local color = 1 if voc == 9 then color = gemMsg.colorSorcerer[math.random(1,#gemMsg.colorMasterSorcerer)] elseif voc == 10 then color = gemMsg.colorDruid[math.random(1,#gemMsg.colorElderDruid)] elseif voc == 11 then color = gemMsg.colorPaladin[math.random(1,#gemMsg.colorRoyalPaladin)] elseif voc == 12 then color = gemMsg.colorKnight[math.random(1,#gemMsg.colorEliteKnight)] end doSendAnimatedText(pos, gemMsg.rnd[math.random(1,#gemMsg.rnd)], color) if getPlayerStorageValue(cid, gems.storage[getPlayerVocation(cid)]) >= 1 then addEvent(sendGemEffect, interval, cid, storage, interval) end end function doRemoveGemEffect(cid) if getPlayerStorageValue(cid, gems.storage[getPlayerVocation(cid)]) < 1 then return FALSE end setPlayerStorageValue(cid, gems.storage[getPlayerVocation(cid)], 0) return TRUE end function doRemoveAllGemEffect(cid) for i = 1, table.maxn(gms.storage) do setPlayerStorageValue(cid, gems.storage[i], 0) end return TRUE end function isGemActivated(cid) if getPlayerStorageValue(cid, gems.storage[getPlayerVocation(cid)]) > 0 then return TRUE end return FALSE end pivi_const.lua gems = { id = {2156, 2155, 2158, 2154, 2156, 2155, 2158, 2154}, storage = {5001, 5002, 5003, 5004, 5005, 5006, 5007, 5008}, interval = {750, 750, 750, 750, 750, 750, 750, 750}, -- Intervalo dos efeitos } gemMsg = { rnd = {"´ . ,", ". ´ ,", "` . ,", ", ` ."}, colorDruid = {30,215}, colorSorcerer = {180,200}, colorPaladin = {251,10}, colorKnight = {204,212}, colorElderDruid = {30,215}, colorMasterSorcerer = {180,200}, colorRoyalPaladin = {251,10}, colorEliteKnight = {204,212} } } Pasta CreatureScripts { abra o arquivo login.lua, e antes do ultimo Return TRUE adicione isso: if (vip.hasVip(cid) == TRUE) then setPlayerStorageValue(cid, gems.storage[getPlayerVocation(cid)], 1) sendGemEffect(cid, gems.storage[getPlayerVocation(cid)], 750) end }
-
Sistema De Gema Espiritual Igual Do Foxworld
tópico respondeu ao baiakizicksz de Sofft em Tutoriais de Scripting
Vou postar aqui minha versão desse script, eu peguei aqui com o baiakizicksz e editei, os créditos são do criador do script, que até então não conheço. Esta versão é usado no meu otserv da seguinte forma, player colocou vip ele brilha acabou a vip para de brilhar.=/ GEMS BY VIP. Pasta Lib { gems.lua function onUse(cid, item, fromPosition, itemEx, toPosition) gem = gems.id[getPlayerVocation(cid)] if item.itemid == gem then doUseGem(cid, item, getPlayerVocation(cid)) end return TRUE end pivi.lua function doUseGem(cid, item)local voc = getPlayerVocation(cid) local interval = gems.interval[voc] if item.itemid ~= gems.id[voc] or getPlayerStorageValue(cid, gems.storage[voc]) > 0 then return FALSE end setPlayerStorageValue(cid, gems.storage[voc], 1) sendGemEffect(cid, gems.storage[voc], gems.interval[voc]) doRemoveItem(item.uid, 1) return TRUE end function sendGemEffect(cid, storage, interval) local pos = getThingPos(cid) local voc = getPlayerVocation(cid) local color = 1 if voc == 9 then color = gemMsg.colorSorcerer[math.random(1,#gemMsg.colorMasterSorcerer)] elseif voc == 10 then color = gemMsg.colorDruid[math.random(1,#gemMsg.colorElderDruid)] elseif voc == 11 then color = gemMsg.colorPaladin[math.random(1,#gemMsg.colorRoyalPaladin)] elseif voc == 12 then color = gemMsg.colorKnight[math.random(1,#gemMsg.colorEliteKnight)] end doSendAnimatedText(pos, gemMsg.rnd[math.random(1,#gemMsg.rnd)], color) if getPlayerStorageValue(cid, gems.storage[getPlayerVocation(cid)]) >= 1 then addEvent(sendGemEffect, interval, cid, storage, interval) end end function doRemoveGemEffect(cid) if getPlayerStorageValue(cid, gems.storage[getPlayerVocation(cid)]) < 1 then return FALSE end setPlayerStorageValue(cid, gems.storage[getPlayerVocation(cid)], 0) return TRUE end function doRemoveAllGemEffect(cid) for i = 1, table.maxn(gms.storage) do setPlayerStorageValue(cid, gems.storage[i], 0) end return TRUE end function isGemActivated(cid) if getPlayerStorageValue(cid, gems.storage[getPlayerVocation(cid)]) > 0 then return TRUE end return FALSE end pivi_const.lua gems = { id = {2156, 2155, 2158, 2154, 2156, 2155, 2158, 2154}, storage = {5001, 5002, 5003, 5004, 5005, 5006, 5007, 5008}, interval = {750, 750, 750, 750, 750, 750, 750, 750}, -- Intervalo dos efeitos } gemMsg = { rnd = {"´ . ,", ". ´ ,", "` . ,", ", ` ."}, colorDruid = {30,215}, colorSorcerer = {180,200}, colorPaladin = {251,10}, colorKnight = {204,212}, colorElderDruid = {30,215}, colorMasterSorcerer = {180,200}, colorRoyalPaladin = {251,10}, colorEliteKnight = {204,212} } } Pasta CreatureScripts { abra o arquivo login.lua, e antes do ultimo Return TRUE adicione isso: if (vip.hasVip(cid) == TRUE) then setPlayerStorageValue(cid, gems.storage[getPlayerVocation(cid)], 1) sendGemEffect(cid, gems.storage[getPlayerVocation(cid)], 750) end } -
Mapa: Global Distro: TFS 0.4 Versão: 8.60 Duvida: Estou fazendo a quest "Against the Spider Cult Quest", e o actions ques estou usando é esse: function onUse(cid, item, frompos, item2, topos) if(item.itemid == 7585) and getPlayerStorageValue(cid, 123468) < 6 then doSummonCreature('Giant Spider', {x=33181, y=31867, z=12}) setPlayerStorageValue(cid, 123468,getPlayerStorageValue(cid, 123468)+1) doTransformItem(item.uid, 7586) addEvent(doTransformItem, 3000, item.uid, 7585) end return TRUE end porem ocorre o seguinte erro no Console: [Error - Action Interface] In a time event called from: .... <luaDoTransformItem> item not found Com certeza o erro é na função addEvent(doTransformItem, 3000, item.uid, 7585) Se alguém souber a função corretamente por favor me ajude.
-
Sistema De Gema Espiritual Igual Do Foxworld
tópico respondeu ao baiakizicksz de Sofft em Tutoriais de Scripting
@baiakizicksz, testarei, jaja edito EDITED: A função PIVI ta faltando um end, o certo seria assim: function doUseGem(cid, item) local voc = getPlayerVocation(cid) local interval = gems.interval[voc] if item.itemid ~= gems.id[voc] or getPlayerStorageValue(cid, gems.storage[voc]) > 0 then return FALSE end setPlayerStorageValue(cid, gems.storage[voc], 1) sendGemEffect(cid, gems.storage[voc], gems.interval[voc]) doRemoveItem(item.uid, 1) return TRUE end function sendGemEffect(cid, storage, interval) local pos = getThingPos(cid) local voc = getPlayerVocation(cid) local color = 1 if voc == 1 then color = gemMsg.colorDruid[math.random(1,#gemMsg.colorElderDruid)] elseif voc == 2 then color = gemMsg.colorSorcerer[math.random(1,#gemMsg.colorMasterSorcerer)] elseif voc == 3 then color = gemMsg.colorPaladin[math.random(1,#gemMsg.colorRoyalPaladin)] elseif voc == 4 then color = gemMsg.colorKnight[math.random(1,#gemMsg.colorEliteKnight)] end doSendAnimatedText(pos, gemMsg.rnd[math.random(1,#gemMsg.rnd)], color) if getPlayerStorageValue(cid, gems.storage[getPlayerVocation(cid)]) >= 1 then addEvent(sendGemEffect, interval, cid, storage, interval) end end function doRemoveGemEffect(cid) if getPlayerStorageValue(cid, gems.storage[getPlayerVocation(cid)]) < 1 then return FALSE end setPlayerStorageValue(cid, gems.storage[getPlayerVocation(cid)], 0) return TRUE end function doRemoveAllGemEffect(cid) for i = 1, table.maxn(gms.storage) do setPlayerStorageValue(cid, gems.storage[i], 0) end return TRUE end function isGemActivated(cid) if getPlayerStorageValue(cid, gems.storage[getPlayerVocation(cid)]) > 0 then return TRUE end return FALSE end e continua dando erros apos o player deslogar, mas nada que atrapalhe o server, (somente porque o avento ocorre em um player que não está mais online). -
mas eu alterando o .dat, os players do meu server terão que ter um cliente = o meu não?
- 9 respostas
-
- problema
- agrupaveis
- (e 4 mais)
-
@caotic, não mano, pickuable é para colocar o item na bp, e hangable é para carregar o item, acho que você não entendeu direito o que ta escrito la em cima, tipo, os monstros andam por cima do monstro morto, so que depois deu ter passado por cima deles.
- 9 respostas
-
- problema
- agrupaveis
- (e 4 mais)
-
não mas tipo, é só pra fazer isso, ai onde mudo o valor da força? e a action quando o player clicar no pergaminho, quero que ele fique com essa storage por 30 minutos, como faço isso? adicionando um evento? tem como fazer essa action pra mim com um ID qualquer? ja te dei rep+
-
blz vo tentar aki, mas onde que altera a forca ali certin, eu sei n, é ultimo valor?
-
Essa spell por exemplo: local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_ENERGYHIT) setAttackFormula(combat, COMBAT_FORMULA_LEVELMAGIC, 5, 5, 2.5, 4) local area = createCombatArea(AREA_BEAM4, AREADIAGONAL_BEAM4) setCombatArea(combat, area) function onCastSpell(cid, var) return doCombat(cid, combat, var) end você está dizendo pra mim alterar ela pra ficar assim? local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_ENERGYHIT) if getPlayerStorageValue(cid, exemplo) == 1 then setAttackFormula(combat, COMBAT_FORMULA_LEVELMAGIC, 5, 5, 5, 8) else setAttackFormula(combat, COMBAT_FORMULA_LEVELMAGIC, 5, 5, 2.5, 4) end local area = createCombatArea(AREA_BEAM4, AREADIAGONAL_BEAM4) setCombatArea(combat, area) function onCastSpell(cid, var) return doCombat(cid, combat, var) end
-
Versão:8.60 Distro:TFS 0.4 Mapa:Global O script que estava querendo desenvolver é o seguinte: 'Ha veria um pergaminho para cada elemento (energy,fire,ice,earth,holy,death), e ao clicar em um deles, o player iria ganhar um incremento no poder do respectivo elemento, e não poderia usar mais de um pergaminho por vez.' Ex: Um sorcerer ao clicar no 'energy parchement' por exemplo, seu exori vis, exevo gran vis lux, exevo gran mas vis, teriam um acréssimo no dano. Deu para entender?, na verdade eu sei fazer o script todo, so não conheço uma função que aumente o dano, e nem sei se existe, se alguem souber ficaria grato. Até...
-
Qual Seria a opção?
- 9 respostas
-
- problema
- agrupaveis
- (e 4 mais)
-
Então vou aproveitar a boa vontade de vcs, se puderem me ajudar nesse tópico ficaria muito agradecido: http://www.xtibia.com/forum/topic/184353-problema-com-itens-agrupaveis-empilhaveis/page__fromsearch__1
-
Estou usando um script para o jogador 'catar' gold automaticamente, porem isso não ocorre em monstros 'novos', como lizards, souleaters, drakens. Por favor me ajudem a consertar isso, tem muito tempo que já estou tentando arruma isso. Alguém mais experiente poderia facilmente conserta-lo. function getContainerItems(containeruid) local items = {} local containers = {} if type(getContainerSize(containeruid)) ~= "number" then return false end for slot = 0, getContainerSize(containeruid)-1 do local item = getContainerItem(containeruid, slot) if item.itemid == 0 then break end if isContainer(item.uid) then table.insert(containers, item.uid) end table.insert(items, item) end if #containers > 0 then for i,x in ipairs(getContainerItems(containers[1])) do table.insert(items, x) end table.remove(containers, 1) end return items end function getItemsInContainerById(container, itemid) -- Function By Kydrai local items = {} if isContainer(container) and getContainerSize(container) > 0 then for slot=0, (getContainerSize(container)-1) do local item = getContainerItem(container, slot) if isContainer(item.uid) then local itemsbag = getItemsInContainerById(item.uid, itemid) for i=0, #itemsbag do table.insert(items, itemsbag[i]) end else if itemid == item.itemid then table.insert(items, item.uid) end end end end return items end function doPlayerAddItemStacking(cid, itemid, quant) local item = getItemsInContainerById(getPlayerSlotItem(cid, 3).uid, itemid) local piles = 0 if #item > 0 then for i,x in pairs(item) do if getThing(x).type < 100 then local it = getThing(x) doTransformItem(it.uid, itemid, it.type+quant) if it.type+quant > 100 then doPlayerAddItem(cid, itemid, it.type+quant-100) end else piles = piles+1 end end else return doPlayerAddItem(cid, itemid, quant) end if piles == #item then doPlayerAddItem(cid, itemid, quant) end end function corpseRetireItems(corpsepos, killer, itemsarray) local corpse = nil for i = 1, 254 do corpsepos.stackpos = i corpse = getThingFromPos(corpsepos) if corpse.uid > 0 and isCorpse(corpse.uid) then break end end local items = getContainerItems(corpse.uid) for i,x in pairs(items) do if isInArray(itemsarray, tonumber(x.itemid)) then if isItemStackable(x.itemid) then doPlayerAddItemStacking(killer, x.itemid, x.type) else doPlayerAddItem(killer, x.itemid) end doRemoveItem(x.uid, x.type) end end end function onKill(cid, target, lastHit) local loots = {2148, 2152, 2160} if lastHit and getPlayerStorageValue(cid, 6616) == 1 then addEvent(corpseRetireItems, 100, getCreaturePosition(target), cid, loots) end return true end Creditos:MatheusMkalo, por postar esse script. Link do Tópico dele:http://www.xtibia.co...tion-auto-gold/ COMO SEMPRE!!, NINGUEM AJUDA A RESOLVER NADA AQUI, A NÃO SER FAZER BAÚ DE QUEST!!!!! RESOLVIDO: Se você tiver o mesmo problema do que eu, o erro não está no script, mas no monstro, adicione essa tag no corpse do monstro, que fica em items.xml. <attribute key="corpseType" value="Blood" />
-
Sistema De Gema Espiritual Igual Do Foxworld
tópico respondeu ao baiakizicksz de Sofft em Tutoriais de Scripting
@baiakizicksz, arrumei todos os bugs, menos o bug quando o player desloga, porque, antes do player deslogar já foi criado um Event que ainda vai acontecer. provavelmente terá que ser feito um onPlayerLogout... não estou conseguindo, por favor ajude. -
@DiogoTemporario, concordo parcialmente com o que você falou, porem você coloca o ato de comer carne como um "pecado" que é "legalizado" pelas pessoas, o que não é bem assim, entendo tudo o que você falou, mas o 'homem' tem o instinto de comer carne, é algo que vem antes da consciência. Então, não acho errado matar animais para se alimentar, acho errado matar animais por futilidade, como elefantes são mortos, essa é a vida! Se você olhar pelos dois lados tanto pela teoria do evolucionismo quanto pela teoria do criacionismo verá que esse instinto é apresentado em ambas, e tido como vital para a sobrevivência. Eu respeito a decisão de ser Vegetariano, só não vejo não ser vegetariano como algo ruim. Milho < Galinha < Homem < Bactérias "O que vem da terra volta para a terra!" Por favor comente o trecho que discorda de mim.
-
Quem Está Navegando 0 membros estão online
- Nenhum usuário registrado visualizando esta página.