• Anmelden

Josey

Storyteller

  • »Josey« ist der Autor dieses Themas

Motto: "Was du nicht willst, das man dir tu', füge keinem And'ren zu!"

  • Nachricht senden

1

Dienstag, 11. August 2015, 20:20

[Erledigt] Throw System Add-On

Hey :)

Gleich vorweg: Das hier hat nix mit den anderen Anfragen zu tun und ist für ein ganz anderes Projekt! :3


Ich habe das hier gefunden:
Little Drago Throw System
Ich würde es gerne für mein HM-Projekt verwenden, aber dazu fehlt mir noch eine Funktion. Im Moment macht das Script durch einen Befehl im Eventnamen, dass ein SelfSwitch aktiviert wird, wenn das Event geworfen wird. Das ist super, damit kann ich dafür sorgen, dass die Blume oder whatever "zerbricht", wenn sie geworfen wird. Aber ich bräuchte noch einen Selfswitch, der ON geht, wenn das Event aufgehoben wird. Leider funktioniert es nicht, den Selfswitch innerhalb des Events per ActionButton, PlayerTouch oder EventTouch zu aktivieren. Die letzten beiden gehen sofort los, wenn man das Event nur berührt (also vor dem Hochheben) und der ActionButton funktioniert gar nicht :<
Ich bräuchte also entweder einen Befehl für den Eventnamen, der schon beim Hochheben einen ersten Selfswitch aktiviert (das <ThrowSelfSwitch[X]> muss trotzdem noch funktionieren) oder das Event muss weiterhin per Actionbutton zu triggern sein, so dass man, wenn man rangeht und Enter drückt, das Event nicht nur hochhebt, sondern gleichzeitig auch die erste Eventseite aktiviert.
Ich habe im Moment zwar eine kompliziert verschachtelte Eventlösung gebaut, die das Hide&Seek-System verwendet und mir dadurch genau erlaubt, was ich will, aber es kann ja sein, dass es sich hierbei um wenige Handgriffe handelt :)


Ich würde mich sehr freuen, wenn jemand schaut, ob er das hinbekommt. Ich hab zwar in dem Forum schon einmal Support für das Script bekommen, aber ich weiß nicht recht, wie ich dieses Problem hier auf Englisch formulieren soll D:
Hier übrigens noch das Script, ohne den Fehler (wegen dem ich dort schon Hilfe gesucht und bekommen hatte):
Spoiler

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
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
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
#:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
# [Xp] Throw System
# Version: 1.52
# Author : LiTTleDRAgo
#:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:
#
# Special Thanks to Moghunter 
# Ripped from XAS :P
#
#------------------------------------------------------------------------------
#
# The character can pick up and throw objects
#
# Any event can be thrown if <ThrowX> is included in their name field. 
# Where X is the number of tiles it can be thrown.
#
# Extra
#    <ThrowSelfSwitch[X]> where X is A,B,C,D (Self switches) activated after
#                event is throwed
#    <BlockThrow> to prevent throwed event to pass through
#    <CarryTimeX> where X is the time (in seconds) player will drop picked event
#
# for Blizz ABS
#    <AtkPowerX> where X is strength of the event to damage enemy
#    <AnimeHitX> where X is animation ID when event hit the enemy
#
#
# You’ll need two images of your character
#  [ACTORNAME]_PICK and [ACTORNAME]_TRW
#
#
#:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:
($imported ||= {})[:drago_throw_system] = 1.52
 
