Ir para conteúdo
  • Cadastre-se

Pifafa

Membro
  • Total de itens

    320
  • Registro em

  • Última visita

  • Dias Ganhos

    7

Posts postados por Pifafa

  1. Olá amigos,

    Estou à procura de ajuda para criar um cliente mobile para o meu servidor de OT. Já tenho um cliente com resolução 84x, mas gostaria de desenvolver um com resolução 32x. O nome do meu servidor é Tibinha, e você pode encontrá-lo no site www.tibinha.online.

    Quem puder me ajudar, ficarei muito agradecido! E como forma de agradecimento, estou oferecendo uma recompensa de 30 reais. Deixe seu contato, e vamos trabalhar juntos nesse projeto! Obrigado desde já!

     

  2. Tibinha - YurOts
    Olá hoje trago a vocês meu projeto, tenho como objetivo atingir 50 jogadores (um sonho talvez que quase já se realizou) 
    www.tibinha.online

    fotona.png

    1651469_5.png


    Obrigado por ver meu projeto, caso tenha interesse entre nele e converse comigo, estou disponível para tira duvidas e ajudar a todos aqui!

     

  3. Pot é consumido e usado, o tempo de uso também fica certo, não permite que se usa mais que um ou renove até tempo acabar. Porem o mesmo não aumenta o exp do player.
    Ele é MOD!

     

    <?xml version="1.0" encoding="ISO-8859-1"?>
    <mod name="Exp Potion" version="1.0" author="Vodkart" contact="DISCORD: vodkart#6090" enabled="yes">
    <config name="exppotion"><![CDATA[
    exp_info = {rate = 0.2, storage = {354870,354871,354872}, minutes = 30} -- rate 0.2 = 20%
    function convertTime(a)
      if(type(tonumber(a)) == "number" and a > 0) then
        if (a <= 3599) then
          local minute = math.floor(a/60)
          local second = a - (60 * minute)
          if(second == 0) then
            return ((minute)..((minute > 1) and " minutos" or " minuto"))
          else
            return ((minute ~= 0) and ((minute>1) and minute.." minutos e " or minute.." minuto e ").. ((second>1) and second.." segundos" or second.." segundo") or ((second>1) and second.." segundos" or second.. " segundo"))
          end
        else
          local hour = math.floor(a/3600)
          local minute = math.floor((a - (hour * 3600))/60)
          local second = (a - (3600 * hour) - (minute * 60))
          if (minute == 0 and second > 0) then
            return (hour..((hour > 1) and " horas e " or " hora e "))..(second..((second > 1) and " segundos" or " segundo"))
          elseif (second == 0 and minute > 0) then
            return (hour..((hour > 1) and " horas e " or " hora e "))..(minute..((minute > 1) and " minutos" or " minuto"))
          elseif (second == 0 and minute == 0) then
            return (hour..((hour > 1) and " horas" or " hora"))
          end
          return (hour..((hour > 1) and " horas, " or " hora, "))..(minute..((minute > 1) and " minutos e " or " minuto e "))..(second..((second > 1) and " segundos" or " segundo"))
        end
      end
    end
    ]]></config>
    <event type="login" name="ExpPotionLogin" event="script"><![CDATA[
    domodlib('exppotion')
    function onLogin(cid)
        if getPlayerStorageValue(cid, exp_info.storage[1]) - os.time() > 0 then 
            registerCreatureEvent(cid, "ExpPotionThink")
            local rates = getPlayerRates(cid)
            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Você ainda tem "..convertTime(getPlayerStorageValue(cid, exp_info.storage[1]) - os.time()).." de Exp Potion.")
            doPlayerSetExperienceRate(cid, rates[SKILL__LEVEL]+exp_info.rate)
    		setPlayerStorageValue(cid, exp_info.storage[3], 1) -- registro
        end 
    	return true
    end]]></event>
    <event type="think" name="ExpPotionThink" event="script"><![CDATA[
    domodlib('exppotion')
    function onThink(cid, interval)
    	if getPlayerStorageValue(cid, exp_info.storage[3]) > 0 and getPlayerStorageValue(cid, exp_info.storage[1]) - os.time() <= 0 then
    		doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Sua Exp Potion acabou!") 
    		-- doPlayerSetExperienceRate(cid, getPlayerStorageValue(cid, exp_info.storage[2]))
    		local rates = getPlayerRates(cid)
    		doPlayerSetExperienceRate(cid, rates[SKILL__LEVEL]-exp_info.rate)
    		setPlayerStorageValue(cid, exp_info.storage[3], 0) -- registro
    	end
    	return true
    end]]></event>
    <talkaction words="!exppotion;/exppotion;!exp;/exp" event="buffer"><![CDATA[
    domodlib('exppotion')
    return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, getPlayerStorageValue(cid, exp_info.storage[1]) - os.time() <= 0 and "Você não possui Exp Potion ativa no momento." or "Você tem "..convertTime(getPlayerStorageValue(cid, exp_info.storage[1]) - os.time()).." de exp potion.")]]></talkaction>
    <action itemid="12698" event="script"><![CDATA[
    domodlib('exppotion')
    function onUse(cid, item, fromPosition, itemEx, toPosition)
        if getPlayerStorageValue(cid, exp_info.storage[1]) - os.time() > 0 then
    		doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Você não pode usar outra Exp Potion pois ainda possui uma ativa. Ainda restam: "..convertTime(getPlayerStorageValue(cid, exp_info.storage[1]) - os.time())..".") return true
    	end
    	
    	local rates = getPlayerRates(cid)
    	-- setPlayerStorageValue(cid, exp_info.storage[2], rates[SKILL__LEVEL])
    	doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Você ativou Exp potion por "..exp_info.minutes.." minutos! Durante este tempo, você receberá +20% exp de monstros. Para saber o tempo, digite: /exppotion") 
    	setPlayerStorageValue(cid, exp_info.storage[1], os.time()+exp_info.minutes*60)
    	setPlayerStorageValue(cid, exp_info.storage[3], 1) -- registro
    	doPlayerSetExperienceRate(cid, rates[SKILL__LEVEL]+exp_info.rate)
    	registerCreatureEvent(cid, "ExpPotionThink")
    	doRemoveItem(item.uid,1)
    	return true
    end]]></action>
    </mod>

     

  4. Gostaria muito desse script funcional!

    -- Daily Monster adapted to base 0.3.7 at 08/27/2019 by Lyuzera.
    
    DAILYMONSTER_EXPERIENCE = 1
    DAILYMONSTER_LOOT = 2
    
    DAILYMONSTER_FIRST = DAILYMONSTER_EXPERIENCE
    DAILYMONSTER_LAST = DAILYMONSTER_LOOT
    
    dailyMonster = {
    	lootType = {
    		percent = {7, 15}, -- porcentagem minima e máxima do loot (random)
    		monsters = {''} -- criaturas que podem ser sorteadas com o tipo Loot (random)
    	},
    
    	experienceType = {
    		percent = {15, 30}, -- porcentagem minima e máxima de experience (random)
    		monsters = {'Frost Giants', 'Retroder', 'Demonio', 'Baby Hades', 'Archimonda', 'Overlord', 'Irahsae', 'Lord Nightmare', 'Obelisco Do Mar', 'Kong', 'Undead Darkshadow', 'Archangel', 'Alibaba', 'Jimmy Swamp', 'Dementador', 'Irlanquen', 'Super Archangel', 'Super Alibaba', 'Super Kong', 'Super Jimmy Swamp', 'Supremo Demon', 'Supremo Warlock', 'Super The Emperor', 'Super Supremo Demon', 'Supremo Hellhound', 'Super Supremo Draken Elite', 'Super Supremo Dragon Lord', 'Supremo Ashmunrah', 'Supremo Glacial Giant', 'Super Supremo Lord Nightmare', 'Supremo Draken Elite', 'Supremo Sea Serpent Ice', 'Supremo Draconia', 'Supremo Lord Nightmare', 'Supremo Gelidrazah', 'Supremo Dragon Lord', 'Wild Ninja Supremo', 'Supremo The Old Widow', 'Super Frost Viserion', 'Super Frost Spatial', 'Super Supremo Draconia', 'Super Supremo Balafhar', 'Super Supremo Sapphire', 'Angry Demon Supremo', 'Cave Spider', 'Supremo Rotworm Queen', 'Super Supremo Ice Golem', 'Super Supremo Fire Overlord', 'Sight Of Surrender', 'Guzzlemaw'} -- criaturas que podem ser sorteadas com o tipo experience (random)
    	}
    }
    
    function dailyMonster.onStartup(self)
    	math.randomseed(os.mtime())
    	local type = math.random(DAILYMONSTER_FIRST, DAILYMONSTER_LAST)
    	local name = 'unknown'
    	local percent = 0
    	local typeName = 'none'
    
    	if type == DAILYMONSTER_EXPERIENCE then
    		name = self.experienceType.monsters[math.random(1, #self.experienceType.monsters)]
    		percent = math.random(self.experienceType.percent[1], self.experienceType.percent[2])
    		typeName = 'Experience'
    	elseif type == DAILYMONSTER_LOOT then
    		name = self.lootType.monsters[math.random(1, #self.lootType.monsters)]
    		percent = math.random(self.lootType.percent[1], self.lootType.percent[2])
    		typeName = 'Loot'
    	end
    
    	setGlobalStorageValue('dailymonstername', name)
    	setGlobalStorageValue('dailymonstertype', type)
    	setGlobalStorageValue('dailymonsterpercent', percent)
    	
    	updateDailyMonster(name, type, percent)
    	db.executeQuery('INSERT INTO `daily_monster` (`name`, `type`, `percent`, `lastday`) VALUES (' .. db.escapeString(name) .. ', ' .. type .. ', ' .. percent .. ', ' .. os.time() .. ')')
    
    	print('>> ' .. name .. ' is the boosted creature of today ('.. percent .. '% of '  .. typeName .. ')')	
    end

    Gostaria muito desse script funcional, tenho esse mais nunca testei caso alguém tente? Ele é feito pra por na pasta LIB / daily_monster

    Parte do Criaturescripts!

     

    function onLogin(cid)
            local name = getGlobalStorageValue('dailymonstername')
            local type = getGlobalStorageValue('dailymonstertype')
            local percent = getGlobalStorageValue('dailymonsterpercent')
    		
            if name and type and percent then
                local config = {
                    [DAILYMONSTER_LOOT] = {message = "O bônus do monstro foi loot, então o monstro terá melhor drop de loot.", type = "Loot"},
                    [DAILYMONSTER_EXPERIENCE] = {message = "O bônus do monstro foi experiência, então o monstro lhe dará mais experiência..", type = "Experience"}
                }
    
                local boost = config[type]
                if not boost then
                	return true
                end
    
                doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, "O monstro selecionado hoje foi: ".. name .."\nO atributo selecionado foi: (".. boost.type ..") com um bônus de: (".. (type == DAILYMONSTER_LOOT and 'Rate +' .. percent or percent .. '') .."%).\n\n" .. boost.message)
            end
    	return true
    end

     

  5. Boa noite pessoal, hoje venho aqui ver se existe pessoas interessadas em abrir o meu antigo servidor?!  (Para quem não sabe tive alguns aos longos dos anos de TibiaKing, e acabei novamente tendo saudade de fazer mapas, e arruma pequenos bug's de ot, porem hoje quando fui ver não sabia mais liga o ot AHAHAHAHA)

    Então a ideia principal é simples eu vou compra host e se tiver rapazinho para me ajuda, ou menina estarei sendo muito grato $$. Como todos sabem estou ficando velho e já não tenho mais tanto tempo pra fazer essas coisas, porem meu servidor está todo prontinho e eu precisaria aria ter uma mentoria para religado apenas.

    Preciso lembra como abro meu mapa, já tentei no RME mas falto os bixo os npc.
    Por online o site e Linux.
    Outras coisas pequenas também.

    Caso alguém tenha interesse entre em contato comigo

     

  6. Boa noite pessoal, hoje venho aqui ver se existe pessoas interessadas em abrir o meu antigo servidor?!  (Para quem não sabe tive alguns aos longos dos anos de TibiaKing, e acabei novamente tendo saudade de fazer mapas, e arruma pequenos bug's de ot, porem hoje quando fui ver não sabia mais liga o ot AHAHAHAHA)

    Então a ideia principal é simples eu vou compra host e se tiver rapazinho para me ajuda, ou menina estarei sendo muito grato $$. Como todos sabem estou ficando velho e já não tenho mais tanto tempo pra fazer essas coisas, porem meu servidor está todo prontinho e eu precisaria aria ter uma mentoria para religado apenas.

    Preciso lembra como abro meu mapa, já tentei no RME mas falto os bixo os npc.
    Por online o site e Linux.
    Outras coisas pequenas também.

    Caso alguém tenha interesse entre em contato comigo

     

  7. 50 minutos atrás, sky420 disse:

    estou com o projeto online, se quiser dar uma olhada.

    site znote com layout que estou fazendo e ip do jogo ; 34.151.228.45

    não está competitivo mas estou trabalhando no projeto e logo contribuirei com o luan lançando atualizaçoes como site znote 100% compativel com o mapa pronto para rodar, stages ajustados, teleportes pras quests e outras coisas que estou meio sem tempo pra fazer mas vai indo

     

    imagem_2022-10-30_161953231.png

    Opa amigo seu site não da pra cria um personagem ahahaha

     

     

    Create Character
    string(752) "INSERT INTO `players`(`name`, `group_id`, `account_id`, `level`, `vocation`, `health`, `healthmax`, `experience`, `lookbody`, `lookfeet`, `lookhead`, `looklegs`, `looktype`, `lookaddons`, `maglevel`, `mana`, `manamax`, `manaspent`, `soul`, `town_id`, `posx`, `posy`, `posz`, `conditions`, `cap`, `sex`, `lastlogin`, `lastip`, `save`, `skull`, `skulltime`, `lastlogout`, `blessings`, `balance`, `skill_fist`, `skill_club`, `skill_sword`, `skill_axe`, `skill_dist`, `skill_shielding`, `skill_fishing`) VALUES ('Pifafa', '1', '3', '8', '1', '185', '185', '4200', '68', '76', '78', '58', '128', '0', '0', '35', '35', '0', '100', '1', '5', '5', '2', '', '470', '1', '0', '2978182644', '1', '0', '0', '0', '0', '0', '10', '10', '10', '10', '10', '10', '10');"
    (query - SQL error)
    Type: voidQuery (voidQuery is used for update, insert or delete from database)
    
    Field 'comment' doesn't have a default value

     

  8. erro que aparece ao liga servidor!
     

    mysql_real_query(): UPDATE `players` SET `exphist7`=players.exphist6, `exphist6`=players.exphist5, `exphist5`=players.exphist4, `exphist4`=players.exphist3, `exphist3`=players.exphist2, `exphist2`=players.exphist1, `exphist1`=players.experience-players.exphist_lastexp, `exphist_lastexp`=players.experience; - MYSQL ERROR: BIGINT UNSIGNED value is out of range in '`ot`.`players`.`experience` - `ot`.`players`.`exphist_lastexp`' (1690)

     

  9. Olá pessoal, meu script está apresentado o seguinte erro:
    image.thumb.png.dd2f07cdcfa56858950e4fcd6c7d7cef.png



    Código que uso.

     

    function onThink(interval)
    	if (tonumber(os.date("%d")) ~= getGlobalStorageValue(23456)) then
    		setGlobalStorageValue(23456, (tonumber(os.date("%d"))))
    		db.executeQuery("UPDATE `players` SET `onlinetime7`=`onlinetime6`, `onlinetime6`=`onlinetime5`, `onlinetime5`=`onlinetime4`, `onlinetime4`=`onlinetime3`, `onlinetime3`=`onlinetime2`, `onlinetime2`=`onlinetime1`, `onlinetime1`=`onlinetimetoday`, `onlinetimetoday`=0;")
    		db.executeQuery("UPDATE `players` SET `exphist7`=`exphist6`, `exphist6`=`exphist5`, `exphist5`=`exphist4`, `exphist4`=`exphist3`, `exphist3`=`exphist2`, `exphist2`=`exphist1`, `exphist1`=`experience`-`exphist_lastexp`, `exphist_lastexp`=`experience`;")
    	end
    
    	db.executeQuery("UPDATE `players` SET `onlinetimetoday`=`onlinetimetoday`+60, `onlinetimeall`=`onlinetimeall`+60 WHERE `online` = 1;")
    	return true
    end

     

  10. 58 minutos atrás, Storm disse:

    @Pifafa Mas ele consegue usar o Exercise Bow quando está com a magia ativa? Se conseguir, tenta assim:

     

    
    if getCreatureCondition(cid, CONDITION_ATTRIBUTES, 1) then
    	doPlayerSendTextMessage(cid, 27, "Voce nao pode usar o Exercise Bow com um buff ativo.")
    	doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF)
    	return false
    end

     

     

    Obrigado deu certo.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo