Envision, Create, Share

Welcome to HBGames, a leading amateur game development forum and Discord server. All are welcome, and amongst our ranks you will find experts in their field from all aspects of video game design and development.

[RMXP] Net Rmxp Online 2.0

Status
Not open for further replies.
I've found this on an italian site. It works greats!! It's similar to NetPlayPlus 2.0, but with another Server.
ScreenShots here: http://glowproductions.altervista.org/img.html
This is the original italian post:

http://img264.imageshack.us/img264/8716/logovx6.png[/img]
Net Rmxp Online V 2.0.0
By Sweet Vengeance

Thanks to Atemu:

And for those of us that don't know Italian:
Small Presentation
Net Rmxp Online is a package of scripts that lets you turn your RPG in an oRPG or an online game where every player can interact with others. We have not said why those MMO RPG refers to a game with thousands of users, while can NRmxp community can create big enough (what? O.o;). But as always, an online game worthy of respect, which requires Admin & scripter are able to improve increasingly the game to keep it active.

It 'easy to use'?
Personally, you have to know at least the basic RGSS, and need to be able to open or support a server. Quite simple ^ ^

Who did it?
Being based NetPlayPlus 1.6, I feel the need to put in the first place:
Goldenaura and Mr. Mo, also known as "Me"

Client: Sweet Vengeance
Server: Sweet Vengeance
Web Support: Sweet Vengeance

Screenshot:
Find here the screenshot: http://glowproductions.altervista.org/img.html

Some Fetures
-- PVE
-- PVP
-- Global Npc & Events
-- Trade System Was the NetPlay *** ***
-- Multiple Private Chat System Was the NetPlay *** ***
-- PM (Email Style)
-- Party
-- Gilde
-- Global Chat / Map / Party / Guild
And other features that now I do not come to mind ...

Fundamental Requirements:
Microsoft Windows XP
1.5GHz Intel Pentium 4 or higher
At least one Gb Ram to play without any problems or slow down

Download:
Server: http://www.mediafire.com/?xnxmu9ndwbd
Client: http://www.mediafire.com/?yvtjtzetylh

Tutorial or Guide:
They will be soon in Section Guide

Botta and Answer:
Q: You can add feature X?
A: Of course, logically, while staying within the limits!

Q: Server continually crashes. What do I do?
A: Change computer. Most likely is unstable. See the NRMXP Server is designed for PC modest, but if you have a powerful PC and riempiete stuff and use 100 thousand programs at once ... I can not get anything ...

Q: Can I continue your work?
A: Only after my consent via PM.

Q: The Client is slow and continually crashes. What do I do?
A: Change PC or increases its performance.

Q: I want to donate a bid for your work!
A: Thanks! Please write me via PM and I will know everything you need ^ ^

Piccola Presentazione
Net Rmxp Online è un pacchetto di script che vi permette di trasformare il vostro Rpg in un oRpg, ovvero un gioco online dove ogni giocatore potrà interagire con altri. Non abbiamo detto MmoRpg perchè con quelli si riferisce ad un gioco con migliaia di utenti, mentre cn NRmxp potete creare community abbastanza grandi. Ma come sempre, un gioco online che si rispetti, richiede Admin che siano capaci & scripter che migliorino sempre più il gioco per mantenerlo attivo.

E' semplice da usare?
Bhe, dovete conoscere almeno le basi dell'RGSS, e dovete essere in grado aprire o sostenere un server. Abbastanza semplice ^^

Chi l'ha creato?
Essendo basato su NetPlayPlus 1.6, sento il bisogno di mettere in primo luogo:
Goldenaura e Mr Mo, conosciuto anche come "Me"

Client: Sweet Vengeance
Server : Sweet Vengeance
Web Support : Sweet Vengeance

Screenshot:
Trovi qui gli screenshot: http://glowproductions.altervista.org/img.html

Alcune Fetures
- PVE
- PVP
- Npc & Eventi Globali
- Trade System *** Originale della NetPlay ***
- Multiple Private Chat System *** Originale della NetPlay ***
- PM (Email Style)
- Party
- Gilde
- Chat Globale/Mappa/Party/Gilde
E altre features che ora non mi vengono in mente...

Requisiti Fondamentali:
Microsoft Windows XP
1.5GHz Intel Pentium 4 o superiore
Almeno un Gb di Ram per giocare senza alcun problema o rallenti

Download:
Update ^^
French Client:
http://sb-creation.net/download/Net%20R ... French.zip
English Client:
http://sb-creation.net/download/Net%20R ... nglish.zip
Server NEW TO DOWNLOAD:
http://www.mediafire.com/?4ztmhddd4dg

