Ir para conteúdo
  • 0

Como Modificar Essa Script ! Me Ajudem !


TiagoBordin1988

Pergunta

Então tenho uma script que da recompensa para o jogador dependendo o level que ele pegue, e queria saber como transforma-la em um script que da a recompensa de acordo com a Vocação do player.

Exemplo: Knight upou level 100 ganha uma sword, um axe e um club.

Druid upou level 100 ganha Rod.

Etc...

não precisaria ser 1 Script para toda vocação pode ser 1 script para cada vocação que já ajuda só destacando aonde teria que mudar o ID das vocações.

 

levelitem.lua

 

function onAdvance(cid, skill, oldLevel, newLevel)

local config = {
[20] = {item = 2160, count = 5},
}

if skill == 8 then
for level, info in pairs(config) do
if newLevel >= level and (getPlayerStorageValue(cid, 30700) == -1 or not (string.find(getPlayerStorageValue(cid, 30700), "'" .. level .. "'"))) then
doPlayerAddItem(cid, info.item, info.count)
doPlayerSendTextMessage(cid, 27, "Parabéns Guerreiro você atingiu o level "..newLevel.." e ganhou "..info.count.." "..getItemNameById(info.item)..".")
local sat = getPlayerStorageValue(cid, 30700) == -1 and "Values: '" .. level .. "'" or getPlayerStorageValue(cid, 30700) .. ",'" .. level .. "'"
setPlayerStorageValue(cid, 30700, sat)
end
end
end

return TRUE
end

 

 

Tag:

<event type="advance" name="LevelItem" event="script" value="levelitem.lua"/>

 

 

Login.lua

 

registerCreatureEvent(cid, "LevelItem")

 

Editado por TiagoBordin1988
Link para o comentário
Compartilhar em outros sites

10 respostass a esta questão

Posts Recomendados

  • 0

Então os dois estão funcionando, mais está ocorrendo um BUG, coloquei aqui pra level 13 e level 19 ganhar os items, ele ta funcionando para qualquer SKILL seja Level, Distance, Fisting, Shield etc.. qual pegar 13 ou 19 ele da os items.

Eu tenho outro script aqui que Funciona só para mages (druid e sorc) e ele á muito da hora vou postar aqui e se puderem modificar pra min e fazer uma para Knight e outro para Paladin ajudaria muito pois ele assim que pega o level ele tira o item que está usando e coloca o que ganhou.

Segue:

local config = {
	[100] = { -- level
		[{1, 5}] = {item = 2160, quant = 50, sto = 1001}, -- [voc] = s e ms
		[{2, 6}] = {item = 2160, quant = 50, sto = 1001}, -- [voc] = d e ed
		[{3, 7}] = {item = 2160, quant = 50, sto = 1001}, -- [voc] = p e rp
		[{4, 8}] = {item = 2160, quant = 50, sto = 1001}  -- [voc] = k e ek
	},
	[200] = { -- level
		[{1, 5}] = {item = 2160, quant = 100, sto = 1002}, -- [voc] = s e ms
		[{2, 6}] = {item = 2160, quant = 100, sto = 1002}, -- [voc] = d e ed
		[{3, 7}] = {item = 2160, quant = 100, sto = 1002}, -- [voc] = p e rp
		[{4, 8}] = {item = 2160, quant = 100, sto = 1002}  -- [voc] = k e ek
	}
}

function onAdvance(cid, skill, oldLevel, newLevel)
	local playerVoc = getPlayerVocation(cid)

	for level, a in pairs(config) do
		if skill == 8 and newLevel >= level then
			for voc, b in pairs(a) do
				if isInArray(voc, playerVoc) and getPlayerStorageValue(cid, b.sto) <= 0  then
					doPlayerAddItem(cid, b.item, b.quant)
					setPlayerStorageValue(cid, b.sto, 1)
					doPlayerSendTextMessage(cid, 22, "Você upou level " .. newLevel .. " e ganhou " .. b.quant .. "x ".. getItemNameById(b.item) .. "!")
					return true
				end
			end
		end
	end
	return true
