Ir para conteúdo

Danihcv

Conde
  • Total de itens

    926
  • Registro em

  • Última visita

  • Dias Ganhos

    17

Histórico de Reputação

  1. Upvote
    Danihcv recebeu reputação de Furabio em Tiles que falam   
    Manda o teu globalevents.xml
  2. Upvote
    Danihcv recebeu reputação de Furabio em Talkaction por vocação   
    Tenta ae:
    local vocs = {9, 10, 11, 12} --vocacoes que podem usar a talkaction function onSay(cid, words, param, channel) if isInArray(vocs, getPlayerVocation(cid)) then if(param == '') then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Command requires param.") return true end local t = string.explode(param, ",") t[1] = tonumber(t[1]) if(not t[1]) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Command requires numeric param.") return true end local failout = {"73","75","302","266","45","10"} -- outfits proibidas for i = 1, #failout do if string.find(tostring(param), failout[i]) then doPlayerSendCancel(cid,"Não pode usar estas outfit.") return TRUE end end if(t[1] <= 1 or t[1] == 135 or (t[1] > 160 and t[1] < 192) or t[1] > 351) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Such outfit does not exist.") return true end local tmp = getCreatureOutfit(cid) tmp.lookType = t[1] doCreatureChangeOutfit(cid, tmp)] else doPlayerSendCancel(cid,"Sua vocação não pode usar este comando.") end return true end
  3. Upvote
    Danihcv deu reputação a Adriez em [Resolvido] unable to load config.lua   
    já arrumei valeu, era tirar os os trem antes das escritas por causa do mysql
  4. Upvote
    Danihcv recebeu reputação de Adriez em Erro Em Dois Scripts   
    Tenta ae:
    mount:
    -- [( Mount System 1.4 created by Doidin for XTibia.com )] -- function onUse(cid, item) local outfit = {lookType = 4} -- Outfit da montaria! local exhaust = 60 -- Tempo para player poder usar o item novamente! (tempo em segundos) local time = 60 -- Tempo para ficar na montaria! (tempo em segundos) local speed = 300 -- Velocidade adicionada ao player após usar o item! (300 = velocidade, quanto maior mais rapido...) local mana = 500 -- Quantidade de mana que o player necessita para usar o sistema! local premium = "yes" -- Apenas players premium accounts "yes" or "no"!? local storage = 9393 -- Não mexa aqui! if (premium == "yes") and (not isPremium(cid)) and (isPlayer(cid)) then return doPlayerSendTextMessage(cid, 23, "Sorry, only premium players.") end if(getCreatureMana(cid) < mana) then return doPlayerSendDefaultCancel(cid, RETURNVALUE_NOTENOUGHMANA) end if isPlayer(cid) then if (getPlayerStorageValue(cid, storage) <= os.time()) then doCreatureSay(cid, "Yeeeah!!!\nYou went up on his ride.", 19) doSetCreatureOutfit(cid, outfit, time*1000) doChangeSpeed(cid, speed) doSendMagicEffect(getCreaturePosition(cid), 34) setPlayerStorageValue(cid, storage, os.time()+exhaust) doPlayerAddMana(cid, -mana) addEvent(doChangeSpeed, time*1000+40, cid, -speed) addEvent(doPlayerSendTextMessage, time*1000+45, cid, 23, "Mount System is time out!") addEvent(doSendMagicEffect, time*1000+50, getCreaturePosition(cid), 2) else doPlayerSendCancel(cid, "Sorry, you only can again use this item after "..exhaust.." seconds.") end end return true end o outro:
    local GemsConfig = { [2153] = { vocations = {4, 8, 12}, effect = CONST_ME_EXPLOSIONAREA, conditions = { [CONDITION_ATTRIBUTES] = { [CONDITION_PARAM_TICKS] = 3 * 60 * 60 * 1000, [CONDITION_PARAM_SKILL_MELEEPERCENT] = 112, [CONDITION_PARAM_BUFF] = true, [CONDITION_PARAM_SUBID] = 200 }, [CONDITION_HASTE] = { [CONDITION_PARAM_TICKS] = 3 * 60 * 60 * 1000, [CONDITION_PARAM_SPEED] = 40 } } }, [2154] = { vocations = {3, 7, 11}, effect = CONST_ME_HOLYDAMAGE, conditions = { [CONDITION_ATTRIBUTES] = { [CONDITION_PARAM_TICKS] = 3 * 60 * 60 * 1000, [CONDITION_PARAM_SKILL_DISTANCEPERCENT] = 112, [CONDITION_PARAM_BUFF] = true, [CONDITION_PARAM_SUBID] = 200 }, [CONDITION_HASTE] = { [CONDITION_PARAM_TICKS] = 3 * 60 * 60 * 1000, [CONDITION_PARAM_SPEED] = 40 } } }, [2156] = { vocations = {1, 5, 9}, effect = CONST_ME_MORTAREA, conditions = { [CONDITION_ATTRIBUTES] = { [CONDITION_PARAM_TICKS] = 3 * 60 * 60 * 1000, [CONDITION_PARAM_STAT_MAGICLEVELPERCENT] = 112, [CONDITION_PARAM_BUFF] = true, [CONDITION_PARAM_SUBID] = 200 }, [CONDITION_HASTE] = { [CONDITION_PARAM_TICKS] = 3 * 60 * 60 * 1000, [CONDITION_PARAM_SPEED] = 40 } } }, [2158] = { vocations = {2, 6, 10}, effect = CONST_ME_SMALLPLANTS, conditions = { [CONDITION_ATTRIBUTES] = { [CONDITION_PARAM_TICKS] = 3 * 60 * 60 * 1000, [CONDITION_PARAM_STAT_MAGICLEVELPERCENT] = 112, [CONDITION_PARAM_BUFF] = true, [CONDITION_PARAM_SUBID] = 200 }, [CONDITION_HASTE] = { [CONDITION_PARAM_TICKS] = 3 * 60 * 60 * 1000, [CONDITION_PARAM_SPEED] = 40 } } } } local Conditions = {} for itemid, info in pairs(GemsConfig) do Conditions[itemid] = {} for condition, parameters in pairs(info.conditions) do local new = createConditionObject(condition) for parameter, value in pairs(parameters) do setConditionParam(new, parameter, value) end table.insert(Conditions[itemid], new) end end local function doShowGemAura(cid, type) if isCreature(cid) then local position = getThingPosition(cid) doSendMagicEffect(position, type) if isCreature(cid) then if getCreatureCondition(cid, CONDITION_ATTRIBUTES, 200) then addEvent(doShowGemAura, 1 * 1000, cid, type) end end end return true end function onUse(cid, item, fromPosition, itemEx, toPosition) if not GemsConfig[item.itemid] then return false end if not isInArray(GemsConfig[item.itemid].vocations, getPlayerVocation(cid)) then return doPlayerSendCancel(cid, "You cannot use this spirit gem.") end if getCreatureCondition(cid, CONDITION_ATTRIBUTES, 200) then return false end for _, condition in pairs(Conditions[item.itemid]) do doAddCondition(cid, condition) end doCreatureSay(cid, "AAAAH! I FEEL THE POWER!", TALKTYPE_ORANGE_1) doSendMagicEffect(toPosition, GemsConfig[item.itemid].effect) addEvent(doShowGemAura, 1 * 1000, cid, GemsConfig[item.itemid].effect) doRemoveItem(item.uid, 1) return true end
  5. Upvote
    Danihcv deu reputação a Caronte em [aula 1] lógica de programação   
    Aula - Lógica de programação
    fala pessoal, essa aula é a primeira do conjunto que estarei criando para ensinar programação através da linguagem LUA, e depois, aprender como aplicar no tibia. 
     
    as informações apresentadas a seguir são fundamentais para o apropriado entendimento da logica de programação, porém...
    Caso você esteja buscando a parte mais prática, pule para: Criando Algoritmos
     
         Sem mais delongas, precisamos entender o que é o conceito de lógica de programação, 
    Lógica está contida em um conjunto de atitudes/eventos que tem um sentido por trás, lógica pode tomar várias formas e definições, porém, a que vamos aprender é Lógica de Computador, ela é EXTREMAMENTE necessária para você poder criar scripts, e programar códigos de qualquer tipo e linguagem. A lógica de computador não pode ser argumentada, essa lógica tudo é ou não é, não existe o meio termo ou argumento, ela pode ser entendida na Lógica de Aristóteles com a lei da não contradição, ou é verdadeiro, ou falso.
     
        Nós somos quase totalmente diferentes de máquinas, apesar do nosso cérebro funcionar também por eletricidade, a voltagem é fraca e ele não depende só de eletricidade, mas isso não vem ao caso, o que interessa é a nossa maneira de pensar e agir, aí sim, é totalmente diferente de um computador, Porque Será?
     
        Ao pensarmos, nosso cérebro trabalha no consciente e inconsciente, alguns cientistas acreditam que a decisão acontece já no inconsciente, através de experiências já vividas e considerações, ou seja, você não sabe que seu cérebro já tomou a decisão, até ficar consciente dela (não acredito 100% nisso, essa informação não tem muita base, tem deduções), mas o que temos que entender é que a gente avalia de acordo com o nosso conhecimento já adquirido, e por meio disso, a decisão é tomada através do nosso conhecimento de certo ou errado, e a decisão não precisa ser exata.
     
       Já o computador trabalha através de instruções de linguagens não sofisticadas (códigos de máquina, exemplo: código binário, 0 ou 1), algo que é praticamente incompreensível para os humanos (se não fosse compreensível, não existiria computador), por causa da dificuldade de programar em código de máquina foi criada uma linguagem chamada Assembly que torna muito mais fácil programar, e depois dessa linguagem, foram criadas outras mais sofisticadas.
     
    Criando Algoritmos.
     
       Agora o que precisamos entender é que a nossa maneira de pensar na resolução de problemas é diferente de como devemos escrever para um computador entender, o computador é muito mais burro na hora de interpretar as ideias, pois ele não tem quase nada para se basear além das suas instruções.
     
       Para explicar, vou criar um algoritmo simples para mandar um humano fazer uma determinada tarefa, comprar pão, e depois, vou explicar porque um computador não pode usar o mesmo algoritmo.
     
    Vou usar os seguintes substantivos:
    Pão Dinheiro Troco Casa Padaria Compra Vou usar os seguintes verbos:
    Pegar Ir / Voltar Fazer Dar Essas são as palavras chaves.
    Os verbos numa linguagem normal são geralmente chamados de Sintaxe (ou parte dela), ela é quem dirige a logica, e que faz o script ter sentido.
     
         Já os substantivos são dados valiosos, são variáveis! , variável é uma incógnita sobre o qual você tem controle, e sabe o valor , ela serve para você resumir dados e guardar, vão ser muito usadas se você quiser programar bastante, ela ajuda a identificar dados, e tornar o programa mais legível.  
     
    • Vamos ao algoritmo:
     

     
           Bom, uma tarefa com instruções tão gerais não poderia ser seguida por um computador. A menos que sejam funções, porém isso não é assunto para agora. O fato é que essas instruções são bem mais do que a quantidade necessária para um humano, você pode falar: “Vá à padaria comprar pão”, e ele irá executar perfeitamente.
     
          Porém, se você quer dar um algoritmo de como ir para a padaria para um computador executar terá que ser bem mais específico e falar todas as tarefas que ficam subentendidas para um humano, mas que não são nem um pouco claras para um computador.
     
          Para o computador entender algo parecido do que o humano entende, seria necessária muita inteligência artificial, o que não contamos quando vamos programar em LUA, novamente falo, o computador é burro.
     
       Agora vamos ao algoritmo mais próximo do que um computador precisa, vamos precisar adicionar mais termos ao nosso vocabulário:
     
    Expressões condicionais:
     

    E alguns verbos e termos a mais. Vamos ao algoritmo:
     

     
          As expressões condicionais servem para verificar antes de fazer alguma tarefa, assim, evitamos possíveis erros, por exemplo, caso não tenha dinheiro! Se você mandar o computador pegar o dinheiro e o valor dinheiro não existe, irá gerar erros no seu script.
          Expressões condicionais não servem somente para verificar, servem para selecionar também, por exemplo, uma Quest que precise de level 20 para entrar. 

     
          Esse algoritmo acima já dá uma parte de script, se escrito como LUA.
    A expressão condicional que acabei de passar é considerada fácil, mas para uma Quest é simplesmente isso e mais algumas coisas simples.
     
         Bom, esse é o final da aula de algoritmos, gostaria de saber se fui claro em relação ao tutorial e se alguma coisa passou despercebida que merece alguma atenção a mais, assim posso editar o tópico para ficar melhor.
     
    Exercício:

     
    Resposta:
        [Aula 2] Booleanos e Operadores ---->>
     
  6. Upvote
    Danihcv deu reputação a Administrador em Falou em promoção? Falou em OTPanel!   
    Fala rapaziada! Como sabem, é de costume da OTpanel lançar promoções incríveis e tentadoras.
    Não é diferente nesta vez, compre VPS Linux de16GB de RAM pelo preço de 8GB:
     
       ·         30% de desconto no plano trimestral
       ·         Firewall gratuito
       ·         Entrega em 60 segundos
     
    Mas fique atento! Essa promoção é válida somente até o final de março!
     
     
     
     
     

     
     
     
    Não conhece a empresa? Saiba porque nós à indicamos:
    http://www.otpanel.com/
     
     
     
  7. Upvote
    Danihcv recebeu reputação de UntFrc em Bug no Shopsystem Gesior (não entrega item em quantidade)   
    Vá em data\globalevents\scripts e substitua o seu shop.lua por esse:
    local SHOP_MSG_TYPE = MESSAGE_EVENT_ORANGE local SQL_interval = 30 function onThink(interval, lastExecution) local result_plr = db.getResult("SELECT * FROM z_ots_comunication WHERE `type` = 'login';") if(result_plr:getID() ~= -1) then while(true) do local id = tonumber(result_plr:getDataInt("id")) local action = tostring(result_plr:getDataString("action")) local delete = tonumber(result_plr:getDataInt("delete_it")) local cid = getCreatureByName(tostring(result_plr:getDataString("name"))) if isPlayer(cid) then local itemtogive_id = tonumber(result_plr:getDataInt("param1")) local itemtogive_count = tonumber(result_plr:getDataInt("param2")) local container_id = tonumber(result_plr:getDataInt("param3")) local container_count = tonumber(result_plr:getDataInt("param4")) local add_item_type = tostring(result_plr:getDataString("param5")) local add_item_name = getItemNameById(tonumber(result_plr:getDataInt("param1"))) local add_item_count = tostring(result_plr:getDataInt("param2")) local received_item = 0 local full_weight = 0 if add_item_type == 'container' then container_weight = getItemWeightById(container_id, 1) if isItemRune(itemtogive_id) == TRUE then items_weight = container_count * getItemWeightById(itemtogive_id, 1) else items_weight = container_count * getItemWeightById(itemtogive_id, itemtogive_count) end full_weight = items_weight + container_weight else full_weight = getItemWeightById(itemtogive_id, itemtogive_count) if isItemRune(itemtogive_id) == TRUE then full_weight = getItemWeightById(itemtogive_id, 1) else full_weight = getItemWeightById(itemtogive_id, itemtogive_count) end end local free_cap = getPlayerFreeCap(cid) if full_weight <= free_cap then if add_item_type == 'container' then local new_container = doCreateItemEx(container_id, 1) local iter = 0 while iter ~= container_count do doAddContainerItem(new_container, itemtogive_id, itemtogive_count) iter = iter + 1 end received_item = doPlayerAddItemEx(cid, new_container) else local new_item = doCreateItemEx(itemtogive_id, itemtogive_count) doItemSetAttribute(new_item, "description", "This item can only be used by the player ".. getPlayerName(cid) .."!") doItemSetAttribute(new_item, "aid", getPlayerGUID(cid)+10000) received_item = doPlayerAddItemEx(cid, new_item) end if received_item == RETURNVALUE_NOERROR then doPlayerSendTextMessage(cid, SHOP_MSG_TYPE, 'Você recebeu >> '.. add_item_count ..' '.. add_item_name ..' << do Hospice shop.') db.executeQuery("DELETE FROM `z_ots_comunication` WHERE `id` = " .. id .. ";") db.executeQuery("UPDATE `z_shop_history_item` SET `trans_state`='realized', `trans_real`=" .. os.time() .. " WHERE id = " .. id .. ";") else doPlayerSendTextMessage(cid, SHOP_MSG_TYPE, '>> '.. add_item_count ..' '.. add_item_name ..' << from Hospice shop is waiting for you. Please make place for this item in your backpack/hands and wait about '.. SQL_interval ..' seconds to get it.') end else doPlayerSendTextMessage(cid, SHOP_MSG_TYPE, '>> '.. add_item_count ..' '.. add_item_name ..' << from Hospice shop is waiting for you. It weight is '.. full_weight ..' oz., you have only '.. free_cap ..' oz. free capacity. Put some items in depot and wait about '.. SQL_interval ..' seconds to get it.') end end if not(result_plr:next()) then break end end result_plr:free() end return true end

    OBS: NÃO ESQUEÇA DE FAZER BACKUP DO SEU SHOP.LUA ATUAL!
  8. Upvote
    Danihcv recebeu reputação de SkyLigh em Ajuda a arrumar esses scripts.   
    Tenta ae:
     
    Primeiro script:

     
     
    Segundo:
     
     
  9. Upvote
    Danihcv deu reputação a Furabio em Erro na distro   
    Os erros devem estar acontecendo pois o linux é case sensitive:
     
     
    O que ocorre é que o executável procura por um arquivo ou monstro chamado exemplo, mas ele foi feito com o nome Exemplo, no windows ambos são os mesmo arquivos, mas no linux são arquivos totalmente diferentes.
     
    Para resolver basta ver como o monstro está sendo chamado no caso Monster e renomear o arquivo que deve estar escrito monster ou algo parecido para Monster.
  10. Upvote
    Danihcv recebeu reputação de bernardes22 em Erro na distro   
    @@bernardes22, vc está utilizando distros diferentes? Se sim, vc deve utilizar o data pack respectivo com cada distro.


    *explicação:
    **exemplo de distro diferentes: tfs 0.3.6 e tfs 0.4
    **o que é data pack? Quando me refiro a data pack estou me referindo à pasta data do servidor e as dll's necessárias pra distro rodar.


    Tópico Movido
    Este tópico foi movido de "OTServ → Scripting → Downloads Scripts"
    para "OTServ → Scripting → Suporte Scripting".
     
     
  11. Upvote
    Danihcv recebeu reputação de bernardes22 em Erro na distro   
    Certo... Quando os erros começaram? Exatamente na 1° vez que vc usou no linux?
    Se sim, podem ser 2 coisas: deu algum bug na compilação ou essa distro ta com problemas (pra saber se é essa ultima opção, vc deve tentar usar outra distro [ou outro servidor]).
    Se não, o erro deu-se por alguma modificação que vc fez em algum arquivo do data pack.
     
    Mas, de qqr forma, poste prints dos erros que aparecem.
  12. Upvote
    Danihcv recebeu reputação de bernardes22 em Erro na distro   
    Putz, os erros estão dixendo que esses arquivos que ele tá tentando abrir, não existem. Só isso. shusauhsa

    Ou seja, os scripts de certos npc's e de certos monstros não estão no local (diretório) correto.

    E é o que eu tava suspeitando mesmo, o problema está no data pack. Ele está incompleto, creio eu. Tente pegar a pasta data de outro servidor tfs 0.4 e substitua no lugar da sua atual.
  13. Upvote
    Danihcv deu reputação a Furabio em Colocando mais vocaçoes neste Script de NPC   
    Troque seu script do StdModule.learnSpell por esse :
    function StdModule.learnSpell(cid, message, keywords, parameters, node) local npcHandler = parameters.npcHandler if npcHandler == nil then error("StdModule.learnSpell called without any npcHandler instance.") end if not npcHandler:isFocused(cid) then return false end local player = Player(cid) if parameters.premium and player:isPremium() then if player:hasLearnedSpell(parameters.spellName) then npcHandler:say("You already know this spell.", cid) elseif player:getLevel() < parameters.level then npcHandler:say("You need to obtain a level of " .. parameters.level .. " or higher to be able to learn " .. parameters.spellName .. ".", cid) elseif type(parameters.vocation) == "table" then if not isInArray(parameters.vocation, player:getVocation():getId()) then npcHandler:say("This spell is not for your vocation", cid) end elseif type(parameters.vocation) == "number" then if player:getVocation():getId() ~= parameters.vocation and player:getVocation():getId() ~= parameters.vocation + 4 and vocation ~= 9 then npcHandler:say("This spell is not for your vocation", cid) end elseif not player:removeMoney(parameters.price) then npcHandler:say("You do not have enough money, this spell costs " .. parameters.price .. " gold.", cid) else npcHandler:say("You have learned " .. parameters.spellName .. ".", cid) player:learnSpell(parameters.spellName) end else npcHandler:say("You need a premium account in order to buy " .. parameters.spellName .. ".", cid) end npcHandler:resetNpc(cid) return true end e em vocation coloque :
     
    vocation = {id_vocation, id_vocation, id_vocation}(Para mais de 1 vocação)
     
    ou
     
    vocation = id_vocation(Para apenas 1 vocação)
  14. Upvote
    Danihcv recebeu reputação de kaleudd em Anti MC   
    @@fawkz12, por favor, clique no botão de que se encontra no rodapé de cada post.

    *Atenção! Selecione o post que mais te satisfez.

    Tópico movido para dúvidas / pedidos resolvidos.
  15. Upvote
    Danihcv deu reputação a kaleudd em Anti MC   
    tente esse:
     
     

    <event type="login" name="AntiMbCrash" event="script" value="antimbcrash.lua"/> Para configurar é fácil, na segunda linha do script está assim:
    local limit,days = 2,360
    2 = número máximo de Account Manager.
    360 = número de dias que o IP ficará banido.
     
  16. Upvote
    Danihcv deu reputação a Yan Liima em Anti MC   
    Se não for só para Account Manager
     
    Tente este aqui, funciona normal:
    local config = { max = 1, -- Número de players permitido com o mesmo IP. group_id = 1 -- Kikar apenas player com o group id 1. } local accepted_ip_list = {} -- Lista dos players permitidos a usar MC, exemplo: {"200.85.3.60", "201.36.5.222"} local function antiMC(p) if #getPlayersByIp(getPlayerIp(p.pid)) >= p.max then doRemoveCreature(p.pid) end return true end function onLogin(cid) if getPlayerGroupId(cid) <= config.group_id then if isInArray(accepted_ip_list,doConvertIntegerToIp(getPlayerIp(cid))) == false then addEvent(antiMC, 1000, {pid = cid, max = config.max+1}) end end return true end <event type="login" name="AntiMC" event="script" value="antimc.lua"/>
  17. Upvote
    Danihcv deu reputação a fawkz12 em Erro LOGIN.LUA   
    Sempre quando abro meu OT, da essa erro -
    [Error - LuaScriptInterface::loadFile] data/creaturescripts/scripts/login.lua:239: '<eof>' expected near 'end' [20/03/2016 19:21:47] [Warning - Event::loadScript] Cannot load script (data/creaturescripts/scripts/login.lua) [20/03/2016 19:21:47] data/creaturescripts/scripts/login.lua:239: '<eof>' expected near 'end' Meu login.lua
     
    local config = { loginMessage = getConfigValue('loginMessage'), useFragHandler = getBooleanFromString(getConfigValue('useFragHandler')) } function onLogin(cid) local accountManager = getPlayerAccountManager(cid) if getPlayerLevel(cid) >= 1 and getPlayerLevel(cid) <= 80 then doPlayerSetLossPercent(cid, PLAYERLOSS_EXPERIENCE, 90) doCreatureSetDropLoot(cid, false) end if getPlayerLevel(cid) >= 81 and getPlayerLevel(cid) <= 149 then doPlayerSetLossPercent(cid, PLAYERLOSS_EXPERIENCE, 80) doCreatureSetDropLoot(cid, false) end if getPlayerLevel(cid) >= 150 then doPlayerSetLossPercent(cid, PLAYERLOSS_EXPERIENCE, 75) doCreatureSetDropLoot(cid, false) end if(accountManager == MANAGER_NONE) then local lastLogin, str = getPlayerLastLoginSaved(cid), config.loginMessage if(lastLogin > 0) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_DEFAULT, str) str = "Your last visit was on " .. os.date("%a %b %d %X %Y", lastLogin) .. "." else str = str end doPlayerSendTextMessage(cid, MESSAGE_STATUS_DEFAULT, str) elseif(accountManager == MANAGER_NAMELOCK) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Hello, it appears that your character has been namelocked, what would you like as your new name?") elseif(accountManager == MANAGER_ACCOUNT) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Hello, type 'account' to manage your account and if you want to start over then type 'cancel'.") else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Hello, type 'account' to create an account or type 'recover' to recover an account.") end if getCreatureName(cid) == "Account Manager" then local outfit = {} if accountManagerRandomPokemonOutfit then outfit = {lookType = getPokemonXMLOutfit(oldpokedex[math.random(151)][1])} else outfit = accountManagerOutfit end doSetCreatureOutfit(cid, outfit, -1) return true end if(not isPlayerGhost(cid)) then doSendMagicEffect(getCreaturePosition(cid), CONST_ME_TELEPORT) end local outfit = {} if getPlayerVocation(cid) == 0 then doPlayerSetMaxCapacity(cid, 0) doPlayerSetVocation(cid, 1) setCreatureMaxMana(cid, 6) doPlayerAddSoul(cid, -getPlayerSoul(cid)) setPlayerStorageValue(cid, 19898, 0) if getCreatureOutfit(cid).lookType == 128 then outfit = {lookType = 510, lookHead = math.random(0, 132), lookBody = math.random(0, 132), lookLegs = math.random(0, 132), lookFeet = math.random(0, 132)} elseif getCreatureOutfit(cid).lookType == 136 then outfit = {lookType = 511, lookHead = math.random(0, 132), lookBody = math.random(0, 132), lookLegs = math.random(0, 132), lookFeet = math.random(0, 132)} end doCreatureChangeOutfit(cid, outfit) end registerCreatureEvent(cid, "dropStone") registerCreatureEvent(cid, "ExpVip") registerCreatureEvent(cid, "upganha") registerCreatureEvent(cid, "ShowPokedex") --alterado v1.6 registerCreatureEvent(cid, "ClosePokedex") --alterado v1.6 registerCreatureEvent(cid, "WatchTv") registerCreatureEvent(cid, "StopWatchingTv") registerCreatureEvent(cid, "WalkTv") registerCreatureEvent(cid, "RecordTv") registerCreatureEvent(cid, "PlayerLogout") registerCreatureEvent(cid, "WildAttack") registerCreatureEvent(cid, "Idle") registerCreatureEvent(cid, "PokemonIdle") registerCreatureEvent(cid, "EffectOnAdvance") registerCreatureEvent(cid, "GeneralConfiguration") registerCreatureEvent(cid, "ReportBug") registerCreatureEvent(cid, "LookSystem") registerCreatureEvent(cid, "T1") registerCreatureEvent(cid, "T2") registerCreatureEvent(cid, "task_count") registerCreatureEvent(cid, "TP") registerCreatureEvent(cid, "RepLogin") registerCreatureEvent(cid, "NewLogin") registerCreatureEvent(cid, "pokemons") registerCreatureEvent(cid, "TP") addEvent(doSendAnimatedText, 500, getThingPosWithDebug(cid), "Bem Vindo !", COLOR_BURN) if getPlayerStorageValue(cid, 99284) == 1 then setPlayerStorageValue(cid, 99284, -1) end if getPlayerStorageValue(cid, 6598754) >= 1 or getPlayerStorageValue(cid, 6598755) >= 1 then setPlayerStorageValue(cid, 6598754, -1) setPlayerStorageValue(cid, 6598755, -1) doRemoveCondition(cid, CONDITION_OUTFIT) --alterado v1.9 \/ doTeleportThing(cid, posBackPVP, false) doCreatureAddHealth(cid, getCreatureMaxHealth(cid)) end doChangeSpeed(cid, -(getCreatureSpeed(cid))) --///////////////////////////////////////////////////////////////////////////-- local storages = {17000, 63215, 17001, 13008, 5700} for s = 1, #storages do if not tonumber(getPlayerStorageValue(cid, storages[s])) then if s == 3 then setPlayerStorageValue(cid, storages[s], 1) elseif s == 4 then setPlayerStorageValue(cid, storages[s], -1) else if isBeingUsed(getPlayerSlotItem(cid, 8).itemid) then setPlayerStorageValue(cid, storages[s], 1) else setPlayerStorageValue(cid, storages[s], -1) end end doPlayerSendTextMessage(cid, 27, "Sorry, but a problem occurred on the server, but now it's alright") end end --/////////////////////////////////////////////////////////////////////////-- if getPlayerStorageValue(cid, 17000) >= 1 then -- fly local item = getPlayerSlotItem(cid, 8) local poke = getItemAttribute(item.uid, "poke") doChangeSpeed(cid, getPlayerStorageValue(cid, 54844)) doRemoveCondition(cid, CONDITION_OUTFIT) doSetCreatureOutfit(cid, {lookType = flys[poke][1] + 351}, -1) local apos = getFlyingMarkedPos(cid) apos.stackpos = 0 if getTileThingByPos(apos).itemid <= 2 then doCombatAreaHealth(cid, FIREDAMAGE, getFlyingMarkedPos(cid), 0, 0, 0, CONST_ME_NONE) doCreateItem(460, 1, getFlyingMarkedPos(cid)) end doTeleportThing(cid, apos, false) if getItemAttribute(item.uid, "boost") and getItemAttribute(item.uid, "boost") >= 50 and getPlayerStorageValue(cid, 42368) >= 1 then sendAuraEffect(cid, auraSyst[getItemAttribute(item.uid, "aura")]) --alterado v1.8 end local posicao = getTownTemplePosition(getPlayerTown(cid)) markFlyingPos(cid, posicao) elseif getPlayerStorageValue(cid, 63215) >= 1 then -- surf local item = getPlayerSlotItem(cid, 8) local poke = getItemAttribute(item.uid, "poke") doSetCreatureOutfit(cid, {lookType = surfs[poke].lookType + 351}, -1) --alterado v1.6 doChangeSpeed(cid, getPlayerStorageValue(cid, 54844)) if getItemAttribute(item.uid, "boost") and getItemAttribute(item.uid, "boost") >= 50 and getPlayerStorageValue(cid, 42368) >= 1 then sendAuraEffect(cid, auraSyst[getItemAttribute(item.uid, "aura")]) --alterado v1.8 end elseif getPlayerStorageValue(cid, 17001) >= 1 then -- ride local item = getPlayerSlotItem(cid, 8) local poke = getItemAttribute(item.uid, "poke") if rides[poke] then doChangeSpeed(cid, getPlayerStorageValue(cid, 54844)) doRemoveCondition(cid, CONDITION_OUTFIT) doSetCreatureOutfit(cid, {lookType = rides[poke][1] + 351}, -1) if getItemAttribute(item.uid, "boost") and getItemAttribute(item.uid, "boost") >= 50 and getPlayerStorageValue(cid, 42368) >= 1 then sendAuraEffect(cid, auraSyst[getItemAttribute(item.uid, "aura")]) --alterado v1.8 end else setPlayerStorageValue(cid, 17001, -1) doRegainSpeed(cid) end local posicao2 = getTownTemplePosition(getPlayerTown(cid)) markFlyingPos(cid, posicao2) elseif getPlayerStorageValue(cid, 13008) >= 1 then -- dive if not isInArray({5405, 5406, 5407, 5408, 5409, 5410}, getTileInfo(getThingPos(cid)).itemid) then setPlayerStorageValue(cid, 13008, 0) doRegainSpeed(cid) doRemoveCondition(cid, CONDITION_OUTFIT) return true end if getPlayerSex(cid) == 1 then doSetCreatureOutfit(cid, {lookType = 1034, lookHead = getCreatureOutfit(cid).lookHead, lookBody = getCreatureOutfit(cid).lookBody, lookLegs = getCreatureOutfit(cid).lookLegs, lookFeet = getCreatureOutfit(cid).lookFeet}, -1) else doSetCreatureOutfit(cid, {lookType = 1035, lookHead = getCreatureOutfit(cid).lookHead, lookBody = getCreatureOutfit(cid).lookBody, lookLegs = getCreatureOutfit(cid).lookLegs, lookFeet = getCreatureOutfit(cid).lookFeet}, -1) end doChangeSpeed(cid, 800) elseif getPlayerStorageValue(cid, 5700) > 0 then --bike doChangeSpeed(cid, -getCreatureSpeed(cid)) doChangeSpeed(cid, getPlayerStorageValue(cid, 5700)) --alterado v1.8 if getPlayerSex(cid) == 1 then doSetCreatureOutfit(cid, {lookType = 2099}, -1) else doSetCreatureOutfit(cid, {lookType = 2098}, -1) end elseif getPlayerStorageValue(cid, 75846) >= 1 then --alterado v1.9 \/ doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)), false) setPlayerStorageValue(cid, 75846, -1) sendMsgToPlayer(cid, 20, "You have been moved to your town!") else doRegainSpeed(cid) end if getPlayerStorageValue(cid, 22545) >= 1 then setPlayerStorageValue(cid, 22545, -1) doTeleportThing(cid, getClosestFreeTile(cid, posBackGolden), false) setPlayerRecordWaves(cid) end if useKpdoDlls then doUpdateMoves(cid) doUpdatePokemonsBar(cid) onPokeHealthChange(cid) end end if useKpdoDlls then doUpdateMoves(cid) doUpdatePokemonsBar(cid) end return true end  

    Ja Resolvi -- no final do SCRIPT tem
    if useKpdoDlls then doUpdateMoves(cid) doUpdatePokemonsBar(cid) onPokeHealthChange(cid) end end if useKpdoDlls then doUpdateMoves(cid) doUpdatePokemonsBar(cid) end return true end Removi o ultimo
    end if useKpdoDlls then doUpdateMoves(cid) doUpdatePokemonsBar(cid) end e deu certo
     
  18. Upvote
    Danihcv deu reputação a kaleudd em [Encerrado] Cliente IP Fixo   
    vá em pastadoclient>modules>client_entergame>abra entergame.lua
    e troque por este:
     
     
     
     
    vermelho= ip do servidor
  19. Upvote
    Danihcv recebeu reputação de fawkz12 em ERRO Tile Level   
    Tópico movido para dúvidas / pedidos resolvidos.
  20. Upvote
    Danihcv recebeu reputação de fawkz12 em ERRO Tile Level   
    Tenta ae:
    local level = 600 function onStepIn(cid, item, position, fromPosition) if isPlayer(cid) == false then return true end if getPlayerLevel(cid) < level then doTeleportThing(cid, fromPosition, true) doSendMagicEffect(getThingPos(cid), CONST_ME_MAGIC_RED) doPlayerSendTextMessage(cid, 27, "Only level "..level.." or more can pass here.") return true end return true end E só a titulo de esperança, caso o anterior ñ funcione, tente esse:
    local level = 600 function onStepIn(cid, item, position, fromPosition) if isPlayer(cid) == false then return true end if getPlayerLevel(cid) < level then doTeleportThing(cid, fromPosition) doSendMagicEffect(getThingPos(cid), CONST_ME_MAGIC_RED) doPlayerSendTextMessage(cid, 27, "Only level "..level.." or more can pass here.") return true end return true end
  21. Upvote
    Danihcv deu reputação a jvcasarin em Compilando TFS 0.4 no Linux   
    Fala galera, eu estava com problema na compilação do TFS 0.4 no linux, pois não achava nenhum tutorial sobre... Eu consegui uma SUPER AJUDA ESPECIAL de um membro aqui chamado @Fir3element, esse cara me ajudou demais, tanto na liberação da source TFS 0.4 rev 3777 com suporte a MSVC quanto na compilação em Linux.
     
    Bom, chega de enrolação e vamos ao que interessa.
     
    Eu usei o Ubuntu 12.04 64 bits, TFS 0.4 rev3777 do Fir3element.
     
    Todos os Downloads estarão no final do tópico.
     
     
    Let's go!!!!
     
     
    1º - Liberar root
     
     
     
    2º - Instalando as LIBs do TFS
     
     
     
    3º - Passe o arquivo 3777-master.rar para a raiz(file system ou sistema de arquivos)
     
     
     
    4º - Vamos começar o processo de compilação.
     
     
     
    5º - O arquivo executável, estará localizado dentro da pasta src, chamado "theforgottenserver" sem nenhuma extensão.
     
    Para usá-lo, coloque-o na pasta de seu server, abra o terminal e digite o seguinte:
     
     
     
    Pronto galera, Tutorial testado e aprovado por mim(Sekk)
     
    Downloads:
    Ubuntu 12.04 - http://releases.ubuntu.com/12.04.5/ (Não postarei scan pois é do site oficial do Ubuntu.)
    Source TFS 0.4 rev3777 - https://github.com/Fir3element/3777/archive/master.zip
    Scan da source - https://www.virustotal.com/pt/file/4ad91b1993200dde9a5c77d2b99a1e8d80158bc95f0a6b3fb857e60eaab6fa0a/analysis/1454367244/
     
    Créditos TOTAIS:
    @
  22. Upvote
    Danihcv deu reputação a chaito em Source TFS 0.4 - War & Cast System (Corrigida)   
    E ai galerinha, estou afastado do Tibia após o encerramento das atividades na "chaitosoft" porém nestas férias estou com um projeto de OTServer 8.60 e me deparei com alguns pequenos problemas básicos referentes a revisão 3777 do executável theforgottenserver . Isto consequentemente fez com que fosse necessário efetuar pequenas correção de alguns "maus funcionamentos", lembrando que estes são alguns dos poucos erros que encontrei e estarei atualizando esta source sempre que possível além de estar aberto a sugestões para adição de alguma funcionalidade ou correção.

    Alterações Efetuadas

    Não irei descrever muito sobre o que foi feito pois pessoas poderão se utilizar disso para trapacear nos servidores.

    - Problema: Estouro de memória (house.cpp);
    - Problema: Estouro de memória (mailbox.cpp);
    - Função: Sistema de Cast / Live;
    - Edição: Remoção de "Salt" ao criar contas (permite usar simultaneamente ACC MANAGER & SITE;
    - Problema: Estouro de memória (game.cpp);
    - Edição: Sincronia entre CAST ~ ACC MANAGER;
    - Edição: Aceitar todas as versões de "items.otb";
    - Problema: Compilação em Ubunto 12.04 - 64x bits;

    Sistema Operacional Recomendado

    Ubunto versões menores ou igual ao 12.04 com arquitetura 64x bits;

    Última Edição

    - 18/07/2015 (V.1.0);

    Sources

    - Utilize o link abaixo para efetuar o download:

    https://mega.co.nz/#!KgEgXAZR!4380dQWvcYjObWYSDCfvVvfghRooJ-UZ3BY8H0gdq6o

    Scan

    - Utilize o link abaixo para visualizar o scan:

    https://www.virustotal.com/pt/file/5c3f3ce63f9583b987690f796456a448c3d71f3ba06b247a5532cc1147be08a5/analysis/1437212639/
     
    Créditos:
     
    Otland - (Disponibilizou as sources);
  23. Upvote
    Danihcv deu reputação a zouk00 em T1Z1 - Exposição de sprites e sujestões   
    Olá pessoas, eu serei seu anfitrião essa noite :cool:

    Não sei se alguns de vocês me conhecem mas já trouxe bastante servidor de WoDBO e PokeTibia antigamente, meu nome era "CrazzyMaster". Juntamente com "Bianco" nós faremos história.



    Enfim, eu sempre curti jogos de sobrevivência apocalipse, então resolvi voltar depois de tanto tempo e abrir um servidor totalmente sério e dedicado.



    "O que terá no servidor?"



    Um servidor de sobrevivência na plataforma tfs é bem complexo, você pode fazer várias coisas, no momento estamos colocando:



    |Sistema de vasculhar - Lixo, entulhos, e mega drops de alguns monstros|

    |Sistema de tiros - os tiros serão por Target como sempre forão|

    |Sistema de montarias e veiculos - as montarias serão cavalos, e os veiculos serão carros, motos, caminhões, etc|

    |Sistema de fome e sede - estou tentando ao maximo adaptar esse sistema ao servidor|

    |Sistema de machucados/ferimentos - se você for atacado e se machucara terá que ter bandagens nas mãos, caso contrario irá sangrar|



    "Qual a previsão para ficar online?"



    Ainda é um mistério, mas o quanto antes possível.



    "Será um servidor pay to win?"



    Certamente não, o servidor contara sim com sua loja de itens e sistema vip, mas, a diferença vai ser variada, armas pouco mais fortes, vips terão acesso há area vip através de comando, vips poderão viajar pelo mapa com veiculos aquáticos ou através dos NPC's de viagem em cada final de mapa. Vips terão acesso a carros modificados.



    Deixem dúvidas e sujestões, abaixo deixarei um tópico de cada sprite nova que eu fizer.



    - SPRITES MODIFICADAS -







    ANTIGA -

    NOVA -



  24. Upvote
    Danihcv deu reputação a Yan Liima em Como Tirar VOCATION do ACC MANAGER   
    Cara tem diversos tópicos daqui do xtibia que várias pessoas faz a mesma pergunta "como tirar vocação do acc manager" eu sempre respondo... se tu procurasse direito acho que iria achar... Tente assim: <vocation id="13" name="Laxus[VIP]" description="a laxus[vip]" needpremium="1" gaincap="20" gainhp="350" gainmana="350" gainhpticks="1" gainhpamount="150" gainmanaticks="1" gainmanaamount="250" manamultiplier="1.0" attackspeed="1200" soulmax="300" gainsoulticks="60" fromvoc="13" manager="0"> <formula meleeDamage="2.0" distDamage="2.0" wandDamage="2.0" magDamage="2.0" magHealingDamage="2.0" defense="2.0" magDefense="2.0" armor="2.0"/> <skill fist="2.0" club="2.0" sword="4.0" axe="2.0" distance="2.0" shielding="2.0" fishing="2.0" experience="2.0"/> </vocation> EXPLICAÇÃO no final de todas vocações coloque uma tag que você quer que apareça no menu do account manager ou não... Para aparecer coloque: manager="1" Para não aparecer coloque: manager="0" Exemplo: <vocation id="1" name="Knight" description="a knight" needpremium="0" gaincap="100" gainhp="270" gainmana="230" manager="1"> Observe que tem o manager="1" no final.
     
    Se caso isso não funcionar em seu servidor, você teria que editar nas source. Acho que na área de programação tem o tutorial.
     
  25. Upvote
    Danihcv deu reputação a Duhisback em Se seu problema era esse acabou -- Script Certo para não mover Item dabike quando tiver montado e o   
    Galera Muitos querem esse script de bike
     
    P: O que esse script faz?
    R: Esse script não deixa mover o item da bike quando ela esta no slot RING que o player está montado
     
     
    Em movements.xml adicione as tags abaixo:
    <movevent type="Equip" itemid="ID_BIKE" slot="ring" event="script" value="blockBike.lua"/> <movevent type="DeEquip" itemid="ID_BIKE" slot="ring" event="script" value="blockBike.lua"/> Em movements/scripts crie um arquilo lua chamado blockBike.lua e cole o código abaixo:
    local storage = 5700 -- Coloque a Storage Que Controla o Sistema de Bike function onDeEquip(cid, item, slot) if getPlayerStorageValue(cid, storage) > 0 then itemID = item.itemid doRemoveItem(item.uid, 1) doPlayerAddItem(cid, itemID, 1) doPlayerSendCancel(cid, "You cannot take out this item while you're mounted on the bike.") end return true end Créditos
    Pelo Script: Adriano SwaTT
    Eu por Editar o Script: Eduzinhonho
     
    Obs: Precisa ter o slot Ring só pro item da Bike pois só bloqueia o item se ele estiver lá
    Se Ajudei não esqueça de dar REP +
  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...