Tutorial o Guide:
Saranno presto nella sezione Guide

Botta e Risposta:
D:Puoi aggiungere X funzione?
R:Certo, logicamente mantenendosi nei limiti!

D:Il Server crasha continuamente. Cosa faccio?
R:Cambia computer. Molto probabilmente è instabile. Vedete il Server di NRMXP è progettato per pc modesti, ma se avete un pc potente e lo riempiete di roba e usate 100mila programmi in una volta... Non posso farvi niente...

D:Posso continuare il tuo lavoro?
R:Solo dopo il mio consenso via PM.

D:Il Client è lento e crasha continuamente. Cosa faccio?
R:Cambia pc o aumenta le sue prestazioni.

D:Voglio donare un offerta per il tuo lavoro!
R:Grazie! Scrivetemi via PM e vi farò sapere tutto quello di cui avete bisogno ^^

Forum: www.nrpgxp.forumfree.net
 
The makers of Netplay+ are creditted nowhere there, so most likely this was made done without their permission...

Oh wait, I think they may be. I found their names in the italian bits. Hmm. Well, this might be interesting to have a look at.

Whoah - I had a look at this, and this looks very interesting... if only I understood Italian.
 
And for those of us that don't know Italian:

Small Presentation
Net Rmxp Online is a package of scripts that lets you turn your RPG in an oRPG or an online game where every player can interact with others. We have not said why those MMO RPG refers to a game with thousands of users, while can NRmxp community can create big enough (what? O.o;). But as always, an online game worthy of respect, which requires Admin & scripter are able to improve increasingly the game to keep it active.

It 'easy to use'?
Personally, you have to know at least the basic RGSS, and need to be able to open or support a server. Quite simple ^ ^

Who did it?
Being based NetPlayPlus 1.6, I feel the need to put in the first place:
Goldenaura and Mr. Mo, also known as "Me"

Client: Sweet Vengeance
Server: Sweet Vengeance
Web Support: Sweet Vengeance

Screenshot:
Find here the screenshot: http://glowproductions.altervista.org/img.html

Some Fetures
-- PVE
-- PVP
-- Global Npc & Events
-- Trade System Was the NetPlay *** ***
-- Multiple Private Chat System Was the NetPlay *** ***
-- PM (Email Style)
-- Party
-- Gilde
-- Global Chat / Map / Party / Guild
And other features that now I do not come to mind ...

Fundamental Requirements:
Microsoft Windows XP
1.5GHz Intel Pentium 4 or higher
At least one Gb Ram to play without any problems or slow down

Download:
Server: http://www.mediafire.com/?xnxmu9ndwbd
Client: http://www.mediafire.com/?yvtjtzetylh

Tutorial or Guide:
They will be soon in Section Guide

Botta and Answer:
Q: You can add feature X?
A: Of course, logically, while staying within the limits!

Q: Server continually crashes. What do I do?
A: Change computer. Most likely is unstable. See the NRMXP Server is designed for PC modest, but if you have a powerful PC and riempiete stuff and use 100 thousand programs at once ... I can not get anything ...

Q: Can I continue your work?
A: Only after my consent via PM.

Q: The Client is slow and continually crashes. What do I do?
A: Change PC or increases its performance.

Q: I want to donate a bid for your work!
A: Thanks! Please write me via PM and I will know everything you need ^ ^

Google Language Tools couldn't get it all accurately, but please use it next time.
 
HokutoNoKen":2vn4ntag said:
Non abbiamo detto MmoRpg perchè con quelli si riferisce ad un gioco con migliaia di utenti, mentre cn NRmxp potete creare community abbastanza grandi.

"We didn't say a MMORPG because that term refers to a game with thousands of users, instead with NRmxp you can create large enough communities."

Google Language Tools is good, but italians do it better :) (i guess...)
Anyway, that "large enough" could be tens of users or more i think.
 
Hi all, I'm Sweet Vengeance, i don't speak english, so i translate with google translate.

ITALIAN:
Ciao a tutti, sono Sweet Vengeance, il creatore di Net Rmxp Online 2.0. Sono spiacente per aver saltato qualcuno nei credits e vi prometto di aggiungervi tutti. Se ho saltato qualcuno, potete scrivere qui oppure mandarmi un PM, sarete subito aggiunti  :thumb:
Volevo sapere se qualcuno di voi vorrebbe aiutarmi nel fare una traduzione in inglese di Net Rmxp Online. Se qualcuno è interessato, mi faccia sapere ^^

