World of Gothic Archiv > NWN-Hilfe
Wer hat lust auf Glücksspiel? :)
Seite 1 von 2  1  2 
12.07.2002, 01:20 #1
Gawain15
Beiträge: 1.084
Wer hat lust auf Glücksspiel? :)
Moinsen! Ich hab heute mal ein wenig an meinem Mod gearbeitet und unter anderem nen kleines "Würfelspielchen" gemacht, naja eigentlich ist es ziemlich bescheiden da ich es nicht hinkriege das der NPC sagt welche Zahlen erwürfelt wurden, vielleicht wieß ja einer Rat (Xerxes? :) ) Hier das Script wie es bisher ist (schlecht ist es eigentlich auch nicht, nur halt noch nicht ausgereift, funktioniert aber schon einwandfrei also könnt ihr es auch ruhig übernehmen).

Beim Gespräch unter "erfolgte Aktionen" einfügen

void main()
{
object oPC = GetPCSpeaker();
string sSprechen = "Du hast gewonnen *grummel* ich wette dieses mal hast du nicht mehr soviel Glück";
string sSprechen1 = "Du hast leider verloren... noch ein Spielchen?";
string sAngiff = "Das Reicht! So viel Glueck kann niemand haben, Zeit zu sterben Bastard!";
if (d6(1) > d6(1)){
SetLocalInt(OBJECT_SELF, "iErfolg", 1);
ActionSpeakString(sSprechen);
GiveGoldToCreature(oPC, 100);
AssignCommand(OBJECT_SELF, DelayCommand(2.0, ActionStartConversation(oPC)));}
else {
SetLocalInt(OBJECT_SELF, "iErfolg", 0);
ActionSpeakString(sSprechen1);
TakeGoldFromCreature(50, oPC);
AssignCommand(OBJECT_SELF, DelayCommand(2.0, ActionStartConversation(oPC)));}
if (GetLocalInt(OBJECT_SELF, "iErfolg") == 3)
{ActionSpeakString(sAngriff);
AdjustReputation(oPC, OBJECT_SELF, -100);}
}

Also, es werden 2 d6 Würfe gemacht und wenn der erste Wurf höher ist gewinnt der Spieler, wenn der 2. höher ist der NPC. Beim Gespräch hab ich es so gemacht das man einmal 50, 100 und 150 GM setzen kann. Gewinnt der Spieler bekommt er den doppelten Einsatz (er behält seine 50 und bekommt 50 dazu), verliert er wird ihm 50 weggenommen. Der NPC sagt anschließend wer gewonnen hat und spricht ihn 2 Sekunden später wieder an (ich hab eine Varibale gesetzt damit der NPC beim 2. Ansprechen "Na? Noch ein Spielchen gefällig?" sagt.) Ausserdem fällt mir grade ein das ich noch ein Problem hab... ist nen kleines dummes ding... wie erhöhe ich eine Variable um 1? Runtersetzen geht einfach aber wie addiere ich die blöden Dinger? (Damit der NPC den Spieler beim 3. erfolgreichen Würfeln angreift.) Und nun Problem Nummer 2: wer weiß wie ich die Ergebnisse der Würfe im Speakstring einbauen kann? Wenn ich zu erst würfeln lass mit ner Variable kann ich das Ergebnis auch nicht einbauen da es kein Include Befehl o.ä. gibt so weit ich sehen kann.

Ein paar andere Spiele folgen in kürze (mir schwebt schon was vor... das wird Hammer... dann sogar mit Animationen :) )

/e: achja, um zu checken ob der Spieler überhaupt genug Gold zum spielen hat noch folgendes bei "Text erscheint wenn..." einfügen:

int StartingConditional()
{
object oPC = GetPCSpeaker();
if(!GetGold(oPC)>50)
return FALSE;

return TRUE;
}

Das checkt ob der Spieler 50 Gold hat, bei anderen Höhen der Einsätzen muß die Zahl natürlich geändert werden. (Besser wäre es eigentlich die Abfrage im "würflscript" einzubauen aber ich hatte keine Lust mehr noch eine Textzeile zu schreiben... warum schreib ich eigentlich gerade das hier? :)
12.07.2002, 07:17 #2
Bluetooth
Beiträge: 59

Goiles Script, werd ich auf jeden Fall in mein Modul einbauen (wenn du erlaubst ). Leider kann ich dir bei deinen Prob nich helfen da ich selbst nich scripten kann :( .

cya
12.07.2002, 07:37 #3
criz
Beiträge: 39

hallo,

Variable um eins erhöhen: (nur bei int)

code\:

var++; oder ++var oder lang geschrieben var = var + 1;



float:

code\:

f = f + 1.0;



Problem 2:

probier folgendes (nur code fragmente)

code\:

int iPCWurf;
int iNPCWurf;

iPCWurf = d6(1);
iNPCWurf = d6(1);

if (iPCWurf > iNPCWurf)
{
// Spieler gewinnt
...
}
else if (iPCWurf == iNPCWurf)
{
// Gleichstand
...
}
else
{
// NPC gewinnt
...
}

// Ausagbe

string sWurfErgebnis = IntToString(iPCWurf) + ":" + IntToString(iNPCWurf);



// -> Es gibt eine FUnktion die einen Int Wert in einen String verwandelt, wie dieser nun genau lautet kann ich leider nicht mit 100% sicherheit sagen, da ich gerade in der arbeit bin, und keine funktionsliste vor mir habe... aber falls mich mein gedächnis nicht vollkommen verlassen hat sollts so gehen....

criz


___________________________

Meine Droge hat einen Namen:
RED BULL[/font]
12.07.2002, 08:56 #4
Paleswift
Beiträge: 154

.. und diese Funkiton heisst so.. :D
string IntToString(int nInteger);

.. und noch ne kleine Anmerkung:

d6(1) ist dasgleiche wie d6(),(ohne die 1 ) da diese Funktion den Defaultparameter 1 definiert hat.

Gugsdu:
int d6(int nDice=1);
12.07.2002, 10:37 #5
Bluetooth
Beiträge: 59

Also

ich hab zwar von Scipten net viel Ahnung aber da ich jetzt einbaue gucke ich mir es doch und muss mich fragen wo wird denn die Variable ausgewürfelt?( beim ersten Post).

Danke schonmal, ich werd erstmal weiterbauen...

cya
12.07.2002, 11:32 #6
criz
Beiträge: 39

hallo,

Gawain hat die Würflerei ;) gleich in eine zeile zusammengefasst:

code\:

if (d6(1) > d6(1))
{
...
}
else
{
...
}



der code ist völlig richtig, und man erspart sich ein wenig schreibarbeit, hat jedoch einige nachteile:

o bei Wurfgleichheit wird es entweder als sieg oder niederlage gewertet (oben als niederlage)

o man kann die wurfergebnisse kein 2. mal verwenden bzw. irgendwo speichern und später als text wieder ausgeben

alles klar?
criz


___________________________

Meine Droge hat einen Namen:
RED BULL[/font]
12.07.2002, 11:45 #7
Bluetooth
Beiträge: 59

ja is soweit alles klar;
ich bau grad den kompletten code zusammen damit ihn jeder hat und ich kommentiere ihn auch noch

insofern cya

EDIT: HAAAHAA erwischt, da ich den Code ja gründlich durchgehe sehe ich einen Rechtschreibfehler gefunden Gawain15 :D

Beim speakString sAngiff muss noch ein R hin :D

dann kommt dein Code soweit hin ;)
12.07.2002, 11:59 #8
Janzomaster
Beiträge: 257

Ich habe das Toolset noch nich benutzt, aber kann es sein das die Script Sprache sehr PHP ähnelt?
12.07.2002, 12:19 #9
criz
Beiträge: 39

... und eigentlich nein.

Die Scriptsprache (hat die eigentlich auch einen Namen?) ist der Programmiersprache C weit aus ähnlicher,

o) denn php kennt keine void main()

o) php hat keine variablentypen ala int, string, object usw..

o) usw.. usw..

criz
12.07.2002, 12:23 #10
Bluetooth
Beiträge: 59

Hier nun der Code wie er komplett funzen sollte.
Ich habe alles eingebracht was hier im Forum genannt wurde und habe es auch kommentiert

Es geht los: (wie macht man dieses Code Dingens )

void main()
{
int iPCWurf;
int iNPCWurf;
int iErfolg; // Hier werden einfach alle Variablen deklariert

iPCWurf = d6(); //Hier werden die Variablen auf einen bestimmten Wert gesetzt
iNPCWurf = d6();
iErfolg = 0; //bzw. sie werden ausgewuerfelt

object oPC = GetPCSpeaker(); //es folgen hier noch weitere Deklarationen
string sSprechen = "Du hast gewonnen *grummel* hier das Doppelte deines Einsatzes";
string sSprechen1 = "Du hast leider verloren... noch ein Spielchen?";
string sSprechen2 = "Huch die Wrfel haben die gleiche Augenzahl.Noch ein Spielchen?";
string sAngriff = "Das Reicht! Keiner hatte bis jetzt soviel Glueck! Zeit zu sterben Bastard!";

if (iPCWurf > iNPCWurf) //Ueberpruefung welcher Wurf hoeher ist,
{ //hier wird geprueft ob der Spieler hoeher gewuerfelt hat als der NPC
iErfolg = iErfolg + 1; //Wir setzten die Variable einer hoeher; wird spaeter verwendet
ActionSpeakString(sSprechen); //Der vorher definierte String wird aufgesagt
GiveGoldToCreature(oPC, 100); //Ganz wichtig: Hier krieg der Spieler das Gold :D
AssignCommand(OBJECT_SELF, DelayCommand(2.0, ActionStartConversation(oPC))); //Nach 2 Sekunden neues Gespaech anfangen
}

else if (iPCWurf == iNPCWurf) //Ab hier wird immer wieder fast das Gleiche gemacht wie oben
{
SetLocalInt(OBJECT_SELF, "iErfolg", 0);
ActionSpeakString(sSprechen2);
AssignCommand(OBJECT_SELF, DelayCommand(2.0, ActionStartConversation(oPC)));
}
else
{
SetLocalInt(OBJECT_SELF, "iErfolg", 0);
ActionSpeakString(sSprechen1);
TakeGoldFromCreature(50, oPC);
AssignCommand(OBJECT_SELF, DelayCommand(2.0, ActionStartConversation(oPC)));
}
if (GetLocalInt(OBJECT_SELF, "iErfolg") == 3) //Sollte der Spieler dreimal hintereinander gewonnen haben, greift der NPC den Spieler an
{
ActionSpeakString(sAngriff); //Tja hier wird noch nen flotter Satz gesagt
AdjustReputation(oPC, OBJECT_SELF, -100); // Hier weiss ich es nich ganz genau, vermute aber das der Spieler beim NPC schlecht gemacht wird
}
} //ENDE :D kommentiert und ein bisschen verbessert von Bluetooth jedoch war die Grundlage der Code von Gawain15 !


okay das wars, ich hoffe ich habe nichts vergessen

@ Janzomaster
Diese Sprache kennt man auch aus Bereichen wie C, C++ usw.
natürlich gehört PHP wahrscheinlich auch dazu weiß es aber net ganz genau da ich PHP nich kenne


cya
12.07.2002, 12:24 #11
Bluetooth
Beiträge: 59

Mir fällt grad auf das der immer noch nich sagt welche Zahl er gwürfelt hat das mach ich noch schnell und editier es dann

EDIT: Argh, könnte einer mal Paleswift Post für mich verständlich machen? Seins hab ich gar nich kapiert jedoch hab ich in diese Script Datenbank geguckt und wenigstens etwas verstanden, jedoch kommt das hier:

Meine Befehle
sPCWurf StringToInt(int iPCWurf)
sNPCWurf StringToInt(int iNPCWurf)
Der Fehler
FEHLER: KEIN SEMIKOLON NACH ANWEISUNG

helft mir...
12.07.2002, 12:40 #12
Gawain15
Beiträge: 1.084

Ich bin im Moment so weit:

void main()
{
object oPC = GetPCSpeaker();
string sSprechen = "IntToString(iPCwurf)" + "Du hast gewonnen *grummel* ich wette dieses mal hast du nicht mehr soviel Glück!";
string sSprechen1 = "Du hast leider verloren... noch ein Spielchen?";
string sSprechen2 = "Unentschieden! So etwas hab ich lange nicht mehr gesehen, da muessen wir nocheinmal Wuerfeln.";
int iAddi = iAddi + 1;
string sAngriff = "Das Reicht! So viel Glueck kann niemand haben, Zeit zu sterben Bastard!";
int iPCwurf = d6(1);
int iNPCwurf = d6(1);
if (iPCwurf > iNPCwurf){
SetLocalInt(OBJECT_SELF, "iAddi", iAddi);
ActionSpeakString(sSprechen);
GiveGoldToCreature(oPC, 100);
AssignCommand(OBJECT_SELF, DelayCommand(2.0, ActionStartConversation(oPC)));}
else if (iPCwurf == iNPCwurf){
SetLocalInt(OBJECT_SELF, "iAddi", iAddi);
ActionSpeakString(sSprechen2);
AssignCommand(OBJECT_SELF, DelayCommand(2.0, ActionStartConversation(oPC)));}
else {
SetLocalInt(OBJECT_SELF, "iAddi", 0);
ActionSpeakString(sSprechen1);
TakeGoldFromCreature(50, oPC);
AssignCommand(OBJECT_SELF, DelayCommand(2.0, ActionStartConversation(oPC)));}
if (GetLocalInt(OBJECT_SELF, "iAddi") == 3)
{ActionSpeakString(sAngriff);
AdjustReputation(oPC, OBJECT_SELF, -100);}
}


/e: ahcja es wird nicht gesagt wie hoch der Wurf war... übigens kann ich nur PHP und daher sind mir die Sachen realtiv unbekannt :)
12.07.2002, 12:40 #13
Paleswift
Beiträge: 154

Also.. NwScript, PHP und C haben etwas gemeinsam - das ist richtig.
Was sie gemeinsam haben ist die Syntax.. die ähnelt sich bei allen sehr. Urvater dieser art von Syntax ist das gute und mittlerweile alte C (Erfindung von C glaube ich um 1980 durch so nen Hacker damals, der mit den üblichen Programmiersprachen unzufrieden war, da die so ellenlangen Code hatten.)
Was haben sie außer der Syntax noch gemeinsam? Antwort: NICHTS!
C ist eine Programmiersprache.. die anderen beiden sind Scriptsprachen. Was ist der unterschied zwischen einer Programmier- und einer Scriptsprache - ganz einfach. Eine Programmiersprache muss kompiliert werden. Das heisst, sie wird in für den Prozessor verständlichen Code übersetzt. Komplexe Strukturen werden aufgelöst und dann in ganz einfache Befehle, die der Prozessor ausführen kann umgewandelt. Eine Scriptsprache muss nicht kompiliert werden - und wird sie Kompiliert, dann stellt das nur eine Optimierung für den Interpreter da. Nun was ist ein Interpreter? Auch ganz einfach: Das ist ein Programm, welches den Scriptcoe zur Laufzeit des Programms in für den Prozessor verständliche Anweisungen übersetzt. Also.. bei der Programmiersprache wird direkt kompiliert, bei der Scriptsprache wird erst kompiliert, wenn das Script benötigt wird. Ist vielleicht jetzt etwas verwirrend..
Zusammenfassend:
C - ist eine equentielle Programmiersprache
C++ - ist eine Weiterentwicklung von C. C++ arbeitet objektorientiert. (Genau wie Java z.B.)
PHP ist eine reine Scriptsprache. Der Interpreter wird als Modul an den Webserver gebunden. Übrigens: PHP ist ansatzweise ebenfalls objektorientiert.
NWNScript ist eine Scriptsprache. Der Scriptcode wird via Compiler optimiert und auf Fehler geprüft. (Er übersetzt jedoch nicht in Maschienencode) Der Code wird von einem im Server eingebundenen Interpreter ausgeführt. Ist jetzt NWScript objektorientiert? Ja und nein. Es wird zwar mit Objekten gearbeitet, jedoch ist es nicht möglich eigene Objekte zu definieren.

Alles klar? Nein? dann gut.
12.07.2002, 12:44 #14
Gawain15
Beiträge: 1.084

PHP 5 soll übrigens mehr in Richtung Objektorientiertes gehen...
12.07.2002, 13:01 #15
criz
Beiträge: 39

Kleiner Vorschlag:

Wie wärs mit eine wenig mehr Spannung im Dialog?

NPC: Spielchen?
PC: JA
delay...
NPC:
bei wurf zwischen 1-2 : Ich hab eine ..., mann ist das schlecht...
bei wurf zwischen 3-4 : Ich hab eine ..., mal sehen was du wirfst..
bei wurf zwischen 5-6 : Ha Ha, mit einer ... hab ich so gut wie gewonnen...
delay
NPC:
mom, mal sehen ... du hast eine ...

--> weiter zu sieg,unentschieden,niederlage.. usw...

criz

p.s. dialog texte sind nur schemenhaft, müssten natürlich noch schmuckhafter getextet werden.
12.07.2002, 13:02 #16
Paleswift
Beiträge: 154

@Bluetooth
Wahrscheinlich haste das mit dem Defaultparameter nicht verstanden, oder?
quote:
Zitat von Paleswift
.. und noch ne kleine Anmerkung:
d6(1) ist dasgleiche wie d6(),(ohne die 1 ) da diese Funktion den Defaultparameter 1 definiert hat.
...
int d6(int nDice=1);



also:
In der Funktionsdefinition steht doch folgendes:
int d6(int nDice=1);
Das bedeutet:
int     Die Funktion gibt dir eine Integer-Zahl zurück, wenn du sie aufrufst.
d6     Der Name der Funktion.
(     Hier beginnt die Liste der Parameter, die der Funktion übergeben werden.
int nDice=1     es muss eine IntegerZahl übergeben werden. Wird keine übergeben wird der Defaultwert 1 genommen (Das ist das mit dem =1 hinter nDice)
);     Die Parameterliste ist zu ende und die Funktion auch.

Alles klar? Nein? gut!
12.07.2002, 13:20 #17
Bluetooth
Beiträge: 59

@Paleswift

Nope weiß leider immer noch nicht wies geht,
hast du vielleicht die Güte mir das anhand meinem Script zu zeigen?

Ich glaub das würd ich besser verstehen :D

@criz
in meinen Augen zu viel des Guten da man ja an so nem Stand nich Stunden verbringen wird ;)

cya
12.07.2002, 13:20 #18
Gawain15
Beiträge: 1.084

So aber nun beruhigen wir uns mal wieder alle und kommen von der "Fachdiskussion" weg und helfen dem lieben kleinen Gawain :) es wird immer noch nicht das Würfelergebnis ausgegeben...
12.07.2002, 13:30 #19
Paleswift
Beiträge: 154

@Bluetooth

Es ist wurscht ob du in deinem Script

int nErgebnis = d6(1);

oder

int nErgebnis = d6();

hinschreibst. Das ist alles.

@Gawain
Im Script oben sind nämlich noch einige Fehler.. ;)
Ich machs fertig, wenn ich daheim vor dem Toolset sitze. Ich stells dann als Beispielmodul bei PlanetNwN rein..
12.07.2002, 13:35 #20
criz
Beiträge: 39

@Bluetooth: naja, man könnte schon. ich jedenfalls.

ich bin der 100% scripter, das texten inkl. deutscher rechtschreibung und grammatik überlasse ich gerne anderen...

criz
12.07.2002, 13:39 #21
Gawain15
Beiträge: 1.084

Was? Fehler? Einige? Unmöglich :)
12.07.2002, 13:51 #22
Paleswift
Beiträge: 154

Folgendes:

(Siehe Komentare im Text)

quote:
Zitat von Gawain15
Ich bin im Moment so weit:

void main()
{
object oPC = GetPCSpeaker();
string sSprechen = "IntToString(iPCwurf)" + "Du hast gewonnen *grummel* ich wette dieses mal hast du nicht mehr soviel Glück!";
//==>> Wenn die Funktion in Anführungszeichen steht wird sie ja wohl nicht ausgeführt, oder? Wenn du die Anführungszeichen weglässt, dann kennt er die Variable iPCwurf nicht stimmts?
string sSprechen1 = "Du hast leider verloren... noch ein Spielchen?";
string sSprechen2 = "Unentschieden! So etwas hab ich lange nicht mehr gesehen, da muessen wir nocheinmal Wuerfeln.";
int iAddi = iAddi + 1; // <- Was soll das? Das gibt garantiert nen Fehler.. ( iAddi ist zwar deklariert aber noch nicht initiert - Und deshalb: Unbekannter Wert = Unbekannter Wert +1; macht keinen Sinn.)
Da fehlt garantiert noch folgende Zeile: iAddi = GetLocalInt(OBJECT_SELF,"iAddi"); oder so ähnlich..
string sAngriff = "Das Reicht! So viel Glueck kann niemand haben, Zeit zu sterben Bastard!";
int iPCwurf = d6(1); // <- Wie gesagt.. d6(); tuts auch.. aber nicht falsch.
int iNPCwurf = d6(1);
if (iPCwurf > iNPCwurf){
SetLocalInt(OBJECT_SELF, "iAddi", iAddi); // <- Wäre es nicht sinnvoller das beim PC zu speichern anstatt beim NPC? wenn spieler A 2 mal gewinnt, steht iAddi auf 2 und dann kommt Spieler b und würfelt, und gewinnt 1 mal und kriegt dresche weil er nur einmal gewonnen hat.
ActionSpeakString(sSprechen);
GiveGoldToCreature(oPC, 100);
AssignCommand(OBJECT_SELF, DelayCommand(2.0, ActionStartConversation(oPC)));
}
else if (iPCwurf == iNPCwurf){
SetLocalInt(OBJECT_SELF, "iAddi", iAddi);
ActionSpeakString(sSprechen2);
AssignCommand(OBJECT_SELF, DelayCommand(2.0, ActionStartConversation(oPC)));}
else {
SetLocalInt(OBJECT_SELF, "iAddi", 0);
ActionSpeakString(sSprechen1);
TakeGoldFromCreature(50, oPC);
AssignCommand(OBJECT_SELF, DelayCommand(2.0, ActionStartConversation(oPC)));}
if (GetLocalInt(OBJECT_SELF, "iAddi") == 3)
{ActionSpeakString(sAngriff);
AdjustReputation(oPC, OBJECT_SELF, -100);
//<- Nicht ein wenig heftig die Reputation des PC zu versauen, nur weil er 3 mal gewinnt? Da täte es auch wenn der Spieler ne eigene Faction bekommt und dann sich diese ändert.
}
}


/e: ahcja es wird nicht gesagt wie hoch der Wurf war... übigens kann ich nur PHP und daher sind mir die Sachen realtiv unbekannt :) // <- Siehe oben.. kein Wunder.



12.07.2002, 14:16 #23
Gawain15
Beiträge: 1.084

Ok was ist der Unterschied zwischen Alignment und Reputation? Reputation ändert das verhältnis zwischen Spieler und NPC Faction und Alignment ändert den Bekanntheitsgrad oder? Ich habs so das der NPC den depp (Spieler :) ) in ne Gasse lockt ("psssst, hey du... ja du! Komm mal hier herrüber") und dann wird gewürfelt... und wenn der Spieler dreimal hintereinander gewinnt wird der Würfelheini sauer und er und seine Jungs dreschen drauf los.

int iAddi = iAddi + 1; // <- Was soll das? Das gibt garantiert nen Fehler..

SetLocalInt(OBJECT_SELF, "iAddi", iAddi); also er soll eigentlich die Variable iAddi erstmal auslesen und dann iAddi +1 setzen... Sollte man das lieber mit 2 verschiedenen machen?
12.07.2002, 14:16 #24
Omega Darkblade
Beiträge: 257

Cool :)
achja falls jemand das brauch, ich hätte die passenden sound Datein dafür.(aus bg2 geklaut )
12.07.2002, 14:25 #25
Paleswift
Beiträge: 154

quote:
Zitat von Gawain15
Ok was ist der Unterschied zwischen Alignment und Reputation? Reputation ändert das verhältnis zwischen Spieler und NPC Faction und Alignment ändert den Bekanntheitsgrad oder? Ich habs so das der NPC den depp (Spieler :) ) in ne Gasse lockt ("psssst, hey du... ja du! Komm mal hier herrüber") und dann wird gewürfelt... und wenn der Spieler dreimal hintereinander gewinnt wird der Würfelheini sauer und er und seine Jungs dreschen drauf los.

Der Unterschied zwischen Alignment und Reputation?

Alignment ist nicht der Bekanntheitsgrad , sondern ich glaube das ist, ober der Charakter gut oder böse ist, oder?

Und wenn du einfach nur die Reputation änderst, dann sind ale aus der Faction Commoner sauer auf die aus der Faction der Spieler. Dat wäre net so schlau. Gib dem Gambler ne eigene Faction.. dann sind halt alle aus der Faction Gambler sauer auf die Spieler.. das ist aber glaube ich ok.. oder mach nur ein ActionAtack(oPC) das sollte es auch tun.. Aber die Faction würde ich trotzdem ändern.. Weil beim Tod des Gamblers sonst die Reputation trotzdem geändert wird. Und das is sch... (Dann greift nämlich die nächste Oma an der Strassenecke die Spieler an, oder ist zumindestens sauer.. und das kommt irgendwie blöd..)
Seite 1 von 2  1  2