end
Link para o comentário
Compartilhar em outros sites

  • 0

não testei ainda mais veja se vai funcionar OBS : Vai ser 1 script por vocation.

local leveis = {
[1] = {lvl = 30, item = 2160, quant = 100, sto = 001},
}

function onAdvance(cid, skill, oldLevel, newLevel)


local vocation = 4 --- ID DA VOCATION
local level = getPlayerLevel(cid)

if getPlayerVocation(cid) == vocation then

       for i = 1, #leveis do
          if level >= leveis[i].lvl and getPlayerStorageValue(cid, leveis[i].sto) <= 0 then
                  doPlayerAddItem(cid, leveis[i].item, leveis[i].quant)
                  setPlayerStorageValue(cid, leveis[i].sto, 1)   
                  doPlayerSendTextMessage(cid, 22, "Você upou level "..level.." ou mais, e ganhou "..leveis[i].quant..", "..getItemNameById(leveis[i].item).."!")
          end
       end  
       return true 
       end
       end

só trocar o seu script atual por esse :D

Link para o comentário
Compartilhar em outros sites

  • 0

não testei ainda mais veja se vai funcionar OBS : Vai ser 1 script por vocation.

local leveis = {
[1] = {lvl = 30, item = 2160, quant = 100, sto = 001},
}

function onAdvance(cid, skill, oldLevel, newLevel)


local vocation = 4 --- ID DA VOCATION
local level = getPlayerLevel(cid)

if getPlayerVocation(cid) == vocation then

       for i = 1, #leveis do
          if level >= leveis[i].lvl and getPlayerStorageValue(cid, leveis[i].sto) <= 0 then
                  doPlayerAddItem(cid, leveis[i].item, leveis[i].quant)
                  setPlayerStorageValue(cid, leveis[i].sto, 1)   
                  doPlayerSendTextMessage(cid, 22, "Você upou level "..level.." ou mais, e ganhou "..leveis[i].quant..", "..getItemNameById(leveis[i].item).."!")
          end
       end  
       return true 
       end
       end

só trocar o seu script atual por esse :D

Funcionou upei um knight level 30 e ele ganhou os 1kk configurado.

Agora queria saber de configurar novos item se seria assim.

 

local leveis = {

[1] = {lvl = 13, item = 3964, quant = 1, sto = 001},

[2] = {lvl = 13, item = 2413, quant = 1, sto = 002},

[3] = {lvl = 13, item = 3966, quant = 1, sto = 003},

}

 

Coloquei os 3 item level 13 pois como é knight add para ganhar no level 13, um axe, uma sword e um club já que cada um tem sua preferencia.

E queria saber a respeito da sto = 001, no caso esse é pra knight está usando de 001-003, se eu criar para outra vocação terei que usar na sequencia 004,005 etc.. ou como se trata de outro script poderei usar os mesmo 001,002,003 e assim por diante?

Muito Obrigado por ajudar :D

Link para o comentário
Compartilhar em outros sites

  • 0

Funcionou upei um knight level 30 e ele ganhou os 1kk configurado.

Agora queria saber de configurar novos item se seria assim.

 

local leveis = {

[1] = {lvl = 13, item = 3964, quant = 1, sto = 001},

[2] = {lvl = 13, item = 2413, quant = 1, sto = 002},

[3] = {lvl = 13, item = 3966, quant = 1, sto = 003},

}

 

 

Tenta assim:

local config = {
	[100] = { -- level
		[{1, 5}] = {item = 2160, quant = 50, sto = 1001}, -- [voc] = s e ms
		[{2, 6}] = {item = 2160, quant = 50, sto = 1001}, -- [voc] = d e ed
		[{3, 7}] = {item = 2160, quant = 50, sto = 1001}, -- [voc] = p e rp
		[{4, 8}] = {item = 2160, quant = 50, sto = 1001}  -- [voc] = k e ek
	},
	[200] = { -- level
		[{1, 5}] = {item = 2160, quant = 100, sto = 1002}, -- [voc] = s e ms
		[{2, 6}] = {item = 2160, quant = 100, sto = 1002}, -- [voc] = d e ed
		[{3, 7}] = {item = 2160, quant = 100, sto = 1002}, -- [voc] = p e rp
		[{4, 8}] = {item = 2160, quant = 100, sto = 1002}  -- [voc] = k e ek
	}
}