ENGLISH
Hello everyone, I'm Sweet Vengeance, the creator of Net Rmxp Online 2.0. I am sorry to have missed someone in the credits and I promise to add you all. If I missed someone, you can write here or send me a PM, will be immediately added :thumb:
I wanted to know if any of you would like to help me to translate to English Net Rmxp Online. If someone is interested, let me know ^^
 
And this english guide:

================================================== ================
    # GUIDE TO NET SERVER RMXP ONLINE #
                          By Vengeance
  This small guide explains how some things
  In. Ini which will be shown on the web.
================================================== ================
CONTENTS

Part No. 1 - THE WEB SERVER
1. Install a Web Server
2. The File
3. How to put a dividing bar
4. How to change color
5. Show a variable default

Part No. 2 - THE SERVER
1. The baseline

================================================== ================
Part No. 1 - THE WEB SERVER
================================================== ================
1. INSTALL A WEB SERVER
Net Rmxp Online requires a web server on the same server machine. In practice, the PC
Who opened the server. The web server must be able to use php. In this guide, use as
Wamp5 webserver, then any reference to the webserver is dedicated to Wamp5.
Once installed, in the way the webserver (should be "C: \ wamp \"). The
WWW folder is the folder of your web space. Enter there inside the folder you find NWWW
In the Web server. Once you changed the parameters of the file with data configura.php
Your server & Gamble. The address of your site will be the same as that used for the client.
Using Hamachi, every person to see your site must log in your network.
================================================== ================
2 - FILE
In Server folder, there is the Web folder containing the files that will be shown on the web.
There are 6 files: Classes.ini, Events.ini, Items.ini, Skills.ini, Mappe.ini, Webinfo.ini.
Classes.ini => centralle contains the contents of pages of classes.
Events.ini => centralle contains the contents of pages of events.
Items.ini => centralle contains the contents of pages of objects.
Skills.ini => centralle contains the contents of pages of spells & techniques.
Webinfo.ini => centralle contains the contents of the homepage.
Mappe.ini => contains the names of the maps. Each line corresponds to the map
Client. For example, if the page is on the map No. 12, No. 12 line
Is the name of the map.
Mappe.ini The file will be used in updating web pages, which will be published
Shortly after the first release, and will be involved in the information of each character.
================================================== ================
3 - HOW TO INSERT A BAR DIVISORIA
To enter a bar dividing just put a line like only the inscription:
barra
================================================== ================
4 - HOW TO CHANGE COLOR TO TEXT
To change the text color you use the Tab <FONT color=******> TEST </ font>
Instead of ******** go put the color code and
Red <FONT color=#ff0000> TEXT = </ font>
Green <FONT color=#33FF00> TEXT = </ font>
================================================== ================
5 - A SHOW VARIABLE DEFAULT
To show a variable just insert the words: <? Php echo "$ nomevariabile"?>
You can add these variables within the file configura.php; are predefined variables
Game name, address and all those things that are within configura.php.
To show the name of the game then just enter: <? Php echo "$ title" Help>
We put $ title because it's been defined within configura.php;
If we had had a hypothetical $ string variable, we put show
<? Php echo "$ string"?>
================================================== ================
Part No. 2 - THE SERVER
================================================== ================
1. Initial Values
The NetRmxpOnline Server 2.0 uses the file. Ini to set up data
To pg, npc, classes and settings.

DESCRIPTION CONFIG.ini
[Settings] => Profile
Name Name Server = => Name Server
Port = 50000 => The door Server
MaxUser = 1000 => The maximum number of PG at stake
AutoStart = 1 => Autostart: 0 = No; 1 = Yes
Version 1.0 = => Client Version
Game_Code = PASSWORD => Password Server

Each client connects, is rejected by the server if you do not send your password
As authentication. If the password must be the same in both client is
On the server, and you can change it (the server) only in the file Config.ini,
Client User_Edit in module.

DESCRIPTION CLASS.ini

[ClassX] => Where X is the ID of the class in the database.
StartMap = 1 => Map hence the new PG begins
StartX = 10 => X from which the new PG begins
StartY = 10 => Y from which the new PG begins
StartHP = 500 => HP initial PG
StartSP = 500 => The SP initial PG
StartWeaponID = 1 => Arma assigned to the newly created PG
StartArmor1ID = 1 => equipment assigned to the newly created PG
StartArmor2ID = 5 => equipment assigned to the newly created PG
StartArmor3ID = 13 => equipment assigned to the newly created PG
StartArmor4ID = 0 => equipment assigned to the newly created PG
StartSkillsID = 57, => IDs Skills initial PG separated by comma
StartSTR = 1 => STR (Force) initial PG
StartAGI = 1 => The AGI (Agility) initial PG
StartDEX = 1 => DEX (Dexterity) initial PG
StartINT = 1 => INT (Inteletto) initial PG

WARNING! : StartSkillsID must end with a semicolon.
 

Oburi

Member

1.) When I click on a nother Player and then on  guild, nothing happens. Why?
2.) In the script are emotions build in, how can I use them?
3.) Whats with visual equipment?
4.) Will there be a fully mouse controlled version in te next time?
Thx.
Oburi


