Emistry

[RO] WOE limit GTB per guild

Jan 10th, 2022 (edited)
450
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.78 KB | None | 0 0
  1. // https://rathena.org/board/topic/130105-request-for-one-card-holder-per-guild/
  2.  
  3.  
  4. -   script  Sample  -1,{
  5.    
  6.     OnInit:
  7.         .item_id = 4128;
  8.         setitemscript .item_id, "{ doevent \""+strnpcinfo(3)+"::OnEquip\"; }", 1;
  9.         setitemscript .item_id, "{ doevent \""+strnpcinfo(3)+"::OnUnEquip\"; }", 2;
  10.        
  11.         setarray .map$, "prtg_cas01";
  12.         .@map_size = getarraysize(.map$);
  13.         for (.@i = 0; .@i < .@map_size; .@i++)
  14.             setmapflag(.map$, MF_LOADEVENT);
  15.            
  16.         bindatcmd "gmreset",strnpcinfo(3) + "::OnAtcommand";
  17.         end;
  18.        
  19.     OnAgitStart:
  20.     OnAgitStart2:
  21.     OnAgitStart3:
  22.     OnAgitEnd:
  23.     OnAgitEnd2:
  24.     OnAgitEnd3:
  25.         .is_woe_on = (agitcheck() || agitcheck2() || agitcheck3());
  26.         end;
  27.        
  28.     OnPCLoadMapEvent:
  29.         if (!isequipped(.item_id)) end;
  30.     OnEquip:
  31.         if (!.is_woe_on) end;
  32.         if (inarray(.map$, strcharinfo(3)) == -1) end;
  33.         .@guild_id = getcharid(2);
  34.         if (.@guild_id) {
  35.             .@current_cid = getd(".guild_gid_"+.@guild_id);
  36.            
  37.             if (.@current_cid == getcharid(0)) end;
  38.             else if (!.@current_cid
  39.                 || (!isloggedin(convertpcinfo(.@current_cid, CPC_ACCOUNT), .@current_cid))
  40.             ) {
  41.                 setd(".guild_gid_"+.@guild_id, getcharid(0));
  42.                
  43.                 addrid(3, 0, .@guild_id);
  44.                 dispbottom "Guild member '"+convertpcinfo(getd(".guild_gid_"+getcharid(2)), CPC_NAME)+"' has equipped "+getitemname(.item_id)+".";
  45.                 end;
  46.             }
  47.             else if (.@current_cid != getcharid(0)) {
  48.                 dispbottom "Guild member '"+convertpcinfo(.@current_cid, CPC_NAME)+"' has already equipped "+getitemname(.item_id)+". You can't equip it now.";
  49.                 message strcharinfo(0), getitemname(.item_id)+" unequipped!";
  50.                 unequip EQI_HAND_L;
  51.             }
  52.         }
  53.         end;
  54.        
  55.     OnUnEquip:
  56.         if (!.is_woe_on) end;
  57.         .@guild_id = getcharid(2);
  58.         if (.@guild_id) {
  59.             if (getd(".guild_gid_"+.@guild_id) == getcharid(0)) {
  60.                 setd(".guild_gid_"+.@guild_id, 0);
  61.                
  62.                 addrid(3, 0, .@guild_id);
  63.                 dispbottom "Guild member '"+convertpcinfo(getd(".guild_gid_"+getcharid(2)), CPC_NAME)+"' has un-equipped "+getitemname(.item_id)+".";
  64.                 end;
  65.             }
  66.         }
  67.         end;
  68.        
  69.     OnAtcommand:
  70.         .@guild_id = getcharid(2);
  71.         if (.@guild_id && getcharid(0) == getguildmasterid(.@guild_id)) {
  72.             .@current_cid = getd(".guild_gid_"+.@guild_id);
  73.            
  74.             if (!.@current_cid) {
  75.                 dispbottom "No guild member equipped "+getitemname(.item_id)+".";
  76.                 end;
  77.             }
  78.            
  79.             if (isloggedin(convertpcinfo(.@current_cid, CPC_ACCOUNT), .@current_cid)) {
  80.                 attachrid(convertpcinfo(.@current_cid, CPC_ACCOUNT));
  81.                 if (inarray(.map$, strcharinfo(3)) != -1 && .@guild_id == getcharid(2)) {
  82.                     message strcharinfo(0), getitemname(.item_id)+" unequipped!";
  83.                     unequip EQI_HAND_L;
  84.                 }
  85.             }
  86.            
  87.             setd(".guild_gid_"+.@guild_id, getcharid(0));
  88.             addrid(3, 0, .@guild_id);
  89.             dispbottom "Guild Master has forced a member to unequip "+getitemname(.item_id)+".";
  90.         }
  91.         end;
  92. }
  93.  
  94.  
Add Comment
Please, Sign In to add comment