• Anmelden

1

Freitag, 1. Juni 2007, 16:51

Radius-Skript V1.0


Bild von Monsta
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.
»Monsta« hat folgende Bilder angehängt:
  • radius1.JPG
  • radius2.JPG
  • radius3.JPG
»Monsta« hat folgende Datei angehängt:
  • Radius_Skript.zip (191,36 kB - 218 mal heruntergeladen - zuletzt: 17. November 2021, 06:36)

2

Freitag, 1. Juni 2007, 18:05

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.
Realität ist nur eine subjektive Wahrnehmungsstörung.

Alles ist wahr, wenn man für wahr einen bestimmten Wert annimmt.

3

Freitag, 1. Juni 2007, 18:25

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

4

Freitag, 1. Juni 2007, 18:33

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.
Realität ist nur eine subjektive Wahrnehmungsstörung.

Alles ist wahr, wenn man für wahr einen bestimmten Wert annimmt.

XE21

Rekrut

Motto: Wer nichts trinkt der stirbt!

  • Nachricht senden

5

Mittwoch, 14. November 2007, 20:13

Mist. Wie kann man das einstellen das der "Feind" nicht durch Objekte durchsieht?

Das Skript ist wirklich gut nur nützt es mir nichts wenn er durch das Objekt durchsehen kann. HILFE!
Bild

6

Mittwoch, 14. November 2007, 20:46

RE: Radius Skript


[ub=term]Zukunft[/ub]
  • Eventuell eine Funktion um Hindernisse einzubauen, durch die man nicht durchschauen kann


Drag-On

7

Sonntag, 9. Dezember 2007, 22:42

Eigentlich ganz gut. Werde ich verwenden. Aber ist es möglich das diese Darstellung des Sichkegels auch als Schatten möglich ist, also nicht diese extrem auffälligen Kästchen.

8

Mittwoch, 2. Januar 2008, 20:43

das ding funktioniert nicht. das spiel stürzt ab, sobald ich überhaupt im spiel bin.

10

Donnerstag, 3. Januar 2008, 16:56

irgendwas mit Nil:Til enigeer

11

Donnerstag, 3. Januar 2008, 17:00

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.

12

Donnerstag, 3. Januar 2008, 17:07

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...

13

Dienstag, 13. Mai 2008, 12:26

Ich habe zu diesem Radius-Script noch eine Frage...

Wie kann man das machen, das die "Wachen" dich hinter Events nicht sehen???
Der ChrisX930 ist wieder zurück!]
Danke dir Kain^^



Kommt und spielt mit :D

14

Dienstag, 13. Mai 2008, 12:31

Das ist im moment noch nicht möglich steht oben auch das es noch geplant ist
MfG Monsterbauer
PS:Benutz doch Hide&Seek für kann im Mom zwar nur in eine Richtung des bestimmen aba frag einfach nach dann wirds vllt noch eingebaut
Spoiler: :3
hallo :böse:
zum Lesen den Text mit der Maus markieren


15

Dienstag, 13. Mai 2008, 12:38

Ok... wäre es nicht irgendwie möglich, das Rasius Script und das Hide&Seek Script zusammen zu basteln?

Für mein aktuelles Projekt ist dieses Script unabdenklich^^

(Es wird dann mal wieder einen großen CREDITS-Eintrag geben^^)
Der ChrisX930 ist wieder zurück!]
Danke dir Kain^^



Kommt und spielt mit :D

16

Dienstag, 13. Mai 2008, 12:57

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.
Der ChrisX930 ist wieder zurück!]
Danke dir Kain^^



Kommt und spielt mit :D

17

Samstag, 17. Mai 2008, 23:20

Hat denn niemand eine lösung auf meine Frage?!? :heul:
Der ChrisX930 ist wieder zurück!]
Danke dir Kain^^



Kommt und spielt mit :D

18

Sonntag, 18. Mai 2008, 19:07

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...

19

Sonntag, 18. Mai 2008, 19:40

Naja, es muss ja nur irgendwie eine Möglichkeit geben, das die "Wachen" dich hinter "Hindernissen " NICHT sehen können.

Es gibt so viele sehr Komplizierte Scripts, die man verändern kann. Dann mus das auch veränderbar sein.
Der ChrisX930 ist wieder zurück!]
Danke dir Kain^^



Kommt und spielt mit :D

20

Sonntag, 18. Mai 2008, 20:54

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 :D )

Hab mich gerade noch mal dran versucht. Für gerade Linien wie beim Hide & Seek isses kein Problem.

Solche Direkten Konstruktionen würden gehen:

Attachment 2743

Attachment 2744

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

Attachment 2745

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
[/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

Social Bookmarks