Movement: Up, Down, Left, Right
Attack: S (if a weapon is equipped)
Chatwindo: F5
Create Party: F6
 

Oburi

Member

I dont belive so.
Cause everything have to be send with the tcp socket to the server and back.
I think you would have to rewrite most of the SABS.
And then u have to change the serverscript a lil bit I guess...
 
alpking":2p1ihn3m said:
abs dont have visual equipment :S
wait, i have the visual equipment! look here: http://nrpgxp.forumfree.net/?t=26113255

I'll post it here ^^

Script:
Insert betwen: [SPR] Sprite_NetCharacter & [SPR] Sprite_Character
#==============================================================================
# â–  Visual Equipment
#------------------------------------------------------------------------------
# Geso Chisku - Modificato da Vengeance per Net Rmxp Online 2.0
# Tradotto da ZeroTheQueen
# Versione 3
# 14.02.06
#==============================================================================

#------------------------------------------------------------------------------
# * SDK Log Script
#------------------------------------------------------------------------------
SDK.log('Visual Equipment', 'Geso Chisku', 2, '14.02.06')
#------------------------------------------------------------------------------
# * Begin SDK Enable Test
#------------------------------------------------------------------------------
if SDK.state('Visual Equipment') == true and User_Edit::VE == true
#--------------------------------------------------------------------------
# This method returns the character name based on equipment type and id
# To add a item to the list, add the following line:
# return [char_name, hue] if id == item_id
# To add the charset 'equip-helmet', hue 0, for item 8 add the following
# return ['equip-helmet', 0] if id == 8
#--------------------------------------------------------------------------
def equip_character(type, id)
if type == 2
# GRAFICA DELL'ARMA
# Aggiungi qui delle armi così:
#return ['nomearma', 0] if id == id
return ['equip/sword_0', 0] if id == 1
return ['equip/sword_0',100] if id == 2
return ['equip/sword_0',150] if id == 3
return ['equip/sword_0',200] if id == 4

return ['equip/spear_0', 0] if id == 5
return ['equip/spear_0',100] if id == 6
return ['equip/spear_0',150] if id == 7
return ['equip/spear_0',200] if id == 8

return ['equip/ascia_1', 0] if id == 9
return ['equip/ascia_1',100] if id == 10
return ['equip/ascia_1',150] if id == 11
return ['equip/ascia_1',200] if id == 12

return ['equip/weapon-sword01', 0] if id == 13
return ['equip/weapon-sword01', 0] if id == 14
return ['equip/weapon-sword01', 0] if id == 15
return ['equip/weapon-sword01', 0] if id == 16

return ['equip/arco_0', 0] if id == 17
return ['equip/arco_0',100] if id == 18
return ['equip/arco_0',150] if id == 19
return ['equip/arco_0',200] if id == 20

return ['equip/gunz_0', 0] if id == 21
return ['equip/gunz_0',100] if id == 22
return ['equip/gunz_0',150] if id == 23
return ['equip/gunz_0',200] if id == 24

return ['equip/mazza_0', 0] if id == 25
return ['equip/mazza_0',100] if id == 26
return ['equip/mazza_0',150] if id == 27
return ['equip/mazza_0',200] if id == 28

return ['equip/weapon-stick01', 0] if id == 29
return ['equip/weapon-stick01',100] if id == 30
return ['equip/weapon-stick01',150] if id == 31
return ['equip/weapon-stick01',200] if id == 32

else
# Aggiungi qui dell'equip così:
#return ['nomequip', 0] if id == id
return ['equip/shield_1', 0] if id == 1
return ['equip/shield_1',100] if id == 2
return ['equip/shield_1',150] if id == 3
return ['equip/shield_1',200] if id == 4


#CAPPELLI
return ['equip/head-helmet01', 0] if id == 5
return ['equip/head-helmet01', 100] if id == 6
return ['equip/head-helmet02', 0] if id == 7
return ['equip/head-helmet02', 100] if id == 8
return ['equip/head-hat01', 0] if id == 9
return ['equip/head-hat02', 0] if id == 10
return ['equip/head-hat03', 0] if id == 11
return ['equip/head-hat03', 0] if id == 12

