Jump to content

  •  

Aaeru

Member Since 16 Oct 2016
Offline Last Active Dec 05 2016 07:36 PM
-----

Topics I've Started

Problem with next and previous page.

17 November 2016 - 08:28 PM

Hi Hercules!

 

I'm using a nice script that trades costumes for costumes. But I'm having a problem with the next and previous page options.

 

This is what's buggy:

 

- If I click previous page in the menu, it does next page instead.

- If I click previous page on the LAST page (when there are no further items to show), it closes the window.

 

Can you please help me fix it? And if its not too much to ask, tell me which lines should be changed please? I don't want to replace the whole script because it's part of something bigger (for which I need my local (unchanged) text file for it to be functional). I would like to make line adjustments 1 by 1, please? I learn more that way. :)

 

Thanks so much! Forever grateful! ^^

 

prontera,156,188,3    script    Costume Trader    4_M_4THPRIN2,{
function AddItem;
 
    // Preview section
    set @topview, getlook(4);
    
    addtimer 3000, strnpcinfo(3)+"::OnLeave";
 
    mes "[Custom Costume Trader]";
    mes "Hello " +strcharinfo(0)+ ", I offer Costume trading services. Sounds nice right?";
    menu "- Trade my Custom Costume for another Costume",-;
    next;
    mes "[Custom Costume Trader]";
    mes "Alright! If you want to change your Custom Costume, I require:";
    mes "1x Custom Costume";
    mes "3x Credit";
    
    if (select("Continue, please.:Not interested.") - 1) close;
 
    next;
    mes "[Custom Costume Trader]";
    mes "Very well, let's proceed with the process. Select the Costume that you want to trade:";
    getinventorylist;
    for (.@i = 0; .@i < @inventorylist_count; .@i++) {
        if ( getiteminfo( @inventorylist_id[.@i],5 ) & ( 1|256|512 ) == 0 ) continue;// not an Costume
        for ( .@j = 0; .@j <= .num_total/128; .@j++ ) {
            if ( compare( getd( ".itemidcompare"+ .@j +"$" ), ":"+ @inventorylist_id[.@i] +":" ) ) {
                setd ".@arraymenu_"+ ( .@count/25 ) +"$["+ ( .@count%25 ) +"]", getitemname( @inventorylist_id[.@i] );
                setd ".@itemid_"+ ( .@count/25 ) +"["+ ( .@count%25 ) +"]", @inventorylist_id[.@i];
                setd ".@refine_"+ ( .@count/25 ) +"["+ ( .@count%25 ) +"]", @inventorylist_refine[.@i];
                setd ".@attribute_"+ ( .@count/25 ) +"["+ ( .@count%25 ) +"]", @inventorylist_attribute[.@i];
                setd ".@identify_"+ ( .@count/25 ) +"["+ ( .@count%25 ) +"]", @inventorylist_identify[.@i];
                setd ".@card1_"+ ( .@count/25 ) +"["+ ( .@count%25 ) +"]", @inventorylist_card1[.@i];
                setd ".@card2_"+ ( .@count/25 ) +"["+ ( .@count%25 ) +"]", @inventorylist_card2[.@i];
                setd ".@card3_"+ ( .@count/25 ) +"["+ ( .@count%25 ) +"]", @inventorylist_card3[.@i];
                setd ".@card4_"+ ( .@count/25 ) +"["+ ( .@count%25 ) +"]", @inventorylist_card4[.@i];
                .@count++;
            }
        }
    }
    if ( .@count == 0 ) {
        sleep2 2000;
        mes "It appears that you have no Costume, sorry but I can't help you.";
        close;
    }
    
    if(countitem(501) < 3) {
        mes "[Custom Costume Trader]";
        mes "IYou do not meet the requirements. For you to use my service, I need 3 Credit and a Costume.";
        close;
    }
    
    while(1) {
        .@menu$ = ( .@page ? "^777777Previous Page^000000:" : ":" ) + implode( getd( ".@arraymenu_"+ .@page +"$" ), ":" ) + ( .@page == .@count/25 ? "":":^777777Next Page^000000" );
        .@s = select( .@menu$ ) -2;
        if ( .@s == -1 && .@page )
            .@page--;
        else if ( .@s == 25 )
            .@page++;
        else
            break;
    }
        
    .@item_name$ = getd( ".@arraymenu_"+ .@page +"$["+ .@s +"]" );
    .@myitem_id = getd( ".@itemid_"+ .@page +"["+ .@s +"]" );
    mes "You've selected your ^FF0000" + getd( ".@arraymenu_"+ .@page +"$["+ .@s +"]" ) + "^000000, is that correct?";
    next;
    if (select("Yes, it is.:No.") - 1) close;
    
    if( getequipname(EQI_HEAD_TOP) != ""){
        sleep2 100;
        next;
        mes "[Custom Costume Trader]";
        mes "Make sure you don't have anything equipped in your top headgear slot first! I can't properly let you preview otherwise!";
        close;
    }
    
    mes "[Custom Costume Trader]";
    mes "Very well then, now select the Costume you want to exchange your " + .@item_name$ + " for:";
    mes "^FF0000Your character will be wearing a preview of the selected Custom Costume!^000000";
    
L_Menu:
next;
    for ( .@j = 0; .@j < .num_total; .@j += 25 ) {
        .@menu$ = ( .@j/25 ? "^777777Previous Page^000000:" : ":" );
        for ( .@i = .@j; .@i < .@j +25; .@i++ ) {
            .@item_id = getd( ".itemid"+ ( .@i/128 ) +"["+ ( .@i%128 ) +"]" );
            if ( .@item_id )
                .@item_name2$ = getitemname( .@item_id );
            else
                .@item_name2$ = ":";
            .@menu$ = .@menu$ + .@item_name2$ +":";
        }
        .@menu$ = .@menu$ + ( .@j/25 != .num_total/25 ? "^777777Next Page^000000" : "" );
        .@s2 = select( .@menu$ ) -2;
        if ( .@s2 == -1 && .@j/25 )
            .@j -= 20;
        else if ( .@s2 != 25 )
            break;
    }
    .@tradeid = getd( ".itemid"+ ( ( .@j + .@s2 ) /128 ) +"["+ ( .@j + .@s2 )%128 +"]" );
        
    if(.@tradeid == 0)
    close;
    
    set @equip, getiteminfo(.@tradeid, 5);
    set @view, getiteminfo(.@tradeid, 11);
    atcommand "@changelook 1 " + @view;
 
    .@item_name$ = getd( ".@arraymenu_"+ .@page +"$["+ .@s +"]" );
    .@myitem_id = getd( ".@itemid_"+ .@page +"["+ .@s +"]" );
    
    mes "[Custom Costume Trader]";
    mes "Please confirm that you want to use 500 Credit for trading your ^FF0000" + .@item_name$ + "^000000 for a";
    mes "<ITEMLINK>"+ getitemname(.@tradeid)+"<INFO>"+ .@tradeid +"</INFO></ITEMLINK>:";
 
    if (select("Confirm:I would like trying another Costume!") - 1) goto L_Menu;
    if (countitem( .@myitem_id ) == 0 || countitem(32744) < 500) {
        mes "[Custom Costume Trader]";
        mes "It appears that you don't meet the requirements. In order to use my service, you need to have a Custom Costume and 500 Credit.";
        close;
    }
    .@identify = getd( ".@identify_"+ .@page +"["+ .@s +"]" );
    .@refine = getd( ".@refine_"+ .@page +"["+ .@s +"]" );
    .@attribute = getd( ".@attribute_"+ .@page +"["+ .@s +"]" );
    .@card1 = getd( ".@card1_"+ .@page +"["+ .@s +"]" );
    .@card2 = getd( ".@card2_"+ .@page +"["+ .@s +"]" );
    .@card3 = getd( ".@card3_"+ .@page +"["+ .@s +"]" );
    .@card4 = getd( ".@card4_"+ .@page +"["+ .@s +"]" );
    delitem2 .@myitem_id,1, .@identify, .@refine, .@attribute, .@card1, .@card2, .@card3, .@card4;
    getitem2 .@tradeid,1, .@identify, .@refine, .@attribute, .@card1, .@card2, .@card3, .@card4;
 
    delitem 501,3;
    
    next;
    
    mes "[Custom Costume Trader]";
    mes "It has been done! Your Custom Costume has been changed for a different sprite! ";
    mes " ";
    mes "From : " + .@item_name$;
    mes "To : " +getitemname(.@tradeid);
    dispbottom "3 Credit have been deducted. Current Balance = "+countitem(501)+" Credit.";
    next;
    mes "[Custom Costume Trader]";
    mes "Thank you for using the XTraLifeRO Custom Costume trading system, " +strcharinfo(0)+ "!";
    close;
 
OnInit:
    AddItem( 8003,8005,8006,8015,8016,8017,8018,8019,8020,8021,8022,8023,8024,8025,8026,8027,8028,8029,8030,8031,8032,8033,8034,8035,8036,8037,8038,8039,8040,8041,8042,8043,8044,8045,8046,8047,8052,8053,8054,8055,8056,8057,8058,8059,8060,8062,8063,8064,8065 );
    AddItem( 8066,8067,8068,8069,8070,8071,8072,8073,8074,8075,8076,8077,8078,8079,8080,8081,8082,8083,8084,8085,8086,8087,8090,8094,8095,8099,8100,8102,8103,8104,8105,8106,8107,8108,8109,8110,8111,8112,8113,8114,8115,8116,8117,8118,8119,8120,8121 );
    AddItem( 8122,8123,8124,8125,8126,8127,8128,8129,8130,8131,8132,8133,8154,8157,8158,8159,8160,8161,8162,8163,8164,8165,8166,8167,8168,8169,8171,8175,8176,8177,8178,8181,8183,8185,8186,8188,8192,8193,8194,8195,8196,8197,8201,8205,8206,8207,8208,8209,8210,8212,8213,17777 );
    AddItem( 19000,19001,19002,19003,19005,19006,19007,19008,19009,19010,19011,19012,19013,19015,19016,19017,19018,19019,19020,19021,19022,19023,19024,19025,19026,19027,19028,19030,19031,19046,19049,19050,19051,19052,19053,19055,19056,19057,19058,19059,19060,19061,19062,19063,19064,19065,19066,19067 );
    AddItem( 19068,19069,19075,19076,19085,19090,19091,19095,19098,19100,19105,19109,19113,19120,19129,19134,19137,19139,19140,19141,19142,19143,19146,19149,19150,19156,19160,19162,19163,19164,19165,19166,19168,19175,19179,19180,19181,19185,19187,19191,19192,19195,19197,19202,19203,19204,19205,21064,21082,21117,21179,21183,25018,25037 );
    AddItem( 31027,31028,31029,31030,31031,31032,31033,31034,31035,31249,31250,31252,31253,31254,31255,31256,31257,31258,31283,31284,31285,31286,31287,31288,31289,31290,31291,31292 );
 
function AddItem {
    .@amount = .num_total + getargcount();
    .@i = .@tmp = .num_total;
    while( .@i < .@amount ) {
        .@arg = getarg( .@i - .@tmp );
        if ( getitemname( .@arg ) != "NULL" ) {
            setd ".itemid"+ ( .num_total/128 ) +"["+ ( .num_total%128 ) +"]", .@arg;
            setd ".itemidcompare"+ ( .num_total/128 ) +"$", getd( ".itemidcompare"+ ( .num_total/128 ) +"$" ) +":"+ .@arg;
            .num_total += 1;
            if ( .num_total%128 == 0 )
                setd ".itemidcompare"+ ( .num_total/128 -1 ) +"$", getd( ".itemidcompare"+ ( .num_total/128 -1 ) +"$" ) +":";
            else if ( .num_total == .@amount )
                setd ".itemidcompare"+ ( .num_total/128 ) +"$", getd( ".itemidcompare"+ ( .num_total/128 ) +"$" ) +":";
        }
        .@i++;
    }
}
 
OnLeave:
    atcommand "@changelook 1 " + @topview;
    end;
}

