Ir para conteúdo

Pesquisar na Comunidade

Mostrando resultados para as tags ''action''.

  • Pesquisar por Tags

    Digite tags separadas por vírgulas
  • Pesquisar por Autor

Tipo de Conteúdo


Fóruns

  • xTibia - Notícias e Suporte
    • Regras
    • Noticias
    • Soluções
    • Projetos Patrocinados
    • Tutoriais para Iniciantes
    • Imprensa
  • OTServ
    • Notícias e Debates
    • OTServlist
    • Downloads
    • Recursos
    • Suporte
    • Pedidos
    • Show-Off
    • Tutoriais
  • OFF-Topic
    • Barzinho do Éks
    • Design
    • Informática

Encontrar resultados em...

Encontrar resultados que contenham...


Data de Criação

  • Início

    FIM


Data de Atualização

  • Início

    FIM


Filtrar pelo número de...

Data de Registro

  • Início

    FIM


Grupo


Sou

  1. Fly System é um sistema que permite ao player voar pelo mapa em locais aonde antes não era possível. Arrumando algumas coisas na source, comando /fly on, off, up, down funcionando, nova variável no player isFlying, canFly ( salvo no MySql ) Bugs - Descer em itens bloqueáveis. Changelog To do To Do- Done
  2. Olá gente, estou aqui para pedir uma ajuda simples que n to conseguindo concertar kk, estou tentando compilar as sources do meu naruibia, sendo que quando eu compilo elas, dá logo um erro de cara quando está carregando a compilação, o erro é esse. Compiler: Default compilerBuilding Makefile: "F:\src\dev-cpp\Makefile.win"Executing make...make.exe -f "F:\src\dev-cpp\Makefile.win" allg++.exe -c ../actions.cpp -o obj/actions.o -I"G:/Dev Cpp Para Compilar Sources/Stian's Repack Dev-Cpp/include" -D__ENABLE_SERVER_DIAGNOSTIC__ -D__ROOT_PERMISSION__ -D__GROUND_CACHE__ -D__USE_SQLITE__ -D__USE_MYSQL__ -D__CONSOLE__ -D__WAR_SYSTEM__ -fexpensive-optimizations -O1In file included from ../otpch.h:33, from ../actions.cpp:17:F:/Stian's Repack Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.5/../../../../include/boost/asio/detail/socket_types.hpp:37:5: warning: #warning Please define _WIN32_WINNT or _WIN32_WINDOWS appropriately.F:/Stian's Repack Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.5/../../../../include/boost/asio/detail/socket_types.hpp:38:5: warning: #warning For example, add -D_WIN32_WINNT=0x0501 to the compiler command line.F:/Stian's Repack Dev-Cpp/Bin/../lib/gcc/mingw32/3.4.5/../../../../include/boost/asio/detail/socket_types.hpp:39:5: warning: #warning Assuming _WIN32_WINNT=0x0501 (i.e. Windows XP target).In file included from ../baseevents.h:20, from ../actions.h:20, from ../actions.cpp:20:../otsystem.h:33:20: asio.hpp: No such file or directorymake.exe: *** [obj/actions.o] Error 1Execution terminated alguém poderia me ajudar pfv ? dou rep+
  3. Olá galera hoje vou ensinar como remover o coin case de seu servidor é simples e rápido não leva nem 3 minutos. Vamos lá então: 1° Passo abra seu OBD(OBJECT BUILDER) 2° Passo vá onde se econtra a sprite do coins,se quiser o ID como item é 2547 3° Passo Clique na spr com o botão direito do mouse e clique em editar 4° Passo Clique em recipiente e depois em Salvar alterações logo após isso compile. 5° Passo Vá em data/items/items.xml 6° Passo Altere o sua Tag por essa .: <item id="2547" article="a" name="Coins"> <attribute key="weight" value="0" /> <attribute key="containerSize" value="8" /> <attribute key="slotType" value="ammo" /> </item> <item id="O número do ID, se for PDA não é necessário mecher <attribute key="containerSize" value="quantidade de slots IMPORTANTE FAÇA ISSO SENÃO VAI CONTINUAR SEM UTILIDADE Vá em data/actions/actions.xml ctrl+f digite 2547 remova a tag Vá em data/actions/scripts Remova o script Coincase É só isso então VLW flw.
  4. Eae galera então estou aqui porque tenho uma porta no client normal porém ela não possue aquele movement da porta abrir e fechar gostaria de saber como adicionar esse movimento igual as portas existentes já print da porta que está sem movimento de abrir obs: ela está adicionada no mapa porém quando adiciono a porta fechada quando tento abrir aparece que ela está trancada quando coloco a aberta da pra passar de boa mas quando eu fecho e tento abrir denovo fala que ela está trancada adicionei está action porém a fala que posso passar mas a porta não abre
  5. eae galera estou a dois dias tentando compilar uma sourcer e estou tendo problemas creio que estou fazendo tudo certo pois já testei 2 sourcers diferentes de todos os jeitos possiveis porém da o mesmo erro sempre sempre da este erro pessoal aqui está o arquivo todo bom acho que é isso porfavor se alguém puder ajudar agradeço muito Obs: um membro deste fórum já testou e conseguil compilara sourcer direitinho o problema é comigo não sei o que estou fazendo de errado .... sou leigo nesta área mas aprendo rápido estou usando o programa Stian's Repack Dev-Cpp 0.2, 64bit Sources NTO White não auterei nada apenas peguei como está e tentei compilar para testar para que caso desse certo eu iria editar e adicionar funções que vi aqui no fórum porém este erro não me deixa continuar com meu objetivo então estou aqui pedindo o auxilio de vocês.
  6. Josegvb

    BUG em script

    ola, fiz tudo certinho nesse script como o autor @zipter98 falou e o script funfa perfeito, porem pararam de abrir tds as janelas de Trade, Help, Game Chat, etc http://www.um fórum que não merece ser citado.com/forum/topic/65486-pedido-máquina-de-helds/ alguem me ajuda pfv? ja refiz td e fica sempre igual os outros channels param de abrir
  7. eae pessoal bom estou aqui para fazer um pedido aos scripter's se algum puder me ajudar neste pedido ficarei muito grato, hoje achei este script de lenhar do kronos muito interessante. este script é muito bom e 100% funcional porém quando eu corto a arvore e ela vira madeira logo quando a madeira e colhida de seu local aparece este wall (parede) você podem notar que no script logo quando a arvore é cortada tem um tempo até ela voltar eu configurei para 3600 = 1 hora bom esse time pode estár fazendo com que este wall apareça..... não sei ao certo ID: 6420 Então isso me fez pensar eu possuo a script da arvore que é cortada pensei que algum scripter poderia editar ela pra quando for cortada e transformada em "nada" até passar o tempo decorrido de 3600, a arvore poderia ser cortada e quando fosse cortada aparece o ID da arvore cortada e não poudesem usar o iten da actionID teria que esperar o tempo de 3600 até o ID da arvore normal volte os ID's das arvores já estão na script o script já ta editado para os itens do meu server. OBS: exemplo de como ficaria Passando 50% do tempo o ID da arvore caida é removido e é adicionado outro ID de um broto. logo depois de passar os outros 50% do tempo a arvore aparece novamente Tempo total decorrido 3600 = 1 hora Bom é isso se algum scripter puder me ajudar nesta empreitada ficarei muito grato Créditos: Script: Kronos
  8. Não sei se alguém vai conseguir me ajudar, estou praticamente 10horas tentando arrumar esses erros, fiz milhares de modificações mas sempre da erro em outras coisas, to ficando de cabeça farta! Então estou pedindo ajuda pra ver se alguém ja teve esses erros e conseguiu resolver, segue abaixo. [08/05/2016 01:56:17] [Error - CreatureScript Interface] [08/05/2016 01:56:17] data/creaturescripts/scripts/exp2.0.lua:onStatsChange [08/05/2016 01:56:17] Description: [08/05/2016 01:56:17] data/creaturescripts/scripts/exp2.0.lua:492: attempt to index a boolean value [08/05/2016 01:56:17] stack traceback: [08/05/2016 01:56:17] data/creaturescripts/scripts/exp2.0.lua:492: in function <data/creaturescripts/scripts/exp2.0.lua:63> [08/05/2016 01:19:47] [Error - Action Interface] [08/05/2016 01:19:47] data/actions/scripts/goback.lua:onUse[08/05/2016 01:19:47] Description: [08/05/2016 01:19:47] data/lib/catch system.lua:317: attempt to index a boolean value[08/05/2016 01:19:47] stack traceback:[08/05/2016 01:19:47] data/lib/catch system.lua:317: in function 'doAddPokemonInOwnList'[08/05/2016 01:19:47] data/actions/scripts/goback.lua:188: in function <data/actions/scripts/goback.lua:10> Citar
  9. ola, como voces sabem o y-cure em tudo PDA o held CURE faz a siguente funçao : "auto medicine cada x segundos" entao eu queria saber se alguem tiver como trocar essa funçao desse held pra ficar igual a PxG como assim? bom no PxG é diferente... o cure é um CHANCE para que o pokemon enemigo nao consiga acertar o status negativo no pokemon sendo que o tier 7 é 100% ai o pokemon fica impossivel de colocar miss (só contra pokemons selvagems) enquanto pda é um auto medicine muito ruim pois qualquer q coloca isso no pokemon ja tem mt chance de ganhar os duels pois sempre esta acontecendo o auto medicine function doCureWithY(cid, sid) if not isPlayer(cid) or not isCreature(sid) then return true end local ball = getPlayerSlotItem(cid, 8) or getPlayerSlotItem(getCreatureMaster(cid), 8) local Tiers = { [8] = {chance = Cure1}, [9] = {chance = Cure2}, [10] = {chance = Cure3}, [11] = {chance = Cure4}, [12] = {chance = Cure5}, [13] = {chance = Cure6}, [14] = {chance = Cure7}, } local Tier = getItemAttribute(ball.uid, "heldy") or 0 if #getCreatureSummons(cid) > 0 and Tiers[Tier] then if Tier > 7 and Tier < 15 then if math.random(1, 100) <= Tiers[Tier].chance then doCureStatus(sid, "all") doSendMagicEffect(getThingPosWithDebug(sid), 14) end addEvent(doCureWithY, 1000, cid, sid) end end end meu some functions.lua
  10. Eai galera. Então, acabei de colocar meu servidor no host vps e percebi que quando logo com a conta do god que tem acesso admin (999999) no site e tento adicionar premium points pra qualquer jogador (qualquer mesmo, já tentei em mais de 20 tipos de nomes diferentes) não adiciona. Em explicação mais detalhada, quando eu escrevo o nome do jogador em "Enter Character Name" depois adiciono a quantidade de points em "Enter Points Amount" e clico em submit simplesmente não acontece nada, a página não atualiza nem nada, nem é adicionado os points na tabela "premium_points", não acontece nada mesmo. Alguém pode me ajudar? Não da nem pra adicionar novas coisas na loja que não seja items, as opções não mudam, só ficam em items Aqui os scripts: shopadmin.php shopsystem.php Abraço <3
  11. Bom dia, galera... Eu mais uma vez (como de costume) aqui com os scripts problematicos. Enfim to com um reset system aqui por talkaction, e ele funciona normal, mas quando reseta ele mantem a mana e health do antigo level. Eu gostaria que quando desse reset a mana e health ficasse compativel com level para que o char voltou. Outra coisa tambem, ali no script tem a função de mostrar no look do char quantos resets ele tem, e também não funciona. Se alguém puder me ajudar ai com isso, ficarei eternamente agradecido. function onSay(cid, words, param) local level = 2000 --level pra ser resetado local RemainingLvl = 20 --lvl que ele ficara depois do reset local pid = getPlayerGUID(cid) function addReset(cid) resets = getResets(cid) setPlayerStorageValue(cid,1020,resets+1) look = true return true end function getResets(cid) resets = getPlayerStorageValue(cid,1020) if resets < 0 then resets = 0 end return resets end if getPlayerLevel(cid) >= level then addReset(cid) doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid))) doPlayerPopupFYI(cid,"you now was reset, you have "..getResets(cid).." reset.") doRemoveCreature(cid) db.executeQuery("UPDATE `players` SET `level` = "..RemainingLvl..", `experience` = 0 WHERE `id` = "..pid) function onLook(cid, thing, position, lookDistance) if isPlayer(thing.uid) then resets = getPlayerStorageValue(thing.uid, 1020)+1 doPlayerSetSpecialDescription(thing.uid, "\nResets: [" .. resets .."]") end return true end else doPlayerSendCancel(cid, "You need to have level "..level.." or more you may be reset.") doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF) end return TRUE end
  12. Bem, eu sei que ele é bem complicadinho por isso preciso de ajuda de vcs, eu tive uma ideia um dia desses de fazer tipo um moba no meu ot. Mas pra isso eu preciso muito de um sistema desse! Tipo, eu gostaria que o player falasse algo (talkaction) e entrasse numa fila (correspondente ao level dele 10 + 10 - ) ai quando chegasse os 20 player (10 em cada lado, lados aleatórios.) eles ganhavam uma storage (Storage já criada de dois times com caveiras. essa parte já existe!) ai o objetivo é clicar numa bandeira (inimiga) e levar o item até o outro lado onde terá um piso que vai fazer o time ganhar. PS':O local onde o player é teletransportado tem q ser gravado pela database, pra ele voltar p o mesmo local (e só pode iniciar o comando em area pz, pra não ter chance de bug's) PS'':Se o player morrer lá dentro não perde nada, mas volta p o canto onde ele tava (por exemplo no dp) PS''':Quando o time ganhar até os que morreram ganha uns golds e exp ( depende da média de lvl do seu grupo ) PS'''':Todas as storages ganhadas nesse evento tem q sumir após o evento acabar e ter os vencedores. Porq os players podem participar infinitas vezes. Bem, eu sei q é mt complicado, mas eu tô faço de td pra ter esse script. Rep+ por 1 semana em tds os post da pessoa q me ajudar Obrigado por ler ! <3
  13. Alguem Aqui sabe arruma Bug no Goback? Por Exemplo: Uso um deoxys e ai quando a pessoa morre no pvp ou em qualquer lugar, as vezes buga e ai começa a sair varios deoxys , e isso causa um lag terrivel, e sim da erro na distro quando faz o bug, alguem saberia resolver? ERRO QUE ACONTECE NA DISTRO [01/05/2016 18:04:37] [Error - Action Interface] [01/05/2016 18:04:37] data/actions/scripts/goback.lua:onUse[01/05/2016 18:04:37] Description: [01/05/2016 18:04:37] data/lib/newStatusSyst.lua:658: attempt to index field '?' (a nil value)[01/05/2016 18:04:38] stack traceback:[01/05/2016 18:04:38] data/lib/newStatusSyst.lua:658: in function 'doBuff2'[01/05/2016 18:04:38] data/lib/newStatusSyst.lua:691: in function 'doCondition2'[01/05/2016 18:04:38] data/lib/level system.lua:362: in function 'adjustStatus'[01/05/2016 18:04:38] data/actions/scripts/goback.lua:145: in function <data/actions/scripts/goback.lua:9> Script do Goback local EFFECTS = { --[OutfitID] = {Effect} ["Magmar"] = 35, ["Jynx"] = 17, --alterado v1.5 ["Shiny Jynx"] = 17, ["Piloswine"] = 205, --alterado v1.8 ["Swinub"] = 205, }function onUse(cid, item, frompos, item2, topos)if exhaustion.get(cid, 6666) and exhaustion.get(cid, 6666) > 0 then return true endif getPlayerStorageValue(cid, 17000) >= 1 or getPlayerStorageValue(cid, 17001) >= 1 or getPlayerStorageValue(cid, 63215) >= 1 or getPlayerStorageValue(cid, 75846) >= 1 or getPlayerStorageValue(cid, 5700) >= 1 then --alterado v1.9 << return true endlocal ballName = getItemAttribute(item.uid, "poke")local btype = getPokeballType(item.itemid)local usando = pokeballs[btype].uselocal effect = pokeballs[btype].effect if not effect then effect = 21 end unLock(item.uid) --alterado v1.8if item.itemid == usando then if getPlayerStorageValue(cid, 990) == 1 then -- GYM doPlayerSendCancel(cid, "You can't return your pokemon during gym battles.") return true end if #getCreatureSummons(cid) > 1 and getPlayerStorageValue(cid, 212124) <= 0 then --alterado v1.6 if getPlayerStorageValue(cid, 637501) == -2 or getPlayerStorageValue(cid, 637501) >= 1 then BackTeam(cid) end end if #getCreatureSummons(cid) == 2 and getPlayerStorageValue(cid, 212124) >= 1 then doPlayerSendCancel(cid, "You can't do that while is controling a mind") return true --alterado v1.5 end if #getCreatureSummons(cid) <= 0 then if isInArray(pokeballs[btype].all, item.itemid) then doTransformItem(item.uid, pokeballs[btype].off) doItemSetAttribute(item.uid, "hp", 0) doPlayerSendCancel(cid, "This pokemon is fainted.") return true end end local cd = getCD(item.uid, "blink", 30) if cd > 0 then setCD(item.uid, "blink", 0) end local z = getCreatureSummons(cid)[1] if getCreatureCondition(z, CONDITION_INVISIBLE) and not isGhostPokemon(z) then return true end doReturnPokemon(cid, z, item, effect)elseif item.itemid == pokeballs[btype].on then if item.uid ~= getPlayerSlotItem(cid, CONST_SLOT_FEET).uid then doPlayerSendCancel(cid, "You must put your pokeball in the correct place!") return TRUE end local thishp = getItemAttribute(item.uid, "hp") if thishp <= 0 then if isInArray(pokeballs[btype].all, item.itemid) then doTransformItem(item.uid, pokeballs[btype].off) doItemSetAttribute(item.uid, "hp", 0) doPlayerSendCancel(cid, "This pokemon is fainted.") return true end end local pokemon = getItemAttribute(item.uid, "poke") if not pokes[pokemon] then return true end----------------------- Sistema de nao poder carregar mais que 3 pokes lvl baixo e + q 1 poke de lvl medio/alto ---------------------------------if not isInArray({5, 6}, getPlayerGroupId(cid)) then local balls = getPokeballsInContainer(getPlayerSlotItem(cid, 3).uid) local low = {} local lowPokes = {"Rattata", "Caterpie", "Weedle", "Oddish", "Pidgey", "Paras", "Poliwag", "Bellsprout", "Magikarp", "Hoppip", "Sunkern"} if #balls >= 1 then for _, uid in ipairs(balls) do local nome = getItemAttribute(uid, "poke") if not isInArray(lowPokes, pokemon) and nome == pokemon then return doPlayerSendTextMessage(cid, 27, "Sorry, but you can't carry two pokemons equals!") else if nome == pokemon then table.insert(low, nome) end end end endif #low >= 3 then return doPlayerSendTextMessage(cid, 27, "Sorry, but you can't carry more than three pokemons equals of low level!")end end--------------------------------------------------------------------------------------------------------------------------------------------------- local x = pokes[pokemon] local boost = getItemAttribute(item.uid, "boost") or 0 if getPlayerLevel(cid) < (x.level+boost) then doPlayerSendCancel(cid, "You need level "..(x.level+boost).." to use this pokemon.") return true end -------------------------------------------------------------------------------------- doSummonMonster(cid, pokemon) local pk = getCreatureSummons(cid)[1] if not isCreature(pk) then return true end ------------------------passiva hitmonchan------------------------------ if isSummon(pk) then --alterado v1.8 \/ if pokemon == "Shiny Hitmonchan" or pokemon == "Hitmonchan" then if not getItemAttribute(item.uid, "hands") then doSetItemAttribute(item.uid, "hands", 0) end local hands = getItemAttribute(item.uid, "hands") doSetCreatureOutfit(pk, {lookType = hitmonchans[pokemon][hands].out}, -1) end end ------------------------------------------------------------------------- ---------movement magmar, jynx------------- if EFFECTS[getCreatureName(pk)] then markPosEff(pk, getThingPos(pk)) sendMovementEffect(pk, EFFECTS[getCreatureName(pk)], getThingPos(pk)) end -------------------------------------------------------------------------- if getCreatureName(pk) == "Ditto" or getCreatureName(pk) == "Shiny Ditto" then --edited local left = getItemAttribute(item.uid, "transLeft") local name = getItemAttribute(item.uid, "transName") if left and left > 0 then setPlayerStorageValue(pk, 1010, name) doSetCreatureOutfit(pk, {lookType = getItemAttribute(item.uid, "transOutfit")}, -1) addEvent(deTransform, left * 1000, pk, getItemAttribute(item.uid, "transTurn")) doItemSetAttribute(item.uid, "transBegin", os.clock()) else setPlayerStorageValue(pk, 1010, getCreatureName(pk) == "Ditto" and "Ditto" or "Shiny Ditto") --edited end end if isGhostPokemon(pk) then doTeleportThing(pk, getPosByDir(getThingPos(cid), math.random(0, 7)), false) end doCreatureSetLookDir(pk, 2) adjustStatus(pk, item.uid, true, false, true) doAddPokemonInOwnList(cid, pokemon) doTransformItem(item.uid, item.itemid+1) local pokename = getPokeName(pk) --alterado v2.7 local mgo = gobackmsgs[math.random(1, #gobackmsgs)].go:gsub("doka", pokename) doCreatureSay(cid, mgo, TALKTYPE_SAY) doSendMagicEffect(getCreaturePosition(pk), effect) if useOTClient then doPlayerSendCancel(cid, '12//,show') --alterado v2.7 endelse doPlayerSendCancel(cid, "This pokemon is fainted.")end if useKpdoDlls then doUpdateMoves(cid) endreturn trueend
  14. Olá, estou com um problema no meu site, anteriormente essa barra bugada no topo aparecia só em algumas especificas páginas, dai aparentemente, sem motivo nenhum, começou a aparecer em todas. (imagem do problema no final do post) Não sei onde exatamente está o problema então vou publicar meu Header.php e meu Basic.css Header.php Basic.css
  15. Bom galera.. Estou com um evento zombie aqui , tava funfando normal, usei ele bastante tempo e agora n sei pq mais ta dando um erro que o monstro n existe, sendo que ele aparece la na arena, o zombie, e aparece um outro erro e onTime que eu n sei oq é.. sera que alguem consegue me ajudar a concertar? tfs 0.4 GLOBALEVENTS local config = { semana_mes = "semana", days = {1,2,3,4,5,6,7}, -- Dia das semanas que irá acontecer o evento goblet = 10127, -- Troféu que vai pro vencedor do evento rewards = {6132, 2152, 2160}, -- Recompensas. moneyReward = {2160, 300, 1},-- {moneyId, quantidade, usar}1 pra usar 0 pra não usar} points = 1, playerCount = 2001, -- Storage dos players que entram e sai do evento zombieCount = 2002, -- Storage do zombie do event teleportActionId = 2008, -- Action ID do teleport teleportPosition = {x = 165, y = 48, z = 7, stackpos = 1}, -- Onde o teleport é criado teleportToPosition = {x = 549, y = 131, z = 7}, -- Pra onde será teleportado teleportId = 1387, -- ID do teleporte timeToStartEvent = 1, -- Minutos que o portal irá ficar aberto até os player entrarem timeBetweenSpawns = 20, -- Segundos dps do evento ser startado começarem a aparecer os zombie zombieName = "event zombie", -- Nome do zombie sumonado playersNeededToStartEvent = 2, -- Players necessários pro evento ser iniciado -- Area que o zumbi vai spawnar fromPosition = {x = 523, y = 100, z = 7}, -- top de fromPosition até toPosition = {x = 587, y = 165, z = 7} -- -- em baixo toPostion } function onTime() local time = os.date("*t") if (config.semana_mes == "semana" and isInArray(config.days,time.wday)) or (config.semana_mes == "mes" and isInArray(config.days,time.day)) or config.semana_mes == "" then local tp = doCreateTeleport(config.teleportId, config.teleportToPosition, config.teleportPosition) doItemSetAttribute(tp, "aid", config.teleportActionId) doBroadcastMessage("[Zombie-Event] Vai começar em " .. config.timeToStartEvent .. " minutos! O teleporte vai abrir no templo e sera fechado assim que o evento iniciar. (Premio 3ppoints para o ultimo sobrevivente!) ", MESSAGE_STATUS_WARNING) setGlobalStorageValue(config.playerCount, 0) setGlobalStorageValue(config.zombieCount, 0) addEvent(startEvent, config.timeToStartEvent * 1000 * 60) end return TRUEend function startEvent() local fromp, top = config.fromPosition, config.toPosition if getGlobalStorageValue(config.playerCount) >= config.playersNeededToStartEvent then addEvent(spawnZombie, config.timeBetweenSpawns * 1000) doBroadcastMessage("Boa sorte para os participantes! O portal foi fechado.", MESSAGE_STATUS_WARNING) for x = fromp.x, top.x do for y = fromp.y, top.y do for z = fromp.z, top.z do areapos = {x = x, y = y, z = z, stackpos = 253} getPlayers = getThingfromPos(areapos) if isPlayer(getPlayers.uid) then doPlayerSendTextMessage(getPlayers.uid, MESSAGE_EVENT_ADVANCE, "O primeiro Zombie vai aparecer em " .. config.timeBetweenSpawns .. " segundos! BOA SORTE!")pvgaylord() end end end end else doBroadcastMessage("The Zombie event could not start because of to few players participating.\n At least " .. config.playersNeededToStartEvent .. " players is needed!", MESSAGE_STATUS_WARNING) for x = fromp.x, top.x do for y = fromp.y, top.y do for z = fromp.z, top.z do areapos = {x = x, y = y, z = z, stackpos = 253} getPlayers = getThingfromPos(areapos) if isPlayer(getPlayers.uid) then doTeleportThing(getPlayers.uid, getTownTemplePosition(getPlayerTown(getPlayers.uid)), false) doSendMagicEffect(getPlayerPosition(getPlayers.uid), CONST_ME_TELEPORT) end end end end endend function spawnZombie() if getGlobalStorageValue(config.playerCount) >= 2 then pos = {x = math.random(config.fromPosition.x, config.toPosition.x), y = math.random(config.fromPosition.y, config.toPosition.y), z = math.random(config.fromPosition.z, config.toPosition.z)} doSummonCreature(config.zombieName, pos) doSendMagicEffect(pos, CONST_ME_MORTAREA) setGlobalStorageValue(config.zombieCount, getGlobalStorageValue(config.zombieCount)+1) doBroadcastMessage("Um Zombie nasceu, temos " .. getGlobalStorageValue(config.zombieCount) .. " Zombies no evento. Corram!", MESSAGE_STATUS_CONSOLE_RED) addEvent(spawnZombie, config.timeBetweenSpawns * 1000) elselocal fromp, top = config.fromPosition, config.toPosition for x = fromp.x, top.x do for y = fromp.y, top.y do for z = fromp.z, top.z do areapos = {x = x, y = y, z = z, stackpos = 253} cid = getThingfromPos(areapos).uid if isPlayer(cid) thendoTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)), false)doBroadcastMessage(getCreatureName(cid)..' sobreviveu dos Zombie e venceu o evento.') for _,items in ipairs(config.rewards) do doPlayerAddItem(cid, items, 1) doPlayerAddPoints(cid, config.points) end if config.moneyReward[3] == 1 then doPlayerAddItem(cid, config.moneyReward[1], config.moneyReward[2]) end doBroadcastMessage(getPlayerName(cid) .. " venceu o Zombie Event! Parabens!", MESSAGE_STATUS_WARNING) local goblet = doPlayerAddItem(cid, config.goblet, 1) doItemSetAttribute(goblet, "description", "Premio de " .. getPlayerName(cid) .. " por vencer o Zombie Event.") elseif isMonster(cid) thendoRemoveCreature(cid) end end end end endend function pvgaylord()local fromp, top, p, m = config.fromPosition, config.toPosition, 0, 0for x = fromp.x, top.x do for y = fromp.y, top.y do for z = fromp.z, top.z do local areapos = {x = x, y = y, z = z, stackpos = 253} local cid = getThingfromPos(areapos).uid if isPlayer(cid) thenp = p+1 elseif isMonster(cid) thenm = m+1 end end end endif p ~= getGlobalStorageValue(config.playerCount) thensetGlobalStorageValue(config.playerCount, p)endif p < 2 thenreturn trueendaddEvent(pvgaylord,100,nil)end
  16. Hey, então, eu peguei o Bank System por talkaction feito pelo Mock e tentei fazer alguns cálculos para transformar o sistema (que é em cents) para dollar. EX: Para depositar 1k, devo falar /bank d 100000 o ideal seria eu falar /bank d 1000 o problema está no comando all, que deposita/saca todo seu dinheiro. Eu consegui transformar de cents para dollar, pegando a variável de adicionar/remover item e multiplicar por 100, o problema é que caso o jogador deposite algum dinheiro sem o all, assim: /bank d 100000000, quando ele for sacar com o /bank w all (comando que saca todo o dinheiro da sua conta bancária), ele vai receber 100 vezes mais do que ele depositou. Por que o all vai multiplicar o saldo da sua conta bancária por 100. O código está imprimindo em dollar, mas os comandos são em centavos. E outra coisa, caso o jogador deposit mais de 42 milhões, 969,4 mil, 76 dollares e 96 centavos, o saldo é zerado. E às vezes buga, dando saldo negativo, inclusive criando stacks de 226 notas. Não sei se ficou claro, se estiver confuso, me avisem. Agradeço se alguém puder ajudar. Amanhã vou tentar fazer o transfer, para transferir dinheiro da conta bancária para outros jogadores. Se eu conseguir, eu edito aqui, caso alguém queira. Código: talkactions.xml:
  17. Bom, eu acabei de editar meu Otserver, e eu editei ele em cima desse [TFS 0.4] Porém estou com um problema ao abrir o meu servidor, quando eu inicio e ele fica online instantaneamente ele para de funcionar como mostra a imagem abaixo. Acontece isso usando essas configurações do config. lua. *Eu percebi esse erro quando eu coloco pra rodar com o ip "chaosstyller.servegame.com", pois quando eu coloco o IPV4 no lugar do "chaosstyller.servegame.com" ele roda normalmente,eu consigo entrar normalmente porém os players não conseguem, aparecendo só o account manager para eles, que ao apertarem enter fica só carregando. * Tenho todas as portas liberadas corretamente tanto do modem quanto do firewall, e devidamente testadas, pois, baixei um ot com TFS 0.3.5 coloquei o ip "chaosstyler...." e funcionou sem problemas, os players entraram normalmente. * Tibia versão 8.60 *[TFS 0.4] *SQL * Account Manager - Se alguém souber como arruma, serei eternamente grato, faz tempo que estou editando o server e estou quase colocando-o online.
  18. Estou com um bug relacionado ao systema de auto loot que foi adicionado. BUG SCRIPT E proveitando queria fazer um pedido pra quem manja de OTClient queria pedir uma ajuda pra me ajudar a por a opçao de ativar e desativar auto loot pela configuraçao do OTClient!!! Rep++++
  19. #Descrição: Este evento consiste em dominar o castelo através da destruição de alguns geradores. #O que possui? - Totalmente automatizado (Script: Abertura, Entrega do prêmio, Designação do vencedor e Encerramento). - Página interativa (PHP: Possui explicação do evento e os 5 últimos vencedores do castle). - Talkactions (Script: Comandos que informam quanto tempo falta para fechar e puxam membros para dentro do castelo). - Tutorial (Arquivo: Explicando passo a passo a instalação). - Castelo com 4 andares (Mapa). - Entre outras coisas…. *OBS: Este evento só funciona em TFS 0.4. DOWNLOAD: CLICK AQUI Créditos: ChaitoSoft Jhon Thiagobji
  20. Josegvb

    Erros PDA

    Bom minha net caiu e nao postou --' irei escreber denovo porem + resumido gente, tenho 1 PDA on a 9 meses... fiz tantas mudanças q é impossivel lembrar de tudo mas nada daba error nao... ultimamente o servidor msm estando en host fica dando MUIIIIITO erro no log e por isto o jogo fica muito lag... tanto lag assim q nem eu to querendo logar no jogo... enfim quem tiver como me ajudar eu agradesceria muito irei postar alguns dos MUITOS erros aki mais erros
  21. Ola galera, eu tenho um script para comprar item com uma certa moeda de troca, porém queria saber como edito o script para aceitar 2 moedas de troca.. POR EXEMPLO: compro tal item clicando no bau com crystal coin dentro da BP, quero modificar o script para comprar com crystal coin ou scarab coin.. versão do ot 8.6 tfs 0.4 local coin = 2160 -- sua moeda vip local lever = { [6016] = {1000,2158}, [6017] = {1000,2154}, [6018] = {1000,2156}, } local arrows = {8303,8302,8301} -- coloque o ID aqui function onUse(cid,item,fromPosition,itemEx,toPosition) if doPlayerRemoveItem(cid,coin,lever[item.actionid][1]) == FALSE then return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Você não tem dinheiro suficiente (1000000 gold coins = 1000k = 1000 crystal coins).") end doPlayerAddItem(cid,lever[item.actionid][2], isItemStackable(lever[item.actionid][2]) and 1 or 1) doSendAnimatedText(toPosition,'Comprado!', TEXTCOLOR_BLUE) doSendMagicEffect(toPosition,12) return true end
  22. O Evento Battlefield há para TFS 1.1, 1.2. Portanto, este é o ÚNICO E EXCLUSIVO evento para o TFS 1.0 que a maioria usa. O Que há nele? Neste tópico encontraremos os scripts do evento, mapa e arquivo da source. Há necessidade de alterar o arquivo game.cpp da source e recompilar o TFS para que o evento funcione perfeitamente. Vamos ao que interessa! Em data/creaturescripts/scripts crie um arquivo com o nome de BATTLEFIELD_creaturescript.lua com o conteúdo: dofile('data/lib/BATTLEFIELD_lib.lua') local function getWinnersBattle(storage) for _, online in ipairs(Game.getPlayers()) do if online:isPlayer() then if online:getStorageValue(storage) > 0 then online:teleportTo(online:getTown():getTemplePosition()) online:sendTextMessage(MESSAGE_INFO_DESCR, msg) online:setStorageValue(storage, 0) online:addItem(bf.rewardWin[1], bf.rewardWin[2]) online:unregisterEvent("BattleTeamLife") online:unregisterEvent("BattleTeamMana") online:unregisterEvent("BattleDeath") online:addHealth(online:getMaxHealth()) online:addMana(online:getMaxMana()) online:removeCondition(CONDITION_OUTFIT) if online:isPzLocked() then online:remove() end end end end if storage == bf.teamOne.storage then broadcastMessage("The BattleEvent is finish, team ".. bf.teamOne.name .." win.", MESSAGE_STATUS_WARNING) elseif storage == bf.teamTwo.storage then broadcastMessage("The BattleEvent is finish, team ".. bf.teamTwo.name .." win.", MESSAGE_STATUS_WARNING) end checkGate() print("> BattleField Event was finished.") end function onLogin(cid) local player = Player(cid) if player:getStorageValue(bf.teamOne.storage) > 0 or player:getStorageValue(bf.teamTwo.storage) > 0 then player:setStorageValue(bf.teamOne.storage, 0) player:setStorageValue(bf.teamTwo.storage, 0) player:removeCondition(CONDITION_OUTFIT) player:teleportTo(player:getTown():getTemplePosition()) player:unregisterEvent("BattleTeamLife") player:unregisterEvent("BattleTeamMana") player:unregisterEvent("BattleDeath") end return true end function onLogout(cid) local player = Player(cid) if player:getStorageValue(bf.teamOne.storage) > 0 or player:getStorageValue(bf.teamTwo.storage) > 0 then player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "You can not logout now.") return false end return true end function onChangeHealth(creature, attacker, primaryDamage, primaryType, secondaryDamage, secondaryType) local player = Player(creature) local enemy = Player(attacker) if enemy then if (player:getStorageValue(bf.teamOne.storage) > 0 and enemy:getStorageValue(bf.teamOne.storage) > 0) or (player:getStorageValue(bf.teamTwo.storage) > 0 and enemy:getStorageValue(bf.teamTwo.storage) > 0) or (enemy:isMonster()) and (primaryDamage > 0) then return false end end return primaryDamage, primaryType, secondaryDamage, secondaryType end function onChangeMana(cid, attacker, manaChange) local player = Player(cid) local enemy = Player(attacker) if enemy then player:sendTextMessage(MESSAGE_INFO_DESCR, enemy) if (player:getStorageValue(bf.teamOne.storage) > 0 and enemy:getStorageValue(bf.teamOne.storage) > 0) or (player:getStorageValue(bf.teamTwo.storage) > 0 and enemy:getStorageValue(bf.teamTwo.storage) > 0) or (enemy:isMonster()) then return false end end return manaChange end function onPrepareDeath(cid, killer) local creature = Player(cid) if creature:getStorageValue(bf.teamOne.storage) > 0 then creature:removeCondition(CONDITION_OUTFIT) creature:sendTextMessage(MESSAGE_INFO_DESCR, "You are dead!") creature:teleportTo(creature:getTown():getTemplePosition()) creature:addHealth(creature:getMaxHealth()) creature:addMana(creature:getMaxMana()) creature:unregisterEvent("BattleTeamLife") creature:unregisterEvent("BattleTeamMana") creature:unregisterEvent("BattleDeath") Game.setStorageValue(bf.teamOne.storage, Game.getStorageValue(bf.teamOne.storage) - 1) creature:setStorageValue(bf.teamOne.storage, 0) elseif creature:getStorageValue(bf.teamTwo.storage) > 0 then creature:removeCondition(CONDITION_OUTFIT) creature:sendTextMessage(MESSAGE_INFO_DESCR, "You are dead!") creature:teleportTo(creature:getTown():getTemplePosition()) creature:addHealth(creature:getMaxHealth()) creature:addMana(creature:getMaxMana()) creature:unregisterEvent("BattleTeamLife") creature:unregisterEvent("BattleTeamMana") creature:unregisterEvent("BattleDeath") Game.setStorageValue(bf.teamTwo.storage, Game.getStorageValue(bf.teamTwo.storage) - 1) creature:setStorageValue(bf.teamTwo.storage, 0) end if Game.getStorageValue(bf.teamOne.storage) == 0 then getWinnersBattle(bf.teamTwo.storage) elseif Game.getStorageValue(bf.teamTwo.storage) == 0 then getWinnersBattle(bf.teamOne.storage) end if Game.getStorageValue(bf.teamOne.storage) > 0 and Game.getStorageValue(bf.teamTwo.storage) > 0 then doMsgBattlefield("[BattleField] "..bf.teamOne.name.." "..Game.getStorageValue(bf.teamOne.storage).." VS "..Game.getStorageValue(bf.teamTwo.storage).." " ..bf.teamTwo.name) end if creature:isPzLocked() then creature:remove() end return false end Em data/creaturescripts/creaturescripts.xml adicione as seguintes linhas: <event type="login" name="BattleLogin" script="BATTLEFIELD_creaturescript.lua"/> <event type="logout" name="BattleLogout" script="BATTLEFIELD_creaturescript.lua"/> <event type="preparedeath" name="BattleDeath" script="BATTLEFIELD_creaturescript.lua"/> <event type="changehealth" name="BattleTeamLife" script="BATTLEFIELD_creaturescript.lua"/> <event type="changemana" name="BattleTeamMana" script="BATTLEFIELD_creaturescript.lua"/> Em data/globalevents/script, crie um arquivo com o nome de BATTLEFIELD_globalevents.lua e adicione o conteúdo: dofile('data/lib/BATTLEFIELD_lib.lua') local function teleportCheck() local tile = Tile(bf.teleportPosition) if tile then local item = tile:getItemById(1387) if item then item:remove() broadcastMessage("The BattleField Event was start in ".. bf.timeOpenGate .." minutes.", MESSAGE_STATUS_WARNING) local team1 = Game.getStorageValue(bf.teamOne.storage) local team2 = Game.getStorageValue(bf.teamTwo.storage) if (team1 + team2) % 2 ~= 0 then local playerLeave = Player(Game.getStorageValue(bf.namePlayer)) playerLeave:teleportTo(playerLeave:getTown():getTemplePosition()) playerLeave:removeCondition(CONDITION_OUTFIT) playerLeave:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "You are dead!") playerLeave:addHealth(playerLeave:getMaxHealth()) playerLeave:addMana(playerLeave:getMaxMana()) playerLeave:unregisterEvent("BattleTeamLife") playerLeave:unregisterEvent("BattleTeamMana") playerLeave:unregisterEvent("BattleDeath") Game.setStorageValue(bf.teamTwo.storage, Game.getStorageValue(bf.teamTwo.storage) - 1) playerLeave:setStorageValue(bf.teamTwo.storage, 0) end addEvent(checkGate, bf.timeOpenGate * 60 * 1000) else broadcastMessage("The BattleField Event was opened and will close in ".. bf.timeCloseTeleport .." minutes.", MESSAGE_STATUS_WARNING) Game.setStorageValue(bf.teamOne.storage, 0) Game.setStorageValue(bf.teamTwo.storage, 0) Game.setStorageValue(bf.namePlayer, 0) print("> BattleField Event was opened.") local teleport = Game.createItem(1387, 1, bf.teleportPosition) if teleport then teleport:setActionId(47000) end end end end function onTime(interval) teleportCheck() addEvent(teleportCheck, bf.timeCloseTeleport * 60 * 1000) return true end Em data/globalevents/globalevents.xml adicione: <globalevent name="BattleField" time="20:55:00" script="BATTLEFIELD_globalevents.lua" /> Em data/libs crie um arquivo com o nome de BATTLEFIELD_lib com o conteúdo: - -[[ LIB BATTLEFIELD TFS 1.0 Arquivos além desta lib: - BATTLEFIELD_globalevents.lua - BATTLEFIELD_movements.lua - BATTLEFIELD_creaturescript.lua - spell invisible.lua -- alterar UTANA VID e STEALTH RING ]]-- bf = { rewardWin = {2160, 10}, teamOne = {name = "Black Assassins", storage = 140120, pos = {x=1006,y=994,z=6}}, teamTwo = {name = "Red Barbarians", storage = 140121, pos = {x=1032,y=994,z=6}}, timeCloseTeleport = 1, timeOpenGate = 1, teleportPosition = {x=1019, y=1016, z=7}, namePlayer = 18400, levelToEvent = 7, itemGate = 3517 } function checkGate() local wall = { {x=1019, y=994, z=6}, {x=1019, y=994, z=6}, {x=1019, y=994, z=6}, {x=1019, y=994, z=6}, {x=1019, y=994, z=6}, {x=1019, y=994, z=6}, {x=1019, y=994, z=6}, } broadcastMessage("The BattleEvent Event will begin now!", MESSAGE_STATUS_WARNING) doMsgBattlefield("[BattleField] "..bf.teamOne.name.." "..Game.getStorageValue(bf.teamOne.storage).." VS "..Game.getStorageValue(bf.teamTwo.storage).." " ..bf.teamTwo.name) print("> BattleField Event will begin now.") for i = 1, #wall do local tile = Tile(wall[i]) if tile then local item = tile:getItemById(bf.itemGate) if item then item:remove() else Game.createItem(bf.itemGate, 1, wall[i]) end end end end function doMsgBattlefield(msg) for _, online in ipairs(Game.getPlayers()) do if online:isPlayer() then if online:getStorageValue(bf.teamOne.storage) > 0 or online:getStorageValue(bf.teamTwo.storage) > 0 then online:sendTextMessage(MESSAGE_INFO_DESCR, msg) end end end end Em data/movements/scripts crie um arquivo com o nome de BATTLEFIELD_movements com o conteúdo: dofile('data/lib/BATTLEFIELD_lib.lua') local conditionBlack = Condition(CONDITION_OUTFIT) conditionBlack:setTicks(120 * 60 * 1000) conditionBlack:addOutfit({lookType = 134, lookHead = 114, lookBody = 114, lookLegs = 114, lookFeet = 114}) local conditionRed = Condition(CONDITION_OUTFIT) conditionRed:setTicks(120 * 60 * 1000) conditionRed:addOutfit({lookType = 143, lookHead = 94, lookBody = 94, lookLegs = 94, lookFeet = 94}) function onStepIn(cid, item, position, fromPosition) local player = Player(cid) if player:getLevel() < bf.levelToEvent then player:sendTextMessage(MESSAGE_INFO_DESCR, "You need level " .. bf.levelToEvent .. " to enter in event.") player:teleportTo(fromPosition) return false end if player:getItemCount(2165) >= 1 then player:sendTextMessage(MESSAGE_INFO_DESCR, "You can not enter stealth ring in the event.") player:teleportTo(fromPosition) return false end if Game.getStorageValue(bf.teamOne.storage) < Game.getStorageValue(bf.teamTwo.storage) then Game.setStorageValue(bf.teamOne.storage, Game.getStorageValue(bf.teamOne.storage) + 1) player:addCondition(conditionBlack) player:setStorageValue(bf.teamOne.storage, 1) player:setStorageValue(bf.teamTwo.storage, 0) player:teleportTo(bf.teamOne.pos) player:sendTextMessage(MESSAGE_INFO_DESCR, "You will join the team " .. bf.teamOne.name .. ".") else Game.setStorageValue(bf.teamTwo.storage, Game.getStorageValue(bf.teamTwo.storage) + 1) player:addCondition(conditionRed) player:setStorageValue(bf.teamTwo.storage, 1) player:setStorageValue(bf.teamOne.storage, 0) player:teleportTo(bf.teamTwo.pos) player:sendTextMessage(MESSAGE_INFO_DESCR, "You will join the team " .. bf.teamTwo.name .. ".") Game.setStorageValue(bf.namePlayer, cid) end player:addHealth(player:getMaxHealth()) player:addMana(player:getMaxMana()) player:registerEvent("BattleTeamLife") player:registerEvent("BattleTeamMana") player:registerEvent("BattleDeath") return true end Em data/movements/movements.xml adicione: <movevent event="StepIn" actionid="47000" script="BATTLEFIELD_movements.lua"/> Em data/spells/scripts/support abra o arquivo invisible.lua, apague tudo e coloque: local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE) setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, 0) local condition = createConditionObject(CONDITION_INVISIBLE) setConditionParam(condition, CONDITION_PARAM_TICKS, 200000) setCombatCondition(combat, condition) dofile('data/lib/BATTLEFIELD_lib.lua') function onCastSpell(cid, var) local player = Player(cid) if player:getStorageValue(bf.teamOne.storage) > 0 or player:getStorageValue(bf.teamTwo.storage) > 0 then return false else return doCombat(cid, combat, var) end end Conforme avisado, no TFS 1.0 há necessidade de alterar alguns códigos nas fontes, portanto estou disponibilizando o arquivo game.cpp, basta substituir em sua basta e recompila-lo. Download game.cpp: https://www.sendspace.com/file/vqs5u4 Download Map tradicional: https://www.sendspace.com/file/f5tjhg Imagem do mapa: Para configurar, basta ver os arquivos e configurar horário, dias e posições do mapa! SCRIPT 100% TESTADO, O MESMO É VENDIDO PELO MODERADOR DO OUTRO FÓRUM! PORTANTO SEM ESSA, MODIFICAMOS E, IT'S FREEEEEEEE! Créditos: Absolute Vodkart Luan Luciano Markin Bom Proveito a todos, até o próximo! FAVOR MOVER O TÓPICO PRA SEÇÃO SCRIPTING > SISTEMAS E MODS, QUE TÁ FOD* CRIAR LÁ....
  23. Bem vindos meus queridos, à tão prometida atualização do nosso fórum. Hoje foi um dia incrivelmente exaustivo mas ao mesmo tempo produtivo e gratificante para a nossa equipe. Como sabem, lançamos a uns dias atrás a primeira etapa desta atualização, onde foram nomeados novos coordenadores que sustentariam os novos pilares do XTibia. Você pode se informar sobre isso clicando aqui. Dando continuidade, se for pra falar de coisas boas, vamos falar da atualização. Antes de tudo, agradecemos a prontidão do OTpanel, nosso parceiro número 1, que nos ajudou rapidamente e objetivamente em tudo que precisamos; e claro, agradecemos ao querido Gustavo, que embora não tenha disponibilidade para isso nos deu uma grande e incalculável força para que essa atualização ocorresse. PLATAFORMA Nossa plataforma foi atualizada para a última versão, e com isso, novidades inesperadas chegarão aos membros que frequentam a comunidade. Vale ressaltar, acima de tudo que, acompanhando a atualização da plataforma, guiamos os novos fundamentos para construir uma estrutura, com o objetivo de atender a demanda Open Tibia. Nem tudo está acabado, pois a atualização ainda não terminou. Veja abaixo as novidades para esta atualização: Notificação Instantânea: Agora é possível acompanhar tudo o que acontece em tempo real! Perfil customizável: É possível agora editar o seu perfil de uma forma mais social. Ao acessá-lo através do menu, você pode selecionar capas para deixar sua página pessoal mais agradável. Comunidade customizável: No topo do fórum, ao lado direito da sua caixa de mensagens (no menu do perfil), você verá um pincel. Você é livre para clicar nele e descobrir o que acontece ;). Mudança de nome: Membros poderão mudar de nome entre o período de 180 dias. Membros da equipe poderão mudar de nome a qualquer momento. A nova plataforma dispõe de um sistema automático, basta ir no menu do seu perfil e clicar em configurações da conta. Me mencione, por favor!: Utilizando esse simbolozinho bem conhecido como "AHOBAA!" (@), talvez não tão conhecido dessa forma, na frente do nome de um usuário, você mencionará ele como no exemplo abaixo: Nova identidade: Demos graças à existência do nosso queridinho @Tonynh criador da nova logo do Xtibia, e que receberá a quantia de 150 pontos de reputação pelos serviços voluntários ao Xtibia. Sem falar da medalha especial que só ele terá. Parabéns pelos designs e obrigado meu querido! Novo sistema de Suporte: As galerias de suporte estão totalmente diferentes e interativas, tudo para dar praticidade a quem procura o suporte. Com calma, spam: Novos usuários poderão utilizar o sistema de Mensagens Privadas apenas ao completar 30 posts sólidos na comunidade. Treta: Usuários terão sua pontuação de conduta visível nos posts. Quem atualiza mais rápido?: Adicionamos, pela primeira vez acredito, um ranking de usuários que mais ficam online no XTibia. O objetivo é incentivar o pessoal a interagir com e na comunidade. Ainda serão divulgados prêmios para os x-viciados. Buuump, Baaaang!: Tópicos terão um botão chamado @UP na parte superior, os membros poderão usar esse botão 10 vezes por dia e 1 vez no mesmo tópico por dia. Estrela do momento: Membros terão também um destaque amarelo em seus posts, apenas nos tópicos criados por estes. Agora será fácil identificar no meio de uma discussão paralela quem é o autor do tópico. Possíveis problemas relacionados com Posts, mudança de nick ou quaisquer outras categorias citadas acima devem ser reportados em Xtibia - Soluções ORGANIZANDO Após muito tempo de estudo resolvemos por em prática a nova organização dos fóruns. O principal objetivo é tornar prático a visualização da comunidade como um todo, e não dividi-la para gerar públicos diferentes. Veja bem, queremos incentivar os usuários a praticarem os tutoriais para que desenvolvam e aprimorem o conhecimento da comunidade, não o individual. Isso tudo é interligado a nova gestão do Xtibia. Quero ressaltar a responsabilidade do cargo Coordenador de Desenvolvimento, e parabenizar, ao mesmo tempo agradecendo, o interesse e dedicação do nosso querido @Night Wolf, que terá grandes decisões para tomar daqui em diante. Não desmerecendo, agradeço a: @danihcv, @Skulls, @scream , @Xtibiadaniel , @beeki e @entei15, pelo comprometimento. Também agradecer ao @Avuenja pela grande força mesmo após saindo da equipe, foi muito essencial para que a atualização ocorresse. Segue abaixo a nova ordem: -- Xtibia Rascunhos Notícias Soluções Regras Projetos Patrocinados -- Open Tibia Núcleo OTServ Notícias, Discussões e entrevistas Formação de Equipes Concursos e Eventos Datapacks e Distros Otserv 10.x Otserv Antigos Otserv Derivados Ferramentas Scripts Actions, talkactions e moveevents Globalevents, spells e creatureevents NPCs, monsters e raids Mods, Funções e Outros Mapas Mapas 10.x Mapas Antigos Mapas Derivados Clients Sprites Websites Layouts Programação Códigos Linguagem de Programação Lógica de Programação Programação Web C e C++ Java C# e Visual Basic Pascal (Delphi) Outras Linguagens -- Tutoriais e Suporte Tutoriais para Iniciantes Suporte Geral Tutoriais de Scripting Suporte de Scripting Exposição de Scripts Tutoriais de Mapping Suporte de Mapping Exposição de Mapas Tutoriais de Clients Suporte de Clients Exposição de Clients/Sprites Tutoriais de Websites Suporte de Websites Exposição de Websites Tutoriais de Programação Suporte de Programação Tutoriais de Infraestrutura Suporte de Infraestrutura PORTAL Para engajar junto ao pack de novidades, o XTibia dispõe agora de um portal totalmente diferente do antigo, construido em outra plataforma e constituído com base em projetos da equipe. Veja algumas funções interativas do nosso portal: Páginas customizáveis: É possível trocar as três cores de identidade da nossa comunidade, clicando nos quadradinhos no topo do site. Galerias flutuantes: Uma pesquisa rápida e prática se torna fácil no novo portal O novo portal abrigará, acima de tudo, conteúdos muito bem selecionados na comunidade, cujos autores receberão prêmios modificados em grande intensidade. Esta avaliação é feita pela equipe e, futuramente, será feita por votação pública. Para entender melhor, veja abaixo: Conteúdo Útil 20 Pontos de Reputação + Medalha (Xtibiano Honorário) Conteúdo Essencial 40 Pontos de Reputação + Medalha (Xtibiano Honorário) Conteúdo Foderoso 60 Pontos de Reputação + Medalha (Xtibiano Honorário) REPUTAÇÃO A partir do momento que a atualização fora concluída, o sistema de reputação terá sua valorização aumentada em 75% pelas expectativas da equipe. A equipe terá livre arbítrio para fazer votações com peso de 3 votos, para entregar quantias de 1 à 1000 pontos de reputação a usuários que esta achar dignos de tal recompensa. Ao mesmo tempo, a reputação será envolvida diretamente com o sistema de punição do fórum, dou créditos ao membro @Critical pela ideia, dada a alguns anos atrás. PUNIÇÃO POR PONTOS Desde sempre, a comunidade utiliza de pontuações para medir a punição de membros que desrespeitam as normas do Xtibia. Esta medida torna-se viável a partir do momento que se reconhece a utilização dos pontos como um meio classificação e criação de um histórico para todos os membros. Pontuações de Conduta, em seguida, penalidades para tais: Abandono de Tópico 01 Flood Simples 01 Flood Insistente 01 Insulto Indireto 01 Spam Simples 01 Flood Exagerado 02 Divulgação não permitida 02 Spam Insistente 02 Difamação 02 Insulto Direto 03 Spam Exagerado 03 Abuso de Poder 05 Mal uso de ferramentas 05 Ripping 05 01 ponto = Remoção de 10% da reputação do membro 02 ponto(s) = Remoção de 20% da reputação do membro 03 ponto(s) = Remoção de 30% da reputação do membro/suspensão 04 ponto(s) = Remoção de 40% da reputação do membro/suspensão 05 ponto(s) = Remoção de 50% da reputação do membro/suspensão PROJETOS PATROCINADOS Fica presente nesta resolução, junto a atualização da comunidade, as normas necessárias para funcionamento dos projetos em parceria com o xtibia. O não cumprimento das normas, por estes tratadas e aceitas, darão direito e poder ao coordenador de desenvolvimento da comunidade para que suspenda-os para avaliação do administrador. Estas normas também estarão disponíveis nas regras da comunidade. CICLO ENTRE PARCEIROS O xtibia caminha ao lado de outros dois projetos importantes, o nosso parceiro de berço OTPanel e a otserv-list.com. É notável ressaltar que através dessa parceria formulamos regras para convivência dos projetos dentro da nossa comunidade. De certo modo, as normas presentes nesta resolução acompanham as definições já em funcionamento. A IMPORTÂNCIA DO PATROCÍNIO Os projetos patrocinados pelo xtibia já contribuíram muitas vezes mais que vice-versa. O objetivo principal desta resolução visa aumentar as chances de crescimento desses projetos que possuem potencial. PORQUE SER PATROCINADO? Estão previstos nesta resolução além de normas de conduta ou execução administrativa dos projetos, normas para benefícios e incentivo aos projetos. Veja: • Fórum O projeto ganhará um fórum acessível por um menu no topo do site e localizado na primeira categoria da index. Este fórum poderá conter categorias e sub-categorias, prefixos, background próprio e logo própria. Os membros parceiros terão poderes administrativos neste fórum. Os projetos também poderão solicitar fóruns privados, acessíveis com senha. • Operação Visto que queremos incentivar os projetos a interagirem com a comunidade, os parceiros terão direitos a benefícios extras. Os membros participantes do projeto patrocinado terão o limite de mensagens privadas triplicado, assim como o limite de upload de arquivos. Ainda falando em limite, estes poderão trocar o nome em 50% menos tempo que membros comuns. Também serão donos de um rank de identificação diferenciado do padrão de membros da comunidade, junto a medalhas exclusivas para a categoria. • Expansão A área de interação para com o público do projeto aumentará com a permissão para membros parceiros publicarem artigos no portal do xtibia. Também terão apoio direto da equipe do xtibia, que devera, acima de tudo, promover o incentivo ao publico para que acompanhe os conteúdos ou composições do projeto em discussão. • Multiplicação O projeto quando patrocinado, também terá direito a posts diários ou não nas quatro vias sociais utilizadas pelo xtibia: Facebook, Twitter, Google+ e Youtube. • Promoção Todos os projetos terão direito da utilização de um slot de anúncio vago na comunidade, isto será válido entre um intervalo de 60 dias após o uso do benefício. Os projetos também participarão de sorteios mensais envolvendo nossos parceiros, Otpanel.com e OTServlists.com. • Facilidade Projetos patrocinados tem direito a 10% de desconto na compra de anúncios no XTibia • Eventos Será discutido com os projetos, quinzenalmente, e juntamente com o coordenador de eventos da comunidade, a criação e execução de eventos entre os dois parceiros, visando beneficiar ambos. TENHA UMA CHANCE Qualquer projeto fundado em conceitos objetivos, com potencial para cumpri-los e executá-los ao longo do crescimento da parceria; isto avaliado em reunião com coordenadores; deverá solicitar a participação neste PI. Não haverá espaço para projetos que não concordem com os termos primários, para manter tal parceria. • Fortificação Projetos não podem ter outros patrocinadores além do xtibia. Do mesmo modo, não devem divulgar outras empresas relacionadas a Open Tibia. • Compromisso Apesar de isto der tratado como consequência e não como deveria apropriadamente, na forma de ser executado, o projeto deverá assumir o compromisso antes e depois da parceria com a comunidade. O projeto também deve ser compromissado a contribuir com a comunidade da forma que for possível, ajudando outros membros, postando material, etc... • União Os projetos, independentemente da categoria devem concordar em utilizar um espaço de seu respectivo site para a adição de uma rotação de 3 banners: XTibia, OTPanel e otserv-list.com. É isso ai, se você é um dos caras que leram isso, parabéns, vou sonhar contigo. Grande abraço a todos e aproveitem a comunidade!
  24. Boa noite comunidade xTibiana... Estou com um problema em um sistema de cassino... Quando o cara coloca o dinheiro la e puxa a alavanca e aparece a mensagem que ele ganhou, o dinheiro que teria que aparecer em dobro no local , some.. Peguei esse sistema de outro server, mais no meu não funciona saberiam me explicar o por quê desse bug? Pois n dá nenhum erro distro. E se tiver como arrumar, se souber por gentileza.. Eu ficaria mt grato!!! REP+ pra quem conseguir me ajudar ou tentar!! Valeu @, esqueci de por o script
  25. fala galera é o seguinte tem um bau na minha quest tem gente q consegue pegar o item outros não, como resolver ???? o script é esse ou qualquer coisa como faço um novo script pra esse bau local specialQuests = { [2001] = 30015 --Annihilator } local questsExperience = { [30015] = 10000 } function onUse(cid, item, fromPosition, itemEx, toPosition) if(getPlayerCustomFlagValue(cid, PlayerCustomFlag_GamemasterPrivileges)) then doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF, cid) return true end local storage = specialQuests[item.actionid] if(not storage) then storage = item.uid if(storage > 65535) then return false end end if(getPlayerStorageValue(cid, storage) > 0) then doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "It is empty.") return true end local items = {} local reward = 0 local size = isContainer(item.uid) and getContainerSize(item.uid) or 0 if(size == 0) then reward = doCopyItem(item, false) else for i = 0, size do local tmp = getContainerItem(item.uid, i) if(tmp.itemid > 0) then table.insert(items, tmp) end end end size = table.maxn(items) if(size == 1) then reward = doCopyItem(items[1], true) end local result = "" if(reward ~= 0) then local ret = getItemDescriptions(reward.uid) if(reward.type > 0 and isItemRune(reward.itemid)) then result = reward.type .. " charges " .. ret.name elseif(reward.type > 0 and isItemStackable(reward.itemid)) then result = reward.type .. " " .. ret.plural else result = ret.article .. " " .. ret.name end else if(size > 20) then reward = doCopyItem(item, false) elseif(size > then reward = getThing(doCreateItemEx(1988, 1)) else reward = getThing(doCreateItemEx(1987, 1)) end for i = 1, size do local tmp = doCopyItem(items, true) if(doAddContainerItemEx(reward.uid, tmp.uid) ~= RETURNVALUE_NOERROR) then print("[Warning] QuestSystem:", "Could not add quest reward") else local ret = ", " if(i == 2) then ret = " and " elseif(i == 1) then ret = "" end result = result .. ret ret = getItemDescriptions(tmp.uid) if(tmp.type > 0 and isItemRune(tmp.itemid)) then result = result .. tmp.type .. " charges " .. ret.name elseif(tmp.type > 0 and isItemStackable(tmp.itemid)) then result = result .. tmp.type .. " " .. ret.plural else result = result .. ret.article .. " " .. ret.name end end end end if(doPlayerAddItemEx(cid, reward.uid, false) ~= RETURNVALUE_NOERROR) then result = "You have found a reward weighing " .. getItemWeight(reward.uid) .. " oz. It is too heavy or you have not enough space." else result = "You have found " .. result .. "." setPlayerStorageValue(cid, storage, 1) if(questsExperience[storage] ~= nil) then doPlayerAddExp(cid, questsExperience[storage]) doSendAnimatedText(getCreaturePosition(cid), questsExperience[storage], TEXTCOLOR_WHITE) end end doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, result) return true end
×
×
  • Criar Novo...