#ARMATURE
return ['equip/body-armor01', 0] if id == 13
return ['equip/body-armor02', 0] if id == 14
return ['equip/body-armor03', 0] if id == 15
return ['equip/body-armor05', 0] if id == 16

return ['equip/body_4', 0] if id == 17
return ['equip/body_4',100] if id == 18
return ['equip/body_4',150] if id == 19
return ['equip/body_4',200] if id == 20

return ['equip/body-clothes02', 0] if id == 21
return ['equip/body_16', 0] if id == 22
return ['equip/body-17', 0] if id == 23
return ['equip/body-18', 0] if id == 24

# ALTRO
return ['equip/extra-amulet01', 0] if id == 53


end
return false
end
#----------------------------------------------------------------------------
# ** Game_Actor
#----------------------------------------------------------------------------
class Game_Actor < Game_Battler
attr_accessor :body
#--------------------------------------------------------------------------
DEFAULT_ACTOR_BODY = [
'body-male'
]
#--------------------------------------------------------------------------
alias geso_visual_actor_init initialize
def initialize(actor_id)
geso_visual_actor_init(actor_id)
@body = DEFAULT_ACTOR_BODY[actor_id]
end
#--------------------------------------------------------------------------
def equip_char_array
equips = []
item = equip_character(0, actor_equip_id(0, self))
equips.push(item) unless item == false
# equips.push(["body-male",0])
# equips.push(["head_#{@capelli}",0])
equips.push([@character_name, @character_hue])
# if self.is_a?(Game_Player)
# equips.push(["body-male",0])
# equips.push(["head_#{$game_party.actors[0].capelli}",0])
# end
for i in 0..5
item = equip_character(i, actor_equip_id(i, self))
equips.push(item) unless item == false
end
return equips
end
end
#----------------------------------------------------------------------------
# ** Game_Event
#----------------------------------------------------------------------------
class Game_Event < Game_Character
attr_reader :page
end
#--------------------------------------------------------------------------
# Determines the order the equips are draw
#--------------------------------------------------------------------------

def actor_equip_id(i, actor)
case i
when 0 # Body
return 0
when 1 # Body
return actor.armor3_id if User_Edit::ARMATURA == true
return 0 if User_Edit::ARMATURA == false
when 2 # Weapon
return actor.weapon_id if User_Edit::ARMA == true
return 0 if User_Edit::ARMA == false
when 3 # Helmet
return actor.armor2_id if User_Edit::ELMO == true
return 0 if User_Edit::ELMO == false
when 4 # Accessory
return actor.armor4_id if User_Edit::ALTRO == true
return 0 if User_Edit::ALTRO == false
when 5 # Shield
return actor.armor1_id if User_Edit::SCUDO == true
return 0 if User_Edit::SCUDO == false
end
end
#----------------------------------------------------------------------------
# ** Sprite_Character
#----------------------------------------------------------------------------
class Sprite_Character < RPG::Sprite
#--------------------------------------------------------------------------
alias geso_visual_equip_sprite_char_init initialize
def initialize(viewport, character = nil)
if character.is_a?(Game_Player)
@actor = $game_party.actors[0]
elsif SDK.state('SBABS') == true and character.is_a?(Game_Ally)
@actor = $game_party.actors[character.actor_id]
elsif SDK.state('Caterpillar') == true and character.is_a?(Game_Party_Actor)
@actor = character.actor
else
@actor = nil
end
@equips_id = [0, 0, 0, 0, 0]
geso_visual_equip_sprite_char_init(viewport, character)
end
#--------------------------------------------------------------------------
def equip_changed?
if SDK.state('Caterpillar') == true
if @character.is_a?(Game_Party_Actor)
if @character.actor != @actor
@actor = @character.actor
return true
end
end
end
if SDK.state('SBABS') == true
if @character.is_a?(Game_Ally)
if $game_party.actors[@character.actor_id] != @actor
return true
end
end
end
if @character.is_a?(Game_Player)
if $game_party.actors[0] != @actor
@actor = $game_party.actors[0]
return true
end
elsif @character.is_a?(Game_Event)
if @page != @character.page
@page = @character.page
return true
end
return false
end
if @actor == nil
return false
end
for i in 0..5
return true if @equips_id != actor_equip_id(i, @actor)
end
return false
end
#--------------------------------------------------------------------------
def adv_update
@character_name = ''
update
end
#--------------------------------------------------------------------------
def update
# If character is a event
super
# If tile ID, file name, hue or equipment are different from current ones
if @tile_id != @character.tile_id or
@character_name != @character.character_name or
@character_hue != @character.character_hue or
equip_changed?
# Remember tile ID, file name and hue
@tile_id = @character.tile_id
@character_name = @character.character_name
@character_hue = @character.character_hue
# If tile ID value is valid
if @tile_id >= 384
self.bitmap = RPG::Cache.tile($game_map.tileset_name,
@tile_id, @character.character_hue)
self.src_rect.set(0, 0, 32, 32)
self.ox = 16
self.oy = 32
# If tile ID value is invalid
else
equips = []
# If handling a event
if @character.is_a?(Game_Event) == true
# Check for comment input
parameters = SDK.event_comment_input(@character, 6, 'Visual Equipment')
if parameters.nil?
equips.push([@character_name, @character_hue])
else
for i in 0..5
item = parameters.split
hue = item.size > 2 ? item[2] : 0
equips.push([item[1], hue]) if item[1] != 'none'
if i == 1
equips.push([@character_name, @character_hue])
end
end
end
# If handling the player
elsif @actor != nil
equips = @actor.equip_char_array
end
# Dispose old bitmap
self.bitmap.dispose unless self.bitmap == nil
# Draws the character bitmap
bmp = RPG::Cache.character(@character_name, @character_hue)
self.bitmap = Bitmap.new(bmp.width, bmp.height)
src_rect = Rect.new(0, 0, bmp.width, bmp.height)

