Postado Fevereiro 5, 2021 4 anos 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 https://github.com/italoxxx1
Postado Fevereiro 5, 2021 4 anos 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?
Postado Abril 9, 2021 4 anos Boa mano, o único comando que está funcionando é o !skin numero, sabe como posso adiciona os outros ?
Postado Abril 9, 2021 4 anos Esse sistema é aquele q é skim por vocation ou é aquele q todo mundo pode usar a mesma skim igual etc ????? Editado Abril 9, 2021 4 anos por Capitao wyz (veja o histórico de edições)
Postado Abril 9, 2021 4 anos 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.