Ir para conteúdo

Featured Replies

Postado
  • Este é um post popular.

Olá rapaziada.

Hoje tô trazendo sistema de skin por comando.

Já vi muita gente pedindo por aqui e nunca teve resultado.

 

Então vamos lá!

 

 

Lib:

Crie um arquivo lua com o nome

210-skins

Citar

 



Main_skinAvailable = {

	-- [id] = {name = "nome", outfitId = id, vocationName="nome"},
	[1] = {name = "Goku God", outfitId = 1107},
	
}

Main_skinConfig = {

	limit = 30, -- limits skin per player | limita skin por jogador
	baseStorage = 789000, -- storage for save skin id | storaga para salvar o id da skin
	checkRemoveSkinStorage = 799000, -- storage to remove skin if has | storage que salva se deve ou n�o remover a skin
	
	dataTxt = {
		
		notIsValid = "Esse n�mero de skin n�o existe",
		maxReached = "Voc� j� tem o n�mero m�ximo de skin.",
		onlyVocation = "Apenas %s podem ter essa skin.",
		hasSkin = "Voc� j� tem essa skin.",
		notHasSkin = "Voc� n�o tem essa skin.",
		usingSkin = "Voc� j� est� usando essa skin.",
		onAddSuccess = "Nova skin d�spon�vel para uso. (%s)",
		onUseSuccess = "Voc� est� usando a skin %s.",
		onRemoveSuccess = "Skin removida com sucesso.",
		onRemoveFailed = "Voc� n�o est� usando nenhuma skin.",
		invalidParameter = "Par�metro inv�lido.",
		notHaveSkin = "Nenhuma skin",
		SkinInfo = "Sistema de Skin dasdsadsad",
		SkinList = "Voc� t�m as Skin's: \n\n",
		
	},
	
}

function doPlayerAddSkin(cid, id)

	if not SkinIdIsValid(id) then
		doPlayerSendCancel(cid,Main_skinConfig.dataTxt.notIsValid)
		return false
	elseif not canAddSkin(cid) then
		doPlayerSendCancel(cid, Main_skinConfig.dataTxt.maxReached)
		return false
	elseif getSkinVocationName(id) then
		if not getVocationInfo(getPlayerVocation(cid)).name:find(getSkinVocationName(id)) then
			doSendMagicEffect(getCreaturePosition(cid),2)
			doPlayerSendCancel(cid, string.format(Main_skinConfig.dataTxt.onlyVocation,getSkinVocationName(id)))
			return false
		end
	end
	
	for SkinStorage = Main_skinConfig.baseStorage,Main_skinConfig.baseStorage+Main_skinConfig.limit do
		if getPlayerStorageValue(cid,SkinStorage) == id then
			doSendMagicEffect(getCreaturePosition(cid),2)
			doPlayerSendCancel(cid, Main_skinConfig.dataTxt.hasSkin)
			return false
		end
		if getPlayerStorageValue(cid,SkinStorage) == -1 then
			setPlayerStorageValue(cid, SkinStorage, id)
			doSendMagicEffect(getCreaturePosition(cid),4)
			doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, string.format(Main_skinConfig.dataTxt.onAddSuccess,getSkinName(id)))
			return true
		end
	end
	
	return false
end

function canAddSkin(cid)
	if getPlayerStorageValue(cid,Main_skinConfig.baseStorage+Main_skinConfig.limit) == -1 then
		return true
	end
	
	return false
end

function getSkinName(id)
	if not SkinIdIsValid(id) then return false end
	if not SkinIdIsValid(id,name) then return false end
	
	return Main_skinAvailable[id].name
end

function getSkinOutfitId(id)
	if not SkinIdIsValid(id) then return false end
	if not SkinIdIsValid(id,outfitId) then return false end
	
	return Main_skinAvailable[id].outfitId
end

function getSkinVocationName(id)
	if not SkinIdIsValid(id) then return false end
	if not SkinIdIsValid(id,vocationName) then return false end
	
	return Main_skinAvailable[id].vocationName
end


function SkinIdIsValid(id,param)

	if not param then
		if not Main_skinAvailable[id] then
			return false
		end
	elseif param then
		if not Main_skinAvailable[id].param then
			return false
		end
	end
	
	return true
end

function getSkinList(cid)
	local string = ""
	
	for SkinStorage = Main_skinConfig.baseStorage,Main_skinConfig.baseStorage+Main_skinConfig.limit do
		local skinId = getPlayerStorageValue(cid,SkinStorage)
		if  skinId ~= -1 then
			string = string.. ( SkinStorage ) - ( Main_skinConfig.baseStorage -1 ) .." | ".. getSkinName(skinId) .."\n"
		end
	end
	
	if string == "" then
		string = Main_skinConfig.dataTxt.notHaveSkin
	end
	
	return doPlayerPopupFYI(cid,Main_skinConfig.dataTxt.SkinList..string)
end