# If character fits the size
if equips.size > 0 and bmp.width == 128 and bmp.height == 192
size = equips.size -1
for i in 0..size
next if equips == false or equips[0] == false or equips[0] == nil
bmp2 = RPG::Cache.character(equips[0], equips[1].to_i)
self.bitmap.blt(0, 0, bmp2, src_rect, 255)
end
else
src_rect = Rect.new(0, 0, bmp.width, bmp.height)
self.bitmap.blt(0, 0, bmp, src_rect, 255)
end
@cw = bitmap.width / 4
@ch = bitmap.height / 4
self.ox = @cw / 2
self.oy = @ch
end
end
# Set visible situation
self.visible = (not @character.transparent)
# If graphic is character
if @tile_id == 0
# Set rectangular transfer
sx = @character.pattern * @cw
sy = (@character.direction - 2) / 2 * @ch
self.src_rect.set(sx, sy, @cw, @ch)
end
# Set sprite coordinates
self.x = @character.screen_x
self.y = @character.screen_y
self.z = @character.screen_z(@ch)
# Set opacity level, blend method, and bush depth
self.opacity = @character.opacity
self.blend_type = @character.blend_type
self.bush_depth = @character.bush_depth
# Animation
if @character.animation_id != 0
animation = $data_animations[@character.animation_id]
animation(animation, true)
@character.animation_id = 0
end
end
#--------------------------------------------------------------------------
end
#----------------------------------------------------------------------------
# ** Window_Base
#----------------------------------------------------------------------------
class Window_Base < Window
#--------------------------------------------------------------------------
def draw_actor_graphic(actor, x, y)
bmp = RPG::Cache.character(actor.character_name, actor.character_hue)
bitmap = Bitmap.new(bmp.width, bmp.height)
src_rect = Rect.new(0, 0, bmp.width, bmp.height)

# Setup actor equipment
equips = actor.equip_char_array

# If character fits the size
if equips.size > 0 and bmp.width == 128 and bmp.height == 192
size = equips.size -1
for i in 0..size
next if equips == false or equips[0] == false or equips[0] == nil
bmp2 = RPG::Cache.character(equips[0], equips[1].to_i)
bitmap.blt(0, 0, bmp2, src_rect, 255)
end
else
bitmap.blt(0, 0, bmp, src_rect, 255)
end

cw = bitmap.width / 4
ch = bitmap.height / 4
src_rect = Rect.new(0, 0, cw, ch)
self.contents.blt(x - cw / 2, y - ch, bitmap, src_rect)
end
end
#end

