Startseite »
Forum »
RPG-Studio.org - Community »
Community-Forum »
Öffentliches Archiv »
RGSS »
Kampfsysteme »
Radius-Skript V1.0
Mit diesem Skript kann man einen Sichtradius für Events erstellen. So könnte man z.B. ein Schleichspiel erstellen oder ein Event erst aktivieren lassen, wenn es im Sichtbereich ist.
Skripte:
Animations "Entruckler"
Console
Drunken Mode
Eventskript Debugger
Flat-Events
Impassable Script
Item Shortcut
MSS: Monsta's Shoot System (Neu)
Radius Skript
Random Event Teleport
RMXP Leistungstest
Single Rotate
Split Screen (Beta)
Tutorials:
'alias' Bug beheben
Eigenes RTP
Standard KS komplett Übersetzen
RGSS: Eigener HUD
Programme:
Maker Exchange [ MEX ]
RMXP Skript Explorer
RPGXP Code Converter
Spiele:
[Minispiel] Stampfi V1.5 (Gold)
[Minispiel] Mastermind XP
[Humor] Verfressene Klone
______________________________
[Zukunft] Evil Science
zum Lesen den Text mit der Maus markieren
es gibt sowas ähnliches von Near Fantastica auf http://www.rmxp.org
vllt kannst du ja auch die sound funktion übernehmen.
es ist auch eine version im SDK test bed.
vllt kannst du ja auch die sound funktion übernehmen.
es ist auch eine version im SDK test bed.
Realität ist nur eine subjektive Wahrnehmungsstörung.
Alles ist wahr, wenn man für wahr einen bestimmten Wert annimmt.
Alles ist wahr, wenn man für wahr einen bestimmten Wert annimmt.
es gibt sowas ähnliches von Near Fantastica auf http://www.rmxp.org
vllt kannst du ja auch die sound funktion übernehmen.
es ist auch eine version im SDK test bed.
Meinst du etwa das View Range Skript? Naja, also das ist wirklich nur ansatzweise ähnlich... Außer du kannst mir sagen wie man mit diesem Skript einen Sichtkegel und keinen Kreis als Sichtfeld macht... Zusatzfunktionen wie "All" fehlen ebenfalls.
Aber warum sollte ich diese Soundfunktion übernehmen? Dafür ist doch das Skript von Near Fantastica bestens geeignet, da sich das Skript um einen Kreis handelt.
OK, vielleicht ist der Skriptname nicht ganz so günstig gewählt, da es sich nicht um einen Kreis handelt... Aber wenn du dir wenigstens mal die Bilder angeschaut hättest, wüsstest du das die Skripte nicht so ähnlich sind...
Mfg Monsta
Skripte:
Animations "Entruckler"
Console
Drunken Mode
Eventskript Debugger
Flat-Events
Impassable Script
Item Shortcut
MSS: Monsta's Shoot System (Neu)
Radius Skript
Random Event Teleport
RMXP Leistungstest
Single Rotate
Split Screen (Beta)
Tutorials:
'alias' Bug beheben
Eigenes RTP
Standard KS komplett Übersetzen
RGSS: Eigener HUD
Programme:
Maker Exchange [ MEX ]
RMXP Skript Explorer
RPGXP Code Converter
Spiele:
[Minispiel] Stampfi V1.5 (Gold)
[Minispiel] Mastermind XP
[Humor] Verfressene Klone
______________________________
[Zukunft] Evil Science
zum Lesen den Text mit der Maus markieren
sicht kegel ging auch mit einer version.
Fantastica macht das über event richtung.
es gehen auch Viertel kreise als sicktkegel.
ich habe 4 verschiedene Versionen gesehn.
wär nicht schlecht wenn du was übernehmen könntest.
Fantastica macht das über event richtung.
es gehen auch Viertel kreise als sicktkegel.
ich habe 4 verschiedene Versionen gesehn.
wär nicht schlecht wenn du was übernehmen könntest.
Realität ist nur eine subjektive Wahrnehmungsstörung.
Alles ist wahr, wenn man für wahr einen bestimmten Wert annimmt.
Alles ist wahr, wenn man für wahr einen bestimmten Wert annimmt.
irgendwas mit Nil:Til enigeer
Öhm ja... Noch genauer ging es nicht? Also ich weiß jetzt genauso wenig wie vorher.
1. Poste die komplette Fehlermeldung mit Zeilenangabe
2. Stürzt das Spiel sofort ab seit dem du das Script eingefügt hast oder erst seit dem du den entsprechenden Eventscript Code eingefügt hast? Wenn poste mal den Eventscript Code.
Skripte:
Animations "Entruckler"
Console
Drunken Mode
Eventskript Debugger
Flat-Events
Impassable Script
Item Shortcut
MSS: Monsta's Shoot System (Neu)
Radius Skript
Random Event Teleport
RMXP Leistungstest
Single Rotate
Split Screen (Beta)
Tutorials:
'alias' Bug beheben
Eigenes RTP
Standard KS komplett Übersetzen
RGSS: Eigener HUD
Programme:
Maker Exchange [ MEX ]
RMXP Skript Explorer
RPGXP Code Converter
Spiele:
[Minispiel] Stampfi V1.5 (Gold)
[Minispiel] Mastermind XP
[Humor] Verfressene Klone
______________________________
[Zukunft] Evil Science
zum Lesen den Text mit der Maus markieren
Okay
Also da ich mich mit kordinaten und so net auskenne hab ich einfach mal die figur in deiner demo kopiert die sagt: Ich sehe dich!
Und jetzt kommt diese fehlermeldung:
komisch jetzt funktionierst...
falls der fehler nochmal auf trten sollte werde ich aufjedenfall bescheid geben.
Ich würde nur gerne wissen, wie ich das mit den zahlen mache...also den bereich...
Also da ich mich mit kordinaten und so net auskenne hab ich einfach mal die figur in deiner demo kopiert die sagt: Ich sehe dich!
Und jetzt kommt diese fehlermeldung:
komisch jetzt funktionierst...
falls der fehler nochmal auf trten sollte werde ich aufjedenfall bescheid geben.
Ich würde nur gerne wissen, wie ich das mit den zahlen mache...also den bereich...
Sry für den Doppelpost...
Wollte nur sagen, wenn man die beiden Scripts irgendwie zu einem Script machen könnte, würde jeder, der sich irgendwie daran beteiligt einen Creditseintrag bekommen, natürlich auch die on dem Standartscripts...
Ich kann selber nnicht wirklich gut scripten, vielleicht bekommt e ja einer von euch hin.
Wollte nur sagen, wenn man die beiden Scripts irgendwie zu einem Script machen könnte, würde jeder, der sich irgendwie daran beteiligt einen Creditseintrag bekommen, natürlich auch die on dem Standartscripts...
Ich kann selber nnicht wirklich gut scripten, vielleicht bekommt e ja einer von euch hin.
Die 2 Skripts kann man nicht vereinen, da sie unterschiedlich funktionieren.
Das Radius-Skript ist auch viel Komplizierter.
Aber wer auch immer Lust hat kann ja mal n neues Skript versuchen, dass beide vereint. Mein halbherziger Versuch von gerade eben hat keine Früchte getragen, das liegt wohl daran dass ich noch Anfänger bin und Monsta Profi. Ich hab es mir bei meinem Skript(achja: ich bin der Autor von Hide-and-Seek, nur falls einer den Beitrag ließt und sich fragt was ich meine) sehr einfach gemacht und einfach nach dem Prinzip vorgegangen "Wenn das suchende Event ein anderes Event und den Spieler im Blickfeld hat, und das andere Event näher dran ist als der Spieler, wird der Spieler nicht gesehen, da das andere Event logischerweise die Sicht blockiert.". Aber hier kann man dieses Prinzip nicht anwenden, dass würde nämlich 1 zu 1 übertragen bedeuten, dass das sehende Event hier nur ein einziges Hide-Event in seinem Sichtradius braucht, um sonst nichts mehr zu sehen.
Da hier aber ein Sichtkegel vorliegt, ist es möglich, mehrere Sachen auf einmal zu sehen. Und auch noch verschieden viele Sachen, kommt drauf an wie weit sie entfernt sind. Man müsste also für jedes Feld, dass im Sichtkegel liegt, eine Abfrage machen, ob dort ein Hide-Event draufsteht, und wenn ja, muss man die entsprechenden Felder die sich von da an im Sichtschatten befinden blockieren.
Mir wäre das zu viel Arbeit, aber vielleicht gibt es noch weitere Methoden von denen ich noch nichts weis...
Das Radius-Skript ist auch viel Komplizierter.
Aber wer auch immer Lust hat kann ja mal n neues Skript versuchen, dass beide vereint. Mein halbherziger Versuch von gerade eben hat keine Früchte getragen, das liegt wohl daran dass ich noch Anfänger bin und Monsta Profi. Ich hab es mir bei meinem Skript(achja: ich bin der Autor von Hide-and-Seek, nur falls einer den Beitrag ließt und sich fragt was ich meine) sehr einfach gemacht und einfach nach dem Prinzip vorgegangen "Wenn das suchende Event ein anderes Event und den Spieler im Blickfeld hat, und das andere Event näher dran ist als der Spieler, wird der Spieler nicht gesehen, da das andere Event logischerweise die Sicht blockiert.". Aber hier kann man dieses Prinzip nicht anwenden, dass würde nämlich 1 zu 1 übertragen bedeuten, dass das sehende Event hier nur ein einziges Hide-Event in seinem Sichtradius braucht, um sonst nichts mehr zu sehen.
Da hier aber ein Sichtkegel vorliegt, ist es möglich, mehrere Sachen auf einmal zu sehen. Und auch noch verschieden viele Sachen, kommt drauf an wie weit sie entfernt sind. Man müsste also für jedes Feld, dass im Sichtkegel liegt, eine Abfrage machen, ob dort ein Hide-Event draufsteht, und wenn ja, muss man die entsprechenden Felder die sich von da an im Sichtschatten befinden blockieren.
Mir wäre das zu viel Arbeit, aber vielleicht gibt es noch weitere Methoden von denen ich noch nichts weis...
Man kann nicht einfach 2 Scripts zusammenbauen. Erstrecht wenn sie so unterschiedlich aufgebaut sind wie diese 2.
Bei dem Radius Script sind Hindernisse doch ein größeres Problem als ich zuerst dachte. (Deswegen ist hier auch ziemlich genau ein Jahr nix passiert
)
Hab mich gerade noch mal dran versucht. Für gerade Linien wie beim Hide & Seek isses kein Problem.
Solche Direkten Konstruktionen würden gehen:


Aber bei solchen Sachen wäre die Methode mehr als Fehlerhaft:

Hab das ganze jetzt nach Terrain Tag 7 gemacht. Falls jemand es nur für das direkte braucht, kann ich das ja hier ma posten:
[button=Buggy Version 1.1 mit Terrain Hindernis]
[/button]
Habs jetz nur mit Terrain Tag gemacht, weil bei Events müsste man erst noch irgendwie die Events gekennzeichnet werden, die Hindernisse sind und welche gesehen werden sollen, z.B. durch den Namen. Dazu hat ich jetz aber keine Lust ^^
(Zumindest bräuchte man dass für die "All" Funktion. Wenn man nur nach einem einzelnen Event schauen möchte, könnte man einfach alles als Hindernis sehen was nicht das gesuchte Event ist)
~Monsta
Bei dem Radius Script sind Hindernisse doch ein größeres Problem als ich zuerst dachte. (Deswegen ist hier auch ziemlich genau ein Jahr nix passiert
)Hab mich gerade noch mal dran versucht. Für gerade Linien wie beim Hide & Seek isses kein Problem.
Solche Direkten Konstruktionen würden gehen:
Aber bei solchen Sachen wäre die Methode mehr als Fehlerhaft:
Hab das ganze jetzt nach Terrain Tag 7 gemacht. Falls jemand es nur für das direkte braucht, kann ich das ja hier ma posten:
[button=Buggy Version 1.1 mit Terrain Hindernis]
|
|
Ruby Quellcode |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 |
#==========Radius Skript=========# #============by Monsta===========# #=====Version 1.1===18.5.2008====# # Aufrufen # # in_radius?(id_sehendes_event,id_gesehendes_event,sichtweite,sichtform,testfenster_anzeigen) # Der Player hat die ID 0, kann aber auch mit "Player" angegeben werden # Mit "All" beim gesehenden Event, bekommt man einen Array mit allen gesehenden Events class Interpreter Radius = [ [[],[0],[-1,0,1],[-1,0,1],[-2,-1,0,1,2],[-2,-1,0,1,2],[-3,-2,-1,0,1,2,3],[-3,-2,-1,0,1,2,3]], # Sicktkegel 1 [[-1,0,1],[-2,-1,0,1,2],[-3,-2,-1,0,1,2,3],[-4,-3,-2,-1,0,1,2,3,4],[-5,-4,-3,-2,-1,0,1,2,3,4,5]] , [[],[0],[0],[0],[0],[0],[0],[0],[0]]] # Sicktkegel 2 Radius_Terrain = 7 def in_radius?(id1,id2,radius=7,radius_form=0,windows=false) @all = false if windows == true @radius_windows = {} delete_radius_windows end if (id1.is_a?(String) and id1.downcase == 'player') or id1 == 0 char1 = $game_player else char1 = $game_map.events[id1] end if id2.is_a?(String) if id2.downcase == 'player' char2 = $game_player elsif id2.downcase == 'all' @all = [] end else char2 = id2 == 0 ? $game_player : $game_map.events[id2] end if radius >= Radius[radius_form].size print ("Fehler im Skript: Radius Skript\n\nDer Radius ist größer als die Radiusangabe") return false end hindernis_line = [] for i in 0..radius for r in Radius[radius_form][i] case char1.direction when 2 # Runter x = char1.x + r y = char1.y + i next if hindernis_line.include?(x) when 4 # Links x = char1.x - i y = char1.y - r next if hindernis_line.include?(y) when 6 # Rechts x = char1.x + i y = char1.y + r next if hindernis_line.include?(y) when 8 # Hoch x = char1.x + r y = char1.y - i next if hindernis_line.include?(x) end if $game_map.terrain_tag(x,y) == Radius_Terrain hindernis_line << ([2,8].include?(char1.direction) ? x : y) next end @radius_windows["#{i},#{r}"] = Radius_Color.new(x,y) if $DEBUG and windows id = $game_map.id_coordinates(x,y) if @all == false return true if id == char2.id else @all << id if id != -1 end end end if @all == false or @all == [] return false else return @all end end def delete_radius_windows @radius_windows.each_value{|w|w.dispose if w != nil and w.disposed? == false} if @radius_windows != nil end end class Game_Map def id_coordinates(x=0,y=0) @events.each {|e|return e[1].id if e[1].x == x and e[1].y == y} return 0 if $game_player.x == x and $game_player.y == y return -1 end end class Radius_Color < Window_Base def initialize(x,y) super(x * 32, y * 32, 20, 20) self.contents = Bitmap.new(width, height) self.opacity = 170 end end |
Habs jetz nur mit Terrain Tag gemacht, weil bei Events müsste man erst noch irgendwie die Events gekennzeichnet werden, die Hindernisse sind und welche gesehen werden sollen, z.B. durch den Namen. Dazu hat ich jetz aber keine Lust ^^
(Zumindest bräuchte man dass für die "All" Funktion. Wenn man nur nach einem einzelnen Event schauen möchte, könnte man einfach alles als Hindernis sehen was nicht das gesuchte Event ist)
~Monsta
Skripte:
Animations "Entruckler"
Console
Drunken Mode
Eventskript Debugger
Flat-Events
Impassable Script
Item Shortcut
MSS: Monsta's Shoot System (Neu)
Radius Skript
Random Event Teleport
RMXP Leistungstest
Single Rotate
Split Screen (Beta)
Tutorials:
'alias' Bug beheben
Eigenes RTP
Standard KS komplett Übersetzen
RGSS: Eigener HUD
Programme:
Maker Exchange [ MEX ]
RMXP Skript Explorer
RPGXP Code Converter
Spiele:
[Minispiel] Stampfi V1.5 (Gold)
[Minispiel] Mastermind XP
[Humor] Verfressene Klone
______________________________
[Zukunft] Evil Science
zum Lesen den Text mit der Maus markieren

