Jump to content

Blades Chat! (Time TBA)


Ephesos

Recommended Posts

Hey! You, over there! Yes you, the one with the BoA Editor open!

 

It's that time of the year again, and we really ought to have a Blades chat. With the upcoming contest deadline blowing in the wind, and various issues between the Lyceum and the Forge still being resolved, it's about time we sat everybody down for a talk.

 

As for time, I propose this Saturday (December 29th) at 4pm EST. Thoughts?

Link to comment
Share on other sites

Quote:
various issues between the Lyceum and the Forge
That sounds almost as if there was some kind of conflict that I didn't know about. :p (No, really, I don't intend to compete; more to cooperate.)

I'll be there. I can currently be online at any hour, so 2200 local time is no difficulty.
Link to comment
Share on other sites

Oh, ceterum censeo: Is there a reason besides tradition why we eschew the use of IRC in favor of AIM? Just a general question.

 

It's no problem for me personally (although you'll see Arancaytar42 instead of RealArancaytar in all chats), but you would be surprised how much more convenient it is for AIM users to join an IRC network than for non-AIM users to register at AOL.

Link to comment
Share on other sites

I would be very surprised. I just registered a new screen name here:

 

https://reg.my.screenname.aol.com/_cqr/registration/initRegistration.psp?

lang=en&locale=us&createSn=1&sitedomain=www.aim.com&siteState=http%3A%2F%2F

www.aim.com%2Fget_aim%2Fcon gratsd2.adp&seamless=n&mcAuth=%2FBcAG0d2di0AAK85Abrc9Ud2dmkIdoml3ZZvi4wAAA%3D%3D

 

I logged out just as if I didn't have a screen name. It took about 30 seconds, you just fill out one form.

 

Look, I'm the last person who will say AIM is better than IRC. It's not. But AIM you install, run, and it works. IRC takes more setting up. Also, AIM is very common these days, but IRC is not. And when you just want to get a high attendance, that's a problem.

Link to comment
Share on other sites

Sigh. It looks like I'll be rather late, or miss most of the chat. My parents decided that we have to go out to a restaurant for a nice dessert, which I'm all in favor of except that they have for some reason chosen the strange time of 2:30 for it, making it unlikely that I will be back by 3, that being the time of the chat in my time-zone. We'll see.

Link to comment
Share on other sites

A cleaned up version by Laz and myself is available below. It does a few things differently:

 

1) Removes obsolete/redundant variables.

2) Solves a nasty problem of mixing the identity of the NPCs.

3) Extendable to work for any number of NPC types so long as they do not have the same creature ID.

4) Transfers level, stats, and status effects allowing more dynamic NPCs if the designer wishes.

 

Please give comments and bug fixes. I'd be surprised if it works in general. As a side note basicnpc is a bad idea with this script as it has a tendency to just return to its original editor placed position. A companion joinablenpc script should be developed.

 

Code:
//Created by Dahak on SAT DEC-29-2007//Revised with the help Lazarus, Nioca, and Stareye.  Thanks for the help!begintownscript;variables;int i, new_npc1 = -1,new_npc2 = -1;body;beginstate INIT_STATE;	// Remove local versions of NPCs	erase_char(6);	erase_char(7);	//all the way up to char xbreak;beginstate START_STATE;	//Split NPC from Party when combat begins	if ( is_combat() && char_ok(4) ) {		new_npc1 = -1;		i = 6;		while (i <= 7) { 			if (creature_type(4) == creature_type(i))				new_npc1 = i;			i = i + 1;		}		if (new_npc1 == -1) {			print_str_color("ERROR: No matching NPC to slot 4 found.",1);		}		else {					spawn_creature(new_npc1);			set_level(new_npc1, get_level(4) );			i = 0;			while (i <= 31) {				alter_stat(new_npc1, i, (get_stat(4,i) - get_stat(new_npc1,i)) );				i = i + 1;			}			i = 0;			while (i <= 30) {				set_char_status(new_npc1, i, get_char_status(new_npc1,i), 1, 0);				i = i + 1;			}			change_char_health(new_npc1, -1000);			change_char_health(new_npc1, get_health(4) );			change_char_energy(new_npc1, -1000);			change_char_energy(new_npc1, get_energy(4) );			relocate_character(new_npc1, char_loc_x(4), char_loc_y(4));			erase_char(4);		}	}	if ( is_combat() && char_ok(5)) {		new_npc2 = -1;		i = 6;		while (i <= 7) { 			if (creature_type(5) == creature_type(i))				new_npc2 = i;			i = i + 1;		}		if (new_npc2 == -1) {			print_str_color("ERROR: No matching NPC to slot 5 found.",1);		}		else {			spawn_creature(new_npc2);			set_level(new_npc2, get_level(5) );				i = 0;			while (i <= 31) {				alter_stat(new_npc2, i, (get_stat(5,i) - get_stat(new_npc2,i)) );				i = i + 1;			}			i = 0;			while (i <= 30) {				set_char_status(new_npc2, i, get_char_status(5,i), 1, 0);				i = i + 1;			}			change_char_health(new_npc2, -1000);			change_char_health(new_npc2, get_health(5) );			change_char_energy(new_npc2, -1000);			change_char_energy(new_npc2, get_energy(5) );			relocate_character(new_npc2, char_loc_x(5), char_loc_y(5));			erase_char(5);		}	}	// Rejoin NPC with Party when combat ends	if ( (is_combat() == FALSE) && char_ok(new_npc1) )		add_char_to_party(new_npc1);	if ( (is_combat() == FALSE) && char_ok(new_npc2) )		add_char_to_party(new_npc2);break;beginstate EXIT_STATE;if ( char_ok(new_npc1) )	add_char_to_party(new_npc1);if ( char_ok(new_npc2) )	add_char_to_party(new_npc2);break;
Link to comment
Share on other sites

I'm assuming the problem #2 is mixing NPC1 with NPC2? If the desinger places the same NPC in every town with the same CharID and CreatureID then it shouldn't break.

 

Of course relying on the designer to do that is... unwise.

 

Edit:

Why is the change health statement using -1000? Wouldn't it be better to use:

change_char_health(new_npc1, ( get_health(4) - get_max_health(4) ) )

Link to comment
Share on other sites

That is indeed the problem. The main issue, at least when there are only 2 possible NPCs, is that if NPC4 dies NPC5 will become NPC4. I think you see where this is going...

 

However a nice side effect of changing it the way we did is you can now have more than two possible NPCs. If you change the while loop to go up to 10 instead of 7, you can now have 5 different NPCs that can join the party. You can have as many different joinable NPCs as you want, and you don't have to worry about what order they join the party in or antyhing like that.

 

Stareye did the health reset that way just to match the energy reset, which can only be done that way. As long as the creature doesn't have over 1000 health it functions identically.

Link to comment
Share on other sites

Join the conversation

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

Guest
Reply to this topic...

×   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.

×
×
  • Create New...