رد: موضوع الطلبات و المساعدات RPG Makers
السلم عليكم
اخواني ليا كام سؤال مع العلم اني مبتدئه جدا جدا كان ليا كام تجربه بسيطه اوي في برنامج جيم ميكر ولم استكملها:boggled:
احب اوجه بعض الاسئله للمختصين في برنامج ار بي جي ميكر
1- احب اعرف ازاي المصممين الاجانب بيخلو الصور في الالعاب بتعتهم زي ما تكون مفلتره وفيها بلار ورتوش لتحسين الصوره داخل اللعبه :ponder:
2- كمان احب اعرف ازي بيخلو صور الشخصيات كبيره زي مثلا شخصيات لعبه كونكور وما شابهها موش مجرد رسمه صغيره :bigeyes:
ياريت حد يجاوبني:33::33:
وياريت لو موضوعي في مكان غلط اتمني قبول اعتذاري
رد: موضوع الطلبات و المساعدات RPG Makers
اقتباس:
2- كمان احب اعرف ازي بيخلو صور الشخصيات كبيره زي مثلا شخصيات لعبه كونكور وما شابهها موش مجرد رسمه صغيره
حطي شخصية واحدة و اعملي الحجم اللي تبغينه و بعدين اكتبي عنوان الشخصية و ما تنسي تحطي $ في اسم الشخصية مثال:
$noname
$charset
$sprite
المهم تكون قبل الاسم و بس
رد: موضوع الطلبات و المساعدات RPG Makers
اقتباس:
المشاركة الأصلية كتبت بواسطة mariem hichri
حطي شخصية واحدة و اعملي الحجم اللي تبغينه و بعدين اكتبي عنوان الشخصية و ما تنسي تحطي $ في اسم الشخصية مثال:
$noname
$charset
$sprite
المهم تكون قبل الاسم و بس
الف الف شكر لكن سؤالي الاهم ازاي بيخلو الرتوش والبلار في اللعبه زي ما تكون ثري دي
لكن غير الالعاب الثانيه زي ماريو مثل تحس انها تو دي ؟؟
رد: موضوع الطلبات و المساعدات RPG Makers
اقتباس:
الف الف شكر لكن سؤالي الاهم ازاي بيخلو الرتوش والبلار في اللعبه زي ما تكون ثري دي
لكن غير الالعاب الثانيه زي ماريو مثل تحس انها تو دي ؟؟
ما فهمت قصدك بس بجاوبك حسب فهمي:
اذا بدك تعملي ثري دي استعملي سبرايتات 3دي و اذا 2دي او بلاتفورم في سكرابتات :)
رد: موضوع الطلبات و المساعدات RPG Makers
اخي الغالي
مشكور جزيل الشكر لتوصلك معايا لكن انا حرفق صورتين ولاحظ لفرق بين الصورتين مع العلم ان الصورتين لالعاب مصنوعه بواسطه الار بي حي ميكر
http://play-free-online-games.com/li..._origins_6.png
دي صوره تحسها مثل العاب الاتاري زمان يعني تحس بدائيه حبتين
لكن انظر دي
http://play-free-online-games.com/li...d_online_2.jpg
لحظ الفرق واعلم ان الاثنين 2d
طيب ازاي اوصل لاني اصمم لعبه لها نفس جوده الصوره الثانيه
ونفس حجم اللاعبين
وهل هذا برنامج ار بي جي مختلف مثلا ؟؟
ولك الف شكر
رد: موضوع الطلبات و المساعدات RPG Makers
أنا بنت :silly:
حملي هذا
تقدري تصممي به شخصيات طويلة القامة (بصيغة الفوتوشوب)
http://www.mediafire.com/?v5iw4m5lcfk4ube
اما الجودة :) فهناك سبرايتات بالنت :o
رد: موضوع الطلبات و المساعدات RPG Makers
بصره يا قمر
تسلمي يا غاليه
رد: موضوع الطلبات و المساعدات RPG Makers
طلب سكريبت لصق الكتابة العربية في rpg maker XP
2 تطوير نمط القتال فيrpg maker VX أو rpg maker XP
رد: موضوع الطلبات و المساعدات RPG Makers
رد: موضوع الطلبات و المساعدات RPG Makers
اه اتفضل
تطوير نمط القتال فيrpg maker VX
http://rpgcreative.net/rpgmakervx/sc...s/vlad_abs.png
#=============================================================================
# Window Hud
#=============================================================================
class Window_Hud < Window_Base
def initialize
super(0,0,128,96)
self.opacity = 0
# self.visible = false
refresh
end
def refresh
self.contents.clear
actor = $game_actors[1]
draw_actor_hp(actor, 0, 0, 96)
draw_actor_mp(actor, 0, 32, 96)
end
def update
# self.visible = true if $game_switches[1] == true # 1=interruptor que activa y desactiva el HUD
refresh
end
end
class Scene_Map
alias hud_main main
alias hud_update update
alias hud_terminate terminate
def main
@hud = Window_Hud.new
hud_main
end
def update
@hud.update
hud_update
end
def terminate
@hud.dispose
end
end
و
#===================================
# Vlad ABS
#===================================
#--------------------------------------------------------------
# Créditos a Vlad
#--------------------------------------------------------------
# Para Crear un Enemigo, coloca las siguientes anotaciones:
# Enemy ID - donde ID es la ID del enemigo en la base de datos.
# Die X - donde X = 1 o 2 (1 borra el evento de enemigo, 2 pasa al interruptor local 'A')
# Follow - Para que el evento siga al personaje automáticamente.
#--------------------------------------------------------------
# Configuración General
#--------------------------------------------------------------
#--------------------------------------------------------------
# Tecla de Ataque, cambia X por la letra que quieras:
Attack_Button = Input::X
#--------------------------------------------------------------
# Tecla de Habilidad, cambia Y por la letra que quieras:
Skill_Button = {Input::Y => 0}
#--------------------------------------------------------------
# Animación cuando el Héroe sube de Nivel:
LevelUp_Ani = 40
#--------------------------------------------------------------
# Animación de ataque del enemigo, copia Enemy_atk_ani[2] = 13
# y cambia el 2 por la ID del enemigo, y el 13 por la ID de animación.
Enemy_atk_ani = {}
Enemy_atk_ani[2] = 13
#--------------------------------------------------------------
#--------------------------------------------------------------
# Game Character
#--------------------------------------------------------------
class Game_Character
attr_accessor :hp
attr_accessor :mp
attr_accessor :damage
attr_accessor :critical
attr_accessor :wait_ataque
attr_accessor :die
alias vlad_abs_gchar_initialize initialize
def initialize
@hp = 0
@mp = 0
@die = 0
$skill_for_use = 0
@wait_ataque = 0
@damage = nil
@critical = false
vlad_abs_gchar_initialize
end
def recebe_atk(attacker)
attacker_status = (attacker.is_a?(Game_Event) ? attacker.enemy_status : $game_actors[1])
receptor_status = (self.is_a?(Game_Event) ? self.enemy_status : $game_actors[1])
self.damage = attacker_status.atk - receptor_status.def
self.damage *= attacker_status.elements_max_rate(attacker_status.element_set)
self.damage /= 100
self.damage = 0 if self.damage < 0
self.critical = (rand(100) < 4)
self.damage *= 2 if self.critical
if self.is_a?(Game_Player)
$game_actors[1].hp -= self.damage
if $game_actors[1].hp <= 0
$scene = Scene_Gameover.new
end
elsif self.is_a?(Game_Event)
self.hp -= self.damage
if self.hp <= 0
self.animation_id = 88
$game_actors[1].gain_exp(enemy_status.exp, 1)
if @die == 1
self.erase
elsif @die == 2
key = [$game_map.map_id, self.id, "A"]
$game_self_switches[key] = true
end
refresh
end
end
end
def recebe_skl(attacker)
for key in Skill_Button.keys
sklid = Skill_Button[key]
attacker_status = (attacker.is_a?(Game_Event) ? attacker.enemy_status : $game_actors[1])
receptor_status = (self.is_a?(Game_Event) ? self.enemy_status : $game_actors[1])
self.damage = $data_skills[sklid].atk_f - receptor_status.def
self.damage *= attacker_status.elements_max_rate(attacker_status.element_set)
self.damage /= 100
self.damage = 0 if self.damage < 0
self.critical = (rand(100) < 4)
self.damage *= 2 if self.critical
attacker_status.mp -= $data_skills[sklid].mp_cost
if self.is_a?(Game_Player)
$game_actors[1].hp -= self.damage
$scene = Scene_Gameover.new if $game_actors[1].hp <= 0
elsif self.is_a?(Game_Event)
self.hp -= self.damage
if self.hp <= 0
$game_actors[1].gain_exp(enemy_status.exp, 1)
if @die == 1
self.erase
elsif @die == 2
key = [$game_map.map_id, self.id, "A"]
$game_self_switches[key] = true
end
refresh
end
end
end
end
def follow_hero(dx, dy)
sx = @x - dx
sy = @y - dy
if sx == 0 and sy == 0
return
end
abs_sx = sx.abs
abs_sy = sy.abs
if abs_sx == 0
sy > 0 ? move_up : move_down
if not moving? and sx != 0
sx > 0 ? move_left : move_right
end
return
elsif abs_sy == 0
sx > 0 ? move_left : move_right
if not moving? and sy != 0
sy > 0 ? move_up : move_down
end
return
end
if abs_sx == abs_sy
rand(2) == 0 ? abs_sx += 1 : abs_sy += 1
end
if abs_sx > abs_sy
sx > 0 ? move_left : move_right
if not moving? and sy != 0
sy > 0 ? move_up : move_down
end
else
sy > 0 ? move_up : move_down
if not moving? and sx != 0
sx > 0 ? move_left : move_right
end
end
end
def raio(dx, dy)
ax = (@x - dx) ** 2
ay = (@y - dy) ** 2
return Math.sqrt(ax + ay)
end
end
#--------------------------------------------------------------
# Game Event
#--------------------------------------------------------------
class Game_Event < Game_Character
attr_reader :inimigo
attr_reader :enemy_status
alias vlad_abs_gevent_initialize initialize
alias vlad_abs_gevent_update update
alias vlad_abs_gevent_refresh refresh
def initialize(map_id, event)
@inimigo = false
@automove = false
vlad_abs_gevent_initialize(map_id, event)
end
def check_com(comentario)
return false if @list.nil? or @list.size <= 0
for item in @list
if item.code == 108 or item.code == 408
if item.parameters[0].downcase.include?(comentario.downcase)
return true
end
end
end
end
def check_comment(comentario)
com = comentario.downcase
return 0 if @list.nil? or @list.size <= 0
for item in @list
if item.code == 108 or item.code == 408
if item.parameters[0].downcase =~ /#{com}[ ]?(\d+)?/
return $1.to_i
end
end
end
return 0
end
def update
vlad_abs_gevent_update
if @inimigo
new_x = (@x + (@direction == 4 ? -1 : @direction == 6 ? 1 : 0))
new_y = (@y + (@direction == 8 ? -1 : @direction == 2 ? 1 : 0))
if self.wait_ataque > 0
self.wait_ataque -= 1
elsif $game_player.x == new_x and $game_player.y == new_y
$game_player.recebe_atk(self)
$game_player.animation_id = self.enemy_atk_animation_id
$game_player.jump(0,0)
self.wait_ataque = 60
end
end
if @automove
unless moving?
self.follow_hero($game_player.x, $game_player.y)
end
end
end
def refresh
vlad_abs_gevent_refresh
@inimigo = false
@enemy_id = check_comment("Enemy")
@automove = true if check_com("Follow") == true
@die = check_comment("Die")
if @enemy_id > 0
@inimigo = true
@enemy_status = Game_Enemy.new(@enemy_id, @enemy_id)
self.hp = @enemy_status.maxhp
self.mp = @enemy_status.maxmp
end
end
def enemy_atk_animation_id
if Enemy_atk_ani[@enemy_id]
return (@enemy_status.nil? ? 0 : Enemy_atk_ani[@enemy_id])
else
return (@enemy_status.nil? ? 0 : 1)
end
end
def Enemy_atk_ani
return Enemy_atk_ani
end
end
#--------------------------------------------------------------
# Game Player
#--------------------------------------------------------------
class Game_Player < Game_Character
alias vlad_abs_gplayer_update update
alias vlad_abs_gplayer_refresh refresh
def update
vlad_abs_gplayer_update
if self.wait_ataque > 0
self.wait_ataque -= 1
end
def refresh
vlad_abs_gplayer_refresh
self.hp = $game_actors[1].hp
self.mp = $game_actors[1].mp
end
if Input.trigger?(Attack_Button) and self.wait_ataque <= 0
new_x = (@x + ($game_player.direction == 4 ? -1 : $game_player.direction == 6 ? 1 : 0))
new_y = (@y + ($game_player.direction == 8 ? -1 : $game_player.direction == 2 ? 1 : 0))
for event in $game_map.events.values
if event.inimigo
if event.x == new_x and event.y == new_y
event.recebe_atk(self)
event.animation_id = self.player_atk_animation_id
event.jump(0,0)
self.wait_ataque = 30
break
end
end
end
end
for key in Skill_Button.keys
if Input.trigger?(key) and Skill_Button[key] != nil and Skill_Button[key] != 0 and $game_actors[1].mp >= $data_skills[Skill_Button[key]].mp_cost and self.wait_ataque <= 0
new_x = (@x + ($game_player.direction == 4 ? -1 : $game_player.direction == 6 ? 1 : 0))
new_y = (@y + ($game_player.direction == 8 ? -1 : $game_player.direction == 2 ? 1 : 0))
for event in $game_map.events.values
if event.inimigo
if event.x == new_x and event.y == new_y
event.recebe_skl(self)
event.animation_id = self.player_skl_animation_id
event.jump(0,0)
self.wait_ataque = 60
break
end
end
end
end
end
def player_atk_animation_id
return ($game_actors[1].nil? ? 0 : $game_actors[1].atk_animation_id)
end
def player_skl_animation_id
for key in Skill_Button.keys
sklid = Skill_Button[key]
return ($game_actors[1].nil? ? 0 : $data_skills[sklid].animation_id)
end
end
def Attack_Button
return Attack_Button
end
def Skill_Button
return Skill_Button
end
end
end
#--------------------------------------------------------------
# Game Actor
#--------------------------------------------------------------
class Game_Actor
alias vlad_abs_change_exp change_exp
def change_exp(exp, show)
last_level = @level
last_skills = skills
@exp = [[exp, 9999999].min, 0].max
while @exp >= @exp_list[@level+1] and @exp_list[@level+1] > 0
level_up
end
while @exp < @exp_list[@level]
level_down
end
@hp = [@hp, maxhp].min
@mp = [@mp, maxmp].min
if show and @level > last_level
show_level_up
end
vlad_abs_change_exp(exp,show)
end
def show_level_up
$game_player.animation_id = LevelUp_Ani
$game_actors[1].hp = $game_actors[1].maxhp
$game_actors[1].mp = $game_actors[1].maxmp
end
def LevelUp_Ani
return LevelUp_Ani
end
end
#--------------------------------------------------------------
# Sprite Base
#--------------------------------------------------------------
class Sprite_Base
alias animation animation_set_sprites
def animation_set_sprites(frame)
cell_data = frame.cell_data
for i in 0..15
sprite = @animation_sprites[i]
next if sprite == nil
pattern = cell_data[i, 0]
if pattern == nil or pattern == -1
sprite.visible = false
next
end
if pattern < 100
sprite.bitmap = @animation_bitmap1
else
sprite.bitmap = @animation_bitmap2
end
sprite.visible = true
sprite.src_rect.set(pattern % 5 * 192,
pattern % 100 / 5 * 192, 192, 192)
if @animation_mirror
sprite.x = @animation_ox - cell_data[i, 1] / 2
sprite.y = @animation_oy - cell_data[i, 2] / 2
sprite.angle = (360 - cell_data[i, 4])
sprite.mirror = (cell_data[i, 5] == 0)
else
sprite.x = @animation_ox + cell_data[i, 1] / 2
sprite.y = @animation_oy + cell_data[i, 2] / 2
sprite.angle = cell_data[i, 4]
sprite.mirror = (cell_data[i, 5] == 1)
end
sprite.z = self.z + 300
sprite.ox = 96
sprite.oy = 96
sprite.zoom_x = cell_data[i, 3] / 200.0
sprite.zoom_y = cell_data[i, 3] / 200.0
sprite.opacity = cell_data[i, 6] * self.opacity / 255.0
sprite.blend_type = cell_data[i, 7]
end
end
end
#--------------------------------------------------------------
# Sprite Character
#--------------------------------------------------------------
class Sprite_Character < Sprite_Base
alias vlad_abs_spchar_update update
def initialize(viewport, character = nil)
super(viewport)
@character = character
@balloon_duration = 0
@_damage_duration = 0
update
end
def update
super
if @_damage_duration > 0
@_damage_duration -=1
@_damage_sprite.x = self.x
if @_damage_duration <= 0
dispose_damage
end
end
if @character != nil and @character.damage != nil
damage(@character.damage, @character.critical)
@character.damage = nil
@character.critical = false
end
vlad_abs_spchar_update
end
def damage(value, critical)
dispose_damage
if value.is_a?(Numeric)
damage_string = value.abs.to_s
else
damage_string = value.to_s
end
bitmap = Bitmap.new(160, 48)
bitmap.font.name = "Georgia"
bitmap.font.size = 22
bitmap.font.italic = true
if value.is_a?(Numeric) and value <= 0
bitmap.font.color.set(0, 0, 0)
bitmap.draw_text(1, 13, 160, 36, "Fallo", 1)
bitmap.font.color.set(255, 245, 155)
bitmap.draw_text(0, 12, 160, 36, "Fallo", 1)
else
bitmap.font.color.set(0, 0, 0)
bitmap.draw_text(1, 13, 160, 36, damage_string, 1)
bitmap.font.color.set(255, 255, 255)
bitmap.draw_text(0, 12, 160, 36, damage_string, 1)
end
if critical
bitmap.font.color.set(0, 0, 0)
bitmap.draw_text(1, 6, 160, 20, "Crítico", 1)
bitmap.font.color.set(255, 245, 155)
bitmap.draw_text(0, 5, 160, 20, "Crítico", 1)
end
@_damage_sprite = ::Sprite.new(self.viewport)
@_damage_sprite.bitmap = bitmap
@_damage_sprite.ox = 80
@_damage_sprite.oy = 20
@_damage_sprite.x = self.x
@_damage_sprite.y = self.y - self.oy / 2 - 40
@_damage_sprite.z += 99999
@_damage_duration = 30
end
def show_text(string, size=16, color=0)
dispose_damage
damage_string = string
if string.is_a?(Array)
array = true
else
array = false
end
bitmap = Bitmap.new(160, 48)
bitmap.font.name = "Georgia"
bitmap.font.size = size
bitmap.font.italic = true
if array
for i in 0..string.size
next if damage_string[i] == nil
bitmap.font.color.set(96, 96-20, 0) if color == 0
bitmap.font.color.set(0, 0, 0) if color != 0
bitmap.draw_text(-1, (12+(16*i)-1)-16, 160, 36, damage_string[i], 1)
bitmap.draw_text(+1, (12+(16*i)-1)-16, 160, 36, damage_string[i], 1)
bitmap.draw_text(-1, (12+(16*i)+1)-16, 160, 36, damage_string[i], 1)
bitmap.draw_text(+1, (12+(16*i)+1)-16, 160, 36, damage_string[i], 1)
bitmap.font.color.set(255, 245, 155) if color == 0
bitmap.font.color.set(144, 199, 150) if color == 1
bitmap.font.color.set(197, 147, 190)if color == 2
bitmap.font.color.set(138, 204, 198)if color == 3
bitmap.draw_text(0, (12+(16*i))-16, 160, 36, damage_string[i], 1)
end
else
bitmap.font.color.set(96, 96-20, 0) if color == 0
bitmap.font.color.set(0, 0, 0) if color != 0
bitmap.draw_text(-1, 12-1, 160, 36, damage_string, 1)
bitmap.draw_text(+1, 12-1, 160, 36, damage_string, 1)
bitmap.draw_text(-1, 12+1, 160, 36, damage_string, 1)
bitmap.draw_text(+1, 12+1, 160, 36, damage_string, 1)
bitmap.font.color.set(255, 245, 155) if color == 0
bitmap.font.color.set(144, 199, 150) if color == 1
bitmap.font.color.set(197, 147, 190)if color == 2
bitmap.font.color.set(138, 204, 198)if color == 3
bitmap.draw_text(0, 12, 160, 36, damage_string, 1)
end
@_damage_sprite = ::Sprite.new(self.viewport)
@_damage_sprite.bitmap = bitmap
@_damage_sprite.ox = 80
@_damage_sprite.oy = 20
@_damage_sprite.x = self.x
@_damage_sprite.y = self.y - self.oy / 2
@_damage_sprite.z = 3000
@_damage_duration = 30
end
def dispose_damage
if @_damage_sprite != nil
@_damage_sprite.dispose
@_damage_sprite = nil
end
end
end
#--------------------------------------------------------------
# Window Skill
#--------------------------------------------------------------
class Scene_Skill
alias vlad_abs_sskill_initialize initialize
alias vlad_abs_sskill_update update
def initialize(actor_index = 0, equip_index = 0)
@memory = Window_Command.new(150, ["¡Memorizada!"])
@memory.active = false
@memory.visible = false
@memory.x = (544 - @memory.width) / 2
@memory.y = (416 - @memory.height) / 2
@memory.z = 1500
vlad_abs_sskill_initialize
end
def update
update_skill
@memory.update if @memory.active
return update_memory if @memory.active
vlad_abs_sskill_update
end
def update_skill
for key in Skill_Button.keys
if Input.trigger?(key)
Sound.play_decision
Skill_Button[key] = @skill_window.skill.id
@memory.active = @memory.visible = true
@skill_window.active = false
end
end
end
def update_memory
if Input.trigger?(Input::C)
Sound.play_decision
@memory.active = @memory.visible = false
@skill_window.active = true
end
end
def Skill_Button
return Skill_Button
end
end
#--------------------------------------------------------------
# Fin del ABS
#--------------------------------------------------------------
حوطهم فوق Main
و في انماط اخرى من هنا :
http://rpgcreative.net/rpgmakervx/scripts.html
rm xp
http://rpgcreative.net/rpgmaker/script/images/xas.png
تحميل الديمو:
http://rpgcreative.net/rpgmaker/script/demo/XAS.zip
كيف تحطه:
http://rpgcreative.net/creer_jeux/rp...=tuto&tuto=103
و للمزيد:
http://rpgcreative.net/rpgmaker/scripts.html
اما الكتابة بالعربية اعتقد انني شفت موضوع في المنتدى هون
رد: موضوع الطلبات و المساعدات RPG Makers
اريد تعريب لعبتي
انا اعربها لبرنامج rpg xp
او سكريبت لتطوير نمط القتال تكون هناك مهارات عندما تضغط على المسافة يضرب بسيفه
رد: موضوع الطلبات و المساعدات RPG Makers
لماذا هاذا التأخير من هاذا الشخص تأخر كثيرا في المساعدة ممكن فيها مساعدة لكن تأخر
يذكركم هاذا بتعليق عصام الشوالي
لكننن ارجوووووووكم سااااعدوني
اريد تعريب لعبتي
انا اعربها لبرنامج rpg xp
او سكريبت لتطوير نمط القتال تكون هناك مهارات عندما تضغط على المسافة يضرب بسيفه
رد: موضوع الطلبات و المساعدات RPG Makers
رد: موضوع الطلبات و المساعدات RPG Makers
هل استطيع دمج سكربتات
مثلا
دمج سكريبت النمط القتالي XAS_Original معى سكريبت اللغة العربية
لم استطيع كيف
رد: موضوع الطلبات و المساعدات RPG Makers