Seite 1 von 2 12 LetzteLetzte
Zeige Ergebnis 1 bis 15 von 16
  1. #1
    Staff Maps
    Map-Contests
    Benutzerbild von muzzel
    Registriert seit
    Sep 2008
    Ort
    BaWü
    BNet Account
    muzzel
    Beiträge
    3.229

    [Wurst] BonusHandler

    [Wurst] BonusHandler 1.3

    Wurst-Äquivalent zu BonusMod.

    Boni:
    • Life
    • Mana
    • Damage
    • Armor
    • Sightrange
    • Liferegen
    • Manaregen (wahlweise prozentual oder absolut)
    • Attackspeed
    • Strength
    • Agility
    • Intelligence


    Die erforderliche Objectdata wird von Wurst generiert und muss nur noch über die normale Objekteditor Importfunktion importiert werden.

    Code:
    Code:
    package BonusHandler
    // By muzzel - Version 1.3 - Credits: Crigges, Earth-Fury
    import BonusHandlerConfig
    import AbilityObjEditing
    import ObjectIds
    
    int array powersOf2
    int array rawShifts
    int rawShiftNeg
    BonusType array bonusTypes
    
    public enum Bonus
    	LIFE
    	MANA
    	DAMAGE
    	ARMOR
    	SIGHTRANGE
    	LIFEREGEN
    	MANAREGEN
    	ATTACKSPEED
    	STRENGTH
    	AGILITY
    	INTELLIGENCE
    
    /** Sets the bonus of specified type for the unit to the given amount. */
    public function setUnitBonus(unit u, Bonus bonusType, int amount)
    	bonusTypes[bonusType castTo int].setBonus(u, amount)
    
    /** Sets the bonus of specified type for the unit to zero. */
    public function clearUnitBonus(unit u, Bonus bonusType)
    	bonusTypes[bonusType castTo int].clearBonus(u)
    
    /** Gets the highest applicable value for the specified bonus type. */
    public function getMaxBonus(Bonus bonusType) returns int
    	return powersOf2[bonusTypes[bonusType castTo int].maxBonus - 1]
    
    /** Gets the smallest applicable value for the specified bonus type. */
    public function getMinBonus(Bonus bonusType) returns int
    	return -powersOf2[bonusTypes[bonusType castTo int].maxBonus]
    	
    /** Removes all bonuses from the specified unit. */
    public function clearAllUnitBonuses(unit u)
    	bonusTypes[Bonus.LIFE castTo int].clearBonus(u)
    	bonusTypes[Bonus.MANA castTo int].clearBonus(u)
    	bonusTypes[Bonus.DAMAGE castTo int].clearBonus(u)
    	bonusTypes[Bonus.ARMOR castTo int].clearBonus(u)
    	bonusTypes[Bonus.SIGHTRANGE castTo int].clearBonus(u)
    	bonusTypes[Bonus.LIFEREGEN castTo int].clearBonus(u)
    	bonusTypes[Bonus.MANAREGEN castTo int].clearBonus(u)
    	bonusTypes[Bonus.ATTACKSPEED castTo int].clearBonus(u)
    	bonusTypes[Bonus.STRENGTH castTo int].clearBonus(u)
    	bonusTypes[Bonus.AGILITY castTo int].clearBonus(u)
    	bonusTypes[Bonus.INTELLIGENCE castTo int].clearBonus(u)
    	
    
    /** Enumeration of the bonustypes. */
    class BonusType
    	int baseRaw
    	int maxBonus
    	
    	construct(int baseRaw, int maxBonus)
    		this.baseRaw = baseRaw
    		this.maxBonus = maxBonus
    	
    	function setBonus(unit u, int bonus)
    		if bonus >= powersOf2[maxBonus]
    			printWarning("Bonus exceeds maximum")
    			return
    		if bonus < -powersOf2[maxBonus]
    			printWarning("Bonus exceeds minimum")
    			return
    		
    		int val
    		var raw = baseRaw + rawShiftNeg
    		if bonus < 0
    			u.addAbility(raw)
    			UnitMakeAbilityPermanent(u, true, raw)
    			val = bonus + powersOf2[maxBonus]
    		else
    			val = bonus
    			UnitMakeAbilityPermanent(u, false, raw)
    			u.removeAbility(raw)
    			
    		for n = maxBonus-1 downto 0
    			raw = baseRaw + rawShifts[n]
    			if val >= powersOf2[n]
    				u.addAbility(raw)
    				UnitMakeAbilityPermanent(u, true, raw)
    				val -= powersOf2[n]
    			else
    				UnitMakeAbilityPermanent(u, false, raw)
    				u.removeAbility(raw)
    				
    	function clearBonus(unit u)
    		var raw = baseRaw + rawShiftNeg
    		UnitMakeAbilityPermanent(u, false, raw)
    		u.removeAbility(raw)
    		for n = 0 to maxBonus-1
    			raw = baseRaw + rawShifts[n]
    			UnitMakeAbilityPermanent(u, false, raw)
    			u.removeAbility(raw)
    		
    	
    /** Example: 'XY00' + shiftRaw(15) -> 'XY15' */
    function shiftRaw(int n) returns int
    	if n < 10
    		return n
    	else
    		return (n div 10) * 256 + n.moduloInt(10)
    	
    
    /** Example: pow2(x) -> 2^x */
    function pow2(int e) returns int
    	if e == 0
    		return 1
    	return 2 * pow2(e-1)
    
    function setProperties(AbilityDefinition a, string suffix, string bonusName)
    	a.setItemAbility(false)
    	a.setEditorSuffix("(" + suffix + ")")
    	a.setIconNormal("ReplaceableTextures\\CommandButtons\\BTNPenguin.blp")
    	a.setName("BonusHandler - " + bonusName)
    
    
    init
    	for n = 0 to 30 // if u need bonuses higher than 1 billion u should rethink your map design...
    		powersOf2[n] = Pow(2, n.toReal()).toInt()
    	for n = 0 to 30
    		rawShifts[n] = shiftRaw(n)
    	rawShiftNeg = '00--' - '0000'
    	
    	bonusTypes[Bonus.LIFE castTo int] = new BonusType('$L00', MAX_BONUS_LIFE)
    	bonusTypes[Bonus.MANA castTo int] = new BonusType('$M00', MAX_BONUS_MANA)
    	bonusTypes[Bonus.DAMAGE castTo int] = new BonusType('$D00', MAX_BONUS_DAMAGE)
    	bonusTypes[Bonus.ARMOR castTo int] = new BonusType('$R00', MAX_BONUS_ARMOR)
    	bonusTypes[Bonus.SIGHTRANGE castTo int] = new BonusType('$V00', MAX_BONUS_SIGHTRANGE)
    	bonusTypes[Bonus.LIFEREGEN castTo int] = new BonusType('$l00', MAX_BONUS_LIFEREGEN)
    	bonusTypes[Bonus.MANAREGEN castTo int] = new BonusType('$m00', MAX_BONUS_MANAREGEN)
    	bonusTypes[Bonus.ATTACKSPEED castTo int] = new BonusType('$P00', MAX_BONUS_ATTACKSPEED)
    	bonusTypes[Bonus.STRENGTH castTo int] = new BonusType('$S00', MAX_BONUS_STRENGTH)
    	bonusTypes[Bonus.AGILITY castTo int] = new BonusType('$A00', MAX_BONUS_AGILITY)
    	bonusTypes[Bonus.INTELLIGENCE castTo int] = new BonusType('$I00', MAX_BONUS_INTELLIGENCE)
    	
    
    @compiletime function genAbilities()
    	string rawCode
    	// Life:
    	rawCode = "$L"
    	for n = 0 to MAX_BONUS_LIFE
    		string raw
    		int sign = 1
    		if n < MAX_BONUS_LIFE
    			raw = rawCode
    			if n < 10
    				raw = raw + "0"
    			raw = raw + I2S(n)
    		else
    			raw = rawCode + "--"
    			sign = -1
    		let a = new AbilityDefinitionMaxLifeBonusLeast(idString2IdInteger(raw))
    		a.setMaxLifeGained(1, sign * pow2(n))
    		setProperties(a, I2S(sign * pow2(n)), "Life")
    		
    	// Mana:
    	rawCode = "$M"
    	for n = 0 to MAX_BONUS_MANA
    		string raw
    		int sign = 1
    		if n < MAX_BONUS_MANA
    			raw = rawCode
    			if n < 10
    				raw = raw + "0"
    			raw = raw + I2S(n)
    		else
    			raw = rawCode + "--"
    			sign = -1
    		let a = new AbilityDefinitionMaxManaBonusMost(idString2IdInteger(raw))
    		a.setMaxManaGained(1, sign * pow2(n))
    		setProperties(a, I2S(sign * pow2(n)), "Mana")
    	// Damage:
    	rawCode = "$D"
    	for n = 0 to MAX_BONUS_DAMAGE
    		string raw
    		int sign = 1
    		if n < MAX_BONUS_DAMAGE
    			raw = rawCode
    			if n < 10
    				raw = raw + "0"
    			raw = raw + I2S(n)
    		else
    			raw = rawCode + "--"
    			sign = -1
    		let a = new AbilityDefinitionAttackBonus(idString2IdInteger(raw))
    		a.setAttackBonus(1, sign * pow2(n))
    		setProperties(a, I2S(sign * pow2(n)), "Damage")
    		
    	// Armor:
    	rawCode = "$R"
    	for n = 0 to MAX_BONUS_ARMOR
    		string raw
    		int sign = 1
    		if n < MAX_BONUS_ARMOR
    			raw = rawCode
    			if n < 10
    				raw = raw + "0"
    			raw = raw + I2S(n)
    		else
    			raw = rawCode + "--"
    			sign = -1
    		let a = new AbilityDefinitionDefenseBonusPlus1(idString2IdInteger(raw))
    		a.setDefenseBonus(1, sign * pow2(n))
    		setProperties(a, I2S(sign * pow2(n)), "Armor")
    
    	// Sightrange:
    	rawCode = "$V"
    	for n = 0 to MAX_BONUS_SIGHTRANGE
    		string raw
    		int sign = 1
    		if n < MAX_BONUS_SIGHTRANGE
    			raw = rawCode
    			if n < 10
    				raw = raw + "0"
    			raw = raw + I2S(n)
    		else
    			raw = rawCode + "--"
    			sign = -1
    		let a = new AbilityDefinitionSightBonus(idString2IdInteger(raw))
    		a.setSightRangeBonus(1, sign * pow2(n))
    		setProperties(a, I2S(sign * pow2(n)), "Sightrange")
    
    	// Liferegen:
    	rawCode = "$l"
    	for n = 0 to MAX_BONUS_LIFEREGEN
    		string raw
    		int sign = 1
    		if n < MAX_BONUS_LIFEREGEN
    			raw = rawCode
    			if n < 10
    				raw = raw + "0"
    			raw = raw + I2S(n)
    		else
    			raw = rawCode + "--"
    			sign = -1
    		let a = new AbilityDefinitionRegenLife(idString2IdInteger(raw))
    		a.setHitPointsRegeneratedPerSecond(1, sign * pow2(n))
    		setProperties(a, I2S(sign * pow2(n)), "Liferegen")
    
    	// Manaregen:
    	rawCode = "$m"
    	for n = 0 to MAX_BONUS_MANAREGEN
    		string raw
    		int sign = 1
    		if n < MAX_BONUS_MANAREGEN
    			raw = rawCode
    			if n < 10
    				raw = raw + "0"
    			raw = raw + I2S(n)
    		else
    			raw = rawCode + "--"
    			sign = -1
    		if IS_MANAREGEN_PERCENTAL
    			let a = new AbilityDefinitionItemRegenMana(idString2IdInteger(raw))
    			a.setManaRegenerationBonusasfractionofnormal(1, sign * pow2(n) / 100.)
    			setProperties(a, I2S(sign * pow2(n)) + "%", "Manaregen")
    		else
    			let a = new AbilityDefinitionNeutralRegenmanaonly(idString2IdInteger(raw))
    			a.setPercentage(1, false)
    			a.setAreaofEffect(1, 1)
    			a.setTargetsAllowed(1, "self")
    			a.setAmountRegenerated(1, sign * pow2(n) / 200.)
    			a.setRace("other")
    			setProperties(a, I2S(sign * pow2(n)), "Manaregen")
    
    	// Attackspeed:
    	rawCode = "$P"
    	for n = 0 to MAX_BONUS_ATTACKSPEED
    		string raw
    		int sign = 1
    		if n < MAX_BONUS_ATTACKSPEED
    			raw = rawCode
    			if n < 10
    				raw = raw + "0"
    			raw = raw + I2S(n)
    		else
    			raw = rawCode + "--"
    			sign = -1
    		let a = new AbilityDefinitionAttackSpeedIncrease(idString2IdInteger(raw))
    		a.setAttackSpeedIncrease(1, sign * pow2(n) / 100.)
    		setProperties(a, I2S(sign * pow2(n)) + "%", "Attackspeed")
    
    	// Strength:
    	rawCode = "$S"
    	for n = 0 to MAX_BONUS_STRENGTH
    		string raw
    		int sign = 1
    		if n < MAX_BONUS_STRENGTH
    			raw = rawCode
    			if n < 10
    				raw = raw + "0"
    			raw = raw + I2S(n)
    		else
    			raw = rawCode + "--"
    			sign = -1
    		let a = new AbilityDefinitionStrengthBonusPlus1(idString2IdInteger(raw))
    		a.setStrengthBonus(1, sign * pow2(n))
    		setProperties(a, I2S(sign * pow2(n)), "Strength")
    
    	// Agility:
    	rawCode = "$A"
    	for n = 0 to MAX_BONUS_AGILITY
    		string raw
    		int sign = 1
    		if n < MAX_BONUS_AGILITY
    			raw = rawCode
    			if n < 10
    				raw = raw + "0"
    			raw = raw + I2S(n)
    		else
    			raw = rawCode + "--"
    			sign = -1
    		let a = new AbilityDefinitionAgilityBonusPlus1(idString2IdInteger(raw))
    		a.setAgilityBonus(1, sign * pow2(n))
    		setProperties(a, I2S(sign * pow2(n)), "Agility")
    
    	// Intelligence:
    	rawCode = "$I"
    	for n = 0 to MAX_BONUS_INTELLIGENCE
    		string raw
    		int sign = 1
    		if n < MAX_BONUS_INTELLIGENCE
    			raw = rawCode
    			if n < 10
    				raw = raw + "0"
    			raw = raw + I2S(n)
    		else
    			raw = rawCode + "--"
    			sign = -1
    		let a = new AbilityDefinitionIntelligenceBonusPlus1(idString2IdInteger(raw))
    		a.setIntelligenceBonus(1, sign * pow2(n))
    		setProperties(a, I2S(sign * pow2(n)), "Intelligence")
    Konfiguration:
    Die Maximalen Bonuswerte kann man einstellen indem man ein Package "BonusHandlerConfig" erzeugt, dort kann auch festgelegt werden ob der Manaregen Bonus prozentual oder absolut ist.
    Beispiel:
    Code:
    package BonusHandlerConfig
    /**
     * Values are the exponents to base 2.
     * 2^9=512, 2^10=1024, 2^11=2048, 2^12=4096 etc.
     */
    
    public constant int MAX_BONUS_LIFE = 12
    public constant int MAX_BONUS_MANA = 12
    public constant int MAX_BONUS_DAMAGE = 10
    public constant int MAX_BONUS_ARMOR = 10
    public constant int MAX_BONUS_SIGHTRANGE = 11
    public constant int MAX_BONUS_LIFEREGEN = 4
    public constant int MAX_BONUS_MANAREGEN = 10
    public constant int MAX_BONUS_ATTACKSPEED = 9
    public constant int MAX_BONUS_STRENGTH = 9
    public constant int MAX_BONUS_AGILITY = 9
    public constant int MAX_BONUS_INTELLIGENCE = 9
    public constant boolean IS_MANAREGEN_PERCENTAL = false
    Anbei eine Testmap und ein Archiv mit dem Eclipseprojekt.

    Changelog:
    1.3 - Es kann zwischen absolutem oder prozentualem Manaregen Bonus gewählt werden, WurstDoc konforme Kommentare
    1.2 - Anpassung an Änderung in der Wurst StdLib
    1.1 - Boni für maximale HP und Mana hinzugefügt
    1.0 - Erstes Release

    Credits:
    - Crigges
    - Earth-Fury
    Geändert von muzzel (28. Januar 2014 um 03:37 Uhr) Grund: Update

    <Argon]> in der zeit, in der ich das mit tikz gebastelt hab, hätt ich das als 2m^2 holzskulptur schnitzen können
    <Argon]> mit nem Skalpell
    Penguin World Domination - be part of it!
    » LaTeX2png Converter | Gaias Retaliation ORPG | Ulumulu Entertainment | AAT

  2. #2
    poste sowas auf hive!!!


  3. #3
    Benutzerbild von Bhusta
    Registriert seit
    Feb 2010
    Ort
    NRW
    Beiträge
    286
    Zitat Zitat von pred1980 Beitrag anzeigen
    poste sowas auf hive!!!
    hör auf den kindergarten zu supporten! - und hat er schon, mein ich.

    Edit: ach ne war der BuffHandler, mein Fehler
    Geändert von Bhusta (18. Oktober 2013 um 08:26 Uhr)

  4. #4
    Kindergarten?


  5. #5
    Benutzerbild von Crigges
    Registriert seit
    Mai 2011
    Ort
    Auf der alten Mutter Erde
    BNet Account
    curryking
    Beiträge
    775
    Mich interessert eher das generieren der abilitys. Du sagtest, man müsse die abilitys via OE importieren. Ich dachte compiletime functions sollen genau das ersparen, und die abilitys würden automatisch zur map hinzugefügt wenn man die compiletime functions runt.
    Die Intelligenz des Zufalls ist unübertroffen!

    Wurster gesucht!!!

    Für schnelle Hilfe:
    -Der inwc IRC
    -Skype: Crigges

  6. #6
    Staff Maps
    Map-Contests
    Benutzerbild von muzzel
    Registriert seit
    Sep 2008
    Ort
    BaWü
    BNet Account
    muzzel
    Beiträge
    3.229
    Es ist auf hive, http://www.hiveworkshop.com/forums/s...andler-243242/

    Zitat Zitat von Crigges Beitrag anzeigen
    Mich interessert eher das generieren der abilitys. Du sagtest, man müsse die abilitys via OE importieren. Ich dachte compiletime functions sollen genau das ersparen, und die abilitys würden automatisch zur map hinzugefügt wenn man die compiletime functions runt.
    Nein, genau so funktionieren die Wurst Compiletimenatives.

    Sie generieren beim kompilieren eine Datei die die erzeugten Objektdaten enthält, welche dann über die normale Importfunktion vom Objekteditor importiert werden kann. Die Objekte müssen also nicht manuell angelegt werden sondern können alle auf einmal importiert werden, allerdings wird die Datei beim kompilieren der Map neu erzeugt wodurch die Boni konfigurierbar bleiben.

    http://peq.github.io/WurstScript/man...object_editing

    <Argon]> in der zeit, in der ich das mit tikz gebastelt hab, hätt ich das als 2m^2 holzskulptur schnitzen können
    <Argon]> mit nem Skalpell
    Penguin World Domination - be part of it!
    » LaTeX2png Converter | Gaias Retaliation ORPG | Ulumulu Entertainment | AAT

  7. #7
    was ist das ein spell oder sowas

  8. #8
    Staff Maps
    Map-Contests
    Benutzerbild von muzzel
    Registriert seit
    Sep 2008
    Ort
    BaWü
    BNet Account
    muzzel
    Beiträge
    3.229
    Nein, es ist ein System mit dem man einer Unit per Trigger beliebige Boni zu Schade, Rüstung, Attackspeed, Life/Mana-regen usw. geben kann.

    <Argon]> in der zeit, in der ich das mit tikz gebastelt hab, hätt ich das als 2m^2 holzskulptur schnitzen können
    <Argon]> mit nem Skalpell
    Penguin World Domination - be part of it!
    » LaTeX2png Converter | Gaias Retaliation ORPG | Ulumulu Entertainment | AAT

  9. #9
    super sowas kann ich gut gebrauchen

  10. #10

  11. #11
    Staff Maps
    Map-Contests
    Benutzerbild von muzzel
    Registriert seit
    Sep 2008
    Ort
    BaWü
    BNet Account
    muzzel
    Beiträge
    3.229
    Update: gibt jetzt auch max Life/Mana

    <Argon]> in der zeit, in der ich das mit tikz gebastelt hab, hätt ich das als 2m^2 holzskulptur schnitzen können
    <Argon]> mit nem Skalpell
    Penguin World Domination - be part of it!
    » LaTeX2png Converter | Gaias Retaliation ORPG | Ulumulu Entertainment | AAT

  12. #12
    Co-Sektionsleiter Maps
    Gewinner 40. ArtContest
    Benutzerbild von Frotty
    Registriert seit
    Okt 2008
    Ort
    Weedtown
    BNet Account
    Frotty
    Beiträge
    3.061
    Zitat Zitat von Crigges Beitrag anzeigen
    Mich interessert eher das generieren der abilitys. Du sagtest, man müsse die abilitys via OE importieren. Ich dachte compiletime functions sollen genau das ersparen, und die abilitys würden automatisch zur map hinzugefügt wenn man die compiletime functions runt.
    Compiltime Natives führen einfach etwas zur compiletime aus.
    OE Dateien erstellen ist eine Funktion.
    Wir fügen es nicht direkt in die mapmpq ein, weil dies
    1. zu Fehlern führte (fehlerhafte felder, oder es löschte nur die alten)
    2. das manuelle importieren den OE refresht, es wird also alles aktuell angezeigt anstatt die map neuzuladen wie es bei vjass der Fall war.
    Das kostet dich nur 4 Sekunden.

    @pred1980

    Ich denke du hast das schon verstanden und ich gebe bhusta recht.

    @muzz

    Fast alle Items geben prozentuale regenerations-boni, das sollte schon passen.
    Kannst aber auch beide Varianten hinzufügen.

    Füg doch bitte noch ein peeeq-link ein (für syntax hl)

    Die "//" Kommentare alle zu "/** */" umwandeln, damit es auch als hot-doc benutzt wird.

    Zusätzlich könntest du noch add/remove - bonus implementieren.

  13. #13
    Staff Maps
    Map-Contests
    Benutzerbild von muzzel
    Registriert seit
    Sep 2008
    Ort
    BaWü
    BNet Account
    muzzel
    Beiträge
    3.229
    Joa zu HotDoc steht im WurstManual afaik nichts, daher war ich mir der Konventionen nicht bewusst (bzw nichtmal dass schon welche existieren). Ändere ich.

    Zu den Add/Remove, hab schon drüber nachgedacht aber würde bedeuten dass man erst den aktuellen Wert getten muss und danach die Differenz settet. Das getten ist *relativ* umständlich da man dazu die Level der Dummyfähigkeiten getten muss und den Wert zurückrechnet. Das funktioniert schon, aber imo sollte BonusMod/BonusHandler sowieso nur als unterste Schicht verwendet werden mit einer weiteren Schicht darüber die beispielsweise über ein Unit Indexing System die momentanen Werte speichert wodurch das getten wegfällt und auch Add/Remove überflüssig werden.

    Könnte es natürlich trotzdem hinzufügen, muss man ja nicht benutzen...

    Zu Manaregen: gleichzeitig beides, prozentual und absolut anzubieten ist vlt nicht die beste Lösung da es Chaos gibt wenn man beides mischt. Man könnte vlt ein Flag einbauen was die verwendete Basisfähigkeit toggled, oder man baut doch beides ein und vertraut darauf dass der Benutzer immer nur eins verwendet...

    Sind peeeq.de pastes eigentlich permanent oder werden die nach n Tagen gelöscht?

    <Argon]> in der zeit, in der ich das mit tikz gebastelt hab, hätt ich das als 2m^2 holzskulptur schnitzen können
    <Argon]> mit nem Skalpell
    Penguin World Domination - be part of it!
    » LaTeX2png Converter | Gaias Retaliation ORPG | Ulumulu Entertainment | AAT

  14. #14
    permanent soweit ich das weiß. Ich kann ihn ja ma fragen


  15. #15
    Staff Maps
    Map-Contests
    Benutzerbild von muzzel
    Registriert seit
    Sep 2008
    Ort
    BaWü
    BNet Account
    muzzel
    Beiträge
    3.229
    Update: Funktioniert jetzt wieder mit der aktuellen StdLib.
    (War kurzzeitig nicht der Fall da einige der ObjGen natives der StdLib verändert wurden)

    <Argon]> in der zeit, in der ich das mit tikz gebastelt hab, hätt ich das als 2m^2 holzskulptur schnitzen können
    <Argon]> mit nem Skalpell
    Penguin World Domination - be part of it!
    » LaTeX2png Converter | Gaias Retaliation ORPG | Ulumulu Entertainment | AAT

Seite 1 von 2 12 LetzteLetzte

Ähnliche Themen

  1. Probleme mit Wurst Installation
    Von Dark_Light im Forum Triggerforum
    Antworten: 0
    Letzter Beitrag: 11. September 2013, 02:05
  2. Wurst-Script Anfang
    Von apsyll im Forum Triggerforum
    Antworten: 12
    Letzter Beitrag: 10. August 2013, 12:15

Forumregeln

  • Es ist dir nicht erlaubt, neue Themen zu verfassen.
  • Es ist dir nicht erlaubt, auf Beiträge zu antworten.
  • Es ist dir nicht erlaubt, Anhänge hochzuladen.
  • Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.
  •