#==============================================================================
# ■ Game_Character
#==============================================================================
class Game_Character  
 
  CANT_THROW_IF_BLOCKED = true
  TERRAIN_DISABLE_THROW = 8
 #--------------------------------------------------------------------------
 # Throw action
 #--------------------------------------------------------------------------
  def throw_action(range)    
    jump_range = range
    dc = $game_player.direction
    unless jumping?        
      p = jump_range
      range.times do 
        unless jumping? 
          case dc 
          when 2 then jump(0,jump_range)  if throw_event?(0,jump_range,p)
          when 4 then jump(-jump_range,0) if throw_event?(-jump_range,0,p)
          when 6 then jump(jump_range,0)  if throw_event?(jump_range,0,p) 
          when 8 then jump(0,-jump_range) if throw_event?(0,-jump_range,p)
          end
          jump(0,0)    if jump_range == 1
          return false if jump_range == 1 && CANT_THROW_IF_BLOCKED &&
               [@x,@y] == [$game_player.x,$game_player.y]              
          jump_range -= 1  
          p -= 1
        end               
      end
    end     
  end   
 #--------------------------------------------------------------------------
 # ● Reset Pickup 
 #--------------------------------------------------------------------------  
 def reset_pickup
     return if !@pickup_lock 
     @pickup_lock = false
     @pickup_lock_time = 0  
     $game_player.sprite_normal unless $BlizzABS
     $game_map.events.each_value {|event|
         if event.throw_active 
           event.moveto($game_player.x, $game_player.y)
           event.throw_active = false
           event.move_speed = event.pre_move_speed
           event.jump(0,0)
         end }  
  end   
 #--------------------------------------------------------------------------
 # ● Passable Around?
 #--------------------------------------------------------------------------  
 def passable_around?(x,y) 
     direction = [2,4,6,8]
     direction_passable = []
     direction.each {|i| direction_passable.push(i) if passable?(x,y,i) }    
     return true if direction_passable != []
     return false
 end  
 #--------------------------------------------------------------------------
 # ● Passable Here?
 #--------------------------------------------------------------------------   
 def passable_here?(x,y)    
     return false unless $game_map.passable?(x, y, 0, self)
     $game_map.events.each_value {|event|
       if event.x == x and event.y == y 
          return false if event.character_name != ""
          return false if event.through == false
       end }    
     return true
 end  
 #--------------------------------------------------------------------------
 # ● Jump Here
 #--------------------------------------------------------------------------   
 def jump_here(x,y)    
     return unless passable_here?(x,y)   
     range_x = x - @x
     range_y = y - @y
     jump(range_x,range_y)
 end 
 #--------------------------------------------------------------------------
 # ● Jump position
 #--------------------------------------------------------------------------   
 def jump_position(x,y)   
      if passable_here?(x,y)    
         jump_here(x,y)
       else
        direction = [2,4,6,8]
        direction_passable = []
        d = @direction
        direction.each {|i| direction_passable.push(i) if passable?(x,y,i) }
        if direction_passable != []     
          direction_passable.each {|i|
            if @direction == 2 && direction_passable.include?(8)
              @direction = 8   
            elsif @direction == 8 && direction_passable.include?(2)
              @direction = 2
            elsif @direction == 4 && direction_passable.include?(6)
              @direction = 6                     
            elsif @direction == 6 && direction_passable.include?(4)
              @direction = 4     
            else   
              @direction = i   
            end
          d = @direction
          new_x = x + (d == 6 ? 1 : d == 4 ? -1 : 0)
          new_y = y + (d == 2 ? 1 : d == 8 ? -1 : 0)       
          range_x = new_x - @x
          range_y = new_y - @y
          jump(range_x,range_y) }
        end
     end  
 end
 #--------------------------------------------------------------------------
 # Throw
 #--------------------------------------------------------------------------
  def jump_forward(range)    
  jump_range = range
  dc = @direction
   unless jumping?        
        p = jump_range
        range.times do 
          unless jumping? 
           if dc == 6              
              jump(jump_range,0) if throw_event?(jump_range,0,p) 
           elsif dc == 4 
              jump(-jump_range,0) if throw_event?(-jump_range,0,p)
           elsif dc == 2 
              jump(0,jump_range) if throw_event?(0,jump_range,p)
           elsif dc == 8 
              jump(0,-jump_range) if throw_event?(0,-jump_range,p)
           end
              jump(0,0) if jump_range == 1
              jump_range -= 1  
              p -= 1
           end               
         end
     end            
 end   
 #--------------------------------------------------------------------------
 # ● front_pos?
 #--------------------------------------------------------------------------     
 def front_pos?(x,y)
   d = @direction
   new_x = @x + (d == 6 ? 1 : d == 4 ? -1 : 0)
   new_y = @y + (d == 2 ? 1 : d == 8 ? -1 : 0)
   return (new_x == x && new_y == y)
 end  
 #--------------------------------------------------------------------------
 # Throw Event?
 #--------------------------------------------------------------------------
 def throw_event?(x_plus, y_plus,p )  
    dir = $game_player.direction 
    v = 1
    org_x = @x + x_plus
    org_y = @y + y_plus
    p.times do     
      new_x2 = org_x + (dir == 6 ? -v : dir == 4 ? + v : 0)
      new_y2 = org_y + (dir == 2 ? -v : dir == 8 ? + v : 0)
      terrain_disable = $game_map.terrain_tag(new_x2,new_y2)  
      return false if terrain_disable == TERRAIN_DISABLE_THROW
      $game_map.events.each_value {|event|
        if event.x == new_x2 && event.y == new_y2  
           if event.character_name =~ /<BlockThrow>/i && !event.through  
             return false
           end  
           if $BlizzABS && !event.through && event.is_a?(Map_Enemy) 
             event.animation_id     = @animethrow if @animethrow
             if @atkpow
               actor = $game_party.actors[0]
               hp_damage = event.battler.hp
               atk = event.battler.attack_effect(actor)
               hp_damage -= event.battler.hp
               if @atkpow
                 hp_damage        += @atkpow.to_i
                 event.battler.hp -= @atkpow.to_i
               end     
               event.battler.hpdamage = hp_damage.to_i
               $BlizzABS.util.request_damage_sprite(event) if hp_damage > 0
             end
             return false
           end  
        end  }     
      v += 1
    end
    return true 
 end   
 #--------------------------------------------------------------------------
 # ● Passable Around Move?
 #--------------------------------------------------------------------------   
 def passable_arround_move?(x,y)    
     direction = [2,4,6,8]
     direction_passable = []
     direction.each {|i|  direction_passable.push(i) if passable?(x,y,i) }
     if direction_passable != [] 
        if direction_passable.include?(@direction)
           move_forward
        else   
           direction_passable.each {|i|
            unless moving?
              if @direction == 2 and direction_passable.include?(8)
                @direction = 8   
              elsif @direction == 8 and direction_passable.include?(2)
                @direction = 2
              elsif @direction == 4 and direction_passable.include?(6)
                @direction = 6                     
              elsif @direction == 6 and direction_passable.include?(4)
                @direction = 4     
              else   
                @direction = i   
              end
              move_forward   
            end   }
        end  
     end        
   end
 
  attr_accessor :pre_move_speed,:pre_walk_anime,:pickup_lock,:pickup_lock_time
  attr_accessor :real_x,:real_y,:throw_active,:walk_anime,:character_name
  attr_accessor :throw_active,:throw,:x,:y,:atkpow,:animethrow 
  attr_accessor :move_speed,:pre_move_speed,:through,:thssw,:throwed
  attr_accessor :step_anime,:pre_step_anime,:carrytime  
  attr_reader   :erased 