Disable/restrict all items in-game with a few exceptions?

25 October 2016 - 12:28 PM

Hello dear community,

 

I was wondering if someone could aid me with a issue I've been trying to figure out. On a server I work for, we try to host a novice-only event. Only level 1/1 novices may join and they can only bring the default novice equipment that can be purchased in one of the NPCs.

 

I know how to do the level/job check, so where I get stuck is, how do I put a check in the entrance NPC that doesn't allow a character to pass with any item (other than the default novice equips)? This is as far as I got... it probably makes no sense at all. :P

 

Thank you!

 

 

Note: In the following script, the IDs stated should be the ALLOWED ones.

 

    getinventorylist; 
    for(set .@i,0; .@i < getarraysize(@inventorylist_id); .@i++){
        if(@inventorylist_id[.@i] != 2510 && @inventorylist_id[.@i] != 2340 && @inventorylist_id[.@i] != 5055 && @inventorylist_id[.@i] != 2112 && @inventorylist_id[.@i] != 1243 && @inventorylist_id[.@i] != 2414 && @inventorylist_id[.@i] != 2352){
 
            mes .npc$;
            mes "I'm sorry, you're not allowed to carry/wear any items other than the Novice NPC Gear.";
            close;    
            }
        }

Recruitment [Full Team]

