Help - Search - Members - Calendar
Full Version: Blizz-ABS v2.7
RPG RPG Revolution Forums > Scripting > Script Submissions > RGSS-Submissions
Pages: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18
alucart13
@sniper308 - maplinks makes dynamic teleports along the edges of the map to easily link with any other map. It's so you don't have to make 100 teleports for each edge. lol biggrin.gif


@Blizzard -
Maplinks is what I explained to sniper308.
I'm pretty sure the reason it won't work right is because both Blizz-ABS and Maplinks alter the Game_character and Game_player script.
If I put maplinks before Blizzabs, maplinks wont work at all.
If I put it after, It will work, but then there's errors with BlizzAbs.

Here is Maplinks
CODE
=begin
============
Maplinks - version 0.95 (2005-11-10)
============
by Wachunga

This script simplifies linking maps together: a single event sets up an
entire edge of the map as a teleport to another map. Players trying to
leave that edge of the current map are automatically teleported.

(This can also be achieved with many copies of teleport events along the edges
of a map or with a parallel-process event that sets variables and uses them to
teleport, but these methods are not optimal -- causing lag and/or inconvenience
for the mapper.)

To link a map with another on a specific edge (north, east, south or west),
create an event with <maplink> included in its name on the appropriate edge of
the map. (To avoid confusion, maplink events on corners of the map are
not valid.) Then, add a teleport ("Transfer Player") command to the event
to specify the destination map and other details (e.g. player direction,
fading on/off). If the destination is an east or west edge, then the Y
coordinate is calculated based on the player's Y coordinate when
teleporting; likewise, the X coordinate is calculated automatically when
the destination is a north or south edge.

Note: unlike normal teleport events, maplinks are activated when the player
tries to leave the screen instead of when stepping on the last tile. This
behaviour could be changed, but I feel that it's more natural this way:
it leaves the whole map open for actual exploration, instead of "wasting"
the outer tiles of a map.

=end

#-------------------------------------------------------------------------------

class Game_Event < Game_Character
alias ml_ge_init initialize
def initialize(map_id, event)
ml_ge_init(map_id, event)
if @event.name.upcase.include?('<MAPLINK>')
dir = nil
if @event.y == $game_map.height-1
dir = 2 unless @event.x == 0 or @event.x == $game_map.width-1
elsif @event.x == 0
dir = 4 unless @event.y == 0 or @event.y == $game_map.height-1
elsif @event.x == $game_map.width-1
dir = 6 unless @event.y == 0 or @event.y == $game_map.height-1
elsif @event.y == 0
dir = 8 unless @event.x == 0 or @event.x == $game_map.width-1
end
if dir != nil
@list.each { |command|
if command.code == 201
# make sure new location isn't be specified by variables
if command.parameters[0] == 0
$game_map.maplinks[dir] = Maplink.new(command.parameters)
break
end
end
}
end
end
end
end

#-------------------------------------------------------------------------------

class Game_Map
attr_accessor :maplinks

alias ml_gm_setup setup
def setup(map_id)
@maplinks = {}
ml_gm_setup(map_id)
end

def width(map_id = @map_id)
if map_id == @map_id
return @map.width
else
return load_data(sprintf("Data/Map%03d.rxdata", map_id)).width
end
end

def height(map_id = @map_id)
if map_id == @map_id
return @map.height
else
return load_data(sprintf("Data/Map%03d.rxdata", map_id)).height
end
end

end

#-------------------------------------------------------------------------------

class Maplink

def initialize(parameters)
@param = parameters
end

def activate
width = $game_map.width(@param[1])
height = $game_map.height(@param[1])
# modify x (p[2]) or y (p[3]) coordinates appropriately
if @param[2] == 0 or @param[2] == width-1
@param[3] = $game_player.y
elsif @param[3] == 0 or @param[3] == height-1
@param[2] = $game_player.x
end
# set up a dummy interpreter just for teleport
interpreter = Interpreter.new
interpreter.parameters = @param
interpreter.index = 0
interpreter.command_201
end

end

#-------------------------------------------------------------------------------

class Game_Player

alias ml_cett check_event_trigger_touch
def check_event_trigger_touch(x, y)
check_maplinks(x,y)
ml_cett(x,y)
end

def check_maplinks(x,y)
if $game_map.valid?(x, y) then return end
dir = nil
if y == $game_map.height then dir = 2
elsif x == -1 then dir = 4
elsif x == $game_map.width then dir = 6
elsif y == -1 then dir = 8
end
if dir != nil
if $game_map.maplinks[dir] != nil
$game_map.maplinks[dir].activate
end
end
end

end

#-------------------------------------------------------------------------------

class Interpreter
attr_accessor :parameters
attr_accessor :index
end
Ty
I made you the topic starter Blizzard, now you should be able to modify the first post with new releases/information. Much more convenient I think.
Blizzard
Thanks, Ty. smile.gif

@alucart13: I see... Hm... Ok, I think I know how this problem can be solved very quickly. The problem is mainly Blizz-ABS's redefinition of Game_Player. Instead of using this piece of code:
CODE
class Game_Player

alias ml_cett check_event_trigger_touch
def check_event_trigger_touch(x, y)
check_maplinks(x,y)
ml_cett(x,y)
end

def check_maplinks(x,y)
if $game_map.valid?(x, y) then return end
dir = nil
if y == $game_map.height then dir = 2
elsif x == -1 then dir = 4
elsif x == $game_map.width then dir = 6
elsif y == -1 then dir = 8
end
if dir != nil
if $game_map.maplinks[dir] != nil
$game_map.maplinks[dir].activate
end
end
end

end

Try this one:
[Show/Hide] new code
CODE
class BlizzABS::Player_Controller

  alias ml_cett check_event_trigger_touch
  def check_event_trigger_touch(x, y)
    check_maplinks(x,y)
    ml_cett(x,y)
  end

  def check_maplinks(x,y)
    return if $game_map.valid?(x, y)
    if y == $game_map.height
      dir = 2
    elsif x == -1
      dir = 4
    elsif x == $game_map.width
      dir = 6
    elsif y == -1
      dir = 8
    else
      dir = nil
    end
    if dir != nil && $game_map.maplinks[dir] != nil
      $game_map.maplinks[dir].activate
    end
  end
  
end

Also find this line:
CODE
class Game_Event < Game_Character

and change it to this one:
CODE
class Game_Event

This isn't necessary, but it's more convenient. And put this entire script below Blizz-ABS.
meganew2
Where do i put the Script??
Blizzard
[Show/Hide] quote from my forum
QUOTE (from my forum)
I have noticed that many people have problems putting my scripts in the right order into the editor. It's not that bad if it were only 3 scripts, but what if it are 6, 7 or even more...? Anyway, here is the script order that should work for my scripts. If a script has ~ before the name, that means "mulitple scripts". Bolded scripts are by me.

  • Resource Tester
  • ~ RTP scripts
  • ~ SDK
  • ~ Other people's scripts
  • Tons of Add-ons Part 1
  • Tons of Add-ons Part 2
  • Tons of Add-ons Part 3
  • StormTronics CMS (any Edition)
  • Blizz-ABS Part 1
  • Blizz-ABS Part 2
  • Blizz-ABS Part 3
  • Creation System
  • Chaos Rage Limit System
  • CRLS + Blizz-ABS plugin
  • Scene_SoulRage
  • Soul Force Combo System
  • Advanced Analyze System
  • Bestiary
  • Chaos Project Debug System
  • Dynamic Day and Night System
  • DREAM for Music Files
  • DREAM for Save Files
  • Easy Party Switcher
  • Easy LvlUp Notifier
  • Custom Stat Growing System
  • Stat Distribution System
  • RO Job/Skill System
  • Full Reflection System
  • Blizz-ABSEAL (DO NOT USE IF YOU HAVE BLIZZ-ABS!!!)
  • Main


You do not have to maintain the exact order of my scripts, but I can't guarantee that there will be no problems if you don't. Individual scripts that I have created are not listed here. I will keep this topic updated.

Updated on 14.7.2008.
Sniper308
@alucart13: Oh, that sounds very useful!
Zeldaknight
Hey, first I would like to say your script is the best one I have found for RMXP, it has REVOLUTIONIZED my game!
Just wondering, is there any way to make enemies unpassable ie. you can't walk through them?

Also this may be hard to understand but I am trying to make it so that when you get your first item there is an event telling you how to use it. I am wondering whether you can change a variable (to run an event) when you pick up an item dropped by an enemy. eg. when you pick up a fish dropped by an enemy it will set 'variable: items' to 1(so an autorun event runs telling you how to use it)

Oh, and by the way when are versions 1.99 and 2.0 coming out? I can't wait! biggrin.gif
Blizzard
I've answered your question a few pages earlier for somebody else already. I think it was page 7 or something like that. In 1.99 enemy passability will be set up just like events.

What you want to make can be done with a rather simple parallel process common event. Just use two conditional branches. One checks if the party has an item, the other checks if the corresponding switch is turned off. If both conditions apply, the corresponding switch is being turned on (so that part of the event is never run again) and a message is displayed. Repeat that part of the common event for as many items as you need. Don't forget that you need a separate swtich for each item.

