Jump to content

Training Grounds


Maki

Recommended Posts


  • Group:  Members
  • Topic Count:  146
  • Topics Per Day:  0.03
  • Content Count:  1195
  • Reputation:   467
  • Joined:  11/15/11
  • Last Seen:  

SunDeath:

The current Training Ground is the same as eA, basic, straight forward, zero effort, minimal explanation.

The iRO Training Ground is much better than eA, complicated, clear, maximum effort, maximum explanation.

I suggest we either comment out or completely remove the eA Training Ground NPCs and replace them with those from iRO.

For a start I've already replaced Shion with Sprakki.

Don't worry, Shion is still there, just commented out.

I made Sprakki the EXACT same as on iRO.

* The text layout is the exact same

* The "typos" are the exact same

* The cutin is the exact same

* She gives you your very first quest

Here's an example of both:

Shion (eA):

new_1-1,53,114,4	script	Shion#nv1	727,{
if (nov_get_item04 > 9 || nov_get_item05 > 9) {
	mes "[shion]";
	mes "Hm...?";
	mes "What are you";
	mes "still doing here?";
	mes "Oh, you used a ^3355FFButterfly Wing^000000, didn't you?";
	next;
	mes "[shion]";
	mes "No, no, no~";
	mes "You're supposed to use the Butterfly Wing when you want to go back to a town ^666666after^000000 completing your training here, alright?";
	next;
	mes "[shion]";
	mes "Now, let me send";
	mes "you back to the";
	mes "Training Grounds.";
	close2;
	warp "new_1-2",99,99;
	end;
}
else if (nov_1st_cos > 2) {
	mes "[shion]";
	mes "The Training Grounds";
	mes "are located just past";
	mes "the bridge located";
	mes "to the right.";
	next;
	mes "[shion]";
	mes "Although you'll";
	mes "be sitting through";
	mes "some classes, you";
	mes "won't regret it.";
	mes "Now, go for it!";
	close;
}
else if (nov_1st_cos == 2) {
	mes "[shion]";
	mes "Hey...";
	mes "You little rascal!";
	next;
	mes "[shion]";
	mes "Wait...";
	mes "Calm down Shion.";
	mes "You're a professional";
	mes "trainer! Don't get all";
	mes "upset at a Novice!";
	next;
	mes "[shion]";
	mes "Go and cross the bridge to the right, right now! ^666666*Ahem*^000000 You'll see and castle, and inside you can meet all sorts of tutors.";
	next;
	mes "[shion]";
	mes "If you can't see the entrance, just change your in-game camera angle by holding down the ^3355FFright Mouse button^000000 and dragging your mouse. Easy, right?";
	next;
	mes "[shion]";
	mes "To reset your camera angle,";
	mes "just double-click the right Mouse button. Okay then, take care!";
	next;
	mes "[shion]";
	mes "Oh, and before you leave,";
	mes "learn how to treat a lady nice, okay? Then they might give you gifts like this!";
	set nov_1st_cos,3;
	getexp 9,0;
	close;
}
else if (nov_1st_cos == 1) {
	mes "[shion]";
	mes "Huh...?";
	mes "Why are you";
	mes "still here?";
	mes "^666666*Sigh...*^000000";
	next;
	mes "[shion]";
	mes "Hey, when you enter the Training Grounds, you'll learn all sorts of things that will help you play the game. You'll even have the chance to get zeny and other rewards.";
	next;
	mes "[shion]";
	mes "You can even gain";
	mes "experience like this!";
	set nov_1st_cos,3;
	getexp 9,0;
	next;
	mes "[shion]";
	mes "Everything you'll learn here in the Training Grounds will benefit your gameplay. So just think positive, okay?";
	close;
}
else {
	mes "[shion]";
	mes "Hello there~";
	mes "Welcome to the";
	mes "Training Grounds!";
	next;
	mes "[shion]";
	mes "Let's see.";
	mes "Your name is...";
	mes "" + strcharinfo(0) + ".";
	next;
	mes "[shion]";
	mes "My name is Shion.";
	mes "Yes, this is the first time we've met, of course. Hahahaha~!";
	next;
	mes "[shion]";
	mes "Now that we've met, is there anything I can help you with?";
	mes "I'm here for your questions~";
	next;
	switch(select("Where should I go?:About Basic Interfaces.:Who the crap are you?")) {
	case 1:
		mes "[shion]";
		mes "Do you see the bridge to your";
		mes "right side? Just cross the bridge and you'll arrive at a castle. All you have to do is walk inside!";
		next;
		mes "[shion]";
		mes "The entrance of the castle";
		mes "is a ^4D4DFFspinning white light^000000. These portals are what allow you to move from one zone to another.";
		next;
		mes "[shion]";
		mes "Do you know how to move?";
		mes "Left click on a spot, and you'll walk over to that spot. Piece of cake, huh?";
		next;
		mes "[shion]";
		mes "So go for it!";
		mes "Basically, you must enter the castle in order to start your adventures.";
		next;
		mes "[shion]";
		mes "There are soldiers";
		mes "at the entrance, so don't";
		mes "worry about getting lost.";
		mes "Take care now~!";
		set nov_1st_cos,1;
		close;
	case 2:
		mes "[shion]";
		mes "Basic Interfaces...";
		mes "Do you know what Click, Double-click and Drag mean?";
		next;
		mes "[shion]";
		mes "When you press the";
		mes "left Mouse button once,";
		mes "that is a click. When you press the mouse button twice in a row, that's a double-click.";
		next;
		mes "[shion]";
		mes "Dragging is when you move your Mouse while holding down the";
		mes "Mouse button after clicking on something.";
		next;
		mes "[shion]";
		mes "Before we start talking about";
		mes "the Basic Interfaces, you should remember these terms, just because we'll be using them frequently.";
		next;
		mes "[shion]";
		mes "Inside the castle, there is a Basic Interfaces Tutor who can teach you the basics more clearly, okay? Enter the castle to start your training.";
		next;
		mes "[shion]";
		mes "The entrance";
		mes "of the castle is";
		mes "a ^4D4DFFspinning white light^000000.";
		next;
		mes "[shion]";
		mes "There are soldiers";
		mes "at the entrance, so don't";
		mes "worry about getting lost.";
		mes "Take care now~!";
		set nov_1st_cos,1;
		close;
	case 3:
		mes "[shion]";
		mes "Me? I'm Shion!";
		mes "But that's a rude way of asking! I'm volunteering my time and effort here, so you've got to show me a little bit of respect at least!";
		set nov_1st_cos,2;
		close;
	}
}
}