#----------------------------------------------------------------------------
# ** Sprite_Character
#----------------------------------------------------------------------------
class Sprite_NetCharacter < RPG::Sprite
#--------------------------------------------------------------------------
alias geso_visual_equip_sprite_char_init initialize
def initialize(viewport, id,character = nil)
@actor = @character
@equips_id = [0, 0, 0, 0, 0]
geso_visual_equip_sprite_char_init(viewport, id,character)
end
#--------------------------------------------------------------------------
def equip_changed?
@actor = @character
if @actor == nil
return false
end
for i in 0..5
return true if @equips_id != actor_equip_id(i, @actor)
end
return false
end
#--------------------------------------------------------------------------
def adv_update
@character_name = ''
update
end
#--------------------------------------------------------------------------
def update
# If character is a event
super
# If tile ID, file name, hue or equipment are different from current ones
if @tile_id != @character.tile_id or
@character_name != @character.character_name or
@character_hue != @character.character_hue or
equip_changed?
# Remember tile ID, file name and hue
@tile_id = @character.tile_id
@character_name = @character.character_name
@character_hue = @character.character_hue
# If tile ID value is valid
if @tile_id >= 384
self.bitmap = RPG::Cache.tile($game_map.tileset_name,
@tile_id, @character.character_hue)
self.src_rect.set(0, 0, 32, 32)
self.ox = 16
self.oy = 32
# Animation
update_ani if @character.animation_id != 0
if @character.damage_show != nil
damage(@character.damage_show, @character.show_critical)
@character.show_demage(nil, false)
end
# Name Sprite
@_text_display.x = self.x
@_text_display.y = self.y - self.oy / 2 - 24

# If tile ID value is invalid
else
equips = []
# If handling a event
if @character.is_a?(Game_Event) == true
# Check for comment input
parameters = SDK.event_comment_input(@character, 6, 'Visual Equipment')
if parameters.nil?
equips.push([@character_name, @character_hue])
else
for i in 0..5
item = parameters.split
hue = item.size > 2 ? item[2] : 0
equips.push([item[1], hue]) if item[1] != 'none'
if i == 1
equips.push([@character_name, @character_hue])
end
end
end
# If handling the player
elsif @actor != nil
equips = @actor.equip_char_array
end
# Dispose old bitmap
self.bitmap.dispose unless self.bitmap == nil


# Draws the character bitmap
bmp = RPG::Cache.character(@character_name, @character_hue)
self.bitmap = Bitmap.new(bmp.width, bmp.height)
src_rect = Rect.new(0, 0, bmp.width, bmp.height)

# If character fits the size
if equips.size > 0 and bmp.width == 128 and bmp.height == 192
size = equips.size -1
for i in 0..size
next if equips == false or equips[0] == false or equips[0] == nil
bmp2 = RPG::Cache.character(equips[0], equips[1].to_i)
self.bitmap.blt(0, 0, bmp2, src_rect, 255)
end
else
src_rect = Rect.new(0, 0, bmp.width, bmp.height)
self.bitmap.blt(0, 0, bmp, src_rect, 255)
end
@cw = bitmap.width / 4
@ch = bitmap.height / 4
self.ox = @cw / 2
self.oy = @ch
end
end
# Set visible situation
self.visible = (not @character.transparent)
# If graphic is character
if @tile_id == 0
# Set rectangular transfer
sx = @character.pattern * @cw
sy = (@character.direction - 2) / 2 * @ch
self.src_rect.set(sx, sy, @cw, @ch)
end
# Set sprite coordinates
self.x = @character.screen_x
self.y = @character.screen_y
self.z = @character.screen_z(@ch)
# Set opacity level, blend method, and bush depth
self.opacity = @character.opacity
self.blend_type = @character.blend_type
self.bush_depth = @character.bush_depth
# Animation
if @character.animation_id != 0
animation = $data_animations[@character.animation_id]
animation(animation, true)
@character.animation_id = 0
end

# Animation
update_ani if @character.animation_id != 0
if @character.damage_show != nil
damage(@character.damage_show, @character.show_critical)
@character.show_demage(nil, false)
end

# Chat Show
if @character.chat_text != nil
@line_to_show = []
for line in @character.chat_text.split("-N-")
@line_to_show.push(line)
end
show_chat(@line_to_show,@character.chat_color)
@character.chat_text = nil
end

# Name Sprite
@_text_display.x = self.x
@_text_display.y = self.y - self.oy / 2 - 24
@chat_text_display.x = self.x
@chat_text_display.y = self.y - self.oy / 2 - 24

if @old_guild != @character.gilda and @_g_display != nil
@_g_display.dispose
@_g_display = nil
create_display_guild([@character.gilda,Color.new(0,0,255)])
end

if @_g_display == nil and @character.gilda != ""
create_display_guild([@character.gilda,Color.new(0,0,255)])
end

if @_g_display != nil
@_g_display.x = self.x
@_g_display.y = self.y - self.oy / 2 - 35
end


if $game_party.actors[0].pvp_target != nil and @character == $game_party.actors[0].pvp_target
blink_on if !blink?
else
blink_off if blink?
end

end
#--------------------------------------------------------------------------
end
#------------------------------------------------------------------------------
# * End SDK Enable Test
#------------------------------------------------------------------------------
end