function doPlayerUseSkin(cid, position)

	if not tonumber(position) then
		doPlayerSendCancel(cid, Main_skinConfig.dataTxt.invalidParameter)
		return false
	elseif position < 0 or position > Main_skinConfig.limit then
		doPlayerSendCancel(cid, Main_skinConfig.dataTxt.invalidParameter)
		return false
	end
	
	local storage = (Main_skinConfig.baseStorage -1 ) + position
	
	if getPlayerStorageValue(cid,storage) == -1 then
		doPlayerSendCancel(cid, Main_skinConfig.dataTxt.notHasSkin)
		return false
	end
	
	local skinId = getPlayerStorageValue(cid,storage)
	
	if getSkinVocationName(skinId) then
		if not getVocationInfo(getPlayerVocation(cid)).name:find(getSkinVocationName(skinId)) then
			doSendMagicEffect(getCreaturePosition(cid),2)
			doPlayerSendCancel(cid, string.format(Main_skinConfig.dataTxt.onlyVocation,getSkinVocationName(skinId)))
			return false
		end
	elseif getCreatureOutfit(cid).lookType == getSkinOutfitId(skinId) then
		doPlayerSendCancel(cid, Main_skinConfig.dataTxt.usingSkin)
		return false
	end
	
	doSetCreatureOutfit(cid, {lookType = getSkinOutfitId(skinId)}, -1)
	doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, string.format(Main_skinConfig.dataTxt.onUseSuccess,getSkinName(skinId)))
	setPlayerStorageValue(cid, Main_skinConfig.checkRemoveSkinStorage,1)
	return true
end

function doPlayerRemoveSkin(cid)

	if getPlayerStorageValue(cid,Main_skinConfig.checkRemoveSkinStorage) == 1 then
		doRemoveCondition(cid, CONDITION_OUTFIT)
		doPlayerSendCancel(cid, Main_skinConfig.dataTxt.onRemoveSuccess)
		setPlayerStorageValue(cid, Main_skinConfig.checkRemoveSkinStorage,0)
		return true
	end
	
	doPlayerSendCancel(cid, Main_skinConfig.dataTxt.onRemoveFailed)
	return false
end

 

 

Actions.xml

 

<action itemid="11225" event="script" value="skin.lua"/>

 

Actions/scripts

Crie um arquivo com o nome skin.lua e coloque isso aqui dentro:

local skin = {
    [11204] = 1, -- [itemid] = skinid,
}

function onUse(cid, item, frompos, item2, topos)
    if not skin[item.itemid] then
        return false
    end

    if doPlayerAddSkin(cid, skin[item.itemid]) then
        doRemoveItem(item.uid,1)
    end
    return true
end

 

Agora vá em talkactions.xml e coloque isso aqui lá:

<talkaction words="!skin" event="script" value="skin.lua"/>

 

Em talkactions/scripts crie um arquivo com o nome skin.lua

e coloquei isso aqui:

function onSay(cid, words, param, channel)
    if param ~= "remover" or param ~= "remove" then
        doPlayerUseSkin(cid, tonumber(param))
    elseif param == "remover" or param == "remove" then
        doPlayerRemoveSkin(cid)
    end
return true
end

 

 

 

 

 

 

                                                                                                                                                     tumblr_nwmv2z4VEM1ujiquxo1_100.gif.2db64bb36f0f565e68ff2a90cb98f439.gif.59f4c4cf234d2f6906621cac0553a862.gif

https://github.com/italoxxx1

 

  • Respostas 16
  • Visualizações 3.2k
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • Id seria para usa o comando !skin 1, !skin 2.... name é o nome da outfit (Ex: Goku Blue), outfit é a sprite da skin igual do actions, e VocationName vc adiciona se quiser, Caso vc queira que apenas vo

  • Ai vc escolhe o item que vai vira a skin, e logo depois escolhe para qual outfit vai ser o item. Ex: [2364 -- ID QUALQUER DE ITEMS] = 500 -- Numero da skin que eu quero no Object Builder.

Postado
18 minutos atrás, ITALOx disse:

Olá rapaziada.

Hoje tô trazendo sistema de skin por comando.

Já vi muita gente pedindo por aqui e nunca teve resultado.

 

Então vamos lá!

 

 

Lib:

Crie um arquivo lua com o nome

210-skins

 

Actions.xml

 


<action itemid="11225" event="script" value="skin.lua"/>

 

Actions/scripts

Crie um arquivo com o nome skin.lua e coloque isso aqui dentro:


local skin = {
    [11204] = 1, -- [itemid] = skinid,
}

function onUse(cid, item, frompos, item2, topos)
    if not skin[item.itemid] then
        return false
    end

    if doPlayerAddSkin(cid, skin[item.itemid]) then
        doRemoveItem(item.uid,1)
    end
    return true
end

 

Agora vá em talkactions.xml e coloque isso aqui lá:


<talkaction words="!skin" event="script" value="skin.lua"/>

 

Em talkactions/scripts crie um arquivo com o nome skin.lua

e coloquei isso aqui:


function onSay(cid, words, param, channel)
    if param ~= "remover" or param ~= "remove" then
        doPlayerUseSkin(cid, tonumber(param))
    elseif param == "remover" or param == "remove" then
        doPlayerRemoveSkin(cid)
    end
return true
end

 

 

Créditos:

Italo (por trazer para a comunidade.)

Cara quem fez(não sei quem foi kk)

eu estava atraz disso, muito obrigado, mas me diga uma coisa, não consegui ver as skins disponivel, por exemplo, ao falar "!skin" fala parametro invalido, como faço para ver as skins que possuo e como removo ela?

  • 2 months later...
Postado
11 minutos atrás, Capitao wyz disse:

Oia so rapaz eu vim aqui pedir ajuda pra arrumar o meu e ja achei o seu haha ai sim em ajudou muito s2  

Boa mano, Voce conseguiu usas os outros comandos ?

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

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.6k

Informação Importante

Confirmação de Termo