end  
 
#==============================================================================
# ** Game_Player / BlizzABS::Controller
#------------------------------------------------------------------------------
#  This class handles the party leader. Its functions include event starting
#  determinants and map scrolling. Some input is processed instantly, 
#  while some is converted into commands to be given to the player character
#==============================================================================
Klass = $BlizzABS ? BlizzABS::Controller : Game_Player
#eval_text = "
class Klass
  if $BlizzABS
    alias update_for_throwing update_moving 
    alias move_for_throwing move
  else
    alias update_for_throwing update
  end
  alias pickup_check_event_trigger_there check_event_trigger_there
  #--------------------------------------------------------------------------
  # ● Check Event Pickup
  #--------------------------------------------------------------------------
  def check_event_trigger_there(*args)
    throw_event(0)
    pickup_event    
    return if ($game_player.pickup_lock) 
    return if ($game_player.pickup_lock_time || 0) > 0
    pickup_check_event_trigger_there(*args)  
  end
  #--------------------------------------------------------------------------
  # ● Update Moving (BlizzABS)
  #--------------------------------------------------------------------------
  def update_moving(*args)
    update_for_throwing(*args)
    update_carry_time
    update_throw_position
  end
  #--------------------------------------------------------------------------
  # ● Update (Non BlizzABS)
  #--------------------------------------------------------------------------
  def update
    update_for_throwing
    update_carry_time
    update_throw_position
  end
  #--------------------------------------------------------------------------
  # ● Move (BlizzABS)
  #--------------------------------------------------------------------------
  def move(d)
    return if ($game_player.pickup_lock_time || 0) > 0  
    move_for_throwing(d)
  end
  #--------------------------------------------------------------------------
  # ● Update Carry Time
  #--------------------------------------------------------------------------
  def update_carry_time
     if ($game_player.pickup_lock_time || 0) > 0
        $game_player.pickup_lock_time -= 1
        sprite_normal if $game_player.pickup_lock_time == 0 ##
     end
     if (@carry_time || 0) > 0
        @carry_time -= 1
        $game_player.reset_pickup if @carry_time == 0
     end  
   end  
  #--------------------------------------------------------------------------
  # ● Update Throw Position
  #--------------------------------------------------------------------------
  def update_throw_position
    all_throw_event.each {|event|
      if !event.jumping?
        event.real_x = $game_player.real_x
        event.real_y = $game_player.real_y - 128
        event.x = $game_player.x
        event.y = $game_player.y 
        sprite_carry 
      end  }    
  end
  #--------------------------------------------------------------------------
  # ● Throw Event
  #--------------------------------------------------------------------------
  def throw_event(type)
    return if !$game_player.pickup_lock 
    return if ($game_player.pickup_lock_time || 0) > 0
    return if $game_system.map_interpreter.running?
    all_throw_event.each {|event|
      if !event.jumping?
        next if !event.throw_action(type == 1 ? 1 : event.throw)
        sprite_throw    
        $game_player.pickup_lock_time = 15      
        event.throw_active = false
        $game_player.pickup_lock = false           
        event.move_speed = event.pre_move_speed
        event.walk_anime = event.pre_walk_anime 
        event.throwed = true
        $game_player.step_anime = $game_player.pre_step_anime
      end }    
  end
  #--------------------------------------------------------------------------
  # ● Pickup Event
  #--------------------------------------------------------------------------
  def pickup_event    
    return if $game_player.pickup_lock
    return if ($game_player.pickup_lock_time || 0) > 0   
    return if $game_system.map_interpreter.running?
    $game_map.events.each_value {|event|
      if event.is_a?(Game_Event)
        if $game_player.front_pos?(event.x,event.y)
          next if (event.throw || 0) == 0 
          next if event.erased || event.through
          next if !sprite_throw 
          $game_player.pickup_lock_time = 15
          event.throw_active = true
          $game_player.pickup_lock = true
          event.jump(0,0)
          event.x = $game_player.x
          event.y = $game_player.y
          event.pre_walk_anime = event.walk_anime
          event.pre_move_speed = event.move_speed
          event.move_speed = 7
          event.walk_anime = false
          @carry_time = (event.carrytime || 0) * 40 
          $game_player.pre_step_anime = $game_player.step_anime
        end 
      end} 
    end
  #--------------------------------------------------------------------------
  # ● all_throw_event
  #--------------------------------------------------------------------------
  def all_throw_event
    $game_map.events.values.select {|e| e.throw_active }
  end
  #--------------------------------------------------------------------------
  # ● Sprite Throw
  #--------------------------------------------------------------------------
  def sprite_throw
    name = $game_party.actors[0].character_name
    nama = $game_player.character_name
    graphic = [name,"#{name}_pick","#{name}_idl"].map {|s| s.downcase}
    if graphic.include?(nama.downcase)
      if ch_exist?(name + '_TRW')
        $game_player.character_name = name + '_TRW'
      end
      return true
    end
  end
  #--------------------------------------------------------------------------
  # ● Sprite Carry
  #--------------------------------------------------------------------------
  def sprite_carry
    name = $game_party.actors[0].character_name
    nama = $game_player.character_name
    graphic = [name,"#{name}_trw","#{name}_idl"].map {|s| s.downcase}
    if graphic.include?(nama.downcase)
      if ch_exist?(name + '_PICK')
        $game_player.character_name = name + '_PICK'   
      end
      return true
    end
  end
  #--------------------------------------------------------------------------
  # ● Normal
  #--------------------------------------------------------------------------
  def sprite_normal
    name = $game_party.actors[0].character_name
    nama = $game_player.character_name
    graphic = ["#{name}_pick","#{name}_trw"].map {|s| s.downcase}
    if graphic.include?(nama.downcase)
      $game_player.character_name = name 
    end
  end   
  #--------------------------------------------------------------------------
  # ● Character exist?
  #--------------------------------------------------------------------------
  def ch_exist?(x)
    return RPG::Cache.character(x, 0) rescue false
  end
