zu 1
mit event commands gibts 2 möglichkeiten (wobei die letzte wohl ein wenig mit rgss arbeitet)
1)
rechne doch einfach mit ganzzahligen prozent statt dezimalbrüchen.
2/5 wäre 40%
also
2*100/5=40
wichtig dabei ist, dass vor dem dividieren mit 100 multipliziert wird.
(ansonsten kommt 0 dabei raus)
wenn du jetzt 40 prozent von zb 120 haben willst rechnest du
120*40/100=48
in diesem fall muss möglichst spät durch 100 geteilt werden.
(ansonsten kommt 40 raus)

2)
wenn eine zahl in der rechnung bereits eine gleitkommazahl ist ist das ergebnis ebenfalls von diesem typ.
durch
$game_variables[ID] = $game_variables[ID].to_f
wird die zahl zu einer gleitkommazahl.
nun kannst du diese variable ganz normal über event commands durch eine größere zahl teilen etc.
die zahl wird aber automatisch wieder eine ganze zahl wenn du ihr einen wert zuordnest ("set" müste die operation bei den event commands lauten)


die komplette rgss lösung wäre
Code:
prozent = $game_variables[1].to_f / $game_variables[2]
$game_variables[3] *= prozent
var 1 und 2 ergeben hierbei den prozent wert, welcher in "prozent" zwischen gespeichert wird.
danach wird variable 3 mit dem prozent wert multipliziert.


zu 3
das über switches zu regeln wäre nicht so gut da es erneut für alle events gilt.
es sei denn es soll eh für alle events auf einer karte gelten dann is das ganze kein problem.

um es über switches/variablen zu machen kannst du hinter turn_toward_player eine if anweisung schreiben
bsp
turn_toward_player if $game_switches[ID] == true
oder
turn_toward_player if $game_variables[ID] == 1337
bei den switches ist true => an und false => aus
wie es mit den variablen funktioniert sollte eigtl klar sein...
hat die var den wert 1337 dreht sich das event zum helden.

falls sich dieses drehen aber nur für bestimmte events gelten soll kann ich dir folgende möglichkeit ans herz legen
turn_toward_player unless @event.name.include?("DIRFIX")
in diesem fall drehen sich nur die events die NICHT DIRFIX im namen haben (das feld oben links bei den events).
(im namen haben bedeutet "aBcDIRFIX42dEf" wird ebenfalls akzeptiert - aber daran denken dirfix groß zu schreiben)