Per 2016, RMID pindah ke RMID Discord (Invite link dihapus untuk mencegah spambot -Theo @ 2019). Posting sudah tidak bisa dilakukan lagi.
Mohon maaf atas ketidaknyamanannya dan mohon kerjasamanya.
|
|
| 2012-04-24, 22:10 | oits!! EDUGAME!! |
---|
pram12345 Newbie
Posts : 59 Thanked : 1 Engine : RMVX Skill : Very Beginner Type : Databaser
| kakak senior... hehehe bolehkah daku bertanya>>> dapat tugas sekolah nih disuruh bikin game edukasi... tapi saya mah bisae cuman pakek rpg maker... NAH... bisa kasi solusi gak??? pake rpg maker vx enaknya bikin game edukasi yang kayak gimana? (kalau bisa mah jangan kuis... bosen beudh...) hehe.... tolong... saya mohon banget! saya pingin memberikan yang terbaik... saya tunggu solusi2 dari kakak2 senior yang dermawan makasih... Tuhan memberkati~ |
| | | 2012-04-24, 22:30 | Re: oits!! EDUGAME!! |
---|
LowlingLife Administrator
Posts : 2000 Thanked : 25 Engine : Multi-Engine User
Awards:
| Lihat dari tema yang ingin om ajarkan.. Terus juga lihat yang main umurnya berapa? Kalau TK sama Kelas 3 SD meningan yang edukasi kayak Mencari binatang, Berhitung, dsb. Kalau kelas 4 SD sampai seterusnya, meningan kasih game yang agak menantang contoh Berhitung cuma kombinasi sama RPG. |
| | | 2012-04-25, 04:04 | Re: oits!! EDUGAME!! |
---|
marjoni01 Senior
Posts : 971 Thanked : 5 Engine : RMVX Ace Skill : Intermediate Type : Developer
| Well, seperti yang dikatakan oleh om yang sangatlah ganteng bernama Lowlinglife...Game edukasi itu tergantung kelas berapa Kalau misalnya 1 SMA... Ya buat game puzzle aja buat menambah kecerdasan otak kalau misal udh om-om ya udh buat game yang disuruh menangkap sesuatu dengan kecepatan yang cepat karena biar menambah penglihatan mata... dan jika kakek kakek...Buatlah game edukasi bagaimana cara meninggal atau sesuatu ... Well, intinya jika mau buat game edukasi harus liat takarannya |
| | | 2012-04-25, 08:00 | Re: oits!! EDUGAME!! |
---|
Adhe45 Senior
Posts : 665 Thanked : 4 Engine : RMXP Skill : Beginner Type : Spriter
| ok, karna saya sawang kamu anak" SMK, jadi buat aja puzzle yang kalo bisa tingkat kerumitannya tinggi sekali, dan juga saya lihat anda orang yang taat agama, jadi massukkan sesuatu ke game mu yang berpesan bahwa kalo kita percaya pada Tuhan, maka kita akan selamat. nah saat ini kan kebanyakan anak muda agamanya hanya sebatas di KTP. . . . |
| | | 2012-04-25, 08:35 | Re: oits!! EDUGAME!! |
---|
cacad Koplak RMer
Posts : 399 Thanked : 3 Engine : Multi-Engine User Skill : Skilled Type : Event Designer
Awards:
| Klo tingkat SMA/SMK coba bwt game yg tipenya puzzle, tpi tingkat kesulitannya yang lumayan susah tpi nyambung dan berkaitan dengan edukasi @Adhe : kan gk boleh ada unsur agama dalam game CMIIW |
| | | 2012-04-25, 08:41 | Re: oits!! EDUGAME!! |
---|
Aegis Legendary
Posts : 2152 Thanked : 56 Engine : Multi-Engine User Skill : Very Beginner Type : Artist
Awards:
| bikin game RPG kalo mau nyerang harus nyelesain soal kayak integral matematika, sejarah tentang indonesia, sastra indonesia, fisika, kimia, biologi, ilmu kedokteran, kewarganegaraan, olahraga, pengetahuan umum, dll dengan bermiliar-miliar variasi soal. dijamin yg namatinnya tanpa referensi bakal jadi professor. |
| | | 2012-04-25, 08:42 | Re: oits!! EDUGAME!! |
---|
Adhe45 Senior
Posts : 665 Thanked : 4 Engine : RMXP Skill : Beginner Type : Spriter
| @cacad kan ini game edu, lagi pula aku nggak nyuruh masukin suatu agama ke game nya, aku cuma nyaranin masukin pesan " kalo kita percaya pada Tuhan, kita akan selamat ". nah untuk membuat pesan seperti itu kita bisa saja membuat seseorang yang cuma bilang tuhan lindungi aku, dan nasibnya selalu mujur dan dia bilang terima kasih tuhan. . . walau ada unsur agamanya tapi gak kuat, jadi menurut ku okok aja. . . |
| | | 2012-04-25, 09:37 | Re: oits!! EDUGAME!! |
---|
ashm Veteran
Posts : 1131 Thanked : 8 Engine : RMVX Ace Skill : Intermediate Type : Event Designer
Awards:
| Oh, ente lagi masa sma ya, berarti paling enak game yg bisa dimaenin temen juga. Ane sih cuman punya ide sejenis parampa aja. Oh ia, karena pake RPGmaker. Kan org laen belum familiar, jadi pake script mouse aja. Biar point and click. Kesimpulan : ane gk bisa bantu ide, sry :sembah |
| | | 2012-04-25, 11:15 | Re: oits!! EDUGAME!! |
---|
Alucard666 Advance
Posts : 450 Thanked : 4 Engine : RMVX Skill : Very Beginner Type : Writer
| Klo untuk sekolah bkin Game Kya Bully aja, Umm Lupakanlah yg diatas.. Jadi gni Bkin game Klo untuk masa2 Sma adalah masa2 Usil2 Gokil2an bareng Pkok nya bkin game yg bner2 nyaman di maenin mulai dari Event2 Story Klo untuk game Edukasi bisa d msukin juga d soal2 Ujian n ulangannya ps event Belajar nya biar game g monoton blajar mulu, Kn bosen yg maen Cman saran doangan |
| | | 2012-04-25, 11:34 | Re: oits!! EDUGAME!! |
---|
mewek Novice
Posts : 106 Thanked : 1 Engine : RMVX Ace Skill : Masterful Type : Developer
| Game RPG misalnya tempatnya di menara di lantai 100.terus kalau mau turun nanti ada orang kasih soal .kalau jawabannya benar.boleh turun ke lantai selanjutnya.kalau salah harus mengulang dari lantai tersebut. CMIIW Thanks |
| | | 2012-04-25, 11:44 | Re: oits!! EDUGAME!! |
---|
EinRydix Newbie
Posts : 61 Thanked : 0 Engine : RMVX Skill : Beginner Type : Databaser
| game edu? kalo kaya gitu cocoknya yang penuh tentang pertanyaan sputar plajaran skolah.. jadinya misal karakter utama dan teman2nya terperangkap di labirin, kalo mau kluar harus jawab pertanyaan2 gtu.. kaya kalo mau buka pintu butuh kunci, abis kunci di buka, pertanyaan muncul.. kalo jawab salah, HP ngurang.. ya paling gtu dah intinya.. jadi gabungan puzzle sama edu juga.. pertanyaannya ya tergantung kelas brpa.. gampang dibuat, tapi juga ngasah otak yang maen kan? |
| | | 2012-04-25, 11:51 | Re: oits!! EDUGAME!! |
---|
ashm Veteran
Posts : 1131 Thanked : 8 Engine : RMVX Ace Skill : Intermediate Type : Event Designer
Awards:
| @dead : wah ane jadi kepikiran valhalla TCG. Itu game TCG berbackground masa kuliah. jadi sambil maen, tapi ada management tenaga, waktu, dan uang. |
| | | 2012-04-27, 10:08 | Re: oits!! EDUGAME!! |
---|
pram12345 Newbie
Posts : 59 Thanked : 1 Engine : RMVX Skill : Very Beginner Type : Databaser
| hmmm sip2.... makasih kakak senior!! well.... kalau gitu... saya jadi ada konsep! kira2... tau tmpat nemu script mouse???? mohon bantuannya anak smk saya.... hehe |
| | | 2012-04-27, 10:12 | Re: oits!! EDUGAME!! |
---|
marjoni01 Senior
Posts : 971 Thanked : 5 Engine : RMVX Ace Skill : Intermediate Type : Developer
| Ini pake' engine apa dulu? Kalau VX ini : - Spoiler:
- Code:
-
#=============================================================================== # Mouse System # By Jet10985 (Jet) # Some Code by: Woratana, Berka # Uses: Modern Algebra's Path Finding Script # Super Heavy Testing/Debug Help By: Nathanial (Beleren) #=============================================================================== # This script will allow full use of the mouse inside of rmvx for various # purposes. # This script has: 5 customization options. #=============================================================================== # Overwritten Methods: # None #------------------------------------------------------------------------------- # Aliased methods: # Scene_Map: update, terminate, update_transfer_player # Input: update, trigger?, press?, repeat? # Window_Selectable: update, top_row= # Game_Player: move_type_custom, update, force_move_route, check_action_event # Scene_File: update # Window_NameInput: update # Game_System: initialize # Game_Temp: initialize # Game_Event: initialize #===============================================================================
#============================================================================== # Path Finding # Version: 2.0 # Author: modern algebra (rmrk.net) # Date: April 10, 2008 #============================================================================== # Thanks: # Patrick Lester! For his tutorial on A* Pathfinding algorithm (found at: # [url="http://www.gamedev.net/reference/articles/article2003.asp)"]http://www.gamedev.net/reference/articles/article2003.asp)[/url] as well as # another amazingly helpful tutorial on using binary heaps (found at: # [url="http://www.policyalmanac.org/games/binaryHeaps.htm)"]http://www.policyalmanac.org/games/binaryHeaps.htm)[/url]. Without his excellent # tutorials, this script would not exist. So major thanks to him. # Zeriab, for tricking me into believing that this was an actual exercise. # Also, his table printout actually makes Tables useable :P #============================================================================== # Instructions: # To use, merely use this code in a script call INSIDE a Move Event: # # find_path (target_x, target_y, diagonal, max_iterations) # # where target_x and target_y are the target coordinates and diagonal is an # optional boolean value (true or false) stating whether or not to allow # diagonal movement. max_iterations is also optional, and you can set this if # you want the algorithm to quit if it is taking too long. The number you set # here refers to how many nodes you let it search through before cancelling # the process. If this is set to 0, it will take as many iterations as # necessary to find the shortest path. # # You can also set a default value for diagonal and max_iterations # by call script with the codes: # # $game_system.pathfinding_diagonal = true/false # Allow diagonal movement # $game_system.pathfinding_iterations = integer # When <= 0, no limit # # For scripters, you can force-move a character down a path via: # # character.force_path (x, y, diagonal, max_iterations) # # character is any Game_Character object, such as $game_player or an event. # # Then, when you do not specifically set diagonal or limit, it will default # to the values you set in there #==============================================================================
=begin Showing text above event when mouse hovers:
If you want a message to appear over an event's head if the mouse is hovering over the event, put this comment in the event:
MOUSE TEXT MESSAGE HERE
everything after TEXT will be the hovering display. -------------------------------------------------------------------------------- Change mouse picture above event when mouse hovers:
If you want the mouse's picture to temporarily change whne over an event, put this comment in the event
MOUSE PIC NAME/NUMBER
if you put a name, the mouse will become that picture, but if you put a number then the mouse will become the icon that is the id number -------------------------------------------------------------------------------- Specific mouse click movement routes:
If you want the player to land specifically in a square around an event when they click to move on the event, put one of these comments in the event:
MOUSE MOVE UP/LEFT/RIGHT/DOWN
only put the direction that you want the player to land on. -------------------------------------------------------------------------------- Click to activate:
If you want an event to automatically start when it is clicked on, place this in an event comment:
MOUSE CLICK -------------------------------------------------------------------------------- Control event with mouse:
If you want the player to control an event with the mouse, put this comment in the event:
MOUSE CONTROL
the player must right-click on this event to take control. they can switch control back to the main player by right-clicking the main player -------------------------------------------------------------------------------- Don't stop the player when walking over a touch event:
By default, this script will stop a mouse-caused movement if the player walks over/under a player touch/event touch event. If you want the event to activate, but for the player to keep walking to their destination, put this comment in the event:
MOUSE NOSTOP -------------------------------------------------------------------------------- Ignore Events:
To have an event be ignored when the mouse makes it's movement path (as if the event isn't there), put this comment in the event:
MOUSE THROUGH -------------------------------------------------------------------------------- Extra Notes:
In selectable windows that have more items than what's shown, players can either put the mouse below the window to scroll down, OR use the mouse's scroll wheel to scroll up/down.
You can activate action button events by standing next to the event and clicking on it with the mouse. =end module JetMouse # If you are using a graphic, this is it. # It must be in the Graphics/System folder. CURSOR_PICTURE = "cursor-mouse" # If you aren't using a graphic, this icon will be the mouse. # To use the icon, just put a non-existant picture as the above config ICON_INDEX = 3 # Do you want the player to be able to move by clicking the mouse? ALLOW_MOUSE_MOVEMENT = true # Do you want mouse movement to do 8-dir walking? DO_8DIR_WALKING = false # Turning this switch on will make the mouse invisible and unusuable until # the switch is turned off TURN_MOUSE_OFF_SWITCH = 100 end
#=============================================================================== # DON'T EDIT FURTHER UNLESS YOU KNOW WHAT TO DO. #=============================================================================== module Mouse Get_Message = Win32API.new('user32', 'GetMessage', 'plll', 'l') GetAsyncKeyState = Win32API.new("user32", "GetAsyncKeyState", 'i', 'i') GetKeyState = Win32API.new("user32", "GetKeyState", 'i', 'i') SetCursorPos = Win32API.new('user32', 'SetCursorPos', 'nn', 'n') GetCursorPo = Win32API.new('user32', 'GetCursorPos', 'p', 'i') ScreenToClient = Win32API.new('user32', 'ScreenToClient', 'lp', 'i') FindWindowA = Win32API.new('user32', 'FindWindowA', 'pp', 'l') GetClientRect = Win32API.new('user32', 'GetClientRect', 'lp', 'i') GetWindowRect = Win32API.new('user32', 'GetWindowRect', 'lp', 'i') contents = File.open('Game.ini', 'r') { |f| f.read } q = contents[/Title=(.+)/].nil? ? "cccc" : $1 @handle = FindWindowA.call('RGSS Player', q) module_function Point = Struct.new(:x, :y) Message = Struct.new(:message, :wparam, :lparam, :Pt) Param = Struct.new(:x, :y, :scroll) Scroll = 0x0000020A def hiword(dword); return ((dword&0xffff0000) >> 16)&0x0000ffff; end def loword(dword); return dword&0x0000ffff; end def word2signed_short(value) return value if (value&0x8000) == 0 return -1 * ((~value&0x7fff) + 1) end def unpack_dword(buffer, offset = 0) ret = buffer[offset + 0]&0x000000ff ret |= (buffer[offset + 1] << (8 * 1))&0x0000ff00 ret |= (buffer[offset + 2] << (8 * 2))&0x00ff0000 ret |= (buffer[offset + 3] << (8 * 3))&0xff000000 return ret end def unpack_msg(buffer) msg = Message.new; msg.pt = Point.new msg.message=unpack_dword(buffer,4*1) msg.wparam = unpack_dword(buffer, 4 * 2) msg.lparam = unpack_dword(buffer,4*3) msg.pt.x = unpack_dword(buffer, 4 * 5) msg.pt.y = unpack_dword(buffer, 4 * 6) return msg end def wmcallback(msg) return unless msg.message == Scroll param = Param.new param.x = word2signed_short(loword(msg.lparam)) param.y = word2signed_short(hiword(msg.lparam)) param.scroll = word2signed_short(hiword(msg.wparam)) return [param.x, param.y, param.scroll] end def click?(button) return false if $game_switches[JetMouse::TURN_MOUSE_OFF_SWITCH] return true if @keys.include?(button) return false end def press?(button) return false if $game_switches[JetMouse::TURN_MOUSE_OFF_SWITCH] return true if @press.include?(button) return false end def set_pos(x_pos = 0, y_pos = 0) width,height = client_size if (x_pos.between?(0, width) && y_pos.between?(0, height)) SetCursorPos.call(client_pos[0] + x_pos,client_pos[1] + y_pos) end end def update return if $game_switches[JetMouse::TURN_MOUSE_OFF_SWITCH] @pos = Mouse.pos @keys, @press = [], [] @keys.push(1) if GetAsyncKeyState.call(1)&0x01==1 @keys.push(2) if GetAsyncKeyState.call(2)&0x01==1 @keys.push(3) if GetAsyncKeyState.call(4)&0x01==1 @press.push(1) if pressed?(1) @press.push(2) if pressed?(2) @press.push(3) if pressed?(4) end def pressed?(key) return true unless GetKeyState.call(key).between?(0, 1) return false end def global_pos pos = [0, 0].pack('ll') GetCursorPo.call(pos) != 0 ? (return pos.unpack('ll')):(return [0, 0]) end def pos return 0, 0 if $game_switches[JetMouse::TURN_MOUSE_OFF_SWITCH] x, y = screen_to_client(*global_pos) width, height = client_size begin x = 0 if x <= 0; y = 0 if y <= 0 x = width if x >= width; y = height if y >= height return x, y end end def screen_to_client(x, y) return nil unless x && y pos = [x, y].pack('ll') ScreenToClient.call(@handle, pos) != 0 ?(return pos.unpack('ll')):(return [0, 0]) end def client_size rect = [0, 0, 0, 0].pack('l4') GetClientRect.call(@handle, rect) right,bottom = rect.unpack('l4')[2..3] return right, bottom end def client_pos rect=[0, 0, 0, 0].pack('l4') GetWindowRect.call(@handle, rect) left, upper = rect.unpack('l4')[0..1] return left + 4, upper + 30 end def grid return [-1, -1] if $game_switches[JetMouse::TURN_MOUSE_OFF_SWITCH] return [-1, -1] if @pos.nil? return [(@pos[0]/32), (@pos[1]/32)] end def true_grid return [grid[0] + $game_map.display_x / 256, grid[1] + $game_map.display_y / 256] end def area?(x, y, width, height) return false if $game_switches[JetMouse::TURN_MOUSE_OFF_SWITCH] return false if @pos.nil? return @pos[0].between?(x, width + x) && @pos[1].between?(y, height + y) end def scroll msg="\0"*32;Get_Message.call(msg,0,0,0);r=wmcallback(unpack_msg(msg)) return r if !r.nil? end end
class Sprite_Cursor < Sprite_Base attr_accessor :current_cursor, :not_default include JetMouse def initialize super @current_cursor = "" @not_default = false Win32API.new('user32', 'ShowCursor', 'i', 'i').call(0) self.z = 5004 create_cursor(CURSOR_PICTURE) $game_switches = [] update end def create_cursor(cursor = "") self.bitmap.dispose unless self.bitmap.nil? self.bitmap = nil begin self.bitmap = Cache.system(cursor) @current_cursor = cursor rescue self.bitmap = Bitmap.new(24, 24) bitmap = Cache.system("Iconset") rect = Rect.new(ICON_INDEX % 16 * 24, ICON_INDEX / 16 * 24, 24, 24) self.bitmap.blt(0, 0, bitmap, rect) @current_cursor = ICON_INDEX end @not_default = false end def change_cursor(cursor) self.bitmap.dispose unless self.bitmap.nil? self.bitmap = nil begin self.bitmap = Cache.system(cursor) @current_cursor = cursor @not_default = true rescue begin self.bitmap = Bitmap.new(24, 24) bitmap = Cache.system("Iconset") rect = Rect.new(cursor % 16 * 24, cursor / 16 * 24, 24, 24) self.bitmap.blt(0, 0, bitmap, rect) @current_cursor = cursor @not_default = true rescue create_cursor(CURSOR_PICTURE) end end end
def update if $game_switches[TURN_MOUSE_OFF_SWITCH] self.opacity = 0 unless self.opacity == 0 end self.opacity = 255 unless self.opacity == 255 super x = self.x y = self.y self.x, self.y = Mouse.pos self.x -= 8 if @not_default self.y -= 8 if @not_default end def dispose super end end
$cursor = Sprite_Cursor.new
module Input class << self alias jet5888_press? press? unless $@ def press?(arg) if arg == Input::C return true if Mouse.click?(1) elsif arg == Input::B return true if Mouse.click?(2) end jet5888_press?(arg) end alias jet5888_repeat? repeat? unless $@ def repeat?(arg) if arg == Input::C return true if Mouse.click?(1) elsif arg == Input::B return true if Mouse.click?(2) end jet5888_repeat?(arg) end alias jet5888_trigger? trigger? unless $@ def trigger?(arg) if arg == Input::C return true if Mouse.click?(1) elsif arg == Input::B return true if Mouse.click?(2) end jet5888_trigger?(arg) end alias jet8432_update update unless $@ def update jet8432_update if $game_switches[JetMouse::TURN_MOUSE_OFF_SWITCH] && $cursor.opacity != 0 $cursor.opacity = 0 end $cursor.update unless $game_switches[JetMouse::TURN_MOUSE_OFF_SWITCH] Mouse.update unless $game_switches[JetMouse::TURN_MOUSE_OFF_SWITCH] end end end
class Game_System
attr_accessor :pathfinding_diagonal attr_accessor :pathfinding_iterations
alias modalg_pathfinding_options_init_j5yt initialize unless $@ def initialize modalg_pathfinding_options_init_j5yt @pathfinding_diagonal = false @pathfinding_iterations = 0 end end
class Game_Character
def find_path (trgt_x, trgt_y, diagonal = $game_system.pathfinding_diagonal, max_iterations = $game_system.pathfinding_iterations) path = $game_map.find_path (self.x, self.y, trgt_x, trgt_y, diagonal, max_iterations, self) @move_route.list.delete_at (@move_route_index) path.each { |i| @move_route.list.insert (@move_route_index, i) } @move_route_index -= 1 end
def force_path (trgt_x, trgt_y, diagonal = $game_system.pathfinding_diagonal, max_iterations = $game_system.pathfinding_iterations) path = $game_map.find_path (self.x, self.y, trgt_x, trgt_y, diagonal, max_iterations, self) return nil if path.empty? return nil if trgt_x == self.x && trgt_y == self.y path.reverse! path.push (RPG::MoveCommand.new (0)) move_route = RPG::MoveRoute.new move_route.list = path move_route.repeat = false force_move_route (move_route) end end
class Game_Map
def removefrom_binaryheap @open_nodes[1] = @open_nodes[@listsize] @listsize -= 1 v = 1 loop do u = v w = 2*u if w + 1 <= @listsize v = w if @total_cost[@open_nodes[u]] >= @total_cost[@open_nodes[w]] v = w + 1 if @total_cost[@open_nodes[v]] >= @total_cost[@open_nodes[w + 1]] elsif w <= @listsize v = w if @total_cost[@open_nodes[u]] >= @total_cost[@open_nodes[w]] end if u == v break else temp = @open_nodes[u] @open_nodes[u] = @open_nodes[v] @open_nodes[v] = temp end end end def find_path (src_x, src_y, trgt_x, trgt_y, diagonal, max_iterations, char) $game_temp.making_path = true path = [] return path if !char.passable? (trgt_x, trgt_y) max_elements = width*height + 2 openx = Table.new (max_elements) openy = Table.new (max_elements) @open_nodes = Table.new (max_elements) @total_cost = Table.new (max_elements) heuristic = Table.new (max_elements) step_cost = Table.new (width, height) parent_x = Table.new (width, height) parent_y = Table.new (width, height) actual_list = Table.new (width, height) new_openid = 1 @open_nodes[1] = 1 openx[1] = src_x openy[1] = src_y dist = [(trgt_x - src_x).abs, (trgt_y - src_y).abs] heuristic[1] = diagonal ? (dist.max*14) + (dist.min*10) : (dist[0] + dist[1])*10 @total_cost[1] = heuristic[1] actual_list[src_x, src_y] = 1 @listsize = 1 count = 0 loop do break if actual_list[trgt_x, trgt_y] != 0 count += 1 Graphics.update if count % 500 == 0 return path if count == max_iterations return path if @listsize == 0 node = @open_nodes[1] parent_xval, parent_yval = openx[node], openy[node] actual_list[parent_xval, parent_yval] = 2 removefrom_binaryheap for i in 0...8 break if i > 3 && !diagonal x, y = case i when 0 then [parent_xval, parent_yval - 1] when 1 then [parent_xval, parent_yval + 1] when 2 then [parent_xval - 1, parent_yval] when 3 then [parent_xval + 1, parent_yval] when 4 then [parent_xval - 1, parent_yval - 1] when 5 then [parent_xval + 1, parent_yval - 1] when 6 then [parent_xval - 1, parent_yval + 1] when 7 then [parent_xval + 1, parent_yval + 1] end next if actual_list[x,y] == 2 next unless char.passable? (x, y) if i > 3 next unless case i when 4 then char.passable? (x + 1, y) || char.passable? (x, y + 1) when 5 then char.passable? (x - 1, y) || char.passable? (x, y + 1) when 6 then char.passable? (x + 1, y) || char.passable? (x, y - 1) when 7 then char.passable? (x - 1, y) || char.passable? (x, y - 1) end end plus_step_cost = ((x - parent_xval).abs + (y - parent_yval).abs) > 1 ? 14 : 10 temp_step_cost = step_cost[parent_xval, parent_yval] + plus_step_cost if actual_list[x,y] == 1 if temp_step_cost < step_cost[x, y] parent_x[x, y] = parent_xval parent_y[x, y] = parent_yval step_cost[x, y] = temp_step_cost index = 1 while index < @listsize index += 1 break if openx[@open_nodes[index]] == x && openy[@open_nodes[index]] == y end @total_cost[@open_nodes[index]] = temp_step_cost + heuristic[@open_nodes[index]] else next end else new_openid += 1 @listsize += 1 @open_nodes[@listsize] = new_openid step_cost[x, y] = temp_step_cost d = [(trgt_x - x).abs, (trgt_y - y).abs] heuristic[new_openid] = diagonal ? (d.max*14) + (d.min*10) : (d[0] + d[1])*10 @total_cost[new_openid] = temp_step_cost + heuristic[new_openid] parent_x[x, y] = parent_xval parent_y[x, y] = parent_yval openx[new_openid] = x openy[new_openid] = y index = @listsize actual_list[x, y] = 1 end while index != 1 temp_node = @open_nodes[index] if @total_cost[temp_node] <= @total_cost[@open_nodes[index / 2]] @open_nodes[index] = @open_nodes[index / 2] index /= 2 @open_nodes[index] = temp_node else break end end end end path_x, path_y = trgt_x, trgt_y while path_x != src_x || path_y != src_y prnt_x, prnt_y = parent_x[path_x, path_y], parent_y[path_x, path_y] if path_x < prnt_x code = path_y < prnt_y ? 7 : path_y > prnt_y ? 5 : 2 elsif path_x > prnt_x code = path_y < prnt_y ? 8 : path_y > prnt_y ? 6 : 3 else code = path_y < prnt_y ? 4 : 1 end path.push (RPG::MoveCommand.new (code)) path_x, path_y = prnt_x, prnt_y end $game_temp.making_path = false return path end end
class Game_Interpreter attr_reader :moving_character attr_reader :event end
class Game_Screen attr_reader :fadeout_duration, :fadein_duration end
class Game_Temp attr_accessor :move_because_of_mouse attr_accessor :mouse_controlled_object attr_accessor :no_action_event_check attr_accessor :making_path attr_accessor :ev_clicked_on alias jet6742_initialize initialize unless $@ def initialize jet6742_initialize @move_because_of_mouse = true @no_action_event_check = false @making_path = false end end
class Window_Selectable alias jet6742_update update unless $@ def update(*args) jet6742_update(*args) form_rect_array if @rect_array.nil? update_mouse if self.active && self.visible && !@rect_array.nil? end alias jet7222_top_row top_row= unless $@ def top_row=(*args) @last_cursor_move = 0 if @last_cursor_move.nil? @last_cursor_move -= 1 return if @in_rect_loop || @last_cursor_move > 0 jet7222_top_row(*args) @last_cursor_move = 10 end def form_rect_array @rect_array = [] orig_index = @index @in_rect_loop = true (0..@item_max - 1).each do |i| @index = i update_cursor rect = self.cursor_rect ix = self.x + 16 + rect.x iy = self.y + 16 + rect.y @rect_array.push(Rect.new(ix, iy, rect.width, rect.height)) end @in_rect_loop = false @index = orig_index update end def update_mouse f = Mouse.scroll if !f.nil? if f[2] < 0 if contents.height > self.height && self.oy - contents.height < -self.height + 32 self.top_row = self.top_row + 1 end else self.top_row = self.top_row - 1 if contents.height > self.height end end original_index = @index fake_index = -2 for rect in @rect_array if Mouse.area?(rect.x - self.ox, rect.y - self.oy, rect.width, rect.height) fake_index = @rect_array.index(rect) break end end @index = fake_index == -2 ? original_index : fake_index update_cursor end end
class Window_NameInput < Window_Base alias wor_winnam_upd_mouse update unless $@ def update wor_winnam_upd_mouse if self.active and self.visible (0..TABLE[@mode].size - 1).each do |i| irect = item_rect(i) irx = self.x + 16 + irect.x - self.ox iry = self.y + 16 + irect.y - self.oy @index = i if Mouse.area?(irx, iry, irect.width, irect.height) end end end end
class Window_PartyCommand < Window_Command def update_mouse (0..@item_max - 1).each do |i| irect = item_rect(i) irx = self.viewport.ox + 16 + irect.x - self.ox iry = 288 + 16 + irect.y - self.oy self.index = i if Mouse.area?(irx, iry, irect.width, irect.height) end end end
class Window_ActorCommand < Window_Command def update_mouse (0..@item_max - 1).each do |i| irect = item_rect(i) irx = self.viewport.ox + 288 + 16 + irect.x iry = 288 + 16 + irect.y self.index = i if Mouse.area?(irx, iry, irect.width, irect.height) end end end
class Window_Message < Window_Selectable def update_mouse (0..@item_max - 1).each do |i| irect = item_rect(i) irx = self.x + 16 + irect.x - self.ox iry = self.y + 16 + irect.y - self.oy + ($game_message.choice_start * WLH) self.index = i if Mouse.area?(irx, iry, irect.width, irect.height) end end end
class Window_ShopSell def refresh super form_rect_array end end
class Scene_File < Scene_Base alias wor_scefil_upd_mouse update unless $@ def update (0..@item_max - 1).each do |i| ix = @savefile_windows[i].x iy = @savefile_windows[i].y iw = @savefile_windows[i].width ih = @savefile_windows[i].height if Mouse.area?(ix, iy, iw, ih) @savefile_windows[@index].selected = false @savefile_windows[i].selected = true @index = i end end wor_scefil_upd_mouse end end
class Window_EventPopUp < Window_Base def initialize(x, y, width, height, text) super(x, y, width, height) self.opacity = 0 @text = text refresh end def refresh self.contents.clear self.contents.draw_text(0, 0, self.width, 24, @text) end end
class Game_Event attr_accessor :popup_window attr_reader :interpreter, :page def check_for_comment(regexp) return false if @list.nil? for item in @list if item.code == 108 or item.code == 408 if !item.parameters[0][regexp].nil? return $1.nil? ? true : $1 end end end return false end def through return true if check_for_comment(/MOUSE THROUGH/i) && $game_temp.making_path return @through end end
class Scene_Map alias jet6742_update update unless $@ def update if !$game_message.visible update_popup_windows update_mouse_left_click update_mouse_right_click end update_mouse_change jet6742_update end alias jet7811_terminate terminate unless $@ def terminate for event in $game_map.events.values next if event.popup_window.nil? event.popup_window.dispose unless event.popup_window.disposed? event.popup_window = nil end $cursor.create_cursor(JetMouse::CURSOR_PICTURE) if ![JetMouse::CURSOR_PICTURE, JetMouse::ICON_INDEX].include?($cursor.current_cursor) $cursor.opacity = 0 jet7811_terminate $cursor.opacity = 255 unless $game_switches[JetMouse::TURN_MOUSE_OFF_SWITCH] end alias jet8887_update_transfer_player update_transfer_player unless $@ def update_transfer_player if $game_player.transfer? $cursor.create_cursor(JetMouse::CURSOR_PICTURE) if ![JetMouse::CURSOR_PICTURE, JetMouse::ICON_INDEX].include?($cursor.current_cursor) end jet8887_update_transfer_player end def update_popup_windows for event in $game_map.events.values if Mouse.true_grid == [event.x, event.y] f = event.check_for_comment(/MOUSE TEXT (.+)/i) if f != false q = Bitmap.new(1, 1) size = q.text_size(f) x = event.screen_x - 16 - size.width / 2 y = event.screen_y - 52 - size.height / 2 if event.popup_window != nil event.popup_window.dispose event.popup_window = nil end event.popup_window = Window_EventPopUp.new(x, y, size.width + 34, size.height + 34, f) q.dispose q = nil end else if event.popup_window != nil event.popup_window.dispose event.popup_window = nil end end end end def update_mouse_change return if $game_switches[JetMouse::TURN_MOUSE_OFF_SWITCH] if $game_message.visible || $game_map.screen.brightness == 0 || $game_map.screen.fadein_duration != 0 || $game_map.screen.fadeout_duration != 0 $cursor.create_cursor(JetMouse::CURSOR_PICTURE) if ![JetMouse::CURSOR_PICTURE, JetMouse::ICON_INDEX].include?($cursor.current_cursor) return end for event in $game_map.events_xy(*Mouse.true_grid) f = event.check_for_comment(/MOUSE PIC (.+)/i) if f != false if f.to_i != 0 $cursor.change_cursor(f.to_i) unless $cursor.current_cursor == f.to_i else $cursor.change_cursor(f) unless $cursor.current_cursor == f end did_change = true end break if did_change end $cursor.create_cursor(JetMouse::CURSOR_PICTURE) if did_change.nil? && ![JetMouse::CURSOR_PICTURE, JetMouse::ICON_INDEX].include?($cursor.current_cursor) end
def parallel_move for event in $game_map.events.values next unless event.trigger == 4 next unless !event.interpreter.nil? && event.interpreter.running? if !event.interpreter.moving_character.nil? && event.interpreter.moving_character.move_route_forcing return true end end return false end def do_closest_path_check(ev) se = $game_temp.mouse_controlled_object sx = se.x - ev.x sy = se.y - ev.y if sx != 0 or sy != 0 if sx.abs >= sy.abs if sx >= 0 if $game_map.passable?(ev.x + 1, ev.y) return [ev.x + 1, ev.y] unless $game_map.find_path(se.x, se.y, ev.x + 1, ev.y, false, 0, se).empty? end if sy >= 0 if $game_map.passable?(ev.x, ev.y + 1) return [ev.x, ev.y + 1] unless $game_map.find_path(se.x, se.y, ev.x, ev.y + 1, false, 0, se).empty? end else if $game_map.passable?(ev.x, ev.y - 1) return [ev.x, ev.y - 1] unless $game_map.find_path(se.x, se.y, ev.x, ev.y - 1, false, 0, se).empty? end end if $game_map.passable?(ev.x - 1, ev.y) return [ev.x - 1, ev.y] unless $game_map.find_path(se.x, se.y, ev.x - 1, ev.y, false, 0, se).empty? end if sy < 0 if $game_map.passable?(ev.x, ev.y + 1) return [ev.x, ev.y + 1] unless $game_map.find_path(se.x, se.y, ev.x, ev.y + 1, false, 0, se).empty? end else if $game_map.passable?(ev.x, ev.y - 1) return [ev.x, ev.y - 1] unless $game_map.find_path(se.x, se.y, ev.x, ev.y - 1, false, 0, se).empty? end end elsif sx < 0 if $game_map.passable?(ev.x - 1, ev.y) return [ev.x - 1, ev.y] unless $game_map.find_path(se.x, se.y, ev.x - 1, ev.y, false, 0, se).empty? end if sy >= 0 if $game_map.passable?(ev.x, ev.y + 1) return [ev.x, ev.y + 1] unless $game_map.find_path(se.x, se.y, ev.x, ev.y + 1, false, 0, se).empty? end else if $game_map.passable?(ev.x, ev.y - 1) return [ev.x, ev.y - 1] unless $game_map.find_path(se.x, se.y, ev.x, ev.y - 1, false, 0, se).empty? end end if $game_map.passable?(ev.x + 1, ev.y) return [ev.x + 1, ev.y] unless $game_map.find_path(se.x, se.y, ev.x + 1, ev.y, false, 0, se).empty? end if sy < 0 if $game_map.passable?(ev.x, ev.y + 1) return [ev.x, ev.y + 1] unless $game_map.find_path(se.x, se.y, ev.x, ev.y + 1, false, 0, se).empty? end else if $game_map.passable?(ev.x, ev.y - 1) return [ev.x, ev.y - 1] unless $game_map.find_path(se.x, se.y, ev.x, ev.y - 1, false, 0, se).empty? end end end else if sy > 0 if $game_map.passable?(ev.x, ev.y + 1) return [ev.x, ev.y + 1] unless $game_map.find_path(se.x, se.y, ev.x, ev.y + 1, false, 0, se).empty? end if sx >= 0 if $game_map.passable?(ev.x + 1, ev.y) return [ev.x + 1, ev.y] unless $game_map.find_path(se.x, se.y, ev.x + 1, ev.y, false, 0, se).empty? end else if $game_map.passable?(ev.x - 1, ev.y) return [ev.x - 1, ev.y] unless $game_map.find_path(se.x, se.y, ev.x - 1, ev.y, false, 0, se).empty? end end if $game_map.passable?(ev.x, ev.y - 1) return [ev.x, ev.y - 1] unless $game_map.find_path(se.x, se.y, ev.x, ev.y - 1, false, 0, se).empty? end if sx < 0 if $game_map.passable?(ev.x + 1, ev.y) return [ev.x + 1, ev.y] unless $game_map.find_path(se.x, se.y, ev.x + 1, ev.y, false, 0, se).empty? end else if $game_map.passable?(ev.x - 1, ev.y) return [ev.x - 1, ev.y] unless $game_map.find_path(se.x, se.y, ev.x - 1, ev.y, false, 0, se).empty? end end elsif sy < 0 if $game_map.passable?(ev.x, ev.y - 1) return [ev.x, ev.y - 1] unless $game_map.find_path(se.x, se.y, ev.x, ev.y - 1, false, 0, se).empty? end if sx >= 0 if $game_map.passable?(ev.x + 1, ev.y) return [ev.x + 1, ev.y] unless $game_map.find_path(se.x, se.y, ev.x + 1, ev.y, false, 0, se).empty? end else if $game_map.passable?(ev.x - 1, ev.y) return [ev.x - 1, ev.y] unless $game_map.find_path(se.x, se.y, ev.x - 1, ev.y, false, 0, se).empty? end end if $game_map.passable?(ev.x, ev.y + 1) return [ev.x, ev.y + 1] unless $game_map.find_path(se.x, se.y, ev.x, ev.y + 1, false, 0, se).empty? end if sx < 0 if $game_map.passable?(ev.x + 1, ev.y) return [ev.x + 1, ev.y] unless $game_map.find_path(se.x, se.y, ev.x + 1, ev.y, false, 0, se).empty? end else if $game_map.passable?(ev.x - 1, ev.y) return [ev.x - 1, ev.y] unless $game_map.find_path(se.x, se.y, ev.x - 1, ev.y, false, 0, se).empty? end end end end end return false end
def update_mouse_left_click return if $game_map.interpreter.running? or parallel_move or $game_map.screen.brightness == 0 || $game_map.screen.fadein_duration != 0 || $game_map.screen.fadeout_duration != 0 if Mouse.click?(1) for event in $game_map.events_xy(*Mouse.true_grid) if event.check_for_comment(/MOUSE CLICK/i) event.start event_activated = true elsif ($game_temp.mouse_controlled_object.x - event.x).abs + ($game_temp.mouse_controlled_object.y - event.y).abs == 1 && ([0].include?(event.trigger) or [1, 2].include?(event.trigger) && ![0, 2].include?(event.priority_type))&& !(event.list.nil? or event.list.size == 1) if (event.y - $game_temp.mouse_controlled_object.y).abs > (event.x - $game_temp.mouse_controlled_object.x).abs if event.y - $game_temp.mouse_controlled_object.y > 0 $game_temp.mouse_controlled_object.turn_down else $game_temp.mouse_controlled_object.turn_up end else if event.x - $game_temp.mouse_controlled_object.x > 0 $game_temp.mouse_controlled_object.turn_right else $game_temp.mouse_controlled_object.turn_left end end $game_temp.ev_clicked_on = nil event.start event_activated = true elsif [0, 2].include?(event.priority_type) $game_temp.ev_clicked_on = nil $game_temp.move_because_of_mouse = true $game_temp.mouse_controlled_object.force_path(Mouse.true_grid[0], Mouse.true_grid[1], JetMouse::DO_8DIR_WALKING) if JetMouse::ALLOW_MOUSE_MOVEMENT event_activated = true elsif event_activated.nil? for i in ["UP", "DOWN", "RIGHT", "LEFT"] if event.check_for_comment(/MOUSE MOVE #{i}/i) event_activated = true case i when "UP" $game_temp.ev_clicked_on = nil $game_temp.no_action_event_check = true $game_temp.mouse_controlled_object.force_path(event.x, event.y - 1, JetMouse::DO_8DIR_WALKING) if JetMouse::ALLOW_MOUSE_MOVEMENT when "DOWN" $game_temp.ev_clicked_on = nil $game_temp.no_action_event_check = true $game_temp.mouse_controlled_object.force_path(event.x, event.y + 1, JetMouse::DO_8DIR_WALKING) if JetMouse::ALLOW_MOUSE_MOVEMENT when "LEFT" $game_temp.ev_clicked_on = nil $game_temp.no_action_event_check = true $game_temp.mouse_controlled_object.force_path(event.x - 1, event.y, JetMouse::DO_8DIR_WALKING) if JetMouse::ALLOW_MOUSE_MOVEMENT when "RIGHT" $game_temp.ev_clicked_on = nil $game_temp.no_action_event_check = true $game_temp.mouse_controlled_object.force_path(event.x + 1, event.y, JetMouse::DO_8DIR_WALKING) if JetMouse::ALLOW_MOUSE_MOVEMENT end end end if event_activated.nil? x = do_closest_path_check(event) if x != false && !event.page.nil? && event.conditions_met?(event.page) $game_temp.ev_clicked_on = nil $game_temp.no_action_event_check = true $game_temp.move_because_of_mouse = true $game_temp.mouse_controlled_object.force_path(x[0], x[1], JetMouse::DO_8DIR_WALKING) if JetMouse::ALLOW_MOUSE_MOVEMENT event_activated = true $game_temp.ev_clicked_on = event end end end end if event_activated.nil? && JetMouse::ALLOW_MOUSE_MOVEMENT $game_temp.no_action_event_check = true if $game_temp.mouse_controlled_object.map_passable?(*Mouse.true_grid) $game_temp.ev_clicked_on = nil $game_temp.move_because_of_mouse = true $game_temp.mouse_controlled_object.force_path(Mouse.true_grid[0], Mouse.true_grid[1], JetMouse::DO_8DIR_WALKING) end end end end def update_mouse_right_click if $game_map.interpreter.running? or parallel_move or $game_map.screen.brightness == 0 || $game_map.screen.fadein_duration != 0 || $game_map.screen.fadeout_duration != 0 Mouse.update return end if Mouse.click?(2) if Mouse.true_grid == [$game_player.x, $game_player.y] changed_mouse_ctrl = true if $game_temp.mouse_controlled_object != $game_player $game_temp.mouse_controlled_object = $game_player end for event in $game_map.events_xy(*Mouse.true_grid) if event.check_for_comment(/MOUSE CONTROL/i) changed_mouse_ctrl = true if $game_temp.mouse_controlled_object != event $game_temp.mouse_controlled_object = event end end end Mouse.update if changed_mouse_ctrl end end
class Game_Player alias jet6753_update update unless $@ def update jet6753_update if $game_temp.mouse_controlled_object.nil? $game_temp.mouse_controlled_object = $game_player end end alias jet1029_dash? dash? unless $@ def dash?(*args, &block) q = @move_route_forcing @move_route_forcing = false if $game_temp.move_because_of_mouse f = jet1029_dash?(*args, &block) @move_route_forcing = q return f end alias jet1029_increase_steps increase_steps unless $@ def increase_steps(*args, &block) q = @move_route_forcing @move_route_forcing = false if $game_temp.move_because_of_mouse f = jet1029_increase_steps(*args, &block) @move_route_forcing = q return f end alias jet7583_check_action_event check_action_event unless $@ def check_action_event if $game_temp.no_action_event_check $game_temp.no_action_event_check = false return false end jet7583_check_action_event end alias jet5742_force_move_route force_move_route unless $@ def force_move_route(*args) @jet_did_move = true jet5742_force_move_route(*args) end def pre_ev_check result = false for event in $game_map.events_xy(@x, @y) if [1, 2].include?(event.trigger) and event.priority_type != 1 result = true if event.check_for_comment(/MOUSE NOSTOP/i) return false end end end front_x = $game_map.x_with_direction(@x, @direction) front_y = $game_map.y_with_direction(@y, @direction) for event in $game_map.events_xy(front_x, front_y) if [1, 2].include?(event.trigger) and event.priority_type == 1 result = true if event.check_for_comment(/MOUSE NOSTOP/i) return false end end end if result == false and $game_map.counter?(front_x, front_y) front_x = $game_map.x_with_direction(front_x, @direction) front_y = $game_map.y_with_direction(front_y, @direction) for event in $game_map.events_xy(front_x, front_y) if [1, 2].include?(event.trigger) and event.priority_type == 1 result = true if event.check_for_comment(/MOUSE NOSTOP/i) return false end end end end return result end def jet_mouse_event_checking result = false for event in $game_map.events_xy(@x, @y) if [1, 2].include?(event.trigger) and event.priority_type != 1 result = true if event.check_for_comment(/MOUSE NOSTOP/i) event.start unless $game_map.interpreter.running? return false end end end front_x = $game_map.x_with_direction(@x, @direction) front_y = $game_map.y_with_direction(@y, @direction) for event in $game_map.events_xy(front_x, front_y) if [1, 2].include?(event.trigger) and event.priority_type == 1 event.start unless $game_map.interpreter.running? result = true if event.check_for_comment(/MOUSE NOSTOP/i) return false end end end if result == false and $game_map.counter?(front_x, front_y) front_x = $game_map.x_with_direction(front_x, @direction) front_y = $game_map.y_with_direction(front_y, @direction) for event in $game_map.events_xy(front_x, front_y) if [1, 2].include?(event.trigger) and event.priority_type == 1 event.start unless $game_map.interpreter.running? result = true if event.check_for_comment(/MOUSE NOSTOP/i) return false end end end end return result end alias jet9999_move_type_custom move_type_custom unless $@ def move_type_custom(*args) if $game_temp.move_because_of_mouse && Mouse.click?(1) @jet_did_move = false end update_encounter if stopping? && $game_temp.move_because_of_mouse if $game_temp.next_scene == "battle" move_route = RPG::MoveRoute.new move_route.list = [RPG::MoveCommand.new(0)] move_route.repeat = false @move_route = move_route @move_route_index = 0 end if Input.trigger?(Input::B) && $game_temp.move_because_of_mouse Sound.play_decision $scene = Scene_Menu.new Input.update end do_stop = stopping? jet9999_move_type_custom(*args) if (do_stop && pre_ev_check) was_true = true end if (@move_route.nil? or @move_route.list[@move_route_index].code == 0) || $game_temp.move_because_of_mouse && was_true && do_stop || @move_failed if stopping? and @x * 256 == @real_x || @y * 256 == @real_y if $game_temp.ev_clicked_on != nil && ($game_temp.ev_clicked_on.y - self.y).abs + ($game_temp.ev_clicked_on.x - self.x).abs == 1 if ($game_temp.ev_clicked_on.y - self.y).abs > ($game_temp.ev_clicked_on.x - self.x).abs if $game_temp.ev_clicked_on.y - self.y > 0 self.turn_down else self.turn_up end else if $game_temp.ev_clicked_on.x - self.x > 0 self.turn_right else self.turn_left end end $game_temp.move_because_of_mouse = false $game_temp.ev_clicked_on.start unless $game_map.interpreter.running? || $game_temp.ev_clicked_on.list.nil? $game_temp.ev_clicked_on = nil end end $game_temp.move_because_of_mouse = false end did_event = (do_stop && $game_temp.move_because_of_mouse) ? jet_mouse_event_checking : false if ($game_temp.move_because_of_mouse or was_true) && was_true && !@jet_did_move move_route = RPG::MoveRoute.new move_route.list = [RPG::MoveCommand.new(0)] move_route.repeat = false @move_route = move_route @move_route_index = 0 end end end
Kalau untuk XP gk ada kayaknya |
| | | | Re: oits!! EDUGAME!! |
---|
Sponsored content
| | | | Halaman 1 dari 1 | |
| Permissions in this forum: | Anda tidak dapat menjawab topik
| |
| |
Latest 10 Topics | [Web Novel] Gloria Infidelis 2016-11-17, 21:27 by LightNightKnight
[Announcement] Forum baru untuk RMID 2016-08-25, 16:39 by TheoAllen
Where I'm Wrong ? 2016-07-24, 16:10 by ReydVires
flakeheartnet's Resources part III 2016-07-08, 14:30 by flakeheartnet
Keira's Art Warehouse 2016-06-28, 19:27 by KeiraBlaze
Theo Core Time System + Bingung 2016-06-27, 16:24 by Lockin
Error Script, Maybe ? 2016-06-27, 16:20 by Lockin
Nusaimoe @ RMID Lounge 2016-06-21, 05:02 by Jihad Bagas
Call Random Battle 2016-06-15, 17:04 by Lockin
Flakeheartnet Resources Part II [come back gift] 2016-06-07, 15:51 by flakeheartnet
|
Statistics
|
Members: [ 4947 ]
Topics: [ 8258 ]
Posts: [ 112606 ]
Newest member: [ https://rmid.forumotion.net/u4968 ]
|
|
|
|
|
|