end#"
 
#============================================================================
# BlizzABS::Controls
#----------------------------------------------------------------------------
#  This class handles player input for battle on the map.  Some input is
#  processed instantly, while some is converted into commands to be given to
#  the player character.
#============================================================================
if $BlizzABS
  eval('class Game_System;  def pixel_rate() 0  end  end')
  class BlizzABS::Controls   
    #--------------------------------------------------------------------------
    # update
    #  Processes the player's input.
    #--------------------------------------------------------------------------
    alias update_for_throw update
    def update
      return if $game_player.pickup_lock
      update_for_throw
    end
  end
#==============================================================================
# Map_Battler
#------------------------------------------------------------------------------
#  This class serves as superclass for characters that fight on the map and
#  can use pixel movement.
#==============================================================================
  class Map_Battler < Game_Character
    #---------------------------------------------------------------------------
    # sprite_movement_animation_setup
    #  Sets up movement sprite handling.
    #---------------------------------------------------------------------------
    alias sprite_movement_animation_setup_throw sprite_movement_animation_setup
    def sprite_movement_animation_setup
      return if $game_player.pickup_lock
      sprite_movement_animation_setup_throw
    end    
  end  
end
#==============================================================================
# ** Interpreter 
#------------------------------------------------------------------------------
#  This interpreter runs event commands. This class is used within the
#  Game_System class and the Game_Event class.
#==============================================================================
 
class Interpreter
  #--------------------------------------------------------------------------
  # * Transfer Player
  #--------------------------------------------------------------------------
  alias throw_command_201 command_201
  def command_201
    $game_player.reset_pickup
    throw_command_201
  end
end
 
