Hallo liebe Community...
Ich habe mal wieder ein Problem...
Und zwar will die Scene_Map in folgendem Script nicht updaten(Die KI soll hier ablaufen):
module KI
ENEMY1_NAME = "Dwarf"
ENEMY1_INDEX = 0
NEUTRAL = {
"erobern" => false,
"rekrutieren" => false,
"fliehen" => false,
"angreifen" => false,
"verfolgen" => false,
"patroullieren" => false,
"bewachen" => false,
"einschreiten" => false,
"karten beschwören" => false,
"warten" => true,
"bewegen" => false
}
end
class Game_Gegner
attr_accessor :g1_ki
attr_accessor :g2_ki
attr_accessor :g3_ki
attr_accessor :g1_allianz
attr_accessor :g2_allianz
attr_accessor :g3_allianz
attr_accessor :g1_held
attr_accessor :g2_held
attr_accessor :g3_held
attr_accessor :e_tr1_moving
attr_accessor :e1_troop1
attr_accessor :e1_troop2
attr_accessor :e1_troop3
attr_accessor :e1_troop4
def initialize
@g1_ki = nil
@g2_ki = nil
@g3_ki = nil
@g1_allianz = nil
@g2_allianz = nil
@g3_allianz = nil
@g1_held = nil
@g2_held = nil
@g3_held = nil
@e_tr1_moving = false
@e1_troop1 = nil
@e1_troop2 = nil
@e1_troop3 = nil
@e1_troop4 = nil
end
end
class Scene_Map < Scene_Base
alias start_enemy start
def start
start_enemy
@karte = load_data(sprintf("Data/Map%03d.rvdata", $game_map.map_id))
$game_temp.cur_map = @karte
name_e1tr1 = "E1_Truppe1"
@e1_troop_1 = $game_map.events.values.find_all {|ev| ev.name == name_e1tr1}
name_e1tr2 = "E2_Truppe2"
@e1_troop_2 = $game_map.events.values.find_all {|ev| ev.name == name_e1tr2}
name_e1tr3 = "E3_Truppe3"
@e1_troop_3 = $game_map.events.values.find_all {|ev| ev.name == name_e1tr3}
name_e1tr4 = "E4_Truppe4"
@e1_troop_4 = $game_map.events.values.find_all {|ev| ev.name == name_e1tr4}
name_zita1_tür = "Zitadelle_Gegner1_Tür"
@z1_tür = $game_map.events.values.find_all {|ev| ev.name == name_zita1_tür}
name_kas_tür = "Kaserne_Tür"
@kaserne_tür = $game_map.events.values.find_all {|ev| ev.name == name_kas_tür}
$data_enemies[2].name = KI::ENEMY1_NAME
@e1_troop_1[0].set_graphic("$"+$data_enemies[2].name,KI::ENEMY1_INDEX) if not @e1_troop_1.empty?
$game_gegner.e1_troop1 = @e1_troop_1[0]
$game_gegner.e1_troop2 = @e1_troop_2[0]
$game_gegner.e1_troop3 = @e1_troop_3[0]
$game_gegner.e1_troop4 = @e1_troop_4[0]
end
alias update_enemy update
def update
update_enemy
act_condition_tr1
end
def act_condition_tr1
if KI::NEUTRAL["bewegen"] == true
if $game_gegner.e_tr1_moving == false
@this_x = rand(@karte.width)
@this_y = rand(@karte.height)
$game_gegner.e_tr1_moving = true
end
@e1_troop_1[0].force_path (@this_x, @this_y, false, 0)
if @e1_troop_1[0].x == @this_x and @e1_troop_1[0].y == @this_y
KI::NEUTRAL["warten"] = true
KI::NEUTRAL["bewegen"] = false
$game_gegner.e_tr1_moving = false
end
elsif KI::NEUTRAL["erobern"] == true
p(@kaserne_tür[0].id)
@this_x = @kaserne_tür[0].x
@this_y = @kaserne_tür[0].y + 1
if $game_gebäude.gemetzel_gebäude["Kaserne"] == nil or $game_gebäude.gemetzel_gebäude["Kaserne"] == 1
@e1_troop_1[0].force_path (@this_x, @this_y, false, 0)
if @e1_troop_1[0].pos?(@this_x,@this_y)
@wait_count = 420
$game_gebäude.gemetzel_gebäude["Kaserne"] = 2
end
else
KI::NEUTRAL["erobern"] = false
KI::NEUTRAL["warten"] = true
end
elsif KI::NEUTRAL["rekrutieren"] == true
elsif KI::NEUTRAL["fliehen"] == true
elsif KI::NEUTRAL["angreifen"] == true
elsif KI::NEUTRAL["verfolgen"] == true
@this_x = $game_player.x + 1
@this_y = $game_player.y
@e1_troop_1[0].force_path (@this_x, @this_y, false, 0)
elsif KI::NEUTRAL["patroullieren"] == true
@this_x = @z1_tür[0].x
@this_y = @z1_tür[0].y + 1
@old_x = @e1_troop_1[0].x
@old_y = @e1_troop_1[0].y
if @e1_troop_1[0].pos?(@old_x,@old_y)
@e1_troop_1[0].force_path (@this_x, @this_y, false, 0)
elsif @e1_troop_1[0].pos?(@this_x,@this_y)
@e1_troop_1[0].force_path (@old_x, @old_y, false, 0)
end
elsif KI::NEUTRAL["bewachen"] == true
elsif KI::NEUTRAL["einschreiten"] == true
@this_x = $game_player.x + 1
@this_y = $game_player.y
@e1_troop_1[0].force_path (@this_x, @this_y, false, 0)
elsif KI::NEUTRAL["karten beschwören"] == true
end
end
end
Habe auf der Map für Testzwecke ein call Scriptevent mit
KI::NEUTRAL["bewegen"] = true
KI::NEUTRAL["warten"] = false
Er switch die KI dann nicht um... :hilfe:
PS: Hab da ein paar scripte im game drin wodurch z.B. $game_gebäude.gemetzel_gebäude["Kaserne"] möglich ist ;)