Shooter System problem
Sers,
Ich hab ein paar probs mit dem Shooter Script von Monsta. Für alle die den Link nimmer finden.. hier isser:
http://www.rmxp.de/forum/thread.php?thre…htuser=0&page=1
Erstma vornweg:
- Ich hab Munition, Restmunition, Ammopacks ( zum aufhaben ) und die Anzeige dazu eingebaut ( weile s wirklich gefehlt hat ). Man kann auch nachladen ( falls Amoo vorhanden oder Waffe nicht voll )
Zu meinem problem:
Ich will das man nicht durch mehrere Gegner auf einmal durchballern kann ( Etwas egoistisch der Monsta.. Ihm gefällts zwar das man des kann.. aber andren vielleicht ned XD ).
Bzw.:
Wenn das Event "Gegner" heißt, soll NUR das eine Event beschossen werden können ( ohne durchflug )
Wenn das Event "GegnerX" heißt, soll man durch es durch noch andere Treffen können ( wäre gut für Schleimviecher )
Zudem wäre endlich ma eine Terrainabfrage wichtig.. Also das man das terrain unter den Kugelkoordinaten abfrägt, und das dann bsp. Terrain "7" ein Hinderniss iss... Sonst bräuchte man für jede blöde Wand ein Event.
Wer mir da helfen kann.. nur raus mit der Sprache ^^ und schonmal thx im Vorraus.
Ich hab ein paar probs mit dem Shooter Script von Monsta. Für alle die den Link nimmer finden.. hier isser:
http://www.rmxp.de/forum/thread.php?thre…htuser=0&page=1
Erstma vornweg:
- Ich hab Munition, Restmunition, Ammopacks ( zum aufhaben ) und die Anzeige dazu eingebaut ( weile s wirklich gefehlt hat ). Man kann auch nachladen ( falls Amoo vorhanden oder Waffe nicht voll )
Zu meinem problem:
Ich will das man nicht durch mehrere Gegner auf einmal durchballern kann ( Etwas egoistisch der Monsta.. Ihm gefällts zwar das man des kann.. aber andren vielleicht ned XD ).
Bzw.:
Wenn das Event "Gegner" heißt, soll NUR das eine Event beschossen werden können ( ohne durchflug )
Wenn das Event "GegnerX" heißt, soll man durch es durch noch andere Treffen können ( wäre gut für Schleimviecher )
Zudem wäre endlich ma eine Terrainabfrage wichtig.. Also das man das terrain unter den Kugelkoordinaten abfrägt, und das dann bsp. Terrain "7" ein Hinderniss iss... Sonst bräuchte man für jede blöde Wand ein Event.
Wer mir da helfen kann.. nur raus mit der Sprache ^^ und schonmal thx im Vorraus.
There was a Cave,
below a Silent's Grave.
Tunnels, extending far, running wide,
going deep into the World on the other Side.
Poor little Child, that was to brave,
died painfully deep down, in the Devil's Cave.
below a Silent's Grave.
Tunnels, extending far, running wide,
going deep into the World on the other Side.
Poor little Child, that was to brave,
died painfully deep down, in the Devil's Cave.
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Chaosgod Espér« (1. Mai 2007, 13:26)
Also das mit den verschiedenen Gegnern ist garnichtmal so schwer,
das hab ich sogar hingekriegt ^^
zuerst musst du das hier (ab Zeile 43) im Skript "Schuss" :
mit diesem ersetzen :
(du könntest nach "Hindernis" auch einfach
or @event_name == "Gegner"
schreiben, dann könntest du aber auch nicht durch die Leiche schießen)
danach ersetzt du noch das in Zeile 55
durch
An den terrain_tag hindernissen arbeite ich noch,
wird aber schwierig weil in dem skript gar keine kugel
berechnet wird, sondern ob alles auf einer linie liegt
und ob was dazwischen is...
(das terrain von bestimmten koordinaten lässt sich sonst einfach mit :
$variable = $game_map.terrain_tag(X, Y)
abfragen, die variable hat dann die nummer des terrain_tags...)
aber wie gesagt, ich werds trotzdem weiterversuchen ^^
edit :: mist, das hat nen fehler!
man kann jetzt auch hindernisse treffen >.<
Behoben!
2.Problem auch gelöst :
Ersetz einfach die Komplette Trefferabfrage
(von
#===Treffer Abfrage Start===#
bis
#===Treffer Abfrage Ende===#)
mit dieser version :
also das hindernis terrain_tag is jetz das 7.
ich hoff dass das nich zu verbuggt is o.O
hoffe dass ich dir helfen konnte ^^
mfg, Nökö
das hab ich sogar hingekriegt ^^
zuerst musst du das hier (ab Zeile 43) im Skript "Schuss" :
|
|
Quellcode |
1 2 3 4 5 6 7 8 9 |
for @event in 1..$game_map.map.events.size
@event_name = $game_map.map.events[get_character(@event).id].name
if @event_name == "Hindernis"
@character = get_character(@event)
$game_variables[1100 + @hindernisse] = @character.x
$game_variables[1200 + @hindernisse] = @character.y
@hindernisse += 1
end
end |
mit diesem ersetzen :
|
|
Quellcode |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
for @event in 1..$game_map.map.events.size
@event_name = $game_map.map.events[get_character(@event).id].name
if @event_name == "Hindernis"
@character = get_character(@event)
$game_variables[1100 + @hindernisse] = @character.x
$game_variables[1200 + @hindernisse] = @character.y
@hindernisse += 1
elsif @event_name == "Gegner"
if $game_self_switches[[$game_map.map_id, @event, "A"]] == false
@character = get_character(@event)
$game_variables[1100 + @hindernisse] = @character.x
$game_variables[1200 + @hindernisse] = @character.y
@hindernisse += 1
end
end
end |
(du könntest nach "Hindernis" auch einfach
or @event_name == "Gegner"
schreiben, dann könntest du aber auch nicht durch die Leiche schießen)
danach ersetzt du noch das in Zeile 55
|
|
Quellcode |
1 |
if @event_name == "Gegner" |
durch
|
|
Quellcode |
1 |
if @event_name == "Gegner" or @event_name == "GegnerX" |
An den terrain_tag hindernissen arbeite ich noch,
wird aber schwierig weil in dem skript gar keine kugel
berechnet wird, sondern ob alles auf einer linie liegt
und ob was dazwischen is...
(das terrain von bestimmten koordinaten lässt sich sonst einfach mit :
$variable = $game_map.terrain_tag(X, Y)
abfragen, die variable hat dann die nummer des terrain_tags...)
aber wie gesagt, ich werds trotzdem weiterversuchen ^^
edit :: mist, das hat nen fehler!
man kann jetzt auch hindernisse treffen >.<
Behoben!
2.Problem auch gelöst :
Ersetz einfach die Komplette Trefferabfrage
(von
#===Treffer Abfrage Start===#
bis
#===Treffer Abfrage Ende===#)
mit dieser version :
|
|
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 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 |
#===Treffer Abfrage Start===#
if @hero_d == 2 # Nach Unten Schauen
if @hero_x == @enemy_x
if @hero_y < @enemy_y
#:::Bullet_Position_Check ::: Start
$blocker = false
@Count_X = @hero_x
@Count_Y = @hero_y
@actual_pos = @Count_Y
@Ziel = @enemy_y
while @actual_pos < @Ziel
@actual_pos += 1
@terrain_tagg = $game_map.terrain_tag(@Count_X, @actual_pos)
if @terrain_tagg == 7
$blocker = true
end
end
#:::Bullet_Position_Check ::: End
if $blocker == false #Zusatz-Bedingung
if @hindernisse != 0
for @hinderniss in 0...@hindernisse
if $game_variables[1100 + @hinderniss] == @hero_x
if $game_variables[1200 + @hinderniss] < @enemy_y
if $game_variables[1200 + @hinderniss] > @hero_y
break
end
end
end
getroffen if @hinderniss == @hindernisse - 1
end
end
getroffen if @hindernisse == 0
end
end
end
end #Zusatz-End
if @hero_d == 4 # Nach Links Schauen
if @hero_y == @enemy_y
if @hero_x > @enemy_x
#:::Bullet_Position_Check ::: Start
$blocker = false
@Count_X = @hero_x
@Count_Y = @hero_y
@actual_pos = @Count_X
@Ziel = @enemy_x
while @actual_pos > @Ziel
@actual_pos -= 1
@terrain_tagg = $game_map.terrain_tag(@actual_pos, @Count_Y)
if @terrain_tagg == 7
$blocker = true
end
end
#:::Bullet_Position_Check ::: End
if $blocker == false #Zusatz-Bedingung
if @hindernisse != 0
for @hinderniss in 0...@hindernisse
if $game_variables[1200 + @hinderniss] == @hero_y
if $game_variables[1100 + @hinderniss] > @enemy_x
if $game_variables[1100 + @hinderniss] < @hero_x
break
end
end
end
getroffen if @hinderniss == @hindernisse - 1
end
end
getroffen if @hindernisse == 0
end
end
end
end
if @hero_d == 6 # Nach Rechts Schauen
if @hero_y == @enemy_y
if @hero_x < @enemy_x
#:::Bullet_Position_Check ::: Start
$blocker = false
@Count_X = @hero_x
@Count_Y = @hero_y
@actual_pos = @Count_X
@Ziel = @enemy_x
while @actual_pos < @Ziel
@actual_pos += 1
@terrain_tagg = $game_map.terrain_tag(@actual_pos, @Count_Y)
if @terrain_tagg == 7
$blocker = true
end
end
#:::Bullet_Position_Check ::: End
if $blocker == false #Zusatz-Bedingung
if @hindernisse != 0
for @hinderniss in 0...@hindernisse
if $game_variables[1200 + @hinderniss] == @hero_y
if $game_variables[1100 + @hinderniss] < @enemy_x
if $game_variables[1100 + @hinderniss] > @hero_x
break
end
end
end
getroffen if @hinderniss == @hindernisse - 1
end
end
getroffen if @hindernisse == 0
end
end
end
end
if @hero_d == 8 # Nach Oben Schauen
if @hero_x == @enemy_x
if @hero_y > @enemy_y
#:::Bullet_Position_Check ::: Start
$blocker = false
@Count_X = @hero_x
@Count_Y = @hero_y
@actual_pos = @Count_Y
@Ziel = @enemy_y
while @actual_pos > @Ziel
@actual_pos -= 1
@terrain_tagg = $game_map.terrain_tag(@Count_X, @actual_pos)
if @terrain_tagg == 7
$blocker = true
end
end
#:::Bullet_Position_Check ::: End
if $blocker == false #Zusatz-Bedingung
if @hindernisse != 0
for @hinderniss in 0...@hindernisse
if $game_variables[1100 + @hinderniss] == @hero_x
if $game_variables[1200 + @hinderniss] > @enemy_y
if $game_variables[1200 + @hinderniss] < @hero_y
break
end
end
end
getroffen if @hinderniss == @hindernisse - 1
end
end
getroffen if @hindernisse == 0
end
end
end
end
#===Treffer Abfrage Ende===# |
also das hindernis terrain_tag is jetz das 7.
ich hoff dass das nich zu verbuggt is o.O
hoffe dass ich dir helfen konnte ^^
mfg, Nökö
PLEASE DON'T CLIP MY WINGS.
Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von »neko« (3. Mai 2007, 21:00)
Yeah, das isses.. thx....
Wenn ich des Ding fertig habe, werd ich alles zusammen als Edit von Monsta seinem posten ( also mit Munition, Ammo, komplettem HUD..etc )
thx,thx,thx nochma *kann geclosed werden*
Wenn ich des Ding fertig habe, werd ich alles zusammen als Edit von Monsta seinem posten ( also mit Munition, Ammo, komplettem HUD..etc )
thx,thx,thx nochma *kann geclosed werden*
There was a Cave,
below a Silent's Grave.
Tunnels, extending far, running wide,
going deep into the World on the other Side.
Poor little Child, that was to brave,
died painfully deep down, in the Devil's Cave.
below a Silent's Grave.
Tunnels, extending far, running wide,
going deep into the World on the other Side.
Poor little Child, that was to brave,
died painfully deep down, in the Devil's Cave.