function onAdvance(cid, skill, oldLevel, newLevel)
	local playerVoc = getPlayerVocation(cid)

	for level, a in pairs(config) do
		if newLevel >= level then
			for voc, b in pairs(a) do
				if isInArray(voc, playerVoc) and getPlayerStorageValue(cid, b.sto) <= 0  then
					doPlayerAddItem(cid, b.item, b.quant)
					setPlayerStorageValue(cid, b.sto, 1)
					doPlayerSendTextMessage(cid, 22, "Você upou level " .. newLevel .. " e ganhou " .. b.quant .. "x ".. getItemNameById(b.item) .. "!")
					return true
				end
			end
		end
	end
	return true
end
Link para o comentário
Compartilhar em outros sites

  • 0

Caso o do bruno não funcione, tente esse:

local config = {
    [100] = { -- level
        [{1, 5}] = {item = 2160, quant = 50, sto = 1001}, -- [voc] = s e ms
        [{2, 6}] = {item = 2160, quant = 50, sto = 1001}, -- [voc] = d e ed
        [{3, 7}] = {item = 2160, quant = 50, sto = 1001}, -- [voc] = p e rp
        [{4, 8}] = {item = 2160, quant = 50, sto = 1001}  -- [voc] = k e ek
    },
[200] = { -- level
        [{1, 5}] = {item = 2160, quant = 100, sto = 1002}, -- [voc] = s e ms
        [{2, 6}] = {item = 2160, quant = 100, sto = 1002}, -- [voc] = d e ed
        [{3, 7}] = {item = 2160, quant = 100, sto = 1002}, -- [voc] = p e rp
        [{4, 8}] = {item = 2160, quant = 100, sto = 1002}  -- [voc] = k e ek
    }
}
 
function onAdvance(cid, skill, oldLevel, newLevel)
    for level, a in pairs(config) do
        if newLevel >= level then
            for voc, b in pairs(a) do
                for i = 1, #voc do 
                    if getPlayerVocation(cid) == voc[i] and getPlayerStorageValue(cid, b.sto) <= 0then
                        doPlayerAddItem(cid, b.item, b.quant)
                        setPlayerStorageValue(cid, b.sto, 1)
                        doPlayerSendTextMessage(cid, 22, "Você upou level " .. newLevel .. " e ganhou " .. b.quant .. "x ".. getItemNameById(b.item) .. "!")
                        break
                    end
                end
            end
        end
    end
    return true
end
Editado por RigBy
Link para o comentário
Compartilhar em outros sites

  • 0

 

 

Tenta assim:

local config = {
	[100] = { -- level
		[{1, 5}] = {item = 2160, quant = 50, sto = 1001}, -- [voc] = s e ms
		[{2, 6}] = {item = 2160, quant = 50, sto = 1001}, -- [voc] = d e ed
		[{3, 7}] = {item = 2160, quant = 50, sto = 1001}, -- [voc] = p e rp
		[{4, 8}] = {item = 2160, quant = 50, sto = 1001}  -- [voc] = k e ek
	},
	[200] = { -- level
		[{1, 5}] = {item = 2160, quant = 100, sto = 1002}, -- [voc] = s e ms
		[{2, 6}] = {item = 2160, quant = 100, sto = 1002}, -- [voc] = d e ed
		[{3, 7}] = {item = 2160, quant = 100, sto = 1002}, -- [voc] = p e rp
		[{4, 8}] = {item = 2160, quant = 100, sto = 1002}  -- [voc] = k e ek
	}
}