class Game_NetPlayer < Game_Character
def equip_char_array
@equips = []
@equips.push([@character_name,@character_hue])
for i in 0..4
@item = equip_character(i, actor_equip_id(i, self))
@equips.push(@item) unless @item == false
end
return equips
end

end


Italiano:
Poi, se volete, nella schermata dove si crea il pg potete mettere, come ho messo nel mio game, che non vi fà scegliere la classe (quindi siete una classe predefinita, che può essere novizio o non sò) togliendo il tasto per cambiare la classe, in pratica avrete 1 effetto ragnarok, ke potete scegliere la grafica del pg con i capelli e basta XD

Per farlo inserite questo tra: o Window_Create & o Window_Pop

if User_Edit::VE == true
class Window_Create < Window_Base
#-----------------------------------------------------------------------------
attr_reader :create, :cancel, :name_box
#-----------------------------------------------------------------------------
def initialize
super(100, -220, 250, 196)
self.contents = Bitmap.new(self.width-32, self.height-32)
self.contents.font.color = Color.new(0, 0, 0, 255)
self.contents.font.size = 15
@active = false
@closable= true
@visible = false
self.opacity-=130
@name_box = Text_Box.new(self,120,16,100,12,1)
@name_box.extended
@create = Button.new(self,80 + 100,160,"Crea")
@cancel = Button.new(self,10+ 100,160,"Annulla")
@nextgrp = Button.new(self,250-64,48,">") {next_gr}
@backgrp = Button.new(self,250-128,48,"<") {back_gr}
@sexmgrp = Button.new(self,250-64,70,"F") {@current_grp = 0;$game_party.actors[0].set_female; reset_gra ;refresh}
@sexfgrp = Button.new(self,250-128,70,"M") {@current_grp = 0;$game_party.actors[0].set_male; reset_gra ; refresh}
# @cambia_classe = Button.new(self,250-128,100,"Cambia Classe") {next_class}
@current_grp = 0
for w in @widgets
w.visible = true
end
refresh
end

#-----------------------------------------------------------------------------
def set_up_chara
$game_actors[1].name = @name_box.text
end
def reset_gra
$grafiche.update
@current_grp = 0
$game_actors[1].set_chara($grafiche.sex[$game_actors[1].class_id][@current_grp])
end
def next_class
@current_grp = 0
$grafiche.update
if $game_actors[1].class_id <= $data_classes.size - 2
$game_actors[1].class_id += 1
else
$game_actors[1].class_id = 1
end
$game_actors[1].set_chara($grafiche.sex[$game_actors[1].class_id][@current_grp])
refresh
end
def next_gr
@act = $game_party.actors[0]
if @current_grp <= $grafiche.sex[@act.class_id].size-2
@current_grp += 1
$grafiche.update
$game_actors[1].set_chara($grafiche.sex[@act.class_id][@current_grp])
end
refresh
end
def back_gr
@act = $game_party.actors[0]
if @current_grp > 0 then
@current_grp -= 1
$grafiche.update
$game_actors[1].set_chara($grafiche.sex[@act.class_id][@current_grp])
end
refresh
end
#-----------------------------------------------------------------------------
def refresh
self.contents.clear
self.contents.draw_text(0, -8, self.width-64, 32, "Nome: ")
draw_actor_graphic($game_party.actors[0],32,64+16)
self.contents.draw_text(250-128-16,100, self.width-64, 32, "Classe: #{$data_classes[$game_party.actors[0].class_id].name}")
end
#--------------------------------------------------------------------------
def update
super
if @active and self.y<=220
@visible=true
for w in @widgets
w.visible = true
end
while self.y<142
self.y+=20
self.opacity+=20
for w in @widgets
w.s.opacity +=20
end
Graphics.update
end
end
end
#--------------------------------------------------------------------------
def on_close
@active=false
@visible=true
for w in @widgets
w.visible = true
end
while self.y>-220
self.y-=20
for w in @widgets
w.s.opacity -=20
end
self.opacity-=20
Graphics.update
end
for w in @widgets
w.visible = false
end
@visible=false
end
#-----------------------------------------------------------------------------
end
end
 
Have anyone resource? It need Graphics/characters/equipment/(itemname) etc.

EDIT:ABS Have too many bugs.Please changa ABS System?
 
Status
Not open for further replies.

Thank you for viewing

HBGames is a leading amateur video game development forum and Discord server open to all ability levels. Feel free to have a nosey around!

Discord

Join our growing and active Discord server to discuss all aspects of game making in a relaxed environment. Join Us

Content

  • Our Games
  • Games in Development
  • Emoji by Twemoji.
    Top