Dirección Ip
Conectarse

Recuperar mi contraseña

Buscar
 
 

Resultados por:
 

 


Rechercher Búsqueda avanzada

Mejores posteadores
XxStroksxX (462)
 
~*~[:Đαяќ:]~[:тιβια:]~*~ (366)
 
spoor (83)
 
Dj Pacos (73)
 
God Skit (68)
 
GoD MexicanSoul (40)
 
fuzzy (35)
 
Eddie (31)
 
GOD Chimito (30)
 
conalep1996 (23)
 

Últimos temas
» [???] [Super Naruto OT]
Lun Jun 08, 2015 12:08 pm por keishmer91

» [ACTION] God/GM da item a un player
Mar Dic 02, 2014 12:53 pm por hecmanos

» [8.60] Nuevo War Thais By TheRobertxon
Vie Jun 20, 2014 10:56 am por luismc

» [7.92]Naruto Final Story!
Dom Mayo 26, 2013 2:40 am por ricardotuck

» [9.1] Fun Server
Mar Mayo 14, 2013 5:32 pm por skifer

» [9.1] The Forgotten Server v0.2.11pl2 (Mystic Spirit)
Mar Mayo 14, 2013 5:29 pm por skifer

» New Map 8.60 (Darksystem) By: Turock & Gilio LIsto Arreglado El
Mar Mayo 07, 2013 5:27 pm por tonyso

» Ocean Clasic Global Map 8.6
Miér Mayo 01, 2013 11:19 pm por maganiua

» ayuda a abrir puertos
Lun Abr 29, 2013 5:58 pm por XxStroksxX

» [8.60] Speedy War
Dom Abr 28, 2013 5:51 pm por Sunnade'Audio

Upload Images
ImagesHack
Scanner
VirusTotal

[ACTION] Slot System

Ver el tema anterior Ver el tema siguiente Ir abajo

[ACTION] Slot System

Mensaje por Dj Pacos el Lun Mayo 02, 2011 6:10 am

Este script trata de que puedas abrir un slot para poder colocarle un Upgrade, de preferencia con el Item Upgrade System.

1. Primero agrega esto en actions.xml :

Código:

<action itemid="8300" event="script" value="slot.lua"/>

2. Ahora crea "slot.lua" en actions/script/slot.lua y copia esto :

Código:

---Config
local conf = {
maxSlotCount=2,
ignoredIds={}
}
--End
function choose(...) --- Function by mock.
        local arg = {...}
        return arg[math.random(1,#arg)]
end
if not getItemAttack then
        function getItemAttack(uid)
                return getItemAttribute(uid,'attack')
        end
        function getItemDefense(uid)
                return getItemAttribute(uid,'defense')
        end
end
local function isArmor(uid) -- Function by Mock the bear.
    if (getItemInfo(uid.itemid).armor ~= 0) and (getItemWeaponType(uid.uid) == 0) then
                return true
        end
        return false
end
local function isWeapon(uid) -- Function by Mock the bear.
        uid = uid or 0
        local f = getItemWeaponType(uid)
        if f == 1 or f == 2 or f == 3 then
                return true
        end
        return false
end
local function isShield(uid) -- Function by Mock the bear.
        uid = uid or 0
        if getItemWeaponType(uid) == 4 then
                return true
        end
        return false
end
local function isBow(uid) -- Function by Mock the bear.
        uid = uid or 0
        if getItemWeaponType(uid) == 5 and not isItemStackable(uid) then
                return true
        end
        return false
end
function onUse(cid, item, fromPosition, itemEx, toPosition) -- Script by mock the bear (MTB)
        if item.uid == 0 or item.itemid == 0 then return false end
        toPosition.stackpos = 255
        if item.uid == 0 or item.itemid == 0 then return false end
        toPosition.stackpos = 255
    if isInArray(conf.ignoredIds, itemEx.itemid)
        or (not getItemWeaponType(itemEx.uid) or getItemWeaponType(itemEx.uid) > 5)
        or (getItemWeaponType(itemEx.uid) == 0 and not isArmor(itemEx))
        or itemEx.itemid == 0 or itemEx.type > 1 or isItemStackable(itemEx.uid) then
        doPlayerSendTextMessage(cid, 24,"You cant open a slot on this item.")
        return TRUE
    end
    if isCreature(itemEx.uid) then
        return FALSE
    end
        local nam = getItemName(itemEx.uid)
        function getper()
                local n = 1
                for i=1,10 do
                        n = n+math.random(0,10)
                        if n < 8*i then
                                break
                        end
                end
                return n
        end
        function getSlotCount(nam)
                local c = 0
                for _ in nam:gmatch('%[(.-)%]') do
                        c = c+1
                end
                return c
        end
        if getSlotCount(nam) < conf.maxSlotCount then
                local l = choose('hp','mp','ml','cas','shield','dist')
                local p = getper()
 
                doSendMagicEffect(toPosition,30)
                nam = nam..' ['..l..'.+'..p..'%]'
                doSendAnimatedText(toPosition,l..' '..p..'%',120)
                doItemSetAttribute(itemEx.uid,'name',nam)
                doRemoveItem(item.uid,1)
        else
                doPlayerSendTextMessage(cid, 24,"You cant open a slot on this item.")
        end
        return true
end

3. Ahora copia esta linea en creaturescripts.xml

Código:

<event type="login" name="SlotLogin" script="slot.lua"/>

4. Para terminar crea "slot.lua" en creaturescripts/script/slot.lua y copiale lo siguiente :

Código:

local conditionMP,conditionHP,conditionML,conditionCLUB,conditionSHI,conditionDIST,conditionAMP = {},{},{},{},{},{},{}
for i=1,100 do ---Carrega as conditions
        --- HP
        conditionHP[i] = createConditionObject(CONDITION_ATTRIBUTES)
        setConditionParam(conditionHP[i], CONDITION_PARAM_TICKS, -1)
        setConditionParam(conditionHP[i], CONDITION_PARAM_STAT_MAXHEALTHPERCENT, 100+i)
        setConditionParam(conditionHP[i], CONDITION_PARAM_BUFF, true)
        setConditionParam(conditionHP[i], CONDITION_PARAM_SUBID, 50)
        --MANA
        conditionMP[i] = createConditionObject(CONDITION_ATTRIBUTES)
        setConditionParam(conditionMP[i], CONDITION_PARAM_TICKS, -1)
        setConditionParam(conditionMP[i], CONDITION_PARAM_STAT_MAXMANAPERCENT, 100+i)
        setConditionParam(conditionMP[i], CONDITION_PARAM_BUFF, true)
        setConditionParam(conditionMP[i], CONDITION_PARAM_SUBID, 51)
        --Magic level
        conditionML[i] = createConditionObject(CONDITION_ATTRIBUTES)
        setConditionParam(conditionML[i], CONDITION_PARAM_TICKS, -1)
        setConditionParam(conditionML[i], CONDITION_PARAM_STAT_MAGICLEVELPERCENT, 100+i)
        setConditionParam(conditionML[i], CONDITION_PARAM_BUFF, true)
        setConditionParam(conditionML[i], CONDITION_PARAM_SUBID, 52)
        --club axe sword
        conditionCLUB[i] = createConditionObject(CONDITION_ATTRIBUTES)
        setConditionParam(conditionCLUB[i], CONDITION_PARAM_TICKS, -1)
        setConditionParam(conditionCLUB[i], CONDITION_PARAM_SKILL_CLUBPERCENT, 100+i)
        setConditionParam(conditionCLUB[i], CONDITION_PARAM_SKILL_SWORDPERCENT, 100+i)
        setConditionParam(conditionCLUB[i], CONDITION_PARAM_SKILL_AXEPERCENT, 100+i)
        setConditionParam(conditionCLUB[i], CONDITION_PARAM_BUFF, true)
        setConditionParam(conditionCLUB[i], CONDITION_PARAM_SUBID, 53)
        --- shield
        conditionSHI[i] = createConditionObject(CONDITION_ATTRIBUTES)
        setConditionParam(conditionSHI[i], CONDITION_PARAM_TICKS, -1)
        setConditionParam(conditionSHI[i], CONDITION_PARAM_SKILL_SHIELDPERCENT, 100+i)
        setConditionParam(conditionSHI[i], CONDITION_PARAM_BUFF, true)
        setConditionParam(conditionSHI[i], CONDITION_PARAM_SUBID, 54)
        --- dist
        conditionDIST[i] = createConditionObject(CONDITION_ATTRIBUTES)
        setConditionParam(conditionDIST[i], CONDITION_PARAM_TICKS, -1)
        setConditionParam(conditionDIST[i], CONDITION_PARAM_SKILL_DISTANCEPERCENT, 100+i)
        setConditionParam(conditionDIST[i], CONDITION_PARAM_BUFF, true)
        setConditionParam(conditionDIST[i], CONDITION_PARAM_SUBID, 55)
end
function getSlotType(n) --By mock the bear
        if not n then
                return false
        end
        if n:match('%[(.+)%]') then
                n = n:match('%[(.+)%]')
                if n == '?' then
                        return 0,n
                else
                        return n:match('(.-)%.([+-])(%d+)%%')
                end
        else
                return false
        end
 
end
local function loadSet(cid)
        local t = {}
        for slot=1,9 do
                t[slot] = ''
 
                local s = getPlayerSlotItem(cid,slot).uid
                if s ~= 0 then
                        t[slot] = getItemName(s)
                end
        end
        return t
end
function isInArray2(arr,var) -- Because in some servers it return 1 and 0 and others true and false
        for i,b in pairs(arr) do
                if var == b then
                        return true
                end
        end
        return false
end
function check2(cid,i)
        if i == 5 or i == 6 then
                if isInArray({'head','necklace','backpack','body','legs','feet'
,'ring'},getItemValue(getPlayerSlotItem(cid,i).itemid,'slotType') or '') then
                        return false
                end
        end
        return true
end
function chk(cid,f)
        if not isPlayer(cid) then return end
        local t = loadSet(cid)
        for i=1,#f do
                if f[i] ~= t[i] then
                        equip(cid,nil,slot)
                        break
                end
        end
        addEvent(chk,2000,cid,t)
end
items = { ---- Only to get attr: slotType because getItemName dont return it -.-'
        _VERSION='1.0 By mock',
        XML_DIR='data/items/items.xml',
        }
do
        local ia = os.clock()
        io.write('Loading items')
        local i = io.open(items.XML_DIR,'r')
        local u = i:read(-1)
        i:close()
        local u = u:match('<items>(.+)</items>')
        for mi,id,mid,name,data,me in u:gmatch('<(%a-)%s*id%s*=%s*"(%d+)"%s*(.-)%s*name%s*=%s*"(.-)"%s*>(.-)<
/(%a*)>') do
                if mi == 'item' and me == 'item' then
                        local td = {name=name,id=id,type=1}
                        for key,value in data:gmatch('<attribute key="(.-)" value="(.-)"/>') do
                                td[key] = value
                        end
                        for key,value in mid:gmatch('(.-)="(.-)"') do
                                td[key] = value
                        end
                        items[tonumber(id)] = td
 
                        items[name] = td
                end
        end
        for mi,id,mid,name,data in u:gmatch('<(%a-)%s*id%s*=%s*"(%d*)"%s*(.-)%s*name%s*=%s*"(%a+)"%s*/>'
) do
                if mi == 'item' then
                        local td = {name=name,id=id,type=2}
                        for key,value in mid:gmatch('(.-)="(.-)"') do
                                td[key] = value
                        end
                        items[tonumber(id)] = td
                        items[name] = td
                end
        end
        io.write('[done '..os.clock()-ia..']\n')
end
function getItemValue(item,value)
        return items[item] and items[item][value]
end
function equip(cid,item,slot) --By mock the bear
        local HP = getCreatureHealth(cid)
        local MP = getCreatureMana(cid)
        local t = {}
        if item then
                local mm,sinal,qto = getSlotType(getItemName(item.uid))
                t[mm] = tonumber(qto)
        end
        for i=1,9 do -- Not on slot 10 > arrow
                if i ~= slot then
                        if getPlayerSlotItem(cid,i).itemid ~= 0 then
                                local aab = getPlayerSlotItem(cid,i).uid
                                if aab and check2(cid,i) then
                                        for _ in getItemName(aab):gmatch('(%[.-%])') do
                                                local mm,sinal,qto2 = getSlotType(_)
                                                if mm then
                                                        if not t[mm] then
                                                                t[mm] = 0
                                                        end
                                                        t[mm] = t[mm]+tonumber(qto2)
 
                                                        t[mm] = t[mm] > 100 and 100 or t[mm]
                                                end
                                        end
                                end
                        end
                end
        end
        local fu = 0
        local ca = {}
        local s = ''
        for sl,n in pairs(t) do
                fu = fu+1
                s = s..''..n..'% more of '..sl..'\n'
                if sl == 'hp' then
                        doAddCondition(cid,conditionHP[tonumber(n)])
                        doCreatureAddHealth(cid,HP-getCreatureHealth(cid))
                        ca[50] = 1
                        doPlayerSendTutorial(cid,19)
                elseif sl == 'mp' then
                        doAddCondition(cid,conditionMP[tonumber(n)])
                        doCreatureAddMana(cid,HP-getCreatureMana(cid))
                        ca[51] = 1
                        doPlayerSendTutorial(cid,19)
                elseif sl == 'ml' then
                        doAddCondition(cid,conditionML[tonumber(n)])
                        ca[52] = 1
                elseif sl == 'cas' then
                        doAddCondition(cid,conditionCLUB[tonumber(n)])
                        ca[53] = 1
                elseif sl == 'shield' then
                        doAddCondition(cid,conditionSHI[tonumber(n)])
                        ca[54] = 1
                elseif sl == 'dist' then
                        doAddCondition(cid,conditionDIST[tonumber(n)])
                        ca[55] = 1
                end
        end
        if fu > 0 then
                addEvent(doPlayerSendTextMessage,100,cid,24,'You have:\n'..s)
                for i=50,55 do
                        if not ca[i] then
                                doRemoveCondition(cid,CONDITION_ATTRIBUTES,i)
                        end
                end
        else
                for i=50,55 do
                        doRemoveCondition(cid,CONDITION_ATTRIBUTES,i)
                end
        end
        return true
end
function onLogin(cid) ---Script by mock the bear!
        equip(cid,nil,slot)
        addEvent(chk,2000,cid,loadSet(cid)) -- Here we check!
        return TRUE
end

Eso seria todo!

Espero que les sirva Smile

Creditos :

100% Mock


Última edición por Dj Pacos el Lun Mayo 02, 2011 6:46 am, editado 2 veces


Editando por un mundo mejor.


avatar
Dj Pacos

Forero fase Beta
Forero fase Beta

Recopilador
Masculino Mexico Pez Serpiente
Safari
Edad Edad : 28
Mensajes Mensajes : 73
Localización Localización : Thais
Fecha de inscripción Fecha de inscripción : 21/04/2011

Ver perfil de usuario

Volver arriba Ir abajo

Re: [ACTION] Slot System

Mensaje por Famos el Lun Mayo 02, 2011 6:36 am

graande, gracias por compartir!

ahora te doy rep
avatar
Famos

Curioso
Curioso

VIP
Masculino Peru Géminis Mono
Firefox
Edad Edad : 25
Mensajes Mensajes : 6
Localización Localización : Famous City
Fecha de inscripción Fecha de inscripción : 02/05/2011

Ver perfil de usuario

Volver arriba Ir abajo

Re: [ACTION] Slot System

Mensaje por Dj Pacos el Lun Mayo 02, 2011 6:48 am

que bueno que te sirva Smile


Editando por un mundo mejor.


avatar
Dj Pacos

Forero fase Beta
Forero fase Beta

Recopilador
Masculino Mexico Pez Serpiente
Safari
Edad Edad : 28
Mensajes Mensajes : 73
Localización Localización : Thais
Fecha de inscripción Fecha de inscripción : 21/04/2011

Ver perfil de usuario

Volver arriba Ir abajo

Re: [ACTION] Slot System

Mensaje por Glonlova el Miér Mayo 04, 2011 11:56 am

oigan esto sirve para servers 8.7???
avatar
Glonlova

Fisgón
Fisgón

+ New User +
Masculino Mexico Capricornio Perro
Chrome
Edad Edad : 22
Mensajes Mensajes : 10
Localización Localización : Mexico
Fecha de inscripción Fecha de inscripción : 02/05/2011

Ver perfil de usuario

Volver arriba Ir abajo

Re: [ACTION] Slot System

Mensaje por Dj Pacos el Miér Mayo 04, 2011 12:48 pm

asi es. si sirve para esa version


Editando por un mundo mejor.


avatar
Dj Pacos

Forero fase Beta
Forero fase Beta

Recopilador
Masculino Mexico Pez Serpiente
Safari
Edad Edad : 28
Mensajes Mensajes : 73
Localización Localización : Thais
Fecha de inscripción Fecha de inscripción : 21/04/2011

Ver perfil de usuario

Volver arriba Ir abajo

Re: [ACTION] Slot System

Mensaje por Glonlova el Miér Mayo 04, 2011 12:57 pm

podrias pasarme tu msn y decirme como usarlo xq no puedo usarlo en el server
avatar
Glonlova

Fisgón
Fisgón

+ New User +
Masculino Mexico Capricornio Perro
Chrome
Edad Edad : 22
Mensajes Mensajes : 10
Localización Localización : Mexico
Fecha de inscripción Fecha de inscripción : 02/05/2011

Ver perfil de usuario

Volver arriba Ir abajo

Re: [ACTION] Slot System

Mensaje por Dj Pacos el Miér Mayo 04, 2011 1:01 pm

explica tu problema para poder ayudarte


Editando por un mundo mejor.


avatar
Dj Pacos

Forero fase Beta
Forero fase Beta

Recopilador
Masculino Mexico Pez Serpiente
Safari
Edad Edad : 28
Mensajes Mensajes : 73
Localización Localización : Thais
Fecha de inscripción Fecha de inscripción : 21/04/2011

Ver perfil de usuario

Volver arriba Ir abajo

Re: [ACTION] Slot System

Mensaje por Glonlova el Jue Mayo 05, 2011 5:24 am

quiero saber como usar el slot y el upgrade porfavor Dj
avatar
Glonlova

Fisgón
Fisgón

+ New User +
Masculino Mexico Capricornio Perro
Chrome
Edad Edad : 22
Mensajes Mensajes : 10
Localización Localización : Mexico
Fecha de inscripción Fecha de inscripción : 02/05/2011

Ver perfil de usuario

Volver arriba Ir abajo

Re: [ACTION] Slot System

Mensaje por Dj Pacos el Vie Mayo 06, 2011 11:55 am

ya te explique como usarlo por mp en otro foro. gracias por compartir tu duda Smile


Editando por un mundo mejor.


avatar
Dj Pacos

Forero fase Beta
Forero fase Beta

Recopilador
Masculino Mexico Pez Serpiente
Safari
Edad Edad : 28
Mensajes Mensajes : 73
Localización Localización : Thais
Fecha de inscripción Fecha de inscripción : 21/04/2011

Ver perfil de usuario

Volver arriba Ir abajo

Re: [ACTION] Slot System

Mensaje por Contenido patrocinado


Contenido patrocinado


Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba

- Temas similares

 
Permisos de este foro:
No puedes responder a temas en este foro.