v1.99 should be done soon. It just depends on how much time I have to work on it and how long the manual revamp will take.
Zeldaknight
Thanks for that and sorry about my first question - you get a bit daunted if there are 11 pages to look through.
Blizzard
Sure, no problem.
Zinx10
Blizzard can I use your music that is in Sir Lag-A-Lot?
Blizzard
Sure. Don't forget the credits. BTW, that music file called "darkness" is a song from Nobuo Uematsu called The Plan. I forgot to rename the file.

I put up the 6th edition. Blizz-ABS Config didn't display the error message that it has to be in the game project's folder but crashed instead. I fixed that.
Zinx10
thanks!
I won't forget the credits!
Zinx10
Its says that I am a developer that is advanced!
My goal is to make a very good game, and get Perfect ratings!
when that happens I will become masterful...mwuhahahahaha!!!!
omegazion
hey, is it possible to change the range of sight, hearing and such of enemy AI with a slight change in script?
Blizzard
The Perception Range (option PERCEPTION_RANGE) is a part of the Enemy Behavior Configuration. tongue.gif The hearing range is always 40% of that range as I mentioned in the manual already. It's more convenient to enforce that ratio.
Sniper308
There's a call script for turning the mini map on and off right?
Blizzard
CODE
$game_system.minimap =
0
Sniper308
Thank you! This will be helpful for a tough boss battle!

Is there a way for the enemy to freeze for a certain time? Like if you were to fight a friend, after 50% is left of the friend, he freezes and you to so you can talk for a sec or to then fight again to kill the remaining 50% of hp? I'm sorry, is that a little confusing?
Blizzard
Well, you can rename events (read 3.2.11 of the manual), but this will reset his HP. I suggest rather using a parallel process that checks over and over how much HP the enemy has. When the HP go below a certain value, make it trigger a switch that will run an auto-start event. Hm... This reminds me that I have to add some commands in the script that allow checking enemy HP/SP/etc.
alucart13
@Blizzard - Thank you! It works great happy.gif
Blizzard
Oddly enough I made it out of my head, I didn't test it. xD
omegazion
hey are you open or suggestions for the next version?
Blizzard
Not at all. Just look how huge the list already is.

http://forum.chaos-project.com/index.php?topic=1462.0

If I add more stuff I will never be done. But tell me what you had in mind. It might be quick to make.
Sniper308
QUOTE (Blizzard @ Aug 1 2008, 03:29 AM) *
Not at all. Just look how huge the list already is.

http://forum.chaos-project.com/index.php?topic=1462.0

If I add more stuff I will never be done. But tell me what you had in mind. It might be quick to make.


Whoa! That's a lot! That looks like it's going to take awhile! I can't wait that long!
Blizzard
Not really. I might be able to finish it in the next two days. It just depends on how much time I will have since I have some stuff to do and prepare stuff for the party on monday. :3
Zeldaknight
Hey, I don't want to postpone the release of the next version but something seems to be stopping me from using skills. I can get onto the 'Controls' sub-menu fine but it is not letting me set the skill to a hotkey.
As well as this ABS I am using your (Blizzard) Tons of Add-ons, ccoa's Universal Message system and a shapeshifting script I have just found here:

www.gamebaker.com/rmxp/scripts/character-scripts.php

Also I have been creating new skills so is there any box I need to fill in for the skill to work?
Blizzard
The shapeshifter doesn't work with Blizz-ABS. Instead you can use CRLS which features Chaos Drive which is basically the same. v1.99 will support CRLS v6.02b.
Also, are your scripts in the correct order?
Sniper308
There is a call script for changing the run speed, the normal speed, and the sneak speed right?
Blizzard
Not in game, no.
Sniper308
Dang!
Zeldaknight
So . . . the plugin for CRLS-ABS has been released but not version 1.99 of the ABS so at the moment I can't use Chaos Drive?
And by the way, could you post the order of your scripts at the beginning of the topic - I don't know which scripts to put where!

Oh, and one more thing. Is there a way to have a series of actors as default leaders so if they are alive they will automatically be the leader?
Blizzard
Yes, but v1.99 should be out today. smile.gif

About the leaders: Hm... I have changed some stuff in Blizz-ABS internal structure so this will not work with v1.98, but it should with v1.99. Use a parallel process common event with this script call when you have v1.99.

CODE
leaders = [X, Y, Z]
ids = []
$game_party.actors.each {|a|
  ids.push(a.id) if !a.dead?}
if (leader & ids).size > 0
  while !leaders.include?($game_actors[0].id)
    BlizzABS.player.switch_leader
  end
end


Add all actor IDs that you need in the leaders array.
Sniper308
QUOTE (Blizzard @ Aug 3 2008, 04:36 AM) *
Yes, but v1.99 should be out today. smile.gif