Sprakki (iRO):

new_1-1,53,114,4	script	Sprakki#nv1	90,{

set .@npcname$,"[sprakki]";

if(checkquest(7117) == 1 || checkquest(7117) == 0){
mes .@npcname$;
mes "I will be waiting for you across";
mes "the Bridge to the east.";
close;
}

mes .@npcname$;
mes "Hello there! Welcome to the World";
mes "of Ragnarok Online. My name is";
mes "Sprakki and I'm in charge of giving";
mes "you basic gameplay tips.";
mes "Click on the [Next] button or press";
mes "[Enter] to continue.";
next;
mes .@npcname$;
mes "First you need to learn the very";
mes "basics of controlling your";
mes "character.";
mes "All the basic ^0000FFmoves, selection of";
mes "items, and attack^000000 use the ^0000FFleft^000000";
mes "^0000FFclick of the mouse^000000.";
next;
cutin "tutorial01",3;
mes "-! Info !-";
mes "Click on the ground to move the";
mes "character.";
mes "Attacking monsters and";
mes "conversations with the people of";
mes "this world can be done by simply";
mes "clicking on them.";
next;
cutin "tutorial01",255;
mes .@npcname$;
mes "First off, try moving around.";
mes "do you see that wooden bridge to";
mes "the right?";
next;
getitem 12192,1;
setquest 7117;
mes .@npcname$;
mes "Walk over that bridge and there's a";
mes "castle used as the Training";
mes "Center.";
mes "I will be waiting for you inside of";
mes "that Castle. Please come to the";
mes "castle by yourself.";
close;
}

As you can see, Sprakki gives less info, but more accurate info.

She also gives you an item (Pumpkin Pie, heals a small amount of HP and SP..and I mean really small) and a quest (Fixed the quest description and name, although description is client side).

As you can also see, Sprakki, unlike Shion, does NOT give you a level.

Don't worry about it, you get it later, inside the castle.

My opinion:

