Thứ Hai, 25 tháng 11, 2013

share code chuyển sinh cho ai cần

Tạm gọi là "Cải lão hoàn đồng" cho nó oai. Download về đổi ID và thêm vào Script.dat là được. Hoặc có thể sử dụng ID có sẵn của một NPC nào đó chẳng hạn...

Update danh hiệu Kiếm Thế dựa theo số lần "cải lão hoàn đồng", ai ko thích có thể đổi lại.
Code:
--Tuyªt Bång Phong
--ID: 900087
--Script by Sói Ðz
--Name = Hoàng Anh
--************************

x900087_g_ScriptId = 900087

--*****************************--
--*     On Default Event     *--
--*****************************--
function x900087_OnDefaultEvent(sceneId,selfId,targetId)

 BeginEvent(sceneId)
  AddText(sceneId,"Ta là #GHoàng Anh#W.")
  AddText(sceneId,"#GTuyªt Bång Phong#W lÕnh l¨o vô cùng, ai ðã ðªn ðßþc n½i này hÆn dûng khí không h« nhö. Các hÕ ðã ðªn ðây thì ta sÇn sàng tiªp ðón.")
  AddText(sceneId,"Chï c¥n các hÕ ðÕt ðªn c¤p ðµ #G120#W thì có th¬ ðªn ch² tÕi hÕ tiªn hành #GCäi lão hoàn ð°ng#W. Sau khi #Gcäi lão hoàn ð°ng#W, t¤t cä thuµc tính #Gkhông thay ð±i#W, các hÕ s¨ tr· v« #Gc¤p 40#W!")
  AddText(sceneId,"#GCäi lão hoàn ð°ng#W càng nhi«u l¥n thì s¯ ði¬m thuµc tính càng l¾n!")
  AddNumText(sceneId,x900087_g_ScriptId,"#GCäi lão hoàn ð°ng",2,1)
  AddNumText(sceneId,x900087_g_ScriptId,"Xem s¯ l¥n #GCäi lão hoàn ð°ng",2,2)
  AddNumText(sceneId,x900087_g_ScriptId,"Nh§n danh hi®u",2,3)
  AddNumText(sceneId,x900087_g_ScriptId,"V« #Gcäi lão hoàn ð°ng#W",11,4)
 EndEvent(senceId)
 DispatchEventList(sceneId,selfId,targetId)
 
end
--*****************************--
--*     On Event Request   *--
--*****************************--
function x900087_OnEventRequest(sceneId,selfId,targetId,eventId)
local key = GetNumText()

 --*****************--
 local num = GetMissionData(sceneId,selfId,MD_ZHUANSHENG)
 if key == 1 then
  
  BeginEvent(sceneId)
   AddText(sceneId,"Sau khi #Gcäi lão hoàn ð°ng#W, các hÕ s¨ tr· v« c¤p ðµ 40!")
   AddText(sceneId,"Các hÕ xác nh§n #Gcäi lão hoàn ð°ng#W?")
   AddNumText(sceneId,x900087_g_ScriptId,"Cäi lão hoàn ð°ng",2,100)
  EndEvent(sceneId)
  DispatchEventList(sceneId,selfId,targetId)
  
 end
 --*****************--
 if key == 100 then
  
  if GetLevel(sceneId,selfId) < 120 then
   BeginEvent(sceneId)
    AddText(sceneId,"Chï có th¬ #Gcäi lão hoàn ð°ng#W sau khi ðÕt c¤p #G120#W tr· lên!")
    AddText(sceneId,"Hãy ði tu luy®n thêm, khi nào ðÕt #Gc¤p 120#W lÕi ðªn ch² ta tiªn hành #Gcäi lão hoàn ð°ng#W nhé!")
   EndEvent(sceneId)
   DispatchEventList(sceneId,selfId,targetId)
  elseif num>200 then
   BeginEvent(sceneId)
    AddText(sceneId,"Chï có th¬ #Gcäi lão hoàn ð°ng#W t¯i ða #G200#W l¥n!")
    AddText(sceneId,"Các hÕ ðã #Gcäi lão hoàn ð°ng#W ðÕt ðªn ngßÞng này r°i thì ðã #GThiên hÕ vô ð¸ch#W, không c¥n #Gcäi lão hoàn ð°ng#W thêm næa!")
   EndEvent(sceneId)
   DispatchEventList(sceneId,selfId,targetId)
  else
   SetLevel(sceneId,selfId,40)
   num = GetMissionData(sceneId,selfId,MD_ZHUANSHENG)
   SetMissionData(sceneId,selfId,MD_ZHUANSHENG,num+1)
   BeginEvent(sceneId)
    AddText(sceneId,"Chúc m×ng các hÕ ðã #Gcäi lão hoàn ð°ng#W thành công. C¤p ðµ hi®n tÕi cüa các hÕ là #GC¤p 40#W!")
    AddText(sceneId,"S¯ l¥n các hÕ #Gcäi lão hoàn ð°ng#W tính ðªn hi®n tÕi là #G"..num.." l¥n#W!")
    AddText(sceneId,"Hãy ði tu luy®n thêm, khi nào ðÕt #Gc¤p 120#W lÕi ðªn ch² ta tiªn hành #Gcäi lão hoàn ð°ng#W nhé!")
   EndEvent(sceneId)
   DispatchEventList(sceneId,selfId,targetId)
  end
  
 end
 --*****************--
 if key == 2 then
  
  num = GetMissionData(sceneId,selfId,MD_ZHUANSHENG)
  BeginEvent(sceneId)
   AddText(sceneId,"S¯ l¥n #Gcäi lão hoàn ð°ng#W cüa các hÕ tính t¾i hi®n tÕi là: #G"..num.." l¥n#W!")
   AddText(sceneId,"T¯i ða còn lÕi "..(200-num).." l¥n #Gcäi lão hoàn ð°ng#W næa!")
  EndEvent(sceneId)
  DispatchEventList(sceneId,selfId,targetId)
 
 end
 --*****************--
 if key == 3 then
  
  BeginEvent(sceneId)
   AddText(sceneId,"Các hÕ mu¯n ð±i danh hi®u nào?")
   AddNumText(sceneId,x900087_g_ScriptId,"#W#bSiêu Phàm Hi Ký",11,5)
   AddNumText(sceneId,x900087_g_ScriptId,"#G#bXu¤t Tr¥n Kinh H°ng",11,6)
   AddNumText(sceneId,x900087_g_ScriptId,"#G#bLång Tuy®t Vø Änh",11,7)
   AddNumText(sceneId,x900087_g_ScriptId,"#c00ff00#bNgñ Không Phùng Hß",11,8)
   AddNumText(sceneId,x900087_g_ScriptId,"#c00ff00#bH²n Thiên Tr¤n Nguyên",11,9)
   AddNumText(sceneId,x900087_g_ScriptId,"#c00ff00#bS° Phßþng Linh Vû",11,10)
   AddNumText(sceneId,x900087_g_ScriptId,"#Y#bTi«m Long Ngâm Uyên",11,11)
   AddNumText(sceneId,x900087_g_ScriptId,"#Y#bChí Tôn Truy«n Thuyªt",11,12)
   AddNumText(sceneId,x900087_g_ScriptId,"#cFF0000#bVô Song Vß½ng Giä",11,13)
  EndEvent(sceneId)
  DispatchEventList(sceneId,selfId,targetId)
 
 end
 --*****************--
 if key == 4 then
  
  BeginEvent(sceneId)
   AddText(sceneId,"Sau khi #Gcäi lão hoàn ð°ng#W, các thuµc tính #Gtâm pháp môn phái#W không thay ð±i!")
   AddText(sceneId,"#GCäi lão hoàn ð°ng#W càng nhi«u l¥n, sÑc mÕnh cüa các hÕ càng tång!")
   AddText(sceneId,"Sau khi ðÕt mµt s¯ m¯c v« s¯ l¥n #Gcäi lão hoàn ð°ng#W c¯ ð¸nh, có th¬ lînh nh§n danh hi®u cao quý vô cùng!")
  EndEvent(sceneId)
  DispatchEventList(sceneId,selfId,targetId)
 
 end
 --*****************--
 if key == 5 then
  
  num = GetMissionData(sceneId,selfId,MD_ZHUANSHENG)
  if num < 1 then
   BeginEvent(sceneId)
    AddText(sceneId,"бi danh hi®u #GSiêu Phàm Hi Ký#W c¥n #G1 l¥n#W thành công #Gcäi lão hoàn ð°ng#W!")
    AddText(sceneId,"S¯ l¥n #Gcäi lão hoàn ð°ng#W cüa các hÕ hi®n tÕi là "..num..", vçn chßa ðü #G1 l¥n#W, không th¬ nh§n danh hi®u!")
   EndEvent(sceneId)
   DispatchEventList(sceneId,selfId,targetId)
  else
   LuaFnAwardSpouseTitle(sceneId,selfId,"#W#bSiêu Phàm Hi Ký")
   DispatchAllTitle(sceneId,selfId)
   BeginEvent(sceneId)
    AddText(sceneId,"Chúc m×ng các hÕ nh§n thành công danh hi®u #W#bSiêu Phàm Hi Ký#W!")
   EndEvent(sceneId)
   DispatchEventList(sceneId,selfId,targetId)
  end
 
 end
 --*****************--
 if key == 6 then
  
  num = GetMissionData(sceneId,selfId,MD_ZHUANSHENG)
  if num < 10 then
   BeginEvent(sceneId)
    AddText(sceneId,"бi danh hi®u #GXu¤t Tr¥n Kinh H°ng#W c¥n #G10 l¥n#W thành công #Gcäi lão hoàn ð°ng#W!")
    AddText(sceneId,"S¯ l¥n #Gcäi lão hoàn ð°ng#W cüa các hÕ hi®n tÕi là "..num..", vçn chßa ðü #G10 l¥n#W, không th¬ nh§n danh hi®u!")
   EndEvent(sceneId)
   DispatchEventList(sceneId,selfId,targetId)
  else
   LuaFnAwardSpouseTitle(sceneId,selfId,"#G#bXu¤t Tr¥n Kinh H°ng")
   DispatchAllTitle(sceneId,selfId)
   BeginEvent(sceneId)
    AddText(sceneId,"Chúc m×ng các hÕ nh§n thành công danh hi®u #G#bXu¤t Tr¥n Kinh H°ng#W!")
   EndEvent(sceneId)
   DispatchEventList(sceneId,selfId,targetId)
  end
 
 end
 --*****************--
 if key == 7 then
  
  num = GetMissionData(sceneId,selfId,MD_ZHUANSHENG)
  if num < 20 then
   BeginEvent(sceneId)
    AddText(sceneId,"бi danh hi®u #GLång Tuy®t Vø Änh#W c¥n #G20 l¥n#W thành công #Gcäi lão hoàn ð°ng#W!")
    AddText(sceneId,"S¯ l¥n #Gcäi lão hoàn ð°ng#W cüa các hÕ hi®n tÕi là "..num..", vçn chßa ðü #G20 l¥n#W, không th¬ nh§n danh hi®u!")
   EndEvent(sceneId)
   DispatchEventList(sceneId,selfId,targetId)
  else
   LuaFnAwardSpouseTitle(sceneId,selfId,"#G#bLång Tuy®t Vø Änh")
   DispatchAllTitle(sceneId,selfId)
   BeginEvent(sceneId)
    AddText(sceneId,"Chúc m×ng các hÕ nh§n thành công danh hi®u #G#bLång Tuy®t Vø Änh#W!")
   EndEvent(sceneId)
   DispatchEventList(sceneId,selfId,targetId)
  end
 
 end
 --*****************--
 if key == 8 then
  
  num = GetMissionData(sceneId,selfId,MD_ZHUANSHENG)
  if num < 40 then
   BeginEvent(sceneId)
    AddText(sceneId,"бi danh hi®u #GNgñ Không Phùng Hß#W c¥n #G40 l¥n#W thành công #Gcäi lão hoàn ð°ng#W!")
    AddText(sceneId,"S¯ l¥n #Gcäi lão hoàn ð°ng#W cüa các hÕ hi®n tÕi là "..num..", vçn chßa ðü #G40 l¥n#W, không th¬ nh§n danh hi®u!")
   EndEvent(sceneId)
   DispatchEventList(sceneId,selfId,targetId)
  else
   LuaFnAwardSpouseTitle(sceneId,selfId,"#c00ff00#bNgñ Không Phùng Hß")
   DispatchAllTitle(sceneId,selfId)
   BeginEvent(sceneId)
    AddText(sceneId,"Chúc m×ng các hÕ nh§n thành công danh hi®u #c00ff00#bNgñ Không Phùng Hß#W!")
   EndEvent(sceneId)
   DispatchEventList(sceneId,selfId,targetId)
  end
 
 end
 --*****************--
 if key == 9 then
  
  num = GetMissionData(sceneId,selfId,MD_ZHUANSHENG)
  if num < 60 then
   BeginEvent(sceneId)
    AddText(sceneId,"бi danh hi®u #GH²n Thiên Tr¤n Nguyên#W c¥n #G60 l¥n#W thành công #Gcäi lão hoàn ð°ng#W!")
    AddText(sceneId,"S¯ l¥n #Gcäi lão hoàn ð°ng#W cüa các hÕ hi®n tÕi là "..num..", vçn chßa ðü #G60 l¥n#W, không th¬ nh§n danh hi®u!")
   EndEvent(sceneId)
   DispatchEventList(sceneId,selfId,targetId)
  else
   LuaFnAwardSpouseTitle(sceneId,selfId,"#c00ff00#bH²n Thiên Tr¤n Nguyên")
   DispatchAllTitle(sceneId,selfId)
   BeginEvent(sceneId)
    AddText(sceneId,"Chúc m×ng các hÕ nh§n thành công danh hi®u #c00ff00#bH²n Thiên Tr¤n Nguyên#W!")
   EndEvent(sceneId)
   DispatchEventList(sceneId,selfId,targetId)
  end
 
 end
 --*****************--
 if key == 10 then
  
  num = GetMissionData(sceneId,selfId,MD_ZHUANSHENG)
  if num < 90 then
   BeginEvent(sceneId)
    AddText(sceneId,"бi danh hi®u #GS° Phßþng Linh Vû#W c¥n #G90 l¥n#W thành công #Gcäi lão hoàn ð°ng#W!")
    AddText(sceneId,"S¯ l¥n #Gcäi lão hoàn ð°ng#W cüa các hÕ hi®n tÕi là "..num..", vçn chßa ðü #G90 l¥n#W, không th¬ nh§n danh hi®u!")
   EndEvent(sceneId)
   DispatchEventList(sceneId,selfId,targetId)
  else
   LuaFnAwardSpouseTitle(sceneId,selfId,"#c00ff00#bS° Phßþng Linh Vû")
   DispatchAllTitle(sceneId,selfId)
   BeginEvent(sceneId)
    AddText(sceneId,"Chúc m×ng các hÕ nh§n thành công danh hi®u #c00ff00#bS° Phßþng Linh Vû#W!")
   EndEvent(sceneId)
   DispatchEventList(sceneId,selfId,targetId)
  end
 
 end
 --*****************--
 if key == 11 then
  
  num = GetMissionData(sceneId,selfId,MD_ZHUANSHENG)
  if num < 120 then
   BeginEvent(sceneId)
    AddText(sceneId,"бi danh hi®u #GTi«m Long Ngâm Uyên#W c¥n #G120 l¥n#W thành công #Gcäi lão hoàn ð°ng#W!")
    AddText(sceneId,"S¯ l¥n #Gcäi lão hoàn ð°ng#W cüa các hÕ hi®n tÕi là "..num..", vçn chßa ðü #G120 l¥n#W, không th¬ nh§n danh hi®u!")
   EndEvent(sceneId)
   DispatchEventList(sceneId,selfId,targetId)
  else
   LuaFnAwardSpouseTitle(sceneId,selfId,"#Y#bTi«m Long Ngâm Uyên")
   DispatchAllTitle(sceneId,selfId)
   BeginEvent(sceneId)
    AddText(sceneId,"Chúc m×ng các hÕ nh§n thành công danh hi®u #Y#bTi«m Long Ngâm Uyên#W!")
   EndEvent(sceneId)
   DispatchEventList(sceneId,selfId,targetId)
  end
 
 end
 --*****************--
 if key == 12 then
  
  num = GetMissionData(sceneId,selfId,MD_ZHUANSHENG)
  if num < 150 then
   BeginEvent(sceneId)
    AddText(sceneId,"бi danh hi®u #GChí Tôn Truy«n Thuyªt#W c¥n #G150 l¥n#W thành công #Gcäi lão hoàn ð°ng#W!")
    AddText(sceneId,"S¯ l¥n #Gcäi lão hoàn ð°ng#W cüa các hÕ hi®n tÕi là "..num..", vçn chßa ðü #G150 l¥n#W, không th¬ nh§n danh hi®u!")
   EndEvent(sceneId)
   DispatchEventList(sceneId,selfId,targetId)
  else
   LuaFnAwardSpouseTitle(sceneId,selfId,"#Y#bChí Tôn Truy«n Thuyªt")
   DispatchAllTitle(sceneId,selfId)
   BeginEvent(sceneId)
    AddText(sceneId,"Chúc m×ng các hÕ nh§n thành công danh hi®u #Y#bChí Tôn Truy«n Thuyªt#W!")
   EndEvent(sceneId)
   DispatchEventList(sceneId,selfId,targetId)
  end
 
 end
 --*****************--
 if key == 13 then
  
  num = GetMissionData(sceneId,selfId,MD_ZHUANSHENG)
  if num < 200 then
   BeginEvent(sceneId)
    AddText(sceneId,"бi danh hi®u #GVô Song Vß½ng Giä#W c¥n #G200 l¥n#W thành công #Gcäi lão hoàn ð°ng#W!")
    AddText(sceneId,"S¯ l¥n #Gcäi lão hoàn ð°ng#W cüa các hÕ hi®n tÕi là "..num..", vçn chßa ðü #G200 l¥n#W, không th¬ nh§n danh hi®u!")
   EndEvent(sceneId)
   DispatchEventList(sceneId,selfId,targetId)
  else
   LuaFnAwardSpouseTitle(sceneId,selfId,"#cFF0000#bVô Song Vß½ng Giä")
   DispatchAllTitle(sceneId,selfId)
   BeginEvent(sceneId)
    AddText(sceneId,"Chúc m×ng các hÕ nh§n thành công danh hi®u #cFF0000#bVô Song Vß½ng Giä#W!")
   EndEvent(sceneId)
   DispatchEventList(sceneId,selfId,targetId)
  end
 
 end
 --*****************--
 
end

Tổng hợp ID skill pet (cho những ai chưa biết)

mình gom được cũng gần 90 % rùi , có 1 số skill mình tìm được , ai bít cái nào bổ sung giúp mình nha . thank ( có cái này add skill cho pet sẽ dễ dàng hơn ) 

1 ) Kỹ năng bình thường 

Cực băng ngưng sát 00EB02 
Kiếp hỏa phần Sát 00A102 
Hủ độc thực sát 00A202 
Huyền lôi kích sát 00A302 
Băng hồn 
Hỏa hồn 
Độc hồn 
Huyền hồn 
Huyết bão 00A402 
Hàn Băng chủ 00BE02 
Liệt Hỏa chú 01D202 
Huyết độc chú 00C002 
Huyền lôi chú 00C102 
Thánh bạo 00A602
Băng đạo 00A802
Tĩnh Hóa 00AA02 
Trùng sinh 00AC02
Cộng sinh 00AE02 
Trị Liệu 01B002
Nhục Tường 
Thần hựu 01B402
Thị Huyết 00B602
Ngụy trang 00BA02 
Phụ thân 
Phản kích 00C202
Hấp huyết 00C402
Phản chấn 00C602
Linh động 00C802
Hấp khí 00CA02
Đả nộ 00CC02
Trung tâm 00CE02
Nội lực 00D002
Mãnh kích 01D202
Thức phá 00D402
Hư nhươc 00DA02
Phá triền 00DC02
Vật ngã 01DE02
Liên kích 00D602
Thống kích 01D802
Tá lực 009602
Di hồn 009802
thuẫn ảnh 009A02
Cường thân 009C02
Giải huyệt 
Thanh tỉnh 00E102
Minh mục 00E202
Cổ nguyên
Sái thoái 00E502
Giảo hoạt 019102
Mạn lực 009502 hoac 019502
Pháp hồn 009402 
Trì độn 009002
Mộc mạc 009202 
Huyền thú 008F02
Độc cổ 008E02 
Hỏa Linh 018D02 
Băng tinh 008C02
Bính mệnh 009302
Kinh linh 00E302

2 ) Kỹ năng cao cấp

Gầm thét 00EB02 
Cao ngưng thần 009F02 
Băng thiên tuyết dịa 00E602
Liệt hỏa liệu nguyên 00E702
Huyết độc vạn lý 00E802
Ngũ lôi oanh đỉnh 00E902 
Cao huyết bão 00A502
Cao thánh bạo 00A702
Cao băng đạo 00A902
Cao tĩnh hóa 00AB02
Cao trùng sinh 
Cao cộng sinh 00AF02
Cao trị liệu
Cao nhục tường 00B302
Cao thần hựu 00B502
Cao thị huyết 00B702
Cao huyết tế 00B902
Cao ngụy trang
Cao phụ thân 00BD02
Cao phản kích 00C302 
Cao hấp huyết 00C502 
Cao phản chấn 00C702
Cai linh động 00C902
Cao hấp khí 00CB02
Cao đả nộ 00CD02
Cao thế sát 00CF02 
Cao nội lực 00D102
Cao mãnh kích 00C302
Cao thức phá 00D502
Cao hư nhược 00DB02
Cao phá triền 00DD02 
Cao vật ngã 00DF02
Cao liên kích 00C502
Cao thống kích 00C702
Cao tá lực 009702 
Cao di hồn 009902 
Cao thuẫn ảnh 009B02
Cao cường thân 009D02
VBB Forum Leecher

[ Share ] Scrip Đục Lổ và Cường Hóa tự động bất cứ Item nào

chức năng scrip này là đục lổ và cường hóa tự động thành công 100%.

Code:
--EDIT by AnBinh

--Sori : 261155903
x900070_g_scriptId = 900070

--Name : Duc Lo + Cuong Hoa Tu Dong Bat Cu Item Nao

--**********************************
--          --
--**********************************
function x900070_UpdateEventList( sceneId, selfId,targetId )
 BeginEvent(sceneId)
 AddText( sceneId, "  #Y Các hÕ c¥n ð¬ trang b¸ vào trong tay näi m¾i có th¬ tiªn hành :" ) 
 AddNumText( sceneId, x900070_g_scriptId, "#gffff00#YTñ еng #WÐøc L±", 10, 100)
 AddNumText( sceneId, x900070_g_scriptId, "#gffff00#YTñ еng #WC߶ng Hóa", 10, 200)
 EndEvent(sceneId)
 DispatchEventList(sceneId,selfId,targetId)
end

--**********************************
--          --
--**********************************
function x900070_OnDefaultEvent( sceneId, selfId,targetId )
 x900070_UpdateEventList( sceneId, selfId, targetId )
end

--**********************************
--          --
--**********************************
function x900070_OnEventRequest( sceneId, selfId, targetId, eventId )
 if GetNumText() == 200 then
  local bagbegin = GetBasicBagStartPos(sceneId, selfId)
  local bagend   = GetBasicBagEndPos(sceneId, selfId)
  for i=bagbegin, bagend do
        nLevel = GetBagItemLevel( sceneId, selfId, i )
               if nLevel <= 250 then
                           if LuaFnIsItemAvailable( sceneId, selfId, i ) == 1 then
                               LuaFnEquipEnhance( sceneId, selfId, i, 0 )
               end
               end
        end
        x900070_NotifyTip( sceneId, selfId, "C߶ng hóa trang b¸ thành công" )
        LuaFnSendSpecificImpactToUnit(sceneId, selfId, selfId, selfId, 18, 0)
 elseif GetNumText() == 100 then
  local tEquipGemTable = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 12, 14, 15, 16, 17, 18 }

  local Bore_Count   = GetBagGemCount( sceneId, selfId, 0 )
  local nLevel     = GetBagItemLevel( sceneId, selfId, 0 )
  local EquipType    = LuaFnGetBagEquipType( sceneId, selfId, 0 )
  local find      = 0
   for i, gem in tEquipGemTable do
    if gem == EquipType then
     find = 1
    end
   end
              AddBagItemSlot( sceneId, selfId, 0 )
              AddBagItemSlot( sceneId, selfId, 1 )
              AddBagItemSlot( sceneId, selfId, 2 )
              AddBagItemSlot( sceneId, selfId, 3 )
              AddBagItemSlot( sceneId, selfId, 4 )
              AddBagItemSlot( sceneId, selfId, 5 )
              AddBagItemSlot( sceneId, selfId, 6 )
              AddBagItemSlot( sceneId, selfId, 7 )
              AddBagItemSlot( sceneId, selfId, 8 )
              AddBagItemSlot( sceneId, selfId, 9 )
              AddBagItemSlot( sceneId, selfId, 10 )
              AddBagItemSlot( sceneId, selfId, 11 )
              AddBagItemSlot( sceneId, selfId, 12 )
              AddBagItemSlot( sceneId, selfId, 13 )
              AddBagItemSlot( sceneId, selfId, 14 )
              AddBagItemSlot( sceneId, selfId, 15 )
              AddBagItemSlot( sceneId, selfId, 16 )
              AddBagItemSlot( sceneId, selfId, 17 )
              AddBagItemSlot( sceneId, selfId, 18 )
              AddBagItemSlot( sceneId, selfId, 19 )
              AddBagItemSlot( sceneId, selfId, 20 )
              AddBagItemSlot( sceneId, selfId, 21 )
              AddBagItemSlot( sceneId, selfId, 22 )
              AddBagItemSlot( sceneId, selfId, 23 )
              AddBagItemSlot( sceneId, selfId, 24 )
              AddBagItemSlot( sceneId, selfId, 25 )
              AddBagItemSlot( sceneId, selfId, 26 )
              AddBagItemSlot( sceneId, selfId, 27 )
              AddBagItemSlot( sceneId, selfId, 28 )
              AddBagItemSlot( sceneId, selfId, 29 )
  x900070_NotifyTip( sceneId, selfId, "Ðøc l± trang b¸ thành công" )
  LuaFnSendSpecificImpactToUnit(sceneId, selfId, selfId, selfId, 18, 0)
 end
end

--**********************************
--          --
--**********************************
function x900070_OnMissionAccept( sceneId, selfId, targetId, missionScriptId )
 
end

--**********************************
--          --
--**********************************
function x900070_OnMissionRefuse( sceneId, selfId, targetId, missionScriptId )
 
end

--**********************************
--          --
--**********************************
function x900070_OnMissionContinue( sceneId, selfId, targetId, missionScriptId )

end

--**********************************
--          --
--**********************************
function x900070_OnMissionSubmit( sceneId, selfId, targetId, missionScriptId, selectRadioId )

end

--**********************************
--          --
--**********************************
function x900070_OnDie( sceneId, selfId, killerId )
end

--**********************************
--          --
--**********************************
function x900070_NotifyTip( sceneId, selfId, Msg )
 BeginEvent( sceneId )
  AddText( sceneId, Msg )
 EndEvent( sceneId )
 DispatchMissionTips( sceneId, selfId )
end
P/S : chức năng đục lổ này không đục được Long văn + PB. AE nào cần láy mà dùng hén 

- Để Item bất cứ chổ nào trong tây nải cũng đều đục và cườngng hóa được hết nhá.

[TLBB]Share bản nháp cơ chế tính năng điêu văn của TL Tình Kiếm

Đây là bản nháp cơ chế tính năng điêu văn của Thiên Long Tình Kiếm (http://tinhkiem.us

Các bạn có thể tham khảo, pro nào nghiên cứu được thì chia sẽ lại nhé  !

đầu tiên
có thao tác click chuột phải hoặc trái ở item trong túi đồ
client truyền lên Type = 0
và Prama = pos
sv check thông tin item và save id, dw,pos
khi có sự thay đổi item trên ng client truyền về sv type =1,prama =1
sv tiến hành check id,dw,pos của item khi bị click chuột trc đó
lúc này id ban nãy đã đc đeo len ng
có 2 trường hợp xảy ra
1 là trc khi đeo có trang bị item=> item đeo trên ng trc đó đc chuyển về túi đồ đặt vào vị trí pos ban nãy
lúc này check item vừa tháo ra
nếu có dw thì check kiểu dw=> nếu dw khác vs loại mới đeo thì - point của dw tháo và + point trang bị đeo
nếu dw cùng loại thì tiến hành add point có số point = (trang bị mới - trang bị tháo)
trường hợp 2 nếu trc đó trên ng ko trang bị=> chỉ việc cộng dw của trang bị mới đeo
TH hơi phức tạp

đó là quá trình đeo item
còn tháo item thì khi click phải chuột tháo item trên ng thì truyền type =2, prama=1
trường hợp này truyền trc khi item đc tháo ra
sv tiến hành check toàn bộ túi đồ và kiểm tra ô trống đầu tiên=> lưu vị trí ô trống
sau khi save thì sv tiến hành tháo item xuống=> item đc đặt tại vị trí trống ban nãy save
tháo xong client truyền type =2, pra =2
sv check vị trí ban nãy và check thông tin item vừa tháo nếu có dw thì xóa point
hết
Trích dẫn Gửi bởi tl2n Xem bài viết
Share thêm mớ code linh tinh này

PHP Code:
---NPC Tính nång Ðiêu  Vån--Authortinhkiem.us--Date13/12/2012

x000xxx_g_ScriptId 
000xxx
AllowEquipPoint 
= {0,1,2,3,4,5,6,12,14,15} --Các loÕi item có th¬ ÐV

ItemHopThanh 
={
           
        }
DWEquipPoint = {}DWMaterialType = {}DWMaterialType[0] = {
            }
DWMaterialType[2] = {
            }
DWMaterialType[3] = {
            }
DWMaterialType[4] = {
            }
NumberMaterial = {2,9,50,87,165,284,811,2088,3570}DWLevel = {10,20,40,70,110,140,170,210,240,280}

function 
x000xxx_OnDefaultEventsceneIdselfId,targetId )

    
BeginEvent(sceneId)
        
AddText(sceneId,"#{ZBDW_091105_1}")
        
AddNumTextsceneIdx000xxx_g_ScriptId"#{ZBDW_XML_1}",,1000  )
        
AddNumTextsceneIdx000xxx_g_ScriptId"#{ZBDW_XML_2}",,2000  )
        
AddNumTextsceneIdx000xxx_g_ScriptId"#{ZBDW_XML_3}",,3000  )
        
AddNumTextsceneIdx000xxx_g_ScriptId"#{ZBDW_XML_4}",,4000  )
        
AddNumTextsceneIdx000xxx_g_ScriptId"#{ZBDW_XML_6}",11 ,5000  )
    
EndEvent(sceneId)
    
DispatchEventList(sceneId,selfId,targetId)end  
Đấy chỉ là đoạn code mở đầu trong đám code điêu văn 

Cao thủ nào xuất hiện tiếp nào.

Ảnh minh hoạ lấy từ facebook.
Bấm vào đây để xem nội dung đầy đủ




[TLBB]Share code đục lỗ bất kỳ item nào

Trong TLBB khi sử dụng hàm đục lỗ trang bị, chúng ta chỉ có thể đục lỗ giới hạn một số loại trang bị.

Để có thể đục lỗ được bất kỳ trang bị nào hỗ trợ thì các bạn thực hiện chỉnh sửa ở database.

Nay, mình sẽ chia sẽ cách thức trên.


Chỉnh ở table t_iteminfo

Cột : giải thích
------------
p4 : qui định cố định/ không cố định
p5 : qui định đục lỗ
p1-3 : ngọc lỗ 1-3
p9 : qui định số * và trị số của thuộc tính
p10,p11: quy định các dòng thuộc tính, chỉ số thuộc tính (segvalue)
p12 : quy định chỉ số + của từng thuộc tính
p15 : thời gian đã khóa item
p16 : thời gian cần chờ khóa
--------------
Do đó, để đục lỗ item chỉ cần set giá trị p5 num
Với numlà số lỗ muốn có; giá trị p5 phải là giá trị ban đầu của item (không có lỗ)

- Cách thứ hai
ạn thử xem trong file EquipBase.txt xem xét cột thứ 4 (Item type) và cột thứ 6 (EquipPoint) giữa item cho phép đục lỗ và item không cho phép đục lỗ.
--Script khoan trang bị

--no script

x311200_g_ScriptId = 311200

function x311200_OnStiletto( sceneId, selfId, idBagPos, idBagPosStuff )

--Các thiết bị cho phép khoan
--0: vũ khí , 1: mão , 2: y phục , 3: thủ sáo , 4: hài
--5: yêu đái , 6: giới chỉ , 7: hạng liên , 12: hộ phù , 14: hộ uyển
--15: hộ kiên, 17 : ám khí, 18: pháp bảo
local tEquipGemTable = { 0, 1, 2, 3, 4, 5, 6, 7, 12, 14, 15,17,18 }

local Bore_Count = GetBagGemCount( sceneId, selfId, idBagPos )
local nLevel = GetBagItemLevel( sceneId, selfId, idBagPos )
local EquipType = LuaFnGetBagEquipType( sceneId, selfId, idBagPos )
local find = 0

for i, gem in tEquipGemTable do
if gem == EquipType then
find = 1
end
end
if find == 0 then
x311200_NotifyTip( sceneId, selfId, "Trang bị này không thể khoan" )
return
end

--ƠòƯừỳũỨẢ
ret = LuaFnStilettoCostExe( sceneId, selfId, nLevel*100+1+Bore_Count, idBagPosStuff )
if ret == -1 then
x311200_NotifyTip( sceneId, selfId, "Bảng kiểm tra thất bại, hỏi kế hoạch" )
return
elseif ret == -2 then
x311200_NotifyTip( sceneId, selfId, "Ngươi không có nguyên liệu thích hợp, không thể tiến hành thao tác này" )
return
elseif ret == -3 then
x311200_NotifyTip( sceneId, selfId, "Ngươi không đủ ngân lượng, không thể tiến hành thao tác này" )
return
elseif ret == -4 then
x311200_NotifyTip( sceneId, selfId, "Ngươi không đủ nguyên liệu, không thể tiến hành thao tác này" )
return
end

--ƠòƯừỷƠĐĐ
ret = AddBagItemSlot( sceneId, selfId, idBagPos )
if ret == -1 then
x311200_NotifyTip( sceneId, selfId, "Trang bị khoan thất bại" )
elseif ret == -2 then
x311200_NotifyTip( sceneId, selfId, "Sai nghiêm trọng" )
elseif ret == -3 then
x311200_NotifyTip( sceneId, selfId, "Cần phải đặt vào một trang bị" )
elseif ret == -4 then
x311200_NotifyTip( sceneId, selfId, "Không thể khoan được nữa" )
elseif ret == 1 then
x311200_NotifyTip( sceneId, selfId, "Trang bị khoan thành công" )
end

end

--**********************************
--script thông báo
--**********************************
function x311200_NotifyTip( sceneId, selfId, Msg )

BeginEvent( sceneId )
AddText( sceneId, Msg )
EndEvent( sceneId )
DispatchMissionTips( sceneId, selfId )

end

Thú cưỡi thì client nào cũng được. Chỉnh ở client và server như sau:
/home/tlbb/Public/Data/Script/event/stiletto/stiletto.lua :

Code:
   --×°±¸´ò¿×

--½Å±¾ºÅ
x311200_g_ScriptId    = 311200

function x311200_OnStiletto( sceneId, selfId, idBagPos, idBagPosStuff )

    --Các thiªt b¸ cho phép khoan
    --0: vû khí , 1: mão , 2: y phøc , 3: thü sáo , 4: hài 
    --5: yêu ðái , 6: gi¾i chï , 7: hÕng liên , 8: Thu cuoi, 12: hµ phù , 14: hµ uy¬n, 16: Thoi trang
    --15: hµ kiên, 17 : ám khí, 18: pháp bäo
    local    tEquipGemTable    = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 12, 14, 15, 16, 17, 18 }

    local    Bore_Count            = GetBagGemCount( sceneId, selfId, idBagPos )
    local nLevel                    = GetBagItemLevel( sceneId, selfId, idBagPos )
    local EquipType                = LuaFnGetBagEquipType( sceneId, selfId, idBagPos )
    local find                        = 0

    for i, gem in tEquipGemTable do
        if gem == EquipType then
            find                            = 1
        end
    end
    if find == 0 then
        x311200_NotifyTip( sceneId, selfId, "Trang b¸ này không th¬ khoan" )
        return
    end

    --´ò¿×ÏûºÄ
    ret    = LuaFnStilettoCostExe( sceneId, selfId, nLevel*100+1+Bore_Count, idBagPosStuff )
    
    if ret == -1 then
        x311200_NotifyTip( sceneId, selfId, "Bäng ki¬m tra th¤t bÕi, höi kª hoÕch" )
        return
    elseif ret == -2 then
        x311200_NotifyTip( sceneId, selfId, "Ngß½i không có nguyên li®u thích hþp, không th¬ tiªn hành thao tác này" )
        return
    elseif ret == -3 then
        x311200_NotifyTip( sceneId, selfId, "Ngß½i không ðü ngân lßþng, không th¬ tiªn hành thao tác này" )
        return
    elseif ret == -4 then
        x311200_NotifyTip( sceneId, selfId, "Ngß½i không ðü nguyên li®u, không th¬ tiªn hành thao tác này" )
        return
    end

    --´ò¿×Ö´ÐÐ
    ret = AddBagItemSlot( sceneId, selfId, idBagPos )    
    if ret == -1 then
        x311200_NotifyTip( sceneId, selfId, "Trang b¸ khoan th¤t bÕi" )
    elseif ret == -2 then
        x311200_NotifyTip( sceneId, selfId, "Sai nghiêm tr÷ng" )
    elseif ret == -3 then
        x311200_NotifyTip( sceneId, selfId, "C¥n phäi ð£t vào mµt trang b¸" )
    elseif ret == -4 then
        x311200_NotifyTip( sceneId, selfId, "Không th¬ khoan ðßþc næa" )
    elseif ret == 1 then
        x311200_NotifyTip( sceneId, selfId, "Trang b¸ khoan thành công" )
    end

end

--**********************************
--ÐÑÄ¿Ìáʾ
--**********************************
function x311200_NotifyTip( sceneId, selfId, Msg )

    BeginEvent( sceneId )
        AddText( sceneId, Msg )
    EndEvent( sceneId )
    DispatchMissionTips( sceneId, selfId )

end 
Client Interface/Stiletto/Stiletto.lua:
    PHP Code:    local EQUIP_BUTTONS;
local EQUIP_QUALITY = -1;
local MATERIAL_BUTTONS;
local MATERIAL_QUALITY = -1;
local Need_Item = 0
local Need_Money =0
local Need_Item_Count = 0
local Bore_Count=0
local objCared = -1;
local MAX_OBJ_DISTANCE = 3.0;

local g_Object = -1;

function Stiletto_PreLoad()

    this:RegisterEvent("UPDATE_STILETTO");
    this:RegisterEvent("UI_COMMAND");
    this:RegisterEvent("OBJECT_CARED_EVENT");
    this:RegisterEvent("PACKAGE_ITEM_CHANGED");
    this:RegisterEvent("RESUME_ENCHASE_GEM");
    

end

function Stiletto_OnLoad()
    EQUIP_BUTTONS = Stiletto_Item
    MATERIAL_BUTTONS = Stiletto_Material
end

function Stiletto_OnEvent(event)

        --PushDebugMessage(event)
    if ( event == "UI_COMMAND" and tonumber(arg0) == 25) then
            this:Show();
            -- Çå¿ÕÎïÆ•²Û zchw
            Stiletto_Clear();
            local xx = Get_XParam_INT(0);
            objCared = DataPool : GetNPCIDByServerID(xx);
            AxTrace(0,1,"xx="..xx .. " objCared="..objCared)
            if objCared == -1 then
                    PushDebugMessage("Dæ li®u cüa server truy«n tr• lÕi có v¤n ð«");
                    return;
            end
            BeginCareObject_Stiletto(objCared)
    elseif (event == "OBJECT_CARED_EVENT" and this:IsVisible()) then
        if(tonumber(arg0) ~= objCared) then
            return;
        end
        
        --Èç¹ûºÍNPCµÄ¾àÀë´óÓÚÒ»¶¨¾àÀë»òÕß±»É¾³ý£¬×Ô¶¯¹Ø±Õ
        if(arg1 == "distance" and tonumber(arg2)>MAX_OBJ_DISTANCE or arg1=="destroy") then
            
            --È¡Ïû¹ØÐÄ
            Stiletto_Cancel_Clicked()
        end

    elseif ( event == "PACKAGE_ITEM_CHANGED" and this:IsVisible() ) then

        if( arg0~= nil and -1 == tonumber(arg0)) then
            return;
        end

        
        if (EQUIP_QUALITY == tonumber(arg0) ) then
            Stiletto_Clear()
            Stiletto_Update(1,tonumber(arg0))
        end
            
        if (MATERIAL_QUALITY == tonumber(arg0) ) then
            Stiletto_Clear()
            Stiletto_Update(2,tonumber(arg0))
        end
    
        
    elseif ( event == "RESUME_STILETTO_EQUIP" ) then
        Resume_Equip(1);
    elseif( event == "UPDATE_STILETTO") then
        AxTrace(0,1,"arg0="..arg0)
        if arg0 == nil or arg1 == nil then
            return
        end

        Stiletto_Update(tonumber(arg0),tonumber(arg1));        

    elseif( event == "RESUME_ENCHASE_GEM" and this:IsVisible() ) then
        if(arg0~=nil and tonumber(arg0) == 3) then
            Resume_Equip_Stiletto(1);
        elseif(arg0~=nil and tonumber(arg0) == 35) then
            Resume_Equip_Stiletto(2);
        end
        
    end
end

function Stiletto_OnShown()
    Stiletto_Clear()
end

function Stiletto_Clear()
    if(EQUIP_QUALITY ~= -1) then
        EQUIP_BUTTONS : SetActionItem(-1);
        LifeAbility : Lock_Packet_Item(EQUIP_QUALITY,0);
        EQUIP_QUALITY = -1;
    end
    
--    Stiletto_Material_Bak : SetProperty("Image", "set:CommonItem image:ActionBK"); 
--    Stiletto_Material_Bak    : SetToolTip("")
    if(MATERIAL_QUALITY ~= -1) then
        MATERIAL_BUTTONS : SetActionItem(-1);
        LifeAbility : Lock_Packet_Item(MATERIAL_QUALITY,0);
        MATERIAL_QUALITY = -1;
    end
    Stiletto_Money : SetProperty("MoneyNumber", "");
    Stiletto_State: SetText("")
end

function Stiletto_Update(pos1,pos0)
    local pos_packet,pos_ui;
    pos_packet = tonumber(pos0);
    pos_ui         = tonumber(pos1);
    EquipPoint = LifeAbility : Get_Equip_Point(pos_packet);    
    
    local theAction = EnumAction(pos_packet, "packageitem");
    if pos_ui == 1 then
        if theAction:GetID() ~= 0 then
            
            local Bore_Count1 = 0;
          local Need_Item1 = -1;
          local Need_Money1 = 0;
          local Need_Item_Count1 =0;
            
            --Need_Item,Need_Money,Need_Item_Count,Bore_Count=LifeAbility : Stiletto_Preparation(pos_packet);
            Need_Item1,Need_Money1,Need_Item_Count1,Bore_Count1=LifeAbility : Stiletto_Preparation(pos_packet, 1); --1±íʾȡµÚÒ»×éÏûºÄÖµ
            
                    
            if Bore_Count1 > 2 then --add:lby 20080521 
                PushDebugMessage("— ðây chï có th¬ ðøc ðßþc 3 l²")
                return
            end
            
            if (Need_Item1 < -1 and (EquipPoint ~= 8 and  EquipPoint ~= 16 and  EquipPoint ~= 17 and EquipPoint ~= 18))then
                PushDebugMessage("V§t ph¦m này không có cách nào tång thêm máng lõm")
                return
            end                        
            
            if Need_Item1 == -2 then
              Need_Item1 = 0;
              Bore_Count1 = 0;
            end
            
            Need_Item = Need_Item1
            Need_Money = Need_Money1 
            Need_Item_Count = Need_Item_Count1
            Bore_Count = Bore_Count1
            
            
            --ÈÃ֮ǰµÄ¶«Î÷±äÁÁ
            if EQUIP_QUALITY ~= -1 then
                LifeAbility : Lock_Packet_Item(EQUIP_QUALITY,0);
                Stiletto_Money : SetProperty("MoneyNumber", "");
                Stiletto_State: SetText("")
            end

            EQUIP_BUTTONS:SetActionItem(theAction:GetID());
            EQUIP_QUALITY = pos_packet;
            LifeAbility : Lock_Packet_Item(EQUIP_QUALITY,1);
        else
            EQUIP_BUTTONS:SetActionItem(-1);
            LifeAbility : Lock_Packet_Item(EQUIP_QUALITY,0);
            EQUIP_QUALITY = -1;
            Stiletto_Money : SetProperty("MoneyNumber", "");
            Stiletto_State: SetText("")
            return;
        end
        Stiletto_Money : SetProperty("MoneyNumber", tostring(Need_Money));
        Stiletto_State : SetText("S¯ máng lõm hi®n tÕi: "..Bore_Count.."; có th¬ tång thêm s¯ máng lõm: "..tostring(3-Bore_Count))
    elseif pos_ui == 2 then
        
        local Item_Class = PlayerPackage : GetItemSubTableIndex(pos_packet,0)
        local Item_Quality = PlayerPackage : GetItemSubTableIndex(pos_packet,1)
        local Item_Type = PlayerPackage : GetItemSubTableIndex(pos_packet,2)
        
        local itemindex = PlayerPackage : GetItemTableIndex(pos_packet)
        
        
        
      if itemindex == 20109101 or itemindex == 20310111 then  --add:lby 20080521µã½ðÖ®¼ä²»ÄÜ•ÅÈ룬º®Óñ¾«´â²»ÄÜ•ÅÈë
             PushDebugMessage("V§t ph¦m này không th¬ sØ døng • ðây")
             return
      end

        if Item_Class ~= 2 or Item_Quality ~= 1 or Item_Type ~= 9 then
            return
        end
        
        if theAction:GetID() ~= 0 then
            MATERIAL_BUTTONS:SetActionItem(theAction:GetID());
            if MATERIAL_QUALITY ~= -1 then
                LifeAbility : Lock_Packet_Item(MATERIAL_QUALITY,0);
            end
            --ÈÃ֮ǰµÄ¶«Î÷±äÁÁ
            MATERIAL_QUALITY = pos_packet;
            LifeAbility : Lock_Packet_Item(MATERIAL_QUALITY,1);
        else
            MATERIAL_BUTTONS:SetActionItem(-1);
            LifeAbility : Lock_Packet_Item(MATERIAL_QUALITY,0);
            MATERIAL_QUALITY = -1;
            return;
        end
        
    end
    

--add here

end

function Stiletto_Buttons_Clicked()
    if MATERIAL_QUALITY == -1 then
        PushDebugMessage("M¶i thêm vào v§t li®u ðøc l²")
        return
    end
    if EQUIP_QUALITY ~= -1 then
        if Need_Item == -2 then
            PushDebugMessage("V§t ph¦m này không có cách nào tång thêm máng lõm")
        elseif Need_Item == -3 then
            PushDebugMessage("Máng lõm ðã ðÕt ðªn s¯ lßþng to nh¤t")
--        elseif DataPool:GetPlayerMission_ItemCountNow(Need_Item) < Need_Item_Count then
--            PushDebugMessage("ȱÉÙ²ÄÁÏ")
        elseif Player:GetData("MONEY")  < Need_Money then
            PushDebugMessage("Ngân lßþng không ðü")
        else
            
            Clear_XSCRIPT();
                Set_XSCRIPT_Function_Name("OnStiletto");
                Set_XSCRIPT_ScriptID(311200);
                Set_XSCRIPT_Parameter(0,EQUIP_QUALITY);
                Set_XSCRIPT_Parameter(1,MATERIAL_QUALITY);
                Set_XSCRIPT_ParamCount(2);
            Send_XSCRIPT();
        end
    else
        PushDebugMessage("M¶i cho vào 1 thiªt b¸ l¡p ð£t.")
    end
    
end

function Stiletto_Close()
    --²¢ÉèÖã¬Èñ³°üÀïµÄλÖñäÁÁ
    this:Hide();
    Stiletto_Clear();
    StopCareObject_Stiletto(objCared)
end

function Stiletto_Cancel_Clicked()
    Stiletto_Close();
    return;
end

--=========================================================
--¿ªÊ¼¹ØÐÄNPC£¬
--ÔÚ¿ªÊ¼¹ØÐÄ֮ǰÐèÒªÏÈÈ•¶¨Õâ¸ö½çÃæÊDz»ÊÇÒѾ¬ÓС°¹ØÐÄ¡±µÄNPC£¬
--Èç¹ûÓеĻ°£¬ÏÈÈ¡ÏûÒѾ¬Óеġ°¹ØÐÄ¡±
--=========================================================
function BeginCareObject_Stiletto(objCaredId)

    g_Object = objCaredId;
    this:CareObject(g_Object, 1, "Stiletto");

end

--=========================================================
--Í£Ö¹¶ÔijNPCµÄ¹ØÐÄ
--=========================================================
function StopCareObject_Stiletto(objCaredId)
    this:CareObject(objCaredId, 0, "Stiletto");
    g_Object = -1;

end

function Resume_Equip_Stiletto(nIndex)

    if( this:IsVisible() ) then
    
        if(nIndex == 1) then
            if(EQUIP_QUALITY ~= -1) then
                LifeAbility : Lock_Packet_Item(EQUIP_QUALITY,0);
                EQUIP_BUTTONS : SetActionItem(-1);
                EQUIP_QUALITY    = -1;
                Stiletto_Money : SetProperty("MoneyNumber", "");
                Stiletto_State: SetText("")
            end
        else
            if(MATERIAL_QUALITY ~= -1) then
                LifeAbility : Lock_Packet_Item(MATERIAL_QUALITY,0);
                MATERIAL_BUTTONS : SetActionItem(-1);
                MATERIAL_QUALITY    = -1;
            end    
        end
        
    end
    
end


Chú ý: 
1. Ở đây mới là đục lỗ thui hêy, và cũng chỉ mới được cho thú cưỡi thôi. Còn các thứ khác thì chưa thành công. 
2. Cơ chế để đục được trang bị thì server qui định vào thuộc tính Equip_Point
Nguồn sưu tầm, tác giả rikudo
Gốc http://forum.gamezone.gs/showthread....%BA%A7m)/page2
Chúc các bạn vui !