Ir para conteúdo
  • Cadastre-se

Posts Recomendados

Opa Galerinha do TK

 

gostaria de um auxilio em 2 casos aqui um é o NPC Mission que eu implantei no servidor, e o outro é um npc que te da algumas missões para fazer e quando termina-las ele te promove para a classe configurada no script.

 

bom vamos la

 

- o npc de promotion funciona assim resumidamente vc paga para ele (configuravel o valor) para ele te dar algumas missões onde vc tera que matar alguns monstros e no final vc retorna e fala com ele e ele te promove para a determinada vocação.

 

1º - problema 

 

 [spoiler*]

 [spoiler*]

 

Npc =   Rodrick.Xml

<?xml version="1.0" encoding="UTF-8"?>
<npc name="Rodrick" script="swordmanpromotion.lua" walkinterval="2000" floorchange="0">
	<health now="100" max="100"/>
	<look type="128" head="17" body="54" legs="114" feet="0" addons="2"/>
	<parameters>
		<parameter key="message_greet" value="Olá |PLAYERNAME|, para você ser promoivido precisa passar por uma {mission}, para de uma olhada no que fazer diga {lista} ."/>
	</parameters>
</npc>

[/spoiler*]

 

swordmanpromotion.lua

 

[spoiler*]

 

local Config = {
    Monsters = {
      -- ["Name"] = {amount = quantidade}
      ["Demon"] = {amount = 30},
      ["Hydra"] = {amount = 10},
    },
    StoragePro = 54661, -- Não mexer se não souber editar
    Money = 100000 -- Dinheiro
}
local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
local talkState = {}
function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end
function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end
function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end
function onThink() npcHandler:onThink() end
function creatureSayCallback(cid, type, msg)
    if not npcHandler:isFocused(cid) then return false end
    local talkUser = NPCHANDLER_CONVbehavior == CONVERSATION_DEFAULT and 0 or cid
    local msg = msg:lower()
    local release = talkState[talkUser]
    if msgcontains(msg, "mission") then
      	if getPlayerStorageValue(cid, Config.StoragePro) < 1 then
        	selfSay("A missão para promovido custa " .. Config.Money .. " você aceita fazer ?", cid)
        	release = 1
      	elseif getPlayerStorageValue(cid, Config.StoragePro) == (2 + #Config.Monsters) then
        	selfSay("Você já cumpriu a missão peça pra ser {promovido}.", cid)
        	release = 2 
      	elseif getPlayerStorageValue(cid, Config.StoragePro) == (3 + #Config.Monsters) then
      		selfSay("Voce já terminou as missões, pode ir em embora!", cid)
      		release = 0
      	end
    elseif msgcontains(msg, "yes") and release == 1 then
      	if doPlayerRemoveMoney(cid, Config.Money) then
        	local text = ""
        	for monsters, v in pairs(Config.Monsters) do
          		txt = txt .. ", "
          		txt = txt .. v.amount .. " {" .. monsters .. "}"
        	end
        	npcHandler:say("A missão é matar esses monstros para mim" .. text .. ".", cid)
        	for i, _ in pairs(Config.Monsters) do
          		setPlayerStorageValue(cid, i, 0)
        	end
        	setPlayerStorageValue(cid, Config.StoragePro, 1)
        	release = 0
      	else
        	selfSay("Você não tem money suficiente!", cid)
        	release = 0
      	end
    elseif msgcontains(msg, "no") and release == 2 then
      	selfSay("Até logo!", cid)
      	release = 0  
    end
    if msgcontains(msg, "lista") and getPlayerStorageValue(cid, Config.StoragePro) < (#Config.Monster + 3) then
      	local text, n = "", 0
      	for monsters, v in pairs(Config.Monsters) do
      		local sto = getPlayerStorageValue(cid, monsters)
      		if  sto < v.amount then
          		n = n + 1
          		text = text .. ", "
          		text = text .. (tostring(sto) < tostring(1) and v.amount or (tostring(v.amount) - tostring(sto))) .. " {" .. monsters .. "}"
        	end
      	end
      	text = text:sub(3)
      	if n > 1 then
        	selfSay("Para terminar sua missão você ainda tem que matar esses monstros : " .. text, cid)
        	release = 0
      	elseif n == 1 then
        	selfSay("Você só tem mais um monstro à matar : " .. text, cid)
        	release = 0
      	else
        	selfSay("Você já terminou de matar os monstro que lhe pedi, agora sim tu é digno de ser {promovido}.", cid)
        	release = 2
      	end
    elseif msgcontains(msg, "promovido") and release == 2 then
      	selfSay("Aqui está sua promoção jovem soldado!!", cid)
      	setPlayerVocation(cid, (getPlayerVocation(cid) + 4))
      	setPlayerStorageValue(cid, Config.StoragePro, (#Config.Monsters + 3))
      	-- Para deixar em utilizavel a storage para outras coisas
      	for monsters, _ in pairs(Config.Monsters) do
      		setPlayerStorageValue(cid, monsters, -1)
      	end
      	release = 0
    end
    return true
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

[/spoiler*]

 

Creaturescripts/scripts/swordmantasks.lua

 

[spoiler*]

local Config = {
    Monsters = {
      -- ["Name"] = {amount = quantidade}
      ["Demon"] = {amount = 30},
      ["Hydra"] = {amount = 10},
    },
    StoragePro = 54661, -- Não mexer se não souber editar
    Money = 100000 -- Dinheiro
}
function onKill(cid, target)
	if not isMonster(target) and getPlayerStorageValue(cid, Config.StoragePro) >= (2 + #Config.StoragePro) then
		return false
	end
	local monster = Config.Monsters[getCreatureName(target):lower]
	if monster then
		local sto = getPlayerStorageValue(cid, monster)
		if sto < (monster.amount - 1) then
			doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Task message: ["  .. (sto + 1) ..  "/" .. monster.amount .. "] of " .. getCreatureName(target) .. ".")
			setPlayerStorageValue(cid, monster, (sto + 1))
		elseif sto == (monster.amount - 1)
			doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Congratulations!! you have killed ["  .. (sto + 1) ..  "/" .. monster.amount .. "] of " .. getCreatureName(target) .. "s ands and completed the task.")
			setPlayerStorageValue(cid, monster, (sto + 1)) 
			setPlayerStorageValue(cid, Config.StoragePro, (getPlayerStorageValue(cid, Config.StoragePro) + 1))
		end
	end
	return true
end
function onLogin(cid)
	registerCreatureEvent('taskNpc')
	return true
end

[/spoiler*]

 

Creaturescripts.xml    TAGS

 

[spoiler*]

	<event type="login" name="verf_taskNpc" event="script" value="swordmantasks.lua"/>
	<event type="kill" name="taskNpc" event="script" value="swordmantasks.lua"/>

[/spoiler*]

 

e o erro que aparece na distro é esse aqui 

[23/03/2016 17:38:16] [Error - LuaScriptInterface::loadFile] data/creaturescripts/scripts/swordmantasks.lua:14: function arguments expected near ']'
[23/03/2016 17:38:16] [Warning - Event::loadScript] Cannot load script (data/creaturescripts/scripts/swordmantasks.lua)
[23/03/2016 17:38:16] data/creaturescripts/scripts/swordmantasks.lua:14: function arguments expected near ']'

[23/03/2016 17:38:16] [Error - LuaScriptInterface::loadFile] data/creaturescripts/scripts/swordmantasks.lua:14: function arguments expected near ']'
[23/03/2016 17:38:16] [Warning - Event::loadScript] Cannot load script (data/creaturescripts/scripts/swordmantasks.lua)
[23/03/2016 17:38:16] data/creaturescripts/scripts/swordmantasks.lua:14: function arguments expected near ']'

[/spoiler*]

 

 

2 - problema

 

o NPC Mission funciona assim vc fala com ele hi, quest e ele vai pedindo para vc trazer itens para ele conforme o script ele deveria te entregar um premio no final pelas missoes feitas mas não acontece  e pra cada pedido novo de missão ocorre um erro na distro

 

dados do npc.

 

Mission.XML

[spoiler*]

<?xml version="1.0" encoding="UTF-8"?>
<npc name="Mission" script="mission.lua" walkinterval="2000" floorchange="0">
	<health now="100" max="100"/>
	<look type="325" head="29" body="4" legs="20" feet="96" addons="3" corpse="2212"/>
	<parameters>
    	<parameter key="message_greet" value="Hello |PLAYERNAME|. What brings you to me? You want start the {quest}?"/>
	</parameters>
</npc>

[/spoiler*]

 

Mission.lua

[spoiler*]

local keywordHandler = KeywordHandler:new()

local npcHandler = NpcHandler:new(keywordHandler)

NpcSystem.parseParameters(npcHandler)

local talkState = {}

function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end

function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end

function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end

function onThink() npcHandler:onThink() end

function creatureSayCallback(cid, type, msg)

if(not npcHandler:isFocused(cid)) then

return false

end

local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid

if(msgcontains(msg, 'quest')) then

selfSay('To start this quest tell {mission}', cid) --This is just an example, In this script added 4 mission for you 

end

	if(msgcontains(msg, 'mission')) then

    	if(getPlayerStorageValue(cid,700) < 1) then

        	selfSay('Your first mission will be to get 100 {tarantula egg}.', cid)

        	talkState[talkUser] = 1

    	elseif (getPlayerStorageValue(cid,701) < 1) then

            	selfSay('Your next mission will be to get 150 {strands of medusa hair}.', cid)

            	talkState[talkUser] = 1

    	elseif (getPlayerStorageValue(cid,702) < 0) then

            	selfSay('Your next mission will be to get 300 {red dragon scales}.', cid)

            	talkState[talkUser] = 1

    	elseif (getPlayerStorageValue(cid,703) < 0) then

            	selfSay('Your next mission will be to get 400 {green dragon scales}.', cid)

            	talkState[talkUser] = 1





    	elseif (getPlayerStorageValue(cid,703) == 1) then --zmieniac w zaleznosci od ostatniego storage!!

            	selfSay('You have done all missions.', cid)

            	talkState[talkUser] = 1





    	end

    	---------------------------------------

    	elseif(msgcontains(msg, 'tarantula egg') and talkState[talkUser] == 1 and (getPlayerStorageValue(cid,700) < 1)) then

    	if(doPlayerRemoveItem(cid, 11198, 100) == TRUE) then

        	setPlayerStorageValue(cid,700,1)

        	doPlayerAddPercentLevel(cid, 5)

        	selfSay('Thank you.', cid)

        	talkState[talkUser] = 0

    	else

        	selfSay('To end mission you need have 100 {tarantula egg}.', cid)

    	end

    	---------------------------------------

    	elseif(msgcontains(msg, 'strands of medusa hair') and talkState[talkUser] == 1  and (getPlayerStorageValue(cid,701) < 1) and (getPlayerStorageValue(cid,700) == 1)) then

    	if(doPlayerRemoveItem(cid, 11226, 150) == TRUE) then

        	setPlayerStorageValue(cid,701,1)

        	doPlayerAddPercentLevel(cid, 7)

        	selfSay('Thank you.', cid)

        	talkState[talkUser] = 0

    	else

        	selfSay('To end mission you need have 150 {strands of medusa hair}.', cid)

    	end

    	---------------------------------------

    	elseif(msgcontains(msg, 'red dragon scales') and talkState[talkUser] == 1  and (getPlayerStorageValue(cid,702) < 1) and (getPlayerStorageValue(cid,701) == 1)) then

    	if(doPlayerRemoveItem(cid, 5882, 300) == TRUE) then

        	setPlayerStorageValue(cid,702,1)

        	doPlayerAddPercentLevel(cid, 6)

        	selfSay('Thank you.', cid)

        	talkState[talkUser] = 0

    	else

        	selfSay('To end mission you need have 300 {red dragon scales}.', cid)

    	end

    	---------------------------------------

    	elseif(msgcontains(msg, 'green dragon scales') and talkState[talkUser] == 1 and (getPlayerStorageValue(cid,703) < 1) and (getPlayerStorageValue(cid,702) == 1)) then

    	if(doPlayerRemoveItem(cid, 5920, 400) == TRUE) then

        	setPlayerStorageValue(cid,703,1)

        	doPlayerAddPercentLevel(cid, 5)

        	selfSay('Thank you.', cid)

        	talkState[talkUser] = 0

    	else

        	selfSay('To end mission you need have 400 {green dragon scales}.', cid)

    	end

    	------------------------------------------


	end

end    

npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)

npcHandler:addModule(FocusModule:new())

[/spoiler*]

erro que aparece na distro

[23/03/2016 17:57:23] [Error - Npc interface] 
[23/03/2016 17:57:23] data/npc/scripts/mission.lua:onCreatureSay
[23/03/2016 17:57:23] Description: 
[23/03/2016 17:57:23] data/npc/scripts/mission.lua:83: attempt to call global 'doPlayerAddPercentLevel' (a nil value)
[23/03/2016 17:57:23] stack traceback:
[23/03/2016 17:57:23] 	data/npc/scripts/mission.lua:83: in function 'callback'
[23/03/2016 17:57:23] 	data/npc/lib/npcsystem/npchandler.lua:390: in function 'onCreatureSay'
[23/03/2016 17:57:23] 	data/npc/scripts/mission.lua:13: in function <data/npc/scripts/mission.lua:13>
[23/03/2016 18:11:38] > Broadcasted message: "Qualquer duvida, sujestao ou critica, mantenha o Help Chat aberto e contate um responsavel. Trabalhando por um OT melhor!".

[23/03/2016 18:20:38] [Error - Npc interface] 
[23/03/2016 18:20:38] data/npc/scripts/mission.lua:onCreatureSay
[23/03/2016 18:20:38] Description: 
[23/03/2016 18:20:38] data/npc/scripts/mission.lua:103: attempt to call global 'doPlayerAddPercentLevel' (a nil value)
[23/03/2016 18:20:38] stack traceback:
[23/03/2016 18:20:38] 	data/npc/scripts/mission.lua:103: in function 'callback'
[23/03/2016 18:20:38] 	data/npc/lib/npcsystem/npchandler.lua:390: in function 'onCreatureSay'
[23/03/2016 18:20:38] 	data/npc/scripts/mission.lua:13: in function <data/npc/scripts/mission.lua:13>

[23/03/2016 18:25:01] [Error - Npc interface] 
[23/03/2016 18:25:01] data/npc/scripts/mission.lua:onCreatureSay
[23/03/2016 18:25:01] Description: 
[23/03/2016 18:25:01] data/npc/scripts/mission.lua:123: attempt to call global 'doPlayerAddPercentLevel' (a nil value)
[23/03/2016 18:25:01] stack traceback:
[23/03/2016 18:25:01] 	data/npc/scripts/mission.lua:123: in function 'callback'
[23/03/2016 18:25:01] 	data/npc/lib/npcsystem/npchandler.lua:390: in function 'onCreatureSay'
[23/03/2016 18:25:01] 	data/npc/scripts/mission.lua:13: in function <data/npc/scripts/mission.lua:13>

[23/03/2016 18:25:14] [Error - Npc interface] 
[23/03/2016 18:25:14] data/npc/scripts/mission.lua:onCreatureSay
[23/03/2016 18:25:14] Description: 
[23/03/2016 18:25:14] data/npc/scripts/mission.lua:143: attempt to call global 'doPlayerAddPercentLevel' (a nil value)
[23/03/2016 18:25:14] stack traceback:
[23/03/2016 18:25:14] 	data/npc/scripts/mission.lua:143: in function 'callback'
[23/03/2016 18:25:14] 	data/npc/lib/npcsystem/npchandler.lua:390: in function 'onCreatureSay'
[23/03/2016 18:25:14] 	data/npc/scripts/mission.lua:13: in function <data/npc/scripts/mission.lua:13>

bom galera quem puder e ajudar além do rep ficarei eternamente agradecido

 

 

vlw a todos

Editado por rheynkhen (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

  • Conteúdo Similar

    • Por Veigh
      IP: HYPEOT.COM (Versão 8.60) Por que jogar no HYPEOT? Confira nossos diferenciais: Sistema de Reset 180+ Montarias 65+ Outfits Sistema de Stage Sistema de Pesca Sistema de Refinamento Sistema de Aura Sistema de Mineração Sistema de Woodcut Sistema de Dungeons Sistema de Survival Mais de 30 Bosses de Alavancas +10 Eventos Automáticos Mais de 5 anos online com apenas 2 resets. Agora estamos de volta com força total desde 05/12! O que você está esperando? Junte-se à aventura e faça parte dessa jornada épica! Conecte-se agora mesmo e não fique de fora!
    • Por L3K0T
      Sistema de Drop Personalizado
       
      Esse sistema de loot foi projetado para adicionar um elemento de sorte e surpresa ao derrotar monstros. Sempre que um jogador derrota um monstro, há uma chance configurada para que ele solte entre 1 a 3 itens especiais, garantindo recompensas valiosas ao jogador.
       
      O sistema realiza as seguintes ações:
      Chance de Drop: A cada morte de um monstro, há uma chance configurada para dropar itens específicos. O sistema permite que sejam dropados entre 1 a 3 unidades do item, tornando o sistema mais dinâmico.
       
      Efeito Visual: Quando o loot é bem-sucedido, um efeito visual especial (ID 231) é exibido na posição exata onde o monstro foi derrotado, criando uma animação visual que destaca a recompensa.
       
      Notificação ao Jogador: Após o drop, o jogador recebe uma mensagem personalizada informando a quantidade de itens obtidos. Essa notificação aparece após 3 segundos, adicionando uma camada de imersão e evitando sobrecarregar o chat imediatamente após a morte do monstro.
       
      *Ótimo para fazer eventos de dropar certo itens para alguma missão ou resgates.
      *Uso no meu TIBIA HARRY POTTER ORIGIN
       
      VAi em creaturescripts/scripts.lua
      local function findCorpse(position) for i = 1, 255 do position.stackpos = i local corpse = getThingfromPos(position) if isCorpse(corpse.uid) then return corpse.uid end end return false end local function dropLoot(position, killer) local corpse = findCorpse(position) if not corpse then return false end local itemId = 2160 local chance = 23 if math.random(100) <= chance then local amountToDrop = math.random(1, 3) doAddContainerItem(corpse, itemId, amountToDrop) local corpsePosition = getThingPos(corpse) doSendMagicEffect(corpsePosition, 7) local function sendMessage() if isPlayer(killer) then local message = string.format("Você dropou %d Crystal Coin(s).", amountToDrop) doPlayerSendTextMessage(killer, MESSAGE_INFO_DESCR, message) end end addEvent(sendMessage, 2500) end return true end function onKill(cid, target) local position = getCreaturePosition(target) addEvent(dropLoot, 100, position, cid) return true end  
      creaturescripts.xml
      <event type="kill" name="GlobalDrops" registerTo ="GlobalDrops" event="script" value="globalDrops.lua"/> ou depende do tfs
      <event type="kill" name="GlobalDrops" event="script" value="globalDrops.lua"/>  
      Para ambos TFS registra o evento no login.lua
      registerTo ="GlobalDrops"
      feito isso.. agora todos os monstros do mapa vai cair os crystal coins de 1 há 3.
    • Por hekan19
      Olá pessoal,
       
      Estou com um problema no sistema de autoloot.
      Ao abrir um Pokémon, itens aparecem no chão. Recebo "0" no console do TFS.
       
      Obrigado pela ajuda
    • Por Glacial
      Boa noite galera!
       
      Meu nome é Gustavo/Glacial, gostaria de compartilhar meu mapa projeto Old City (8.60)
       
      Espero que curtam e podem baixar pra colocar no ot de vocês!
       
      Atualização Old City (8.60) versão 1.0:
      - Depot + Templo + Lojas (NPCs a gosto) + Teleports (para customizar) tudo em uma mesma casa central.
      - Houses em volta da cidade.
      - 4 saídas N, S, L e Oeste.
      - Cidade estilizada com bancos, postes de luz, e bancos.

      Atualização Old City (8.60) versão 2.0:
      - 4 Novos Mapas de Hunt/Quest ao Norte (Montanhas) Sul (Jungle) Leste (Vulcão) e Oeste (Gelo) da Old City. 
       
      >>> Download Mapas: https://www.mediafire.com/folder/hz0q694t9nk86/Mapas_Glacial <<<
       
      Scan VirusTotal:

      Old City (8.60) versão 1.0 Virus Total: https://www.virustotal.com/gui/file/5c2988531c71e1ae7f363b1102c865cb9debe2fd7e5f1b09b7cd09d40c2bf517?nocache=1
      Old City (8.60) versão 2.0 Virus Total: https://www.virustotal.com/gui/file/a2caef91a130d0df62ae4e88fa0719c331a6bb1fbad66a72c08fc3cd362bf430?nocache=1
       
      - Mapas Anteriores:
      Glacial City (10.98) versão 1.0 Virus Total: https://www.virustotal.com/gui/file/b4e94903752e24aba63b291f9929f15f6bd7f4feb44d5a1f42ec3d755ee7977e?nocache=1
      Glacial City (10.98) versão 2.0 Virus Total: https://www.virustotal.com/gui/file/d88ae087e966bed6e2f2348f31246c1858831c1fb13d4e8613ba98f6ede37503?nocache=1
       





       
       
       
    • Por Underewar
      Olá gostaria de contribuir com a comunidade com estes serviços.
      Aproveite é por tempo limitado.
      Conheça um pouco mais sobre quem eu sou.
      Serviços de Desenvolvimento Web
      Excelência em Resolução de Problemas
      Identificação e correção de BUGS em bancos de dados e scripts PHP para um funcionamento perfeito. Criação de Valor
      Implementação de novas funcionalidades em websites, tanto no Front-end quanto no Back-end, para melhorar a experiência dos usuários. Design Atraente
      Habilidade em design responsivo usando Bootstrap para criar interfaces atraentes e compatíveis com diversos dispositivos. Da Ideia à Realidade
      Capacidade de criar websites avançados desde o conceito inicial até a implementação completa, integrando funcionalidades complexas. Personalização Precisa
      Desenvolvimento de websites a partir do zero usando stacks avançadas ou PHP convencional, garantindo personalização total. Desenvolvimento de Open Tibia Server (OTC)
      Melhoria Contínua
      Identificação e solução de BUGS em módulos para aprimorar a estabilidade e jogabilidade no Open Tibia Server. Inovação Impulsionada
      Integração de novas funcionalidades ao OTC, enriquecendo a experiência dos jogadores com recursos inovadores. Módulos Eficientes
      Criação de novos módulos com foco na qualidade do código e na melhoria da interatividade dos jogadores. Desenvolvimento de Otserver (Open Tibia Server)
      Performance Elevada
      Identificação e correção precisa de problemas em scripts para manter a performance e a integridade do otserver. Crescimento Constante
      Introdução de novos scripts e funcionalidades, impulsionando o crescimento contínuo e a inovação do otserver. Atualização Estratégica
      Atualização cuidadosa dos pacotes de compilação de projetos para garantir eficiência e compatibilidade. Otimização e Segurança
      Proteção Robusta
      Implementação de soluções AntiCheat/AntiBot para garantir um ambiente de jogo seguro e livre de trapaças. Escalabilidade e Desempenho
      Configuração especializada em nuvens líderes do mercado, incluindo Google Cloud, Azure Cloud, Amazon Cloud e DigitalOcean Cloud. Defesa Efetiva
      Instalação e configuração do ANTI-DDOS Cloudflare para proteger o servidor contra ataques cibernéticos. Outros Serviços
      Inovação na Blockchain
      Implementação de sistema NFT, incorporando aspectos visuais e lógicos da tecnologia blockchain para criar experiências únicas. Facilitação Financeira
      Integração de pagamento automático em websites, abrangendo uma variedade de plataformas para maior comodidade dos usuários. Infraestrutura Otimizada
      Configuração e instalação nas nuvens, como Google Cloud, Azure Cloud, Amazon Cloud e DigitalOcean Cloud, para alcançar a melhor performance.
        Processo de Contratação Simplificado:
       
      Aqui está a nossa forma descomplicada de lidar com pagamentos:
      Entrada (50%): Depois de escolher o serviço, pedimos metade do valor para começar.
      Saldo (50%): Quando terminarmos e você estiver satisfeito, pedimos o restante antes da entrega final.
       
      Estamos ansiosos para trabalhar juntos. Se tiver dúvidas ou estiver interessado em nossos serviços, sinta-se à vontade para entrar em contato. Mal podemos esperar para construir algo incrível juntos!
       
      Converse Comigo:
      Estou à disposição para conversar e discutir projetos.
      Fique à vontade para me contatar aqui ou através das seguintes redes:
       
      LinkedIn: Rafhael Oliveira
       
      Meus Projetos: Dê uma olhada nos meus projetos no GitHub: GitHub Repositories
       
      Otland: Confira meu perfil no Otland e veja minhas conquistas: Perfil no Otland
       
      Com uma experiência sólida de 10 anos na área de desenvolvimento de OTS,
       

       
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo