Jump to content

Noire

Members
  • Posts

    103
  • Joined

  • Last visited

Posts posted by Noire

  1. 14 hours ago, buraquera said:

    sorry, there is no need for "set", use:
     

    .5times++;
    if (.5times >=5)
    	disablenpc();


    and line 144, not 143. After "set winRPS" xD

    it works, but can i ask for somethig else? there is a bug when Player : A just stay on dialogue box , and Player B wins the last slot player A still can able to access the npc even is was already disabled how can i prevent this?

  2. 15 hours ago, Emistry said:
    
    Items
    -----
    You can refer to items by using HTML-like links to certain items:
    
    	<ITEMLINK>Display Name<INFO>Item ID</INFO></ITEMLINK>
    
    Where <Display Name> is the name that will be displayed for your link and
    <Item ID> being the ID of the item you want to link to when clicked.
    
    In 2015 the tag name was changed to <ITEM> resulting in the following syntax:
    
    	<ITEM>Display Name<INFO>Item ID</INFO></ITEM>
    
    The following sample will open a preview window for Red Potion:
    
    	mes "Did you ever consume a <ITEMLINK>Red Potion<INFO>501</INFO></ITEMLINK>?";
    	// Or in 2015:
    	mes "Did you ever consume a <ITEM>Red Potion<INFO>501</INFO></ITEM>?";
    
    NOTE: Be aware that item links are rendered incorrectly in 2015+ clients at the moment.

    replace the item name display line using this format.

     

    thank yoooooooooooooooooooou ❤️

  3. Can someone make a guildroom script for the main castle holder warper and players who try to enter inside that is not part of guild will be automatically get kicked of the map. 

  4. 4 hours ago, Poring King said:

    Show your code using Codebox so we can help you


     

    payon,155,238,6	script	Stop the Clock	856,{
    
    
    if(.game == 1 && stopped != 1) {
    set stopped, 1;
    set @stopped, .i;
    message strcharinfo(0), "You stopped the clock at "+@stopped+".";
    if(.lowest > @stopped) {
    set .lowest, @stopped;
    set .winner$, strcharinfo(0);
    }
    end;
    }
    else if(.game == 1) {
    message strcharinfo(0), "You already stopped the clock.";
    end;
    }
    
    set .name$, "[ STC Manager ]";
    set .menu$, "Information:Price:Leave";
    
    
    if(strcharinfo(0) == .winner$) {
    set stopped, 0;
    mes .name$;
    mes "Here you get your price.";
    //mes "Your Price is :";
    getitem 22654,1;
    //mes "^ff0000"+$prize_amount+" "+getitemname($prize_id)+"^000000";
    //getitem $prize_id, $prize_amount;
    set .winner$, "";
    close;
    }
    
    if(stopped == 1) {
    set stopped, 0;
    mes .name$;
    mes "You activated your char for the next round.";
    close;
    }
    
    if(getgmlevel() > 60) set .menu$, .menu$ + ":Start Game";
    
    mes .name$;
    mes "Welcome to the ^ff0000Stop the Clock^000000.";
    next;
    switch(select(.menu$)) {
    //case 1:
    //mes .name$;
    //mes "^ff0000Stop the Clock^000000 starts each day at:";
    //mes "^0080001:00^000000, ^00800018:00^000000 and ^00800021:00^000000 o'clock.";
    //mes"^008000STC always starts at 10:00/19:00 Server Time^000000";
    //close;
    
    case 1:
    mes .name$;
    mes "^ff0000Stop the Clock^000000";
    mes "is a game where you need to";
    mes "click on me exactly when the counter reached 0.";
    next;
    mes .name$;
    mes "It counts down from ^0080001000^000000 to ^ff00000^000000.";
    next;
    mes .name$;
    mes "To win, you need to have the ^ff0000closest value to 0^000000 but at least ^ff0000below 50^000000.";
    next;
    mes .name$;
    mes "The winner will recieve a prize.";
    mes "^ff0000Don't forget to talk to me after the Event is over,";
    mes "to reset your counter to take part on the next event.^000000";
    close;
    
    case 2:
    mes .name$;
    mes "The Price is : 1 Event Card.";
    //mes "^ff0000"+$prize_amount+" "+getitemname($prize_id)+"^000000";
    close;
    
    case 3:
    close;
    
    case 4:
    sleep2 100;
    close2;
    goto l_start;
    end;
    }
    
    //case 5:
    //mes .name$;
    //mes "Enter the item id of the prize:";
    //input $prize_id;
    //next;
    //mes .name$;
    //mes "Enter the amount if items the winner will recieve:";
    //input $prize_amount;
    //next;
    //mes .name$;
    //mes "The price id is: ^ff0000"+$prize_id+"^000000";
    //mes "^008000("+getitemname($prize_id)+")^000000.";
    //mes "The amount is: ^ff0000"+$prize_amount+"^000000.";
    //close;
    //}
    
    //OnClock1000:
    //OnClock1900:
    //OnClock2010:
    l_start:
    
    announce "STC Event Manager : We are going to start an Stop the Clock Event in 1 Minute at Payon Town @go 3 !",bc_all;
    sleep2 60000;
    announce "STC Event Manager : We are going to start in 30 Seconds !",bc_map;
    sleep2 20000;
    announce "STC Event Manager : Hurry up! Event starts in 10 Seconds !",bc_map;
    sleep2 5000;
    announce "STC Event Manager : Get Ready only 5 seconds left !",bc_map;
    sleep2 5000;
    announce "STC Event Manager : START !!!",bc_map;
    sleep2 5000;
    
    set .winner$, "";
    set .game, 1;
    set .lowest, 1000;
    
    for(set .i, 1000; .i > 300;set .i, .i - 100) {
    mapannounce"payon",":: "+.i+" ::",bc_blue|bc_map;
    misceffect 377;
    sleep2 1000;
    }
    
    for(set .i, 300; .i > 50;set .i, .i - 10) {
    mapannounce"payon",":: "+.i+" ::",bc_blue|bc_map;
    misceffect 377;
    sleep2 100;
    }
    
    for(set .i, 50; .i > 0;set .i, .i - 1) {
    mapannounce"payon",":: "+.i+" ::",bc_blue|bc_map;
    misceffect 377;
    sleep2 10;
    }
    
    set .game, 0;
    
    if(.winner$ == "") {
    announce "Nobody hit the clock at the right moment, There is no winner.",bc_map;
    end;
    }
    
    announce .winner$+" won Stop the Clock. He stopped it at "+.lowest+".",bc_map;
    sleep2 5000;
    announce .winner$+" please talk to me to get your prize.",blue;
    //sleep2 5000;
    //announce "Event Manager : To activate your char for the next round, please talk to me, too.",bc_map;
    end;
    
    OnInit:
    	waitingroom "STC Event",0;
    	end;
    }

     

  5. 23 hours ago, Terces said:

    Ah yes...change

    
    mes (.@i+1) +". "+ .@cname[.@i]) +" ~ "+ .@count[.@i] +" breaks.";

    to

    
    mes (.@i+1) +". "+ .@cname[.@i] +" ~ "+ .@count[.@i] +" breaks.";

    There was a stray ")" in there.

     

    The SQL error is because you already had the script running once so there already is an "breaker_ladder" table. You will have to either delete the table or add the "char_name" field manually.

    do i need to add a new column to make it work? it doesnt count when i break the emperium.

  6. 3 hours ago, Terces said:

    My guess is that strcharinfo() only works on logged in players. One "could" leverage the power of SQL and use the char-id to find the actual player, but that is a bit more complicated. Instead I simply added a field to the table that contains the name. Instead of just saving the players ID, I also save the name. I haven't tested this, but maybe it will give you an idea how you could solve it:

    
    //===== rAthena Script =======================================
    //= Emperium Breaker Ladder + Points + Shop
    //===== By: ==================================================
    //= Mabuhay
    //===== Description: ========================================= 
    // title says it all
    // ============================================================
    /*
    // For WoE First Edition
    // open npc/guild/agit_main.txt
    
    ---------------------------------------------
    Look for this part: 
    ---------------------------------------------
    // The Emperium has been broken.
    OnAgitBreak:
    	set .@GID,getcharid(2);
    	// Show and log error if an unguilded player breaks the Emperium. (Should NEVER happen)
    	if (.@GID <= 0) {
    		set .@notice$,"Character "+strcharinfo(0)+" ("+getcharid(0)+") broke the Emperium in Castle: "+strnpcinfo(2)+" while guildless. No data will be saved and Emperium respawned.";
     		logmes .@notice$; debugmes .@notice$;
    		donpcevent "Agit#"+strnpcinfo(2)+"::OnStartArena";
    		end;
    	}
    
    ---------------------------------------------
     Add these below..
     ---------------------------------------------
    	query_sql("INSERT INTO `breaker_ladder` SET `char_id` = '"+getcharid(0)+"', `char_name` = '"+strcharinfo(0)+"', `count` = '1' ON DUPLICATE KEY UPDATE `count` = `count`+1");
    	#EMPBREAKERPTS += $@empbreakpoints;
    
    // For WoE Second Edition
    // open npc/guild2/agit_main_se.txt
    
    ---------------------------------------------
    Look for this part: 
    ---------------------------------------------
    
    OnStartArena:
    	set .@GID,getcharid(2);
    	set .@region$, (compare(strnpcinfo(4),"arug"))?"Valfreyja":"Nithafjoll";
    	// Lower castle Economy
    	set .@Economy,getcastledata(strnpcinfo(4),CD_CURRENT_ECONOMY)-5;
    	if (.@Economy < 0) set .@Economy, 0;
    	setcastledata strnpcinfo(4),CD_CURRENT_ECONOMY,.@Economy;
    	// Lower Castle Defence
    	set .@Defence,getcastledata(strnpcinfo(4),CD_CURRENT_DEFENSE)-5;
    	if (.@Defence < 0) set .@Defence, 0;
    	setcastledata strnpcinfo(4),CD_CURRENT_DEFENSE,.@Defence;
    	// Set new owner
    	setcastledata strnpcinfo(4),CD_GUILD_ID,.@GID;
    	// Clear castle's data.
    	for(set .@i,CD_INVESTED_ECONOMY; .@i<CD_ENABLED_GUARDIAN00; set .@i,.@i+1)
    		setcastledata strnpcinfo(4),.@i,0;
    	// Disable Kafra
    	disablenpc "Kafra Employee#"+strnpcinfo(2);
    	
    ---------------------------------------------
     Add these below..
     ---------------------------------------------
    	query_sql("INSERT INTO `breaker_ladder` SET `char_id` = '"+getcharid(0)+"', `char_name` = '"+strcharinfo(0)+"', `count` = '1' ON DUPLICATE KEY UPDATE `count` = `count`+1");
    	#EMPBREAKERPTS += $@empbreakpoints;
    
    */
    // ============================================================
    
    prontera,158,176,6	script	Emp Breaker Ladder	4_BOARD3,{
    	query_sql("SELECT `count` FROM `breaker_ladder` WHERE `char_id` = "+ getcharid(0), .@count);
    	mes "You currently have ^ff0000"+.@count+"^000000 emp breaks.";
    	mes "And "+#EMPBREAKERPTS+" Emp Break Points.";
    	mes " ";
    	mes "What would you like to do?";
    	next;
    	switch(select("~ View Top 10 Emp Breakers","~ Open Emp Breaker Point Shop",(getgmlevel()> 60) ? "~ [GM MENU] Reset data":"")) {
    	case 1:
    		mes "Top 10 Emperium Breaker";
    		if(!(.@nb = query_sql("SELECT `char_id`, `char_name`, `count` FROM `breaker_ladder` ORDER BY `count` DESC LIMIT 10", .@cid, .@cname, .@count))) {
    			mes "No data found.";
    			close;
    		}
    		for ( .@i = 0; .@i < .@nb; .@i++ )
    			mes (.@i+1) +". "+ .@cname[.@i]) +" ~ "+ .@count[.@i] +" breaks.";
    		close;
    
    	case 2:
    		callshop "EmpBreakerShop", 4;
    		mes "You currenlty have ^ff0000"+((#EMPBREAKERPTS) ? #EMPBREAKERPTS:"no" )+" Emp Breaker Points^000000 to purchase from this shop.";
    		end;
    	
    	case 3:
    		mes "Are you sure you want to delete all Emp Breaker Ladder data?";
    		next;
    		select("Yes");
    		message strcharinfo(0), "Deleting...";
    		progressbar "", 5;
    		query_sql("TRUNCATE TABLE `breaker_ladder`");
    		mes "Deleting complete..";
    		close;
    	}
    	end;
    
    OnInit:
    	// how much points gained per emp break?
    	$@empbreakpoints = 1; 
    
    	query_sql("CREATE TABLE IF NOT EXISTS `breaker_ladder` (`char_id` int(11) unsigned NOT NULL, `char_name` varchar(255) NOT NULL DEFAULT 'unknown', `count` int(11) NOT NULL DEFAULT '0', PRIMARY KEY ( `char_id` )) ENGINE=InnoDB");
    }
    
    // Emp Breaker Point Shop Data
    // Edit the points here.. "#EMPBREAKERPTS" currently set to '#EMPBREAKERPTS'
    // Also edit the items for sale here...
    -	pointshop	EmpBreakerShop	FAKE_NPC,#EMPBREAKERPTS,901:2,903:1,904:5

     


    having an error >.< and if i tried to view the top 10 list sql error.

    sdfdsfdfdfss.png

    2342342342342.png

  7. The script function well it counts how many times you broke the emperium, but when the player a (breaker on list) logout their name disappear from the list and cause an error from the map server. the error occurs when you tried to view the top 10 emp breakers not when you destroyed the emperium on agit.

    Credits to Mabuhay for his script.

    3.png

    2.png

    1111.png

    empbreaker_ladder.txt

  8.     Help, my npc dont do ./dice emoticon having a problem on my script T_T
     

    close2;
        mapannounce "guild_room","[ Dice Machine ] : Let's start, click the switch below for your answer..",0,0xFFFF00;
        enablenpc "Odd#550";
        enablenpc "Even#551";
        sleep2 3000;
        mapannounce "guild_room","[ Dice Machine ] : I will roll the dice in..",0,0xFFFF00;
        sleep2 1500;
        mapannounce "guild_room","[ Dice Machine ] : 5",0,0xFFFF00;
        sleep2 1500;
        mapannounce "guild_room","[ Dice Machine ] : 4",0,0xFFFF00;
        sleep2 1500;
        mapannounce "guild_room","[ Dice Machine ] : 3",0,0xFFFF00;
        sleep2 1500;
        mapannounce "guild_room","[ Dice Machine ] : 2",0,0xFFFF00;
        sleep2 1500;
        mapannounce "guild_room","[ Dice Machine ] : 1",0,0xFFFF00;
        sleep2 2000;
        disablenpc "Odd#550";
        disablenpc "Even#551";
        areawarp "guild_room",228,370,232,366,"prontera",150,150;
        mapannounce "guild_room","[ Dice Machine ] : Watch guys.",0,0xFFFF00;
        sleep2 1500;
        set @rdice, rand(1,6);
        setarray .@dicemots[1],58,59,60,61,62,63;
        emotion .@dicemots[@rdice];
        end;
        }



     

    1212212122121212.png

  9. Hello guys, i would like to scream for your help again im planning to add some features in the script.  After giving out the freebies the npc will ask again of what class would you like to change ( ALL list of Transcend Class ) then after changing into to your class you will also gain  base level of 150 and a job level of 120.  ( i still want the freebies to be account bound !! ) thank youu!!
     

    prontera,149,158,4    script    Noire   917,{
        setarray .Items[0], 2410,1,0,2629,2,0,2630,2,0,2357,2,0,2524,2,0,2115,2,0,7608,10,0; // <item id>,<amount>,<refine>
        set .size, getarraysize(.Items);
        @Level = 200;
        @npc$ = "[ Exia ]";
        if(BaseLevel >= @Level) { 
        if ( #Freebies ) {
        mes @npc$;
        mes "You already have your freebies";
        close;
        }
        mes @npc$;
        mes "Here is your freebies!";
        next;
        if ( (MaxWeight/2) <= Weight ) end;
        for ( set .@i, 0; .@i < .size; set .@i, .@i + 3 ) 
            getitembound2 .Items[.@i],.Items[.@i+1],1,.Items[.@i+2],0,0,0,0,0,1;
        set #Freebies, 1;
        mes @npc$;
        mes "Done!";
        close;
        }
    
        else {
        mes @npc$;
        mes "Hi, I can give you free items once you meet my requirement. ";
        next;
        mes @npc$;
        mes "You need to get a base level of 200.";
        next;
        mes @npc$;
        mes "Come back if you're already stronger.";
        close;
        }
    
    OnInit:
    
    waitingroom "Freebies",0;
    end;
    
    }

     

  10. 33 minutes ago, Emistry said:
    
    job_sword1,223,167,4    script    Race Prizer    45,1,1,{    
        switch ( .winner_count++ ) {
        case 1: 
            announce "[ Race Manager ] : Congratulation " + strcharinfo(0) + ", You have successfully finish all course you are the 1st place !!",0;
            getitem 7227,1;
            dispbottom "You earned 80 Race Points for being first place.";
            set #racepoints,#racepoints+80;
            warp "prontera",150,150;
            close;
        case 2:
            announce "[ Race Manager ] : Congratulation " + strcharinfo(0) + ", You have successfully finish all course you are the 2nd place !!",0;
            getitem 7227,1;
            dispbottom "You earned 50 Race Points for being second place.";
            set #racepoints,#racepoints+50;
            warp "prontera",150,150;
            close;
        case 3:
            announce "[ Race Manager ] : Congratulation " + strcharinfo(0) + ", You have successfully finish all course you are the 3rd place !!",0;
            mapannounce "job_sword1","[ Race Manager ] : Hurry up for 4th Place Guys Go go go go !!!",0;
            getitem 7227,1;
            dispbottom "You earned 35 Race Points for being third place.";
            set #racepoints,#racepoints+35;
            warp "prontera",150,150;
            close;
        default:
            announce "[ Race Manager ] : Congratulation " + strcharinfo(0) + ", You have successfully finish all course you are the "+.winner_count+"th place !!",0;
            getitem 675,1;
            dispbottom "You earned 20 Race Points for being "+.winner_count+"th place.";
            set #racepoints,#racepoints+20;
            close;
        }
    }

    try

    uhmm i always ended up at default: line all my 5 characters,  i need like if the script already count the 4 winners all players who still inside the map will still get race points if they  still finish race for 30 seconds more after that all player who are not unable to finish it will be warp back to maintown.

  11. Can someone add for this script, if the NPC already count the 4 winners i want everybody from the map who is still inside will be warp-out back to prontera and still get some race points excluding the winners.

    job_sword1,223,167,4    script    Race Prizer    45,1,1,{    
        switch ( .winner_count++ ) {
        case 1: 
            announce "[ Race Manager ] : Congratulation " + strcharinfo(0) + ", You have successfully finish all course you are the 1st place !!",0;
            getitem 7227,1;
            dispbottom "You earned 80 Race Points for being first place.";
            set #racepoints,#racepoints+80;
            warp "prontera",150,150;
            close;
        case 2:
            announce "[ Race Manager ] : Congratulation " + strcharinfo(0) + ", You have successfully finish all course you are the 2nd place !!",0;
            getitem 7227,1;
            dispbottom "You earned 50 Race Points for being second place.";
            set #racepoints,#racepoints+50;
            warp "prontera",150,150;
            close;
        case 3:
            announce "[ Race Manager ] : Congratulation " + strcharinfo(0) + ", You have successfully finish all course you are the 3rd place !!",0;
            mapannounce "job_sword1","[ Race Manager ] : Hurry up for 4th Place Guys Go go go go !!!",0;
            getitem 7227,1;
            dispbottom "You earned 35 Race Points for being third place.";
            set #racepoints,#racepoints+35;
            warp "prontera",150,150;
            close;
        default:
            announce "[ Race Manager ] : Congratulation " + strcharinfo(0) + ", You have successfully finish all course you are the 4th place !!",0;
            getitem 675,1;
            dispbottom "You earned 20 Race Points for being fourth place.";
            set #racepoints,#racepoints+20;
            mapannounce "job_sword1","[ Race Manager ] : We already got our 4 winners better luck next time, Race Event is now over warping all back to town those who left inside the map !!",bc_map;
            set .winner_count,0;
            mapwarp "job_sword1","prontera",150,150;
            mapwarp "arena_room","prontera",150,150;
            disablenpc "Race Prizer";
            disablenpc "RaceGO";
            close;
        }
    }



     

  12. 3 hours ago, xSoul said:

    Hello, basically you are not calling ".i3" and ".i2" in the correct way, the script tries to do the search but cannot find anything. you don't have any array called just ".i"

    current code:

    correction:

    Another detail that I noticed were the addresses of "else if (.chance <= 2 && .chance >= 11)" basically said if it was equal to or less than 2 and greater than or equal to 11 it would go out, as well as this in the correction it should work good. hope to help you ^^

    thanks you!! big heeeeelp >.< 

  13. Can anyone make this script work >.< thank yooou!! 

    function    script    specialbox {
        setarray .i1[0],909,910; // Common Items
        set .i1rand,rand(0,1); // Randomize Common Items; just change max amount if you add items
        setarray .i2[0],911,912; // Rare Items
        set .i2rand,rand(0,1); // Randomize Rare Items; just change max amount if you add items
        setarray .i3[0],2199,1599; // Super Rare Items
        set .i3rand,rand(0,1); //Randomize Super Rare Items; just change max amount if you add items
        set .chance, rand(100);

            // Super Rare Item 1%
            if (.chance == 1){
            getitem .i[.i3rand],1;
            announce "["+strcharinfo(0)+"] won a ["+getitemname(.i[.i3rand])+"] from the Special Box.",0;
            end;
            } 

            // Rare Item 10%
            else if (.chance <= 2 && .chance >= 11){
            getitem .i[.i2rand],1;
            announce "["+strcharinfo(0)+"] won a ["+getitemname(.i[.i2rand])+"] from the Special Box.",0;
            end;
            } 

            // Common Items
            else {
            getitem .i1[.i1rand],1;
            end; }
    }

    help.png

    help2.png

  14. 22 minutes ago, Radian said:

    After a few test, I manage to make it work. here you go!

    
    OnMVPDeath:
    	@name$ = getmonsterinfo( killedrid, MOB_NAME);
    	announce strcharinfo(0) + " has killed the monster " + @name$ + " !! ",bc_all;
        	end;

     

    all done thanks you guys !! ive learned alot sorry for asking too much!!

  15. solved sorry my bad didnt see the script properly thanks u guys!

    2 hours ago, Radian said:

    Tested it and to solve the issue replaced all 

    
    MVP Spawner

    into 

    
    Skormy

    that would solve the missing label.

    can add announcement for killing an mvp boss? but the announcement is like this for example i summon random mvp bosses each id will be include. ( Player "name" killed amonra boss and so on. advance tanks for helping me out

  16. 31 minutes ago, -Chuck- said:

    I didnt look how the npc works, only fixed the error...

    Could you try this please?

      Reveal hidden contents

     prontera,119,168,6 script  Skormy  641,{
        if(getgmlevel()<.gmlevel) end;
        set .@MVPID,-3;
        
    L_Menu:
        mes .NPC$;
        mes "Select an option from the menu below and click [ ^0000FFSummon!^000000 ] when you're done.";
        next;
        
        if(.@MVPID == -3){
            set .@tmp$,"Random MVP";
        } else if ( .@MVPID ) {
            set .@tmp$,getmonsterinfo(.@MVPID,0);
        } else {
            set .@tmp$,"NULL";
        }

        Switch(select("Monster ID ( ^0000FF"+.@tmp$+"^000000 ) :Map Name ( ^0000FF"+.@MAPNAME$+"^000000 ) :Amount ( ^0000FF"+.@AMOUNT+"^000000 ):[ ^0000FFSummon!^000000 ]")) {
            case 1:
                mes .NPC$;
                mes "Input the id of the monster you'd like to spawn.";
                next;
                input(.@MVPID);
                while(!query_sql("(SELECT `ID` from `mob_db` where `ID` = "+.@MVPID+") UNION ALL (SELECT `ID` from `mob_db2` where `ID` = "+.@MVPID+" LIMIT 1);",.@a))
                    input(.@MVPID);
                    
                if( compare(.blacklist$,"|"+.@MVPID+"|" ) ) {
                    message strcharinfo(0),"I'm sorry but that monster was blacklisted!";
                    message strcharinfo(0),"Please use a different id.";
                    set(.@MVPID,0);
                }
                
                goto L_Menu;
                
            case 2:
                mes .NPC$;
                mes "Input the name of the map you'd like to spawn the monster on.";
                next;
                input(.@MAPNAME$);
                while(mobcount(.@MAPNAME$,"all")==-1){
                    input(.@MAPNAME$);
                    if(mobcount(.@MAPNAME$,"all")!=-1){
                        mes "Would you like to spawn "+(.@MVPID==-3?"Random MVPs":getmonsterinfo(.@MVPID,0))+" on the map "+.@MAPNAME$+"?";
                        next;
                        if(select("Yes:No")-1) { set .@MAPNAME$,""; continue; } else { break; }
                    }
                }
                goto L_Menu;
                
            case 3:
                mes .NPC$;
                mes "Input the amount you'd like to spawn.";
                mes "( Maximum "+.Lamount+" )";
                next;
                input(.@AMOUNT);
                while(.@AMOUNT<=0||.@AMOUNT>.Lamount) {
                    input(.@AMOUNT);
                    if(.@AMOUNT>0&&.@AMOUNT<=.Lamount) {
                        mes "Would you like to spawn "+.@AMOUNT+" monsters?";
                        next;
                        if(select("Yes:No")-1) { set .@AMOUNT,0; continue; } else { break; }
                    }
                }
                goto L_Menu;
                
            case 4:
                if( mobcount(.@MAPNAME$,"all")==-1 || .@AMOUNT<=0 ) {
                    if(!.fiesta) {
                        mes .NPC$;
                        mes "I'm sorry you need to fill-out all the fields before summoning a monster!";
                        next;
                        goto L_Menu;
                    } else {
                        if(mobcount(.@MAPNAME$,"all")==-1) set .@MAPNAME$,"this";
                        if(.@AMOUNT<=0) set .@AMOUNT,.fiesta;
                    }
                }
                
                if(.Mamount){
                    if(mobcount(.@MAPNAME$,"Skormy::OnMVPDeath")+.@AMOUNT>.Mamount&&.Mamount>0) {
                        mes .NPC$;
                        mes "I'm sorry but there can only be "+.Mamount+" MVPs in one map.";
                        set .@tmp,.Mamount-mobcount(.@MAPNAME$,"Skormy::OnMVPDeath");
                        if(.@tmp>0) {
                            mes "Would you like to spawn "+.@tmp+" instead?";
                            if(select("Yes:No")-1) { mes "Ok!"; close; }
                            announce ""+strcharinfo(0)+" : Summoned "+.@AMOUNT+" "+.@tmp$+"(s) in "+(.@MAPNAME$=="this"?strcharinfo(3):.@MAPNAME$)+".",bc_all,"0x"+.fontcolor$;
                            monster .@MAPNAME$,0,0,"--ja--",.@MVPID,.@tmp,"Skormy::OnMVPDeath";
                            close;
                        }
                        next;
                        goto L_Menu;
                    }
                }
            
                announce ""+strcharinfo(0)+" : Summoned "+.@AMOUNT+" "+.@tmp$+"(s) in "+(.@MAPNAME$=="this"?strcharinfo(3):.@MAPNAME$)+".",bc_all,"0x"+.fontcolor$;
                monster .@MAPNAME$,0,0,"--ja--",.@MVPID,.@AMOUNT,"Skormy::OnMVPDeath";
                close;
        }
        end;
        
    OnMVPDeath:
        end;
                
    OnInit:
        //=-=-=-=-=-=Configuration=-=-=-=-=-=
        set .NPC$,"[ ^D2691ESkormy^000000 ]"; // Npc Name
        set .gmlevel,60; //Minimum Gm level allowed to spawn MVPS.
        set .fiesta,0; // If enabled will spawn that many random MVPs on the players map if no other information is provided! (Off=0) Will bypass Maximum amount!
        set .fontcolor$,"FFFF00"; // Hexi color text is announced in.
        set .Lamount,20; // Maximum amount of mvps that can be spawned at once.
        set .Mamount,100; // Maximum amount of mvps on one map at a time. (Off=0)
        set .blacklist$,"|1288|1003|1004|1005|";
        //=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
    }

     

    image.png.1a4b35c5585664877d9aeb429c74363d.png

    still having an error, this npc works like summoning an MVP mobs or Normal mobs.

×
×
  • Create New...