#==============================================================================
# ■ Game_Event
#==============================================================================
class Game_Event < Game_Character
 
  #--------------------------------------------------------------------------
  # ● initialize
  #--------------------------------------------------------------------------
  alias drago_pickup_initialize initialize
  def initialize(map_id, event)
    @throw      = $1.to_i if event.name =~ /<Throw(\d+)>/i
    @atkpow     = $1.to_i if event.name =~ /<AtkPower(\d+)>/i
    @animethrow = $1.to_i if event.name =~ /<AnimeHit(\d+)>/i
    @carrytime  = $1.to_i if event.name =~ /<CarryTime(\d+)>/i
    @thssw      = $1.to_s if event.name =~ /<ThrowSelfSwitch\[(\w+)\]>/i
    drago_pickup_initialize(map_id, event)    
  end      
 #--------------------------------------------------------------------------
 # ● Throw Action
 #--------------------------------------------------------------------------
  alias upd_for_throw update
  def update
    upd_for_throw
    if @throwed && @thssw && !jumping?
      $game_self_switches[[$game_map.map_id,@id,@thssw]] = true
      $game_map.need_refresh = true
      @throwed = false
    end
  end
 #--------------------------------------------------------------------------
 # ● Screen Z
 #--------------------------------------------------------------------------
  alias screen_z_for_throw screen_z
  def screen_z(h=0)
    result = screen_z_for_throw(h)
    result += (2*32) if @throw_active
    return result
  end
end
zum Lesen den Text mit der Maus markieren



Josey~


Edit Da wär nochwas D:
Kann man das Script irgendwie auch durch ein anderes Event aufrufen?
Mal angenommen der Charakter trägt gerade ein Event. Ich lasse über oben genannten SelfSwitch durch eine Variable/Switch/whatever merken, was der Player trägt. Er wechselt die Map. Jetzt trägt er das Item natürlich nicht mehr. Ich rufe über ein PP auf, ob sich gerade noch etwas in seiner Hand befunden hatte und setze ihm wieder ein Event auf den Kopf (das dann anhand der Parameter erkennt, was es war und ruft dann die richtige Eventseite auf).
Geht das irgendwie?
Notfalldiscord: Hier klicken


  • Joseys Wuselei

    • Meine Story - Pausiert
      Lust auf Abenteuer?
      So richtig mit Selbstbestimmung?
      Und mit was Spannendem? Zum Spielen? Ohne Schokolade?
      "Eines, das mit dem leistungsstärksten Grafikchip der Welt läuft? Deiner Vorstellungskraft?"
      Hier die Antwort:
      Bild
      Bild
      Hier könnt ihr euren Lieblingschar wählen ;D
      Und hier findet ihr das Minigame, das ab und an den Würfel ersetzt.
    • Meine Arbeiten
      Einige Ressourcen, vor allem Baby-Tiere, aber auch alle Requests, die ich erfüllt habe.
      Bild

      Bild

      In unregelmäßigen Abständen fasse ich alles Neue, was so im Studio passiert ist, zusammen. -Pausiert-
      Bild
    • Meine Fähigkeiten
      Maker: :rmxp: XP
      :rainbow: Pixeln: :star: :star: :star: :star: :star-empty: :star-empty:
      :image: Mappen: :star: :star: :star: :star: :star: :star-empty:
      :wrench-screwdriver: Eventen: :star: :star: :star: :star: :star-empty: :star-empty:
      :puzzle: Scripten: :star: :star-half: :star-empty: :star-empty: :star-empty: :star-empty:
      :music: Komponieren: :star-half: :star-empty: :star-empty: :star-empty: :star-empty: :star-empty:
    • (Mein) Autismus
      Ich bin im autistischen Sprektrum-
      sollte ich mich komisch verhalten, oder unhöflich wirken
      (oder mich zu oft entschuldigen, unaufmerksam sein, unsicher wirken, zum zehnten Mal nachfragen, blablabla),
      ist das nicht beabsichtigt.


      Josey. Epicgarantie.
      Nehmt das bloß nicht ernst! D:
    • Meine Welt
      Mein Ehemann Kain! :heart_full: :*
      Freund und Helfer in der Not, immer da, steht er mir mit Rat und Tat zur Seite. Meine andere Hälfte! : D
      Er verdient einfach einen Platz ( :medal: ) in meiner Signatur! XD
      :heart-half:
    • Mein Support
      Der In-Game-Charset-Generator!
      Erstelle Random-NPCs mit Charsetteilen!

      Diese Spiele finde ich toll und brauchen viel mehr Aufmerksamkeit!
      Bastelt mal Banner! : D

    • Meine beendeten Contests
      [Pixelcontest] Rund um den Kürbis
      Bild
      Abstimmung
      Siegerehrung

      Das Wunder der Berge
      Bild
      Abstimmung
      Siegerehrung
    • Meine Contests
      Bild Ein Schreibcontest in Arbeit! : D Bild
  • Joseys Spiele

    • Endless Ending
      :rmxp: Endless Ending
      (Arbeitstitel, "ernstes Projekt")

      Bild

      Eine Reise durch die Wüste.
      Sieben mächtige Gegenstände.
      Unendlich viele Aufgaben.

      Und die Götter haben die Würfel.
    • Scripted Desaster
      :rmxp: Scripted Desaster
      ("nicht ganz so ernstes Projekt")

      Ein verfressener Idiot und ein sarkastischer Workaholic treffen in einem dunklen Wald auf einen weißes Kaninchen...
      Ein Auftragskiller jagt einem Meisterdieb hinterher, wobei nicht ersichtlich ist, wer eigentlich wen jagt...
      Und eine "Kristallhöhle", sowie einen "Wald ohne Wiederkehr" gibts auch.

      Das bedeutet doch Spaß...
    • Pokémon EV
      :rmxp: Pokemon EV
      ("Zeitvertreib nebenbei - Kreatief-Helfer")

      Ist nur ein Pokemonspiel mit üblicher Story und nicht so üblicher Story.
      Ist inzwischen alles schonmal dagewesen. XD
    • Lost Island
      :rmxp: Harvest Moon - Lost Island
      (Arbeitstitel, "Eventtechnik-Projekt")

      Ist momentan mein Hauptprojekt, weil bei EE die Scripts einfach fehlen :<
      Das Spiel ist ein Harvest Moon Abklatsch. XD
      Felder funktionieren, Tiere auch, Grafiken sehen schon gut aus, Maps sind fast fertig. Man kann in die Miene, man kann einkaufen. Auf dem Papier ist alles schon durchgeplant, einiges muss noch umgesetzt werden.
  • Joseys Fortschritt

    • Endless Ending
      :hourglass: Story: 60%
      :foaf: Charas: 20%
      :leaf: Maps: 01%
      :ruby: Zeichnungen: 05%
      :color: Grafiken: 30%
      :clipboard: Scripte: 70%
      :music-beam-16: Musik: 00%
      ...ist nicht viel, huh? ^^°
    • Scripted Desaster
      :hourglass: Story: 10%
      :foaf: Charas: 60%
      :leaf: Maps: 30%
      :ruby: Zeichnungen: 01%
      :color: Grafiken: 60%
      :clipboard: Scripte: 70%
      :music-beam-16: Musik: 00%
      Gut Ding...
    • Pokemon EV
      :hourglass: Story: 60%
      :foaf: Charas: 10%
      :leaf: Maps: 00%
      :ruby: Zeichnungen: 00%
      :color: Grafiken: 80%
      :clipboard: Scripte: 90%
      :music-beam-16: Musik: 70%
      Nicht ernstnehmen XD Das mache ich nur, wenn woanders nix mehr geht...
    • Lost Island
      :hourglass: Story: 100%
      :foaf: Charas: 10%
      :leaf: Maps: 90%
      :ruby: Zeichnungen: 00%
      :color: Grafiken: 60%
      :clipboard: Scripte: 90%
      :music-beam-16: Musik: 00%
      Das macht richtig Spaß XD
  • Huiii

    Bitte klicken Sie weiter. Hier gibt es nichts zu sehen. Nichts. Hören Sie? Nichts.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Josey« (18. März 2016, 18:28)


2

Mittwoch, 12. August 2015, 23:59

Probier mal die Zeile event.start zu ergänzen.

Ruby Quellcode

358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
  def pickup_event    
    return if $game_player.pickup_lock
    return if ($game_player.pickup_lock_time || 0) > 0   
    return if $game_system.map_interpreter.running?
    $game_map.events.each_value {|event|
      if event.is_a?(Game_Event)
        if $game_player.front_pos?(event.x,event.y)
          next if (event.throw || 0) == 0 
          next if event.erased || event.through
          next if !sprite_throw 
          $game_player.pickup_lock_time = 15
          event.throw_active = true
          $game_player.pickup_lock = true
          event.jump(0,0)
          event.x = $game_player.x
          event.y = $game_player.y
          event.pre_walk_anime = event.walk_anime
          event.pre_move_speed = event.move_speed
          event.move_speed = 7
          event.walk_anime = false
          @carry_time = (event.carrytime || 0) * 40 
          $game_player.pre_step_anime = $game_player.step_anime
          event.start # Eventcode starten
        end 
      end} 
    end

Josey

Storyteller

  • »Josey« ist der Autor dieses Themas

Motto: "Was du nicht willst, das man dir tu', füge keinem And'ren zu!"

  • Nachricht senden

3

Samstag, 7. November 2015, 15:18

Danke, Playm :3
Die erste Eventseite auf Action Button wird jetzt aufgerufen, wenn man das Event hochhebt :D
Problem das dabei entstanden ist: Das Event "bewegt" sich. Auch wenn ich die Eventseite auf Directionfix stelle, rollt der Stein, den ich im Moment verwende :/ -> Gelößt! Danke Azura :D

Zudem hat sich noch was ergeben. Auf der Seite SelfSwitch A gibt es die Möglichkeit für den Player "W" zu drücken, dadurch "steckt" er den Stein ein. (Wie bei HM-Spielen üblich). Der Stein verschwindet nun (wird auf SelfSwitch D geschaltet), aber der Charakter steckt immer noch in der "Pose" fest. Man muss nun nochmal Enter drücken, damit er das leere Event wegwirft. Genauso ist es, wenn man den Stein "verschenkt".


1.) Nun bräuchte ich also einen Scriptaufruf für ein automatisches "Hochheben" (damit der Player beim Mapwechsel weiterin trägt, was er trägt)
und
2.) einen Scriptaufruf für automatisches "Wegwerfen" (damit der Player ein "eingestecktes" Event wegwirft).


Spoiler
Wie ich ein hochgehobenes Item verschenken kann, darüber grüble ich auch noch. Eventuell müsste ich in der Lage sein, während der Charakter im "Throw"-Modus ist, gleichzeitig das Event direkt vor ihm zu aktivieren (und das Item trotz Event vor ihm, wegwerfen zu können- irgendwie müsste das mit dem Script schon möglich sein, aber vielleicht nur in Verbindung mit einem AKS?).
Aber notfalls baue ich mir hier eine H&S-Hilfe mit einem anderen Knopf ein... Mit dem Execute-Event scheint das fast zu gehen (oben rechts läuft der Aufruf auf PP), aber das Problem ist, dass das Event sofort aktiviert wird, wenn ich davor stehe und nicht erst, wenn ich Enter drücke. Als wäre ich die ganze Zeit ständig im Entermodus, kann das sein? Vielleicht durch "event.start"? Kommt daher auch die ständige Bewegung des Events?
zum Lesen den Text mit der Maus markieren
-> Habs geschafft, danke Azura! :3
Der Einfachheit halber hänge ich mal meine Demo an :3

(Anmerkung: Enterdrücken nach einer Textbox nimmt das Script sofort als Enter fürs wegwerfen, deshalb die Textboxen beim eventuellen Probieren von Scriptaufrufen entfernen, sonst wirft er den dämlichen Stein gleich wieder weg)

Danke bis hierhin, wenigstens bleibt mir jetzt das Geschalte mit dem H&S erspart XD


Edit Diesmal hab ich sogar fast zwei Monate gewartet :3
*schieb*
Wird noch gebraucht! :D

Inzwischen habe ich auch mit Azuras Hilfe eine Anfrage im Orginalthreadt geschalten, die bisher nicht beantwortet wurde ._.

Neue Demo angehangen!

*push*