16 October 2016 - 02:30 PM

Hello everyone,

 

Ever wanted to run a server but don't have the resources to do so? This may be your chance. I've set up a server and am now looking for a team to help me run it. I'm covering the hosting costs with the current incoming donations so that's something you don't need to worry about. If the server would eventually grow more, I'd be more than happy to share the donations with my staff. Hopefully, your work will eventually get you paid (but that depends on us all).

 

The server is called ThrillRO and has been in open beta since the end of august. Things have been going well, although, we lack a reliable team. Hence why this thread.

__________________________

 

Positions available:

 

- Creativity Duo

Looking for two individuals that are able to write story/quests/events but also cover the visual parts such as create banners, event graphics, forum images, etc. Map and spriting skills are a plus but no must. Do you possess one skill but not the other? Contact me anyway with some samples.

 

- Hercules Coders

Preferably 2-3 coders that have knowledge of Hercules scripting and (basic) SQL understanding. It's a huge plus if you know source modification too but not a must. Should be able to bring life to the ideas of the creativity duo and create/fix scripts of average complexity.

 

- Web Developer/Administrator

Looking for one or two individuals that knows php and can make possible adjustments to the site if need be. We currently already have a site/cp and forum so you're not expected to built anything from scratch. Beside that, should also have (basic) forum understanding (we're using SMF) and management skills.

 

- In-Game All-Rounders

Since I don't want to divide event-, social- and support-GMs in different categories, I'll simply put it as all-round GMs. That is because I strongly believe that a GM should know a bit (or a lot) about everything RO-related and not only how to spawn items. I am looking for knowledgeable individuals to spend time in-game, to provide assistance may players have trouble, to keep them entertained with unique events, enforce rules or simply just socialize.

 

Advertisers

Our important string between the server and new players. You'll represent our server. You're expected to respond to server seeking threads on RMS, control our Facebook account to post (and answer questions/PMs) in Ragnarok Online advertisement groups daily; Server and social media experience is a must as you'll get a great amount of questions.

 

As part of the team, you need to know what you're doing while trying to stick to/work with the original concept. Willing to give you a lot of responsibility if you've proven yourself trust-worthy and competent. 

__________________________

 

 

Now a list of requirements beside the expectations stated above~

 

- You are a minimum age of 18.

- You are mature, responsible, helpful, patient, dedicated, and most of all, you treat players equally.

- You are able to speak(/type) and understand fluent English.

- You have at least 3 years of RO experience/knowledge.

- You are able (and willing) to use Skype.

- You are able (and willing) to use Discord. (Note: no need for voice chat though if you don't want.).

- You are able (and willing) to be active in-game for an average of 2 hours a day (not a must for devs/coders).

- You are able (and willing) to check (and possibly respond) to forum posts 2 times a day.

- You are able (and willing) to answer player support tickets

 

Additional plus (not a must):

 

- Bi- or multi-lingual.

- Age of 23+.

- Time zone: Central Standard Time, Philippines Time.

- [Dev only] You own a local test server.

 

___________________________

 

What do we offer in return? Most of all, a fun working environment in a lovely team, a great learning experience and (as stated above) even a part of the donations if things go well/in the long run.
 
Are you interested in becoming a part of my team and do you meet the requirements listed above? Then please send an application to me in PM and try to cover as many points as possible (name, age, nationality, GM experience, e-/rAthena/Hercules experience, servers you've worked for, sample scripts/graphics, etc). The more information I receive of you, the better! :)
 
Thank you very much for your consideration and interest!