function onAdvance(cid, skill, oldLevel, newLevel)
	local playerVoc = getPlayerVocation(cid)

	for level, a in pairs(config) do
		if newLevel >= level then
			for voc, b in pairs(a) do
				if isInArray(voc, playerVoc) and getPlayerStorageValue(cid, b.sto) <= 0  then
					doPlayerAddItem(cid, b.item, b.quant)
					setPlayerStorageValue(cid, b.sto, 1)
					doPlayerSendTextMessage(cid, 22, "Você upou level " .. newLevel .. " e ganhou " .. b.quant .. "x ".. getItemNameById(b.item) .. "!")
					return true
				end
			end
		end
	end
	return true
end

 

 

 

Caso o do bruno não funcione, tente esse:

local config = {
    [100] = { -- level
        [{1, 5}] = {item = 2160, quant = 50, sto = 1001}, -- [voc] = s e ms
        [{2, 6}] = {item = 2160, quant = 50, sto = 1001}, -- [voc] = d e ed
        [{3, 7}] = {item = 2160, quant = 50, sto = 1001}, -- [voc] = p e rp
        [{4, 8}] = {item = 2160, quant = 50, sto = 1001}  -- [voc] = k e ek
    },
[200] = { -- level
        [{1, 5}] = {item = 2160, quant = 100, sto = 1002}, -- [voc] = s e ms
        [{2, 6}] = {item = 2160, quant = 100, sto = 1002}, -- [voc] = d e ed
        [{3, 7}] = {item = 2160, quant = 100, sto = 1002}, -- [voc] = p e rp
        [{4, 8}] = {item = 2160, quant = 100, sto = 1002}  -- [voc] = k e ek
    }
}
 
function onAdvance(cid, skill, oldLevel, newLevel)
    for level, a in pairs(config) do
        if newLevel >= level then
            for voc, b in pairs(a) do
                for i = 1, #voc do 
                    if getPlayerVocation(cid) == voc[i] and getPlayerStorageValue(cid, b.sto) <= 0then
                        doPlayerAddItem(cid, b.item, b.quant)
                        setPlayerStorageValue(cid, b.sto, 1)
                        doPlayerSendTextMessage(cid, 22, "Você upou level " .. newLevel .. " e ganhou " .. b.quant .. "x ".. getItemNameById(b.item) .. "!")
                        break
                    end
                end
            end
        end
    end
    return true
end

Então os dois estão funcionando, mais está ocorrendo um BUG, coloquei aqui pra level 13 e level 19 ganhar os items, ele ta funcionando para qualquer SKILL seja Level, Distance, Fisting, Shield etc.. qual pegar 13 ou 19 ele da os items.

Eu tenho outro script aqui que Funciona só para mages (druid e sorc) e ele á muito da hora vou postar aqui e se puderem modificar pra min e fazer uma para Knight e outro para Paladin ajudaria muito pois ele assim que pega o level ele tira o item que está usando e coloca o que ganhou.

evoluirwand.lua

 

local items = {

{13,2191,2186,-1},

{19,2188,2185,0},

{22,8921,8911,1},

{26,2189,2181,2},

{33,2187,2183,3},

{37,8920,8912,4},

{45,8922,8910,5},

{99999999999}

}

local stuff = {2190,2182,2191,2188,8921,2189,2187,8920,8922,2186,2185,8911,2181,2183,8912,8910}

function onAdvance(cid, skill, oldlevel, newlevel)

local place = 0

local st = 23636

local blala = newLevel

if isInArray({1,2,5,6},getPlayerVocation(cid)) then

if skill == 8 then

for x = 1, #items do

if newlevel >= items[x][1] and newlevel < items[x+1][1] then

place = x

end

end

if place > 0 then

if getPlayerStorageValue(cid,st) <= items[place][4] then

local byvoc = getPlayerVocation(cid)

if getPlayerVocation(cid) > 4 then

byvoc = getPlayerVocation(cid)-4

end

if isInArray(stuff,getPlayerSlotItem(cid,5).itemid) then

doRemoveItem(getPlayerSlotItem(cid,5).uid)

elseif isInArray(stuff,getPlayerSlotItem(cid,6).itemid) then

doRemoveItem(getPlayerSlotItem(cid,6).uid)