Edit Das Throw System wurde von Azura fertig gestellt, vielen dank! :D
»Josey« hat folgende Datei angehängt:
Notfalldiscord: Hier klicken


  • Joseys Wuselei

    • Meine Story - Pausiert
      Lust auf Abenteuer?
      So richtig mit Selbstbestimmung?
      Und mit was Spannendem? Zum Spielen? Ohne Schokolade?
      "Eines, das mit dem leistungsstärksten Grafikchip der Welt läuft? Deiner Vorstellungskraft?"
      Hier die Antwort:
      Bild
      Bild
      Hier könnt ihr euren Lieblingschar wählen ;D
      Und hier findet ihr das Minigame, das ab und an den Würfel ersetzt.
    • Meine Arbeiten
      Einige Ressourcen, vor allem Baby-Tiere, aber auch alle Requests, die ich erfüllt habe.
      Bild

      Bild

      In unregelmäßigen Abständen fasse ich alles Neue, was so im Studio passiert ist, zusammen. -Pausiert-
      Bild
    • Meine Fähigkeiten
      Maker: :rmxp: XP
      :rainbow: Pixeln: :star: :star: :star: :star: :star-empty: :star-empty:
      :image: Mappen: :star: :star: :star: :star: :star: :star-empty:
      :wrench-screwdriver: Eventen: :star: :star: :star: :star: :star-empty: :star-empty:
      :puzzle: Scripten: :star: :star-half: :star-empty: :star-empty: :star-empty: :star-empty:
      :music: Komponieren: :star-half: :star-empty: :star-empty: :star-empty: :star-empty: :star-empty:
    • (Mein) Autismus
      Ich bin im autistischen Sprektrum-
      sollte ich mich komisch verhalten, oder unhöflich wirken
      (oder mich zu oft entschuldigen, unaufmerksam sein, unsicher wirken, zum zehnten Mal nachfragen, blablabla),
      ist das nicht beabsichtigt.


      Josey. Epicgarantie.
      Nehmt das bloß nicht ernst! D:
    • Meine Welt
      Mein Ehemann Kain! :heart_full: :*
      Freund und Helfer in der Not, immer da, steht er mir mit Rat und Tat zur Seite. Meine andere Hälfte! : D
      Er verdient einfach einen Platz ( :medal: ) in meiner Signatur! XD
      :heart-half:
    • Mein Support
      Der In-Game-Charset-Generator!
      Erstelle Random-NPCs mit Charsetteilen!

      Diese Spiele finde ich toll und brauchen viel mehr Aufmerksamkeit!
      Bastelt mal Banner! : D

    • Meine beendeten Contests
      [Pixelcontest] Rund um den Kürbis
      Bild
      Abstimmung
      Siegerehrung

      Das Wunder der Berge
      Bild
      Abstimmung
      Siegerehrung
    • Meine Contests
      Bild Ein Schreibcontest in Arbeit! : D Bild
  • Joseys Spiele

    • Endless Ending
      :rmxp: Endless Ending
      (Arbeitstitel, "ernstes Projekt")

      Bild

      Eine Reise durch die Wüste.
      Sieben mächtige Gegenstände.
      Unendlich viele Aufgaben.

      Und die Götter haben die Würfel.
    • Scripted Desaster
      :rmxp: Scripted Desaster
      ("nicht ganz so ernstes Projekt")

      Ein verfressener Idiot und ein sarkastischer Workaholic treffen in einem dunklen Wald auf einen weißes Kaninchen...
      Ein Auftragskiller jagt einem Meisterdieb hinterher, wobei nicht ersichtlich ist, wer eigentlich wen jagt...
      Und eine "Kristallhöhle", sowie einen "Wald ohne Wiederkehr" gibts auch.

      Das bedeutet doch Spaß...
    • Pokémon EV
      :rmxp: Pokemon EV
      ("Zeitvertreib nebenbei - Kreatief-Helfer")

      Ist nur ein Pokemonspiel mit üblicher Story und nicht so üblicher Story.
      Ist inzwischen alles schonmal dagewesen. XD
    • Lost Island
      :rmxp: Harvest Moon - Lost Island
      (Arbeitstitel, "Eventtechnik-Projekt")

      Ist momentan mein Hauptprojekt, weil bei EE die Scripts einfach fehlen :<
      Das Spiel ist ein Harvest Moon Abklatsch. XD
      Felder funktionieren, Tiere auch, Grafiken sehen schon gut aus, Maps sind fast fertig. Man kann in die Miene, man kann einkaufen. Auf dem Papier ist alles schon durchgeplant, einiges muss noch umgesetzt werden.
  • Joseys Fortschritt

    • Endless Ending
      :hourglass: Story: 60%
      :foaf: Charas: 20%
      :leaf: Maps: 01%
      :ruby: Zeichnungen: 05%
      :color: Grafiken: 30%
      :clipboard: Scripte: 70%
      :music-beam-16: Musik: 00%
      ...ist nicht viel, huh? ^^°
    • Scripted Desaster
      :hourglass: Story: 10%
      :foaf: Charas: 60%
      :leaf: Maps: 30%
      :ruby: Zeichnungen: 01%
      :color: Grafiken: 60%
      :clipboard: Scripte: 70%
      :music-beam-16: Musik: 00%
      Gut Ding...
    • Pokemon EV
      :hourglass: Story: 60%
      :foaf: Charas: 10%
      :leaf: Maps: 00%
      :ruby: Zeichnungen: 00%
      :color: Grafiken: 80%
      :clipboard: Scripte: 90%
      :music-beam-16: Musik: 70%
      Nicht ernstnehmen XD Das mache ich nur, wenn woanders nix mehr geht...
    • Lost Island
      :hourglass: Story: 100%
      :foaf: Charas: 10%
      :leaf: Maps: 90%
      :ruby: Zeichnungen: 00%
      :color: Grafiken: 60%
      :clipboard: Scripte: 90%
      :music-beam-16: Musik: 00%
      Das macht richtig Spaß XD
  • Huiii

    Bitte klicken Sie weiter. Hier gibt es nichts zu sehen. Nichts. Hören Sie? Nichts.

Dieser Beitrag wurde bereits 6 mal editiert, zuletzt von »Josey« (18. März 2016, 18:27)


Social Bookmarks