Sweet! I can't wait! tongue.gif
Ganon
This script is really good!
I can definitely see myself using this in a future project. Is it possible to make events happen on impact with a skill or weapon? What I mean is if a weapon or skill hits it, it sets an impact variable to the id of the weapon/skill so a event can be processed. If you look at XAS abs hero version you will see what I mean. Also, on the same line of thought, how can I make a timed attack item like a bomb? Like I leave it on the ground and after a few seconds it explodes?
Thanks,
Gannon
Blizzard
You can create lifeless objects on the map. When such an object gets destroyed it triggers the event code contained. v1.99 will have trap skills/items which allows the same thing as a bomb. But they don't trigger after the time is over, they trigger if an enemy comes within range.

BTW, Blizz-ABS v1.99 was delayed until tuesday.
Sniper308
QUOTE (Blizzard @ Aug 3 2008, 04:44 PM) *
BTW, Blizz-ABS v1.99 was delayed until tuesday.


Awww sad.gif

Edit: Is there a way to have some sort of equipment to hide from enemies sight?
Blizzard
Blizz-ASB 1.99 is finally out! The download link is in the first post.

@Sniper: No.
Pinky
Hi, I like new version of the script but when I tried use the Choas Rage System I got this error when I went to the controls menu and yes I put the script in the correct order.


Click to view attachment


I would really apperciate it if you can help me fix this error.
omegazion
question: if im using a custom keyboard, how do i make a conditional statement in the events, like if press input?
SycoX17
very sweet! thanks for all your hard work blizz.

i also have a few questions:

were you able to fix the respawn pts?

is there a way to make it where an item drop is activated when the character runs over it. for example, Arshes kills a ghost, ghost drops a potion, Arshes runs over the potion and is automatically healed 45 hp.

and lastly, when making a weapon consume ammo, is there a way to make it so the ammo can't be picked up if it doesn't hit the target.

thanks again.

JUNO
Zeldaknight
VERSION1.99!!! Thanks heaps Blizzard!!!!!
Just one thing, for that call script will I need to put it in every map or just the first one?
Blizzard
@omegazion: Read 3.2.4. of the manual.

@Pinky: Did you update the plugin script? I updated it just when I released 1.99 once more. http://www.chaos-project.com/downloads/scr...BS%20plugin.txt
Pinky
I'm sorry but I don't understand whay you mean by did I update the Plug in script. I don't think I know how too and I still get the error for some reason when I go to the controls menu. Do you have demo using this script with the ABS? If so could you post it?


EDIT: Never mind I forgot to call the script that's why I got the error. Awsome script by the way.
Blizzard
Lol! With "update" I meant that you just should download the newest version. xD

@Syco: Sorry, didn't see your post earlier. No and I won't add this feature. It would cause too many complications like which items are auto-activated, which enemies drop auto-items, make that all work with multi-drop correctly, etc.

No, items always drop when they don't hit the target. But I'll see if I can include that feature in a later version.

@Zeldaknight:

QUOTE
Use a parallel process common event with this script call when you have v1.99.
Sniper308
Newer versions of Blizz ABS means newer questions lol! For me, I don't get scripting so can you tell me what this means?

Script 'Blizz ABS 1.99' line 2465: NoMethodError occurred.

undefined method 'icon_name' for nil:NilClass


Edit: I also need to know how to switch classes (without a script) because I switch there graphics and there is no sprite graphic!
SycoX17
ok, thx for replying. just two things.

what about the spawning points?

and, what if i just wanted all enemies to drop auto-activated items, if they drop items. in the game i am envisioning, the enemies drop health and magic recovery items that activate when u walk over them. thats it. i don't need to differentiate between the auto and manual activation items. i have only begun to learn about scripting and whatnot, so i have no idea how hard it would be to incorporate this into Blizz ABS, but i'd really like if i could.

once again, thx for all your hard work Blizz.

JUNO
Blizzard
You will need most probably to edit the Drop_Event class which sets up the commands (by script) that you get items. It might be a bit complicated since you don't know who activated the item.

@Sniper: There is an event command to change classes. And line 2465 is "return text" in part 2 and "@character_name = @character_name_org" in part 3. -_-

.
Sniper308
I know there's a event command for switching classes Blizz, but the sprite graphic won't appear for some reason! But I some how figured it out! smile.gif and about the script error, I put part 1,2 and 3 together above main. I copied part 1 and posted part 2 under 1 and so on with 3. Am I supposed to do that? I just keep getting the same error over and over for some reason! sad.gif

Script 'Blizz ABS 1.99' line 2465: NoMethodError occurred.

undefined method 'icon_name' for nil:NilClass


and then when I pull it up, I get:

Math.hypot(x-i, y-j-1) < r || Math.hypot(x-i-1, y-j-1) < r

Sorry if I'm really being so troubling to you! sad.gif
Blizzard
Now you know why you SHOULD NOT put all three parts in one script slot. tongue.gif
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Invision Power Board © 2001-2013 Invision Power Services, Inc.