end

doPlayerAddItem(cid,items[place][byvoc+1],1)

doPlayerSendTextMessage(cid,4,"Você evoluiu e ganhou uma nova wand: "..getItemNameById(items[place][byvoc+1])..".")

setPlayerStorageValue(cid,st,items[place][4]+1)

end

end

end

end

return TRUE

end

 

Se conseguirem fazer um evoluirpally.lua e outro evoluirkina.lua nesse sistema seria massa, abraços

Link para o comentário
Compartilhar em outros sites

  • 0

tenta assim:

 

local config = {
    [100] = { -- level
        [{1, 5}] = {item = 2160, quant = 50, sto = 1001}, -- [voc] = s e ms
        [{2, 6}] = {item = 2160, quant = 50, sto = 1001}, -- [voc] = d e ed
        [{3, 7}] = {item = 2160, quant = 50, sto = 1001}, -- [voc] = p e rp
        [{4, 8}] = {item = 2160, quant = 50, sto = 1001}  -- [voc] = k e ek
    },
[200] = { -- level
        [{1, 5}] = {item = 2160, quant = 100, sto = 1002}, -- [voc] = s e ms
        [{2, 6}] = {item = 2160, quant = 100, sto = 1002}, -- [voc] = d e ed
        [{3, 7}] = {item = 2160, quant = 100, sto = 1002}, -- [voc] = p e rp
        [{4, 8}] = {item = 2160, quant = 100, sto = 1002}  -- [voc] = k e ek
    }
}
 
function onAdvance(cid, skill, oldLevel, newLevel)
    for level, a in pairs(config) do
        if getPlayerLevel(cid) >= level then
            for voc, b in pairs(a) do
                for i = 1, #voc do 
                    if getPlayerVocation(cid) == voc[i] and getPlayerStorageValue(cid, b.sto) <= 0then
                        doPlayerAddItem(cid, b.item, b.quant)
                        setPlayerStorageValue(cid, b.sto, 1)
                        doPlayerSendTextMessage(cid, 22, "Você upou level " .. newLevel .. " e ganhou " .. b.quant .. "x ".. getItemNameById(b.item) .. "!")
                        break
                    end
                end
            end
        end
    end
    return true
end
Link para o comentário
Compartilhar em outros sites

  • 0

 

Segue:

local config = {
	[100] = { -- level
		[{1, 5}] = {item = 2160, quant = 50, sto = 1001}, -- [voc] = s e ms
		[{2, 6}] = {item = 2160, quant = 50, sto = 1001}, -- [voc] = d e ed
		[{3, 7}] = {item = 2160, quant = 50, sto = 1001}, -- [voc] = p e rp
		[{4, 8}] = {item = 2160, quant = 50, sto = 1001}  -- [voc] = k e ek
	},
	[200] = { -- level
		[{1, 5}] = {item = 2160, quant = 100, sto = 1002}, -- [voc] = s e ms
		[{2, 6}] = {item = 2160, quant = 100, sto = 1002}, -- [voc] = d e ed
		[{3, 7}] = {item = 2160, quant = 100, sto = 1002}, -- [voc] = p e rp
		[{4, 8}] = {item = 2160, quant = 100, sto = 1002}  -- [voc] = k e ek
	}
}

function onAdvance(cid, skill, oldLevel, newLevel)
	local playerVoc = getPlayerVocation(cid)

	for level, a in pairs(config) do
		if skill == 8 and newLevel >= level then
			for voc, b in pairs(a) do
				if isInArray(voc, playerVoc) and getPlayerStorageValue(cid, b.sto) <= 0  then
					doPlayerAddItem(cid, b.item, b.quant)
					setPlayerStorageValue(cid, b.sto, 1)
					doPlayerSendTextMessage(cid, 22, "Você upou level " .. newLevel .. " e ganhou " .. b.quant .. "x ".. getItemNameById(b.item) .. "!")
					return true
				end
			end
		end
	end
	return true
end

Ae obrigado por me ajudar funcionou certinho ;D

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...