Conectarse
Buscar
Mejores posteadores
XxStroksxX (463) | ||||
~*~[:Đαяќ:]~[:тιβια:]~*~ (366) | ||||
spoor (83) | ||||
Dj Pacos (73) | ||||
God Skit (68) | ||||
GoD MexicanSoul (40) | ||||
fuzzy (35) | ||||
Eddie (31) | ||||
GOD Chimito (30) | ||||
conalep1996 (23) |
Últimos temas
Temas más activos
Miembros que empiezan más temas
XxStroksxX | ||||
~*~[:Đαяќ:]~[:тιβια:]~*~ | ||||
God Skit | ||||
spoor | ||||
GoD MexicanSoul | ||||
fuzzy | ||||
Eddie | ||||
conalep1996 | ||||
Cletus | ||||
Dj Pacos |
[ACTION] Slot System
3 participantes
Página 1 de 1.
[ACTION] Slot System
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 :
2. Ahora crea "slot.lua" en actions/script/slot.lua y copia esto :
3. Ahora copia esta linea en creaturescripts.xml
4. Para terminar crea "slot.lua" en creaturescripts/script/slot.lua y copiale lo siguiente :
Eso seria todo!
Espero que les sirva
Creditos :
100% Mock
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
Creditos :
100% Mock
Última edición por Dj Pacos el Lun Mayo 02, 2011 6:46 am, editado 2 veces
Dj Pacos
Forero fase Beta- Recopilador
Edad : 35
Mensajes : 73
Localización : Thais
Fecha de inscripción : 21/04/2011
Re: [ACTION] Slot System
graande, gracias por compartir!
ahora te doy rep
ahora te doy rep
Famos
Curioso- VIP
Edad : 31
Mensajes : 6
Localización : Famous City
Fecha de inscripción : 02/05/2011
Re: [ACTION] Slot System
que bueno que te sirva
Dj Pacos
Forero fase Beta- Recopilador
Edad : 35
Mensajes : 73
Localización : Thais
Fecha de inscripción : 21/04/2011
Re: [ACTION] Slot System
oigan esto sirve para servers 8.7???
Glonlova
Fisgón- + New User +
Edad : 29
Mensajes : 10
Localización : Mexico
Fecha de inscripción : 02/05/2011
Re: [ACTION] Slot System
asi es. si sirve para esa version
Dj Pacos
Forero fase Beta- Recopilador
Edad : 35
Mensajes : 73
Localización : Thais
Fecha de inscripción : 21/04/2011
Re: [ACTION] Slot System
podrias pasarme tu msn y decirme como usarlo xq no puedo usarlo en el server
Glonlova
Fisgón- + New User +
Edad : 29
Mensajes : 10
Localización : Mexico
Fecha de inscripción : 02/05/2011
Re: [ACTION] Slot System
explica tu problema para poder ayudarte
Dj Pacos
Forero fase Beta- Recopilador
Edad : 35
Mensajes : 73
Localización : Thais
Fecha de inscripción : 21/04/2011
Re: [ACTION] Slot System
quiero saber como usar el slot y el upgrade porfavor Dj
Glonlova
Fisgón- + New User +
Edad : 29
Mensajes : 10
Localización : Mexico
Fecha de inscripción : 02/05/2011
Re: [ACTION] Slot System
ya te explique como usarlo por mp en otro foro. gracias por compartir tu duda
Dj Pacos
Forero fase Beta- Recopilador
Edad : 35
Mensajes : 73
Localización : Thais
Fecha de inscripción : 21/04/2011
Temas similares
» [Action, Movement] Tragaperras Casino (Slot Machine)
» [ACTION] Item Upgrade System
» [Action, Movement] Tres Rounds Tic-Tac-Toc System(Fixed Version + More Features)
» [Talkaction] New Rainbow System!
» [Varios] System Fly modificado y arreglado por mi
» [ACTION] Item Upgrade System
» [Action, Movement] Tres Rounds Tic-Tac-Toc System(Fixed Version + More Features)
» [Talkaction] New Rainbow System!
» [Varios] System Fly modificado y arreglado por mi
Página 1 de 1.
Permisos de este foro:
No puedes responder a temas en este foro.
|
|
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