Jump to content

Helena

Members
  • Content Count

    238
  • Joined

  • Last visited

Posts posted by Helena


  1. On 5/20/2018 at 5:31 PM, AnnieRuru said:

    http://upaste.me/c7b7498104f6c72df

    you know ... this script do exactly the same thing as the previous one ...
    now you can see the script just look totally different

    EDIT: although I don't know you are also obsess with instanced battleground or not ... since both hercules and rathena also can do it

    That script works fantastic! But can I make one more request miss Annie? Would it be possible to reward both winners and losers? Like 10 red pots for the winner, 5 red pots for the loser?

    Thanks so much!


  2. 13 hours ago, AnnieRuru said:

    wait a moment ... you are using rathena but that bg script in github doesn't work for you ?
    must have mean you are using very outdated emulator

    https://github.com/rathena/rathena/commits/master/npc/custom/battleground/bg_emp.txt
    check the history and use the initial version that Euphy posted 4 years ago ?

    Oh no that script works fine annie! My emulator is updated. I just liked the way of registration in the other version you posted a lot more, were it doesn't require chat rooms. I would love that version but with emperiums. :) 


  3. 7 hours ago, AnnieRuru said:

    hercules<=>rathena battleground/instance/mob-controller script commands are totally different
    I also have to admit hercules one are always on the harder side
    ... this is not funny matter .... just ... well ... see how the script grow in size comparative to rathena ones,
    and you'll understand why until today I still haven't convert my arathi basin on rathena into hercules

    http://upaste.me/f08349808ea0ba1b1

    Oh I'm sorry annie, I'm using rAthena. I should have clarified.. >.<

    I'll try your script regardless and let you know how it goes, thanks so much! :) 

     

    As I was afraid, unfortunately the NPC doesn't work with rAthena, @AnnieRuru. :( 

    The other script i posted is just fine except if possible can there be emps instead of plants?
    Again im very sorry for not being more specific in my first post. >.<


  4. Hey everyone!

    I am looking for some assistance! I came across this amazing script by @AnnieRuru and was hoping someone could offer me a hand (maybe, hopefully the script queen herself)?

    What I want is make this a WoE/emperium version and - instead of a plant - give both parties an emperium to defend. When the emp is broken the team would lose and the other would win. Pretty much like the bg_emp script of rAthena. I tried to study that script but failed to accomplish desired result. :( 

    The shuffle feature is great so hopefully it's possible to make it work! Thanks in advance (:


  5. Hey,

    Can anyone help? I'm using Annieruru's mission board but the daily and only once functions do not work the first time when you complete the mission. If you complete it once, you can complete it again, and only after completing it a second time, it will be labeled as completed.

    This applies both for daily and only once.

    If someone can help me fix it, I'd be forever grateful. Thanks :)
     

    http://upaste.me/r/6a67109559565b02b


  6. Dear community,

     

    I've been working with browedit 586 for years to create maps and it has always served me well. However it has come to my attention that it doesnt support newer models (unlike 620). So i installed 620, all was well except whenever i render lightmaps and try to quicksave, it says "too many lightmaps!" and clears them again. Also a normal "save" or "save as" crashes the whole thing. 

     

    I'm stuck now, because i cant open the new map in brow 586 due to new models that my map has and brow 620 doesn't let me save the lightmaps.

     

    Does anyone know what i can do? I've already tried copying over the 620 romodels.txt and rotextures.txt into the 586 directory but alas, doesn't work. :(


  7. Hi Hercules,

     

    Does anyone know what I've done wrong here?

     

    It transfers over the refine rate perfectly, but it doesn't transfer over the card (should be the card that's compounded in the bone helm). The getitem2 just deletes it. Does anyone know why?

     

    Thanks a lot!

     

    
        next;
        getinventorylist;
       for(set .@i,0; .@i < @inventorylist_count; set .@i,.@i+1){
            if ( @inventorylist_id[ .@i ] == 5162 ) // Slotted bone helm
                .@refine$[ getarraysize( .@refine$ ) ] = @inventorylist_refine[ .@i ];
                .@card1$[ getarraysize( .@card1$ ) ] = @inventorylist_card1[ .@i ];
                }
     
        getitem2 5162,1,1,.@refine$,0,.@card1$,0,0,0;

  8. Hi Hercules!

     

    Question, i have made a event but would like for players not to be let in with certain items.

     

    How do i delete all the said items? for example, a player is carrying 50 blue potions but i want to delete those as well as anything under that amount (i.e they've used 2, it should still delete the remaining 48). delitem only works per specific amount, Ive input 50 but it gives a map-server error if i have less than that in my inventory.

     

    How will i achieve this?

     

    Thanks! :)


  9. Hey Hercules!

    Does anyone know how i can make it so the losers of this script will also get 3x platinum coin (677) instead of only the winners?

     

    I've tried to throw in a getitem before the bg_warp when the match is over but it doesn't quite work (player not attached message).

    Thank you so much!
     

    -    script    bg_emp#control    HIDDEN_NPC,{
    OnInit:
        .minplayer2start = 1; // minimum player to start
        .winningscore = 3; // final score to win
        .eventlasting = 20 * 60; // abort the system if there's no progress, 20 mins * seconds
        setarray .rewarditem, 677, 10; // reward to the winning team
        end;
    OnStart:
        if ( getwaitingroomstate( 0, .rednpcname$ ) < .minplayer2start || getwaitingroomstate( 0, .bluenpcname$ ) < .minplayer2start ) end;
        .red = waitingroom2bg( "bat_b01", 66,149, strnpcinfo(0)+"::OnRedQuit", strnpcinfo(0)+"::OnRedDead", .rednpcname$ );
        copyarray .team1aid, $@arenamembers, $@arenamembersnum;
        .team1count = .minplayer2start;
        .blue = waitingroom2bg( "bat_b01", 331,149, strnpcinfo(0)+"::OnBlueQuit", strnpcinfo(0)+"::OnBlueDead", .bluenpcname$ );
        copyarray .team2aid, $@arenamembers, $@arenamembersnum;
        .team2count = .minplayer2start;
        delwaitingroom .rednpcname$;
        delwaitingroom .bluenpcname$;
        disablenpc .rednpcname$;
        disablenpc .bluenpcname$;
        bg_warp .red, "bat_b01", 66,149;
        bg_warp .blue, "bat_b01", 331,149;
        bg_updatescore "bat_b01", 0, 0;
        sleep 6000 * !.skip;
        mapannounce "bat_b01", "Mini WoE : Welcome to the Mini WoE Event! Both guilds have an Emperium summoned both at the opposite side of the arena. The guild that destroys the other guild's Emperium (3 times) first is the winner!", 0;
        sleep 3000 * !.skip;
        mapannounce "bat_b01", "Mini WoE : All participants, please get ready! The battle is about to begin!", 0;
        sleep 2000 * !.skip;
        while (1) {
            for ( .@i = 5; .@i > 0; .@i-- ) {
                mapannounce "bat_b01", "["+ .@i +"]", 0;
                sleep 1000 * !.skip;
            }
            if ( .score[1] == .winningscore -1 && .score[2] == .winningscore -1 )
                mapannounce "bat_b01", "Mini WoE : Final round, get ready!", 0;
            else
                mapannounce "bat_b01", "Mini WoE : Round " + (1+(.round++ ))+"/3... go!", 0;
            bg_monster .red,"bat_b01",61,149, "--ja--",1288, strnpcinfo(3)+"::OnRedDown";
            bg_monster .blue,"bat_b01",331,149, "--ja--",1288, strnpcinfo(3)+"::OnBlueDown";
            delwall "bg_emp_town_red";
            delwall "bg_emp_town_blue";
            sleep .eventlasting * 1000 * !.skip;
            bg_updatescore "bat_b01", .score[1], .score[2];
            killmonster "bat_b01", strnpcinfo(3)+"::OnRedDown";
            killmonster "bat_b01", strnpcinfo(3)+"::OnBlueDown";
            if ( getstrlen( .empkiller$ ) )
                mapannounce "bat_b01", .empkiller$ +" has destroyed "+( ( .winside == 1 )?"Blue":"Red" )+" Guild's Emperium! The "+( ( .winside == 1 )?"Red":"Blue" )+" Team scores a point!", 0;
            if ( .score[1] == .winningscore || .score[2] == .winningscore || !.winside ) break;
            sleep 5000 * !.skip;
            bg_warp .red, "bat_b01", 66,149;
            bg_warp .blue, "bat_b01", 326,149;
            sleep 1000 * !.skip;
            .winside = 0;
        }
        if ( .winside ) {
            mapannounce "bat_b01","The "+( ( .winside == 1 )?"Red":"Blue" )+" Guild is the winner of this Mini WoE! Thank you all for participating!", 0;
            for ( .@i = 0; .@i < getd(".team"+ .winside +"count"); .@i++ )
                getitem .rewarditem[0], .rewarditem[1], getd(".team"+ .winside +"aid["+ .@i +"]" );
        } else
            mapannounce "bat_b01", "Time Out. Aborting the match.", 0;
        sleep 5000;
        bg_warp .red, "prontera", 155,182;
        bg_warp .blue, "prontera", 158,182;
        bg_destroy .red;
        bg_destroy .blue;
        delwall "bg_emp_town_red";
        delwall "bg_emp_town_blue";
        deletearray .team1aid;
        deletearray .team2aid;
        .round = .winside = .skip = .score[1] = .score[2] = .team1count = .team2count = 0;
        enablenpc .rednpcname$;
        enablenpc .bluenpcname$;
        donpcevent .rednpcname$ +"::OnStart";
        donpcevent .bluenpcname$ +"::OnStart";
        end;
    OnRedDown: callsub L_EmpDown, 2;
    OnBlueDown: callsub L_EmpDown, 1;
    L_EmpDown:
        .empkiller$ = strcharinfo(0);
        .winside = getarg(0);
        .score[ .winside ]++;
        awake strnpcinfo(0);
        end;
    OnRedDead: callsub L_dead, 2;
    OnBlueDead: callsub L_dead, 1;
    L_dead:
        for ( .@i = 0; .@i < getd(".team"+ getarg(0) +"count"); .@i++ )
            getitem 608, 1, getd(".team"+ getarg(0) +"aid["+ .@i +"]" ); // give a ygg leaf here
        sleep2 1250;
        percentheal 100,100;
        end;
    OnRedQuit: callsub L_quit, 1, "Red", 2;
    OnBlueQuit: callsub L_quit, 2, "Blue", 1;
    L_quit:
        percentheal 100, 100;
        while ( getd( ".team"+ getarg(0) +"aid["+ .@i +"]" ) != getcharid(3) && .@i < getd(".team"+ getarg(0) +"count") ) .@i++;
        deletearray getd( ".team"+ getarg(0) +"aid["+ .@i +"]" ), 1;
        setd ".team"+ getarg(0) +"count", getd(".team"+ getarg(0) +"count") -1;
        if ( getd(".team"+ getarg(0) +"count") ) end;
        mapannounce "bat_a01", "All "+ getarg(1) +" team members have quit the Mini WoE Event!", 0, 0xff3333; // purposely use different color
        .score[ getarg(2) ] = .winningscore;
        .winside = getarg(2);
        .skip = 1;
        awake strnpcinfo(0);
        end;
    }
     
    quiz_00,59,37,3    script    Red Guild#bg_emp    4_M_CRU_KNT,{
        end;
    OnInit:
        sleep 1;
        set getvariableofnpc( .rednpcname$, "bg_emp#control" ), strnpcinfo(0);
    OnStart:
        disablenpc "Guildsman Recruiter";
        waitingroom "Red Guild", getvariableofnpc( .minplayer2start, "bg_emp#control" ) +1, strnpcinfo(0)+"::OnJoin", 1;
        end;
    OnJoin:
    //    announce "The Red Guild has ["+ getwaitingroomstate(0) +"/"+ getvariableofnpc( .minplayer2start, "bg_emp#control" ) +"] User", 0;
        donpcevent "bg_emp#control::OnStart";
        end;
    }
     
    z_agit,24,186,3    script    Blue Guild#bg_emp    4_M_KY_SOLD,{
        end;
    OnInit:
        sleep 1;
        set getvariableofnpc( .bluenpcname$, "bg_emp#control" ), strnpcinfo(0);
    OnStart:
        disablenpc "Guildsman Recruiter";
        waitingroom "Blue Guild", getvariableofnpc( .minplayer2start, "bg_emp#control" ) +1, strnpcinfo(0)+"::OnJoin", 1;
        end;
    OnJoin:
    //    announce "The Blue Guild has ["+ getwaitingroomstate(0) +"/"+ getvariableofnpc( .minplayer2start, "bg_emp#control" ) +"] User", 0;
        donpcevent "bg_emp#control::OnStart";
        end;
    }
     
    bat_b01    mapflag    battleground    2
    bat_b01    mapflag    nosave    SavePoint
    bat_b01    mapflag    nowarp
    bat_b01    mapflag    nowarpto
    bat_b01    mapflag    noteleport
    bat_b01    mapflag    nomemo
    bat_b01    mapflag    nopenalty
    bat_b01    mapflag    nobranch
    bat_b01    mapflag    noicewall

  10. Hi Hercules!

     

    I'm wondering what the cause of this could be. As the title states, my mail box cannot be opened and @mail does not work. So far I know I did not make any changes to disable the mail system.

     

    Client is 2015-05-13aRagexe and langtype is 1 (tried 0 as well).

     

    Map-server gives no errors, the @mail command also gives no unknown command message. Nothing just happens...

     

    Any idea what could be the case? :(


  11. My quick workaround would be adding a check if return value from getitemname is not "null". Then add the name to the menu.

     

    Any idea how that could be achieved? Something like this?

     

    if (getitemname( .itemid[ .@k ]) == "null" ){

    end; 

    }

     

    ?


  12. Hi again script pros. :)

     

    I have a issue with an array/menu I'm using. 

     

    The snippet below is a part of my script and it works as intended except for one small issue.

     

    As you can see, in the snippet I have 34 items in my setarray, but my items per page is 25. Which means that on the first page, it gives 25 items (which is how it should) BUT on the second it only gives 9 and it fills up the remaining 16 menu items with "null" to make it a total of 25 options.

     

    My question is, how do i have 25 items per page but on the last page make it so it doesn't fill up with "null"s? Have those nulls cut off instead? Thank you sooo much! I appreciate everything you helped me with, community. :)

     

     

        setarray .itemid,8028,8039,8031,8042,8053,8096,8134,8135,8155,8156,8170,8172,8182,8189,8190,8202,8203,8204,8211,8214,8215,8501,19004,19014,19029,19047,17048,29054,19170,12102,29121,19153,29193,16201;
     
        .itemperpage = 25;
     
        .@itemsize = getarraysize( .itemid );
        .@maxpage = .@itemsize / .itemperpage + ( .@itemsize % .itemperpage > 0 );
        while ( .@i < .@maxpage ) {
            .menu$[ .@i ] = ( .@i )? "^777777Previous Page^000000:" : ":" ;
            .@j = 1;
            while ( .@j < .itemperpage +1 ) {
                .itemname$[ .@k ] = getitemname( .itemid[ .@k ] );
                .menu$[ .@i ] = .menu$[ .@i ] + .itemname$[ .@k ] +":";
                .@j++;
                .@k++;
            }
            .menu$[ .@i ] = .menu$[ .@i ] +( ( .@i < .@maxpage -1 )? "^777777Next Page^000000" : "" );
            .@i++;
        }
        end;

  13. Thank youuu!

     

     

     


    I guess you need to change .@refine$ into .@refine to get rid off of the error

     

    Thanks for the reply. Thought that did the trick, but it didn't. Gives this error now. :(

     

    [Error]: script:implode: not string array
    [Debug]: Data: variable name='.@refine' index=0

     

    r />/>

    >(Don't know why I can't quote @Patskie post)

    The Script posted by patskie have some bug,

    Patskie isn't storing Cards and other fields of item, which may led to delitem2 not successfully complete, and as a result, the item with cards won't be traded no matter how much ever you try to

    tradelockquote>

     

    This is ok. I only need it for non-slotted/carded items. So unless that's not the only issue, this is fine I guess. :)

     

    Now only to do the display in a cleaner way. Does anyone know how I can achieve a list with item names instead of the refine rates only in the menu? 

    blockquote>
    new_1-1,56,126,0	script	Test	4W_SAILOR,{
    	if (!countitem(5172)) {
    		mes "You don't have any "+ getitemname(5172);
    		close;
    	}
    	getinventorylist;
    	mes "Pick the refine rate of "+ getitemname(5172) +" that you want to trade...";
    	next;
    	.@menu$ = "";
    	for (.@i = 0; .@i < @inventorylist_count; ++.@i) {
    		if (@inventorylist_id[.@i] == 5172 && @inventorylist_identify[.@i] == 1) {	// We Need Identified Item
    			.@card = 0;
    			if (@inventorylist_card1[.@i])
    				.@card++;
    			if (@inventorylist_card2[.@i])
    				.@card++;
    			if (@inventorylist_card3[.@i])
    				.@card++;
    			if (@inventorylist_card4[.@i])
    				.@card++;
    			// ~ +7 ItemName (x4 Cards)
    			.@menu$ = .@menu$ +"~ +"+ @inventorylist_refine[.@i] +" "+ getitemname(@inventorylist_id[.@i])+ " (x"+ .@card +" Cards):";
    			.@index[getarraysize(.@index)] = .@i;
    		}
    	}
    	.@menu$ = .@menu$ +"Cancel";
    	.@s = select(.@menu$)-1;
    	if (.@s == getarraysize(.@index))
    		close;
    	.@i = .@index[.@s];
    	mes "Are you sure you want to trade +"+ @inventorylist_refine[.@i] +" "+ getitemname(@inventorylist_id[.@i]) +" to +"+ @inventorylist_refine[.@i] +" "+ getitemname(2249) +"?";
    	next;
    	if (select("Yes:No") == 2)
    		close;
    	delitem2 @inventorylist_id[.@i], 1, 1, @inventorylist_refine[.@i], @inventorylist_attribute[.@i], @inventorylist_card1[.@i], @inventorylist_card2[.@i], @inventorylist_card3[.@i], @inventorylist_card4[.@i];
    	getitem2 2249,1,1,@inventorylist_refine[.@i],0,0,0,0,0;
    	close;
    }
    

  14. I guess you need to change .@refine$ into .@refine to get rid off of the error

     

    Thanks for the reply. Thought that did the trick, but it didn't. Gives this error now. :(

     

    [Error]: script:implode: not string array
    [Debug]: Data: variable name='.@refine' index=0

     

    (Don't know why I can't quote @Patskie post)

    The Script posted by patskie have some bug,

    Patskie isn't storing Cards and other fields of item, which may led to delitem2 not successfully complete, and as a result, the item with cards won't be traded no matter how much ever you try to trade

     

    This is ok. I only need it for non-slotted/carded items. So unless that's not the only issue, this is fine I guess. :)

     

    Now only to do the display in a cleaner way. Does anyone know how I can achieve a list with item names instead of the refine rates only in the menu? 


  15. Thank you so much Patskie! Do you perhaps know how i can make it so instead of it just displaying the refine amounts in the menu, to display the whole item name? Like "+7 Beret, +0 Beret"?

     

    and it also gives this error. It works but this displays regardless:

     

    [Warning]: Unexpected type for argument 4. Expected number.
    [Debug]: Data: variable name='.@refine$' index=0
    [Debug]: Function: getitem2

  16. Hi community. I'm wondering if someone can help me out in the simplest way possible. :3

     

    Say I want to trade a beret that I'm carrying for a coronet but I want to keep the refine rate. How would that work with delitem2 and getitem2? I've tried looking at other scripts and the wiki samples but I can't figure it out. 

     

    This is how far I got. It doesn't work, it gives the Coronet fine but sadly not with the Berets refine rate:

     

     

        getinventorylist;
        set @refineitemid, getequipid(5172); // save id of the item
        set @refinerycnt, getequiprefinerycnt(5172); //save refinery count
        next;
        
        mes "[Headgear Trader]";
        mes "Are you sure you want to trade your Beret for a Coronet?";
        menu "Yes!",-,"No, I would like a different sprite!",L_Menu2;
        delitem 5172,1;
        getitem2 2249,1,1,@refinerycnt,0,0,0,0,0;
        mes "The deal has been a success! Enjoy your new Headgear~";
        close;

  17. Well actually, all the use you have of the "instance_npcname" command are written the same way:

     

    instance_npcname(has_instance2("1@manp"))

     

    Basically, this can't work, as you don't specify an npc name to retrieve. So, replace all the call with some build this way

     

    instance_npcname(Entrance#man1, has_instance2("1@manp"))

     

    And everything should work.

     

    Tried this but no difference.


  18. *instance_npcname("<npc name>"{,<instance id>});

     

    Haven't looked at the script in detail just from a quick glance I don't see you listing an NPC name. This also matches the error message you are getting. 

     

    :/ not sure if that helps any.

     

    Thanks for attempting to help. I don't know what I should do to make it work though. This happens to be a custom script, but it also gives this error with some official instances. :(

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.