We kill the eA training ground and re-create the iRO training ground (I'll do the scripting).

I don't care if you leave the NPCs in, but I do suggest removing them to save space.

Those who play on iRO know the end result of the Training Ground, those who don't play iRO, go play it!

Thank you for reading and allowing me to waste your time, unless you feel you invested your time right, then I just want to say: "Good for you ^^"

EDIT: noticed Sprakki gave the wrong quest (1015) instead of the right one (7117), fixed that.

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  146
  • Topics Per Day:  0.03
  • Content Count:  1195
  • Reputation:   467
  • Joined:  11/15/11
  • Last Seen:  

jTynne

Honestly, this is brilliant. The iRO training grounds covers *so* much more than the kRO / default eA training grounds. I'm for its inclusion. If people wish to use the "old" training grounds, they can simply load in said NPCs. Besides, Sprakki ties in with Eden Group. It'd not make 100% sense to not have her in the training grounds.

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  146
  • Topics Per Day:  0.03
  • Content Count:  1195
  • Reputation:   467
  • Joined:  11/15/11
  • Last Seen:  

SunDeath

Instead of placing them all in inside "novice.txt" which would make the file way to big, I've added a new file for the iRO one.

npc/jobs/novice/novice.txt -> eA / kRO official Training Ground

npc/jobs/novice/novice_iRO.txt -> iRO official Training Ground [will be enabled by default because of its superiority]

I will NOT add it to the svn until Ive tested, compared and double checked EVERY possible situation at EVERY npc.

Also, iRO uses a weird system I have no idea how they do it.

It must be a source edit because it would be too much of a pain, even for them, to add it to every npc.

If you idle for too long (unknown exactly how long) the "next" button will change to a "close" button.

All of their npcs (as far as I know) are scripted in a way this will not cause any exploits.

If a script does open up an exploit using that system, you know you need to script it better.

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  146
  • Topics Per Day:  0.03
  • Content Count:  1195
  • Reputation:   467
  • Joined:  11/15/11
  • Last Seen:  

Ind

+1, it'll be awesome.

Also, iRO uses a weird system I have no idea how they do it.

It must be a source edit because it would be too much of a pain, even for them, to add it to every npc.

If you idle for too long (unknown exactly how long) the "next" button will change to a "close" button.

All of their npcs (as far as I know) are scripted in a way this will not cause any exploits.

IMO thats quite neurotic of them (and dull. instead of fixing the problem they create something to increase latency and avoid the problem), but we could provide such as a optional security measure.

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  146
  • Topics Per Day:  0.03
  • Content Count:  1195
  • Reputation:   467
  • Joined:  11/15/11
  • Last Seen:  

GodLesZ

Also, iRO uses a weird system I have no idea how they do it.

It must be a source edit because it would be too much of a pain, even for them, to add it to every npc.

If you idle for too long (unknown exactly how long) the "next" button will change to a "close" button.

All of their npcs (as far as I know) are scripted in a way this will not cause any exploits.

I never tested such a thing, but maybe they simply send the packet for the close-button after a idle time.

Even if i dont which exploit could be avoided using this, it dosnt sounds to be impossible.

Btw, +1 for your script, nice work!

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  146
  • Topics Per Day:  0.03
  • Content Count:  1195
  • Reputation:   467
  • Joined:  11/15/11
  • Last Seen:  

SunDeath

with the exploit I was more referring to the fact that some scripters (mostly new ones) script a npc something like this:

next;

mes "[ NPC ]";

mes "Here, take an apple";

getitem 512,1;

next;

mes "[ NPC ]";

mes "come back in an hour";

set applegained,1;

-eA's help for hour tick- (I know, I'm lame, forgot the script...lol)

close;

With this above "script" (lol...) if you idle long enough on the next after getting an apple, you can get infinite apples without waiting one hour.

( it's a lame example, don't hate me D: )

Btw, +1 for your script, nice work!

Thank you, but it's actually iRO that made it tongue.png

All I did was read the text, watch the NPC's actions and script it accordingly tongue.png

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  146
  • Topics Per Day:  0.03
  • Content Count:  1195
  • Reputation:   467
  • Joined:  11/15/11
  • Last Seen:  

GodLesZ

with the exploit I was more referring to the fact that some scripters (mostly new ones) script a npc something like this:

next;

mes "[ NPC ]";

mes "Here, take an apple";

getitem 512,1;

next;

mes "[ NPC ]";

mes "come back in an hour";

set applegained,1;

-eA's help for hour tick- (I know, I'm lame, forgot the script...lol)

close;

With this above "script" (lol...) if you idle long enough on the next after getting an apple, you can get infinite apples without waiting one hour.

( it's a lame example, don't hate me D: )

Okay i got it, thank you ^^

Sounds like a nice modification preventing the script from idle.

I will take a look @ some packet tests

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  146
  • Topics Per Day:  0.03
  • Content Count:  1195
  • Reputation:   467
  • Joined:  11/15/11
  • Last Seen:  

Ind

It's possible, I for example thought on having a timer func be run after every npc iteration (next/menu/whatever) in which it'd check the time elapsed since last iteration, and if longer than allowed it'd play a clif_scriptclose on that player, which according to documentation removes the next button (if available) and adds a close button

/// Client behavior:
/// - if dialog window is open:
///   - remove 'next' button
///   - add 'close' button
/// - else:
///   - enable mouse targeting
///   - close the dialog window
///   - close the menu window
/// When 'close' is pressed:
/// - enable mouse targeting
/// - close the dialog window
/// - close the menu window
/// - S 0146 <npcid of dialog window>.L
int clif_scriptclose(struct map_session_data *sd, int npcid)

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  146
  • Topics Per Day:  0.03
  • Content Count:  1195
  • Reputation:   467
  • Joined:  11/15/11
  • Last Seen:  

SunDeath

Thats probably how iRO has it yes, the way you describe it, and the 'code' pasted looks similiar to iRO's behaviour.

How would you do it at a menu though? I mean, a menu is basically an option, a next button and a close (cancel) button..

It would seem kinda mean to have it like this:

- activate script

- get to a menu

- afk for a while

- select menu option

- redo from start due to idle time

Of course, if they do it on purpose I couldn't care less, but if they had to do something real quick will make me feel sorry for them tongue.png

then again, it's impossible to check that tongue.png

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  146
  • Topics Per Day:  0.03
  • Content Count:  1195
  • Reputation:   467
  • Joined:  11/15/11
  • Last Seen:  

SunDeath

Ind, are we going for absolute duplicate or should I fix certain errors they made in the text?

For example:

The following piece of code has minor spelling / grammar errors (mainly oddly placed characters)

Every thing below is taken AS IS from iRO.

Every single mistake, missing space, extra period, EVERYTHING.

And this is just the first NPC they make you meet...

new_1-1,53,114,4	script	Sprakki#nv1	90,{

set .@npcname$,"[sprakki]";

if(checkquest(7117) == 1 || checkquest(7117) == 0){
mes .@npcname$;
mes "I will be waiting for you across";
mes "the Bridge to the east.";
close;
}

mes .@npcname$;
mes "Hello there! Welcome to the World";
mes "of Ragnarok Online. My name is";
mes "Sprakki and I'm in charge of giving";
mes "you basic gameplay tips.";
mes "Click on the [Next] button or press";
mes "[Enter] to continue.";
next;
mes .@npcname$;
mes "First you need to learn the very";
mes "basics of controlling your";
mes "character.";
mes "All the basic ^0000FFmoves, selection of";
mes "items, and attack^000000 use the ^0000FFleft^000000";
mes "^0000FFclick of the mouse^000000.";
next;
cutin "tutorial01",3;
mes "-! Info !-";
mes "Click on the ground to move the";
mes "character.";
mes "Attacking monsters and";
mes "conversations with the people of";
mes "this world can be done by simply";
mes "clicking on them.";
next;
cutin "tutorial01",255;
mes .@npcname$;
mes "First off, try moving around.";
mes "do you see that wooden bridge to";
mes "the right?";
next;
getitem 12192,1;
setquest 7117;
mes .@npcname$;
mes "Walk over that bridge and there's a";
mes "castle used as the Training";
mes "Center.";
mes "I will be waiting for you inside of";
mes "that Castle. Please come to the";
mes "castle by yourself.";
next;
cutin "tutorial02",3;
mes "!- Info !-";
mes "You've received a quest from";
mes "Sprakki.";
mes "You can check the contents of the";
mes "quest in the quest info. window.";
next;
mes .@npcname$;
mes "I will wait inside the Training";
mes "Center across the bridge.";
next;
mes "!- Info !-";
mes "You can open the quest info. window";
mes "by pressing the ^0000FFAlt + U^000000keys at the";
mes "same time.";
next;
cutin "tutorial02",255;
mes .@npcname$;
mes "Have you checked the quest info.";
mes "window?";
mes "I'll be waiting in the castle across";
mes "the bridge.";
close;
}

I've triple checked this NPC, every error is in it and all of the text is in it, included colors.

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  146
  • Topics Per Day:  0.03
  • Content Count:  1195
  • Reputation:   467
  • Joined:  11/15/11
  • Last Seen:  

SunDeath

Ran into a small problem here :/

Whenever I reloadscript or restart the server the text lines seem to mess up, causing weird line breaks

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  146
  • Topics Per Day:  0.03
  • Content Count:  1195
  • Reputation:   467
  • Joined:  11/15/11
  • Last Seen:  

Ind

hum O_O is this issue exclusive to the dialogs from the new training grounds?

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  146
  • Topics Per Day:  0.03
  • Content Count:  1195
  • Reputation:   467
  • Joined:  11/15/11
  • Last Seen:  

SunDeath

not sure, they are the only ones i check tho tongue.png

Oh and, those debug mount testers, they crash me regardless of the fix.

(probably because I dont have the sprite for some weird awkward reason)

this is all using the 2011 client (2011-06-22)

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  146
  • Topics Per Day:  0.03
  • Content Count:  1195
  • Reputation:   467
  • Joined:  11/15/11
  • Last Seen:  

SunDeath

Well, they are part of it xD the debug that is, due to convenient placing xD

And, I'm the one that brought it up tongue.png

For the error, it's a bunch of the same with slight differences so I'll just post 1 image:

mounterror.png

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  25
  • Topics Per Day:  0.01
  • Content Count:  257
  • Reputation:   253
  • Joined:  11/29/11
  • Last Seen:  

I'm so tempted to replace this script with the iRO style training ground.

If anyone has any objections please speak up before I commit the change?

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  146
  • Topics Per Day:  0.03
  • Content Count:  1195
  • Reputation:   467
  • Joined:  11/15/11
  • Last Seen:  

Please do commit =]

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  87
  • Topics Per Day:  0.02
  • Content Count:  1335
  • Reputation:   932
  • Joined:  10/26/11
  • Last Seen:  

Hi.

Seems like you have to edit permissons. Since, we can only see "Maki" posting, and no the other members he is refereing into this forum (ind, etc)

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  6
  • Topics Per Day:  0.00
  • Content Count:  439
  • Reputation:   29
  • Joined:  12/08/11
  • Last Seen:  

I tested pRO Training grounds and the training grounds right now, NPC won't port you to directly to an ascending

or port-me-where-I-want-to level ground but rather you'll be ported randomly when choosing harder mobs.

Is it the same with iRO?

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  146
  • Topics Per Day:  0.03
  • Content Count:  1195
  • Reputation:   467
  • Joined:  11/15/11
  • Last Seen:  

Hi.

Seems like you have to edit permissons. Since, we can only see "Maki" posting, and no the other members he is refereing into this forum (ind, etc)

Is because all these topics are from RREmu staff forum and I just posted (most of) them over with the original poster names.

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  0
  • Topics Per Day:  0
  • Content Count:  47
  • Reputation:   8
  • Joined:  12/06/11
  • Last Seen:  

You made it all from scratch? Why didn't you use the AEGIS one?

http://trac.cronus-e...iz.txt?rev=3240

This script from Cronus Emulator was obtained from AEGIS and was translated to Portuguese (Brazil) using a dialog extractor (by packet sniffing) we made for bRO and optimized (since AEGIS Scripters are pretty repetitive...), which means there's an AEGIS leak circulating that includes this script.

I can see if I still have the original leaked file and if can share with you guys (but since you already have most the dialogs, I don't think it will be necessary.)

You can confirm it's an english leak because of the unreacheable conditions that weren't translated.

@edit

Yup, I have'em. If you want it just PM me and I'll talk to the guy who sent me those files and see if I can share them.

@edit

Changed some terms to make it clear and avoid misinterpretations.

Edited by Vianna
Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  33
  • Topics Per Day:  0.01
  • Content Count:  399
  • Reputation:   198
  • Joined:  11/09/11
  • Last Seen:  

The commit done from RR was originally from the eA Renewal branch. Not sure if it's from any other origins as no other credits were given in the original file besides to those listed in it.

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  0
  • Topics Per Day:  0
  • Content Count:  47
  • Reputation:   8
  • Joined:  12/06/11
  • Last Seen:  

The way I said looked like I was accusing you guys from removing credits.

I was just saying you made it all from scratch when you could just use the leaked official one =)

I guess I didn't make it explicit, sorry =(

Edited by Vianna
Link to comment
Share on other sites

×
×
  • Create New...