Jump to content
  • 0

1 MvP Card Limitation compounded on gear on total


Question

1 answer to this question

Recommended Posts

Posted

here 

-	script	Limited Items	-1,{
function    LimitItems;
function    CheckItems;

OnInit:
// GM Level to Bypass
set .GMLevel,80;
// Check Every X Seconds
set .Seconds,5;
// Apply on Which Maps and what Zone No.
setarray .DisableMap$, // "<mapname>","<zone number>",
                "payon","0",
                "guild_vs2","1",
                "guild_vs3","2",
                "guild_vs4","3",
                "guild_vs5","4";

for( set .i,0; .i < getarraysize( .DisableMap$ ); set .i,.i + 2 )
    setmapflag .DisableMap$[.i],mf_loadevent;
end;

OnPCLoadMapEvent:
if( getgmlevel() >= .GMLevel ) end;
set @Exceed,0;
for( set .@i,0; .@i < getarraysize( .DisableMap$ ); set .@i,.@i + 2 )
    if( strcharinfo(3) == .DisableMap$[.@i] )
        LimitItems( atoi( .DisableMap$[.@i+1] ) );
end;

function    LimitItems    {
switch( getarg(0) ){
    // Case <zone>: CheckItems( <Item>,<Amount>,<Item>,<Amount>,.....,<Item>,<Amount> ); break;
    Case 0:    CheckItems( 4302,1,4174,1 );    break;
    Case 1:    CheckItems();    break;
    Case 2:    CheckItems();    break;
    Case 3:    CheckItems();    break;
    Case 4:    CheckItems();    break;
    default:
        debugmes "[NPC : "+strnpcinfo(0)+"] - Invalid Zone:"+getarg(0);
        break;
}
return;
}

function    CheckItems    {
for( set .@i,0; getarg( .@i,0 ); set .@i,.@i + 2 ){
    for( set .@eq,0; .@eq <= 10; set .@eq,.@eq + 1 )
        for( set .@slot,0; .@slot <= getequipcardcnt( .@eq ); set .@slot,.@slot + 1 )
            if( getequipcardid( .@eq,.@slot ) == getarg(.@i) )
                set .@Limit,.@Limit + 1;
    set .@Limit,.@Limit + countitem( getarg(.@i) );
    if( .@Limit > getarg(.@i+1) ){
        set @Exceed,1;
        mes "[ ^FF0000Limit : ^0000FF"+getarg(.@i+1)+"^000000 ] "+getitemname( getarg(.@i) );
    }
}
if( @Exceed ){
    mes "Please ensure all the Items above didnt reach the Limit as stated above.";
    close2;
    warp "SavePoint",0,0;
    deltimer strnpcinfo(0)+"::OnPCLoadMapEvent";
}else{
    addtimer ( .Seconds * 1000 ),strnpcinfo(0)+"::OnPCLoadMapEvent";
    end;
}
return;
}
}

add to Case 0: all mvp card_ids,1

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...