segunda-feira, 22 de janeiro de 2024

scrip jogo robox

 conforme a historia criada anteriormente crie um script pra robox que o heroi comece com status zerado e possa chegar no level 100 experiencia de 0,5x que cada lvl 1 ponto x0,5 conforme o level para colococar no status de força ou inteligencia ou agilidade inventario onde consiga colocar armadura que tenha os atibutos inteligencia forca ou agilidade um npc que possa fundir itens com item especifico de fusao e poders que possa colocar em slot visivel na tela que ativado com os numeros 1,2,3,4,5,6 como ativadores feramentas ou armas ou poderes, itens que possa ser minerado como picaretas e machados e que possa ser trocado por moeda interna do jogo cristais e que possa ser comprado com robux cristais e moedas e um npc pra quest, outro pra item ,outro pra fusão de itens combinaçoes, jogo como se fosse dois times uma escolha no inicio do jogo faz com que nasca na ilha 01 e outro na ilha 02 e eles são inimigos e os bichos ou npc de luta possa ser atacado por qualquer herois e tenha npc que sejam bot que atacam outro lado com objetivo de destruir o cristal e quando destruidos o lado perdedor fica com 20% dos seu status menor como castigo do perdedor sistema de ajuda adicionar ou jogar com amigo dividir experiencia porcentagem igual pra todos participantes ate 5 pensonagens un sistema de troca que permita um enviar pro outro qualquer item menos dinheiro ou cristais que, os personagens statude agilidade aumenten a velocidade de taque e regular pra não bugar e força aumente vida consiga limitar tanto pra npc e para herois e inteligencia no mesmo aspecos 


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


-- Cria as variáveis globais

local Players = game:GetService("Players")

local ReplicatedStorage = game:GetService("ReplicatedStorage")

local ServerStorage = game:GetService("ServerStorage")

local Teams = game:GetService("Teams")


local XP_PER_LEVEL = 100 -- Quantidade de XP necessária para subir de nível

local XP_MULTIPLIER = 0.5 -- Multiplicador de XP por nível

local POINTS_PER_LEVEL = 1 -- Quantidade de pontos de atributo por nível

local POINTS_MULTIPLIER = 0.5 -- Multiplicador de pontos de atributo por nível

local MAX_LEVEL = 100 -- Nível máximo do jogo

local MAX_POINTS = 50 -- Pontos máximos de cada atributo

local PENALTY = 0.2 -- Penalidade de status para o time perdedor


local ISLAND_01 = Teams:FindFirstChild("Island 01") -- Time da ilha 01

local ISLAND_02 = Teams:FindFirstChild("Island 02") -- Time da ilha 02

local CRYSTAL_01 = ServerStorage:FindFirstChild("Crystal 01") -- Cristal da ilha 01

local CRYSTAL_02 = ServerStorage:FindFirstChild("Crystal 02") -- Cristal da ilha 02


local SKILLS = ReplicatedStorage:FindFirstChild("Skills") -- Pasta com os scripts das habilidades

local ITEMS = ReplicatedStorage:FindFirstChild("Items") -- Pasta com os scripts dos itens

local FUSIONS = ReplicatedStorage:FindFirstChild("Fusions") -- Pasta com os scripts das fusões

local NPCS = ServerStorage:FindFirstChild("NPCs") -- Pasta com os modelos dos NPCs


-- Cria uma função para gerar um número aleatório entre um mínimo e um máximo

local function Random(min, max)

return math.random(min, max)

end


-- Cria uma função para atualizar o status do jogador de acordo com os seus atributos

local function UpdateStatus(player)

local character = player.Character

local stats = player:FindFirstChild("Stats")

local agility = stats:FindFirstChild("Agility").Value

local strength = stats:FindFirstChild("Strength").Value

local intelligence = stats:FindFirstChild("Intelligence").Value

local health = character:FindFirstChild("Humanoid").Health

local maxHealth = character:FindFirstChild("Humanoid").MaxHealth

local walkSpeed = character:FindFirstChild("Humanoid").WalkSpeed

local jumpPower = character:FindFirstChild("Humanoid").JumpPower

local attack = character:FindFirstChild("Attack").Value

local defense = character:FindFirstChild("Defense").Value

local team = player.Team

-- Aplica a penalidade de status se o time do jogador perdeu o cristal

if team == ISLAND_01 and CRYSTAL_01.Health == 0 then

agility = agility * (1 - PENALTY)

strength = strength * (1 - PENALTY)

intelligence = intelligence * (1 - PENALTY)

elseif team == ISLAND_02 and CRYSTAL_02.Health == 0 then

agility = agility * (1 - PENALTY)

strength = strength * (1 - PENALTY)

intelligence = intelligence * (1 - PENALTY)

end

-- Calcula o novo status do jogador de acordo com os seus atributos

maxHealth = 100 + strength * 10

walkSpeed = 16 + agility * 0.2

jumpPower = 50 + agility * 0.5

attack = 10 + strength * 0.5 + intelligence * 0.5

defense = 5 + strength * 0.5 + intelligence * 0.5

-- Aplica o novo status ao jogador

character:FindFirstChild("Humanoid").MaxHealth = maxHealth

character:FindFirstChild("Humanoid").Health = health

character:FindFirstChild("Humanoid").WalkSpeed = walkSpeed

character:FindFirstChild("Humanoid").JumpPower = jumpPower

character:FindFirstChild("Attack").Value = attack

character:FindFirstChild("Defense").Value = defense

end


-- Cria uma função para adicionar XP ao jogador

local function AddXP(player, amount)

local stats = player:FindFirstChild("Stats")

local level = stats:FindFirstChild("Level").Value

local xp = stats:FindFirstChild("XP").Value

local xpNeeded = XP_PER_LEVEL * (1 + level * XP_MULTIPLIER) -- Calcula a quantidade de XP necessária para o próximo nível

xp = xp + amount -- Adiciona a quantidade de XP recebida

while xp >= xpNeeded and level < MAX_LEVEL do -- Verifica se o jogador subiu de nível

level = level + 1 -- Aumenta o nível do jogador

xp = xp - xpNeeded -- Subtrai a quantidade de XP usada

xpNeeded = XP_PER_LEVEL * (1 + level * XP_MULTIPLIER) -- Calcula a nova quantidade de XP necessária

local points = stats:FindFirstChild("Points").Value

points = points + POINTS_PER_LEVEL * (1 + level * POINTS_MULTIPLIER) -- Adiciona os pontos de atributo ao jogador

stats:FindFirstChild("Points").Value = points -- Atualiza os pontos de atributo do jogador

UpdateStatus(player) -- Atualiza o status do jogador

end

stats:FindFirstChild("Level").Value = level -- Atualiza o nível do jogador

stats:FindFirstChild("XP").Value = xp -- Atualiza o XP do jogador

end


-- Cria uma função para adicionar um item ao inventário do jogador

local function AddItem(player, item)

local inventory = player:FindFirstChild("Inventory")

local backpack = player:FindFirstChild("Backpack")

local itemScript = ITEMS:FindFirstChild(item) -- Encontra o script do item na pasta de itens

if itemScript then -- Verifica se o item existe

local itemClone = itemScript:Clone() -- Clona o script do item

itemClone.Parent = inventory -- Coloca o item no inventário do jogador

local itemTool = itemClone:FindFirstChild("Tool") -- Encontra a ferramenta do item

if itemTool then -- Verifica se o item tem uma ferramenta

local toolClone = itemTool:Clone() -- Clona a ferramenta do item

toolClone.Parent = backpack -- Coloca a ferramenta na mochila do jogador

end

end

end


-- Cria uma função para remover um item do inventário do jogador

local function RemoveItem(player, item)

local inventory = player:FindFirstChild("Inventory")

local backpack = player:FindFirstChild("Backpack")

local itemScript = inventory:FindFirstChild(item) -- Encontra o item no inventário do jogador

if itemScript then -- Verifica se o item existe

local itemTool = itemScript:FindFirstChild("Tool") -- Encontra a ferramenta do item

if itemTool then -- Verifica se o item tem uma ferramenta

local toolScript = backpack:FindFirstChild(itemTool.Name) -- Encontra a ferramenta na mochila do jogador

if toolScript then -- Verifica se a ferramenta existe

toolScript:Destroy() -- Destrói a ferramenta

end

end

itemScript:Destroy() -- Destrói o item

end

end


-- Cria uma função para fundir dois itens e criar um novo item

local function FuseItems(player, item1, item2)

local inventory = player:FindFirstChild("Inventory")

local itemScript1 = inventory:FindFirstChild(item1) -- Encontra o primeiro item no inventário do jogador

local itemScript2 = inventory:FindFirstChild(item2) -- Encontra o segundo item no inventário do jogador

if itemScript1 and itemScript2 then -- Verifica se os dois itens existem

local fusionScript = FUSIONS:FindFirstChild(item1 .. " + " .. item2) -- Encontra o script da fusão na pasta de fusões

if fusionScript then -- Verifica se a fusão existe

local newItem = fusionScript:FindFirstChild("NewItem").Value -- Encontra o nome do novo item

RemoveItem(player, item1) -- Remove o primeiro item do inventário do jogador

RemoveItem(player, item2) -- Remove o segundo item do inventário do jogador

AddItem(player, newItem) -- Adiciona o novo item ao inventário do jogador

end

end

end


-- Cria uma função para equipar um item ao jogador

local function EquipItem(player, item)

local inventory = player:FindFirstChild("Inventory")

local equipment = player:FindFirstChild("Equipment")

local itemScript = inventory:FindFirstChild(item) -- Encontra o item no inventário do jogador

if itemScript then -- Verifica se o item existe

local itemType = itemScript:FindFirstChild("Type").Value -- Encontra o tipo do item

0 comentários:

Postar um comentário

Popular Posts