Opferlamm-Clan Board
www.opferlamm-clan.de
Verantwortlich für diese bösen Machenschaften: siehe Impressum

Registrierung Kalender Mitgliederliste Suche Häufig gestellte Fragen Zur Startseite

Opferlamm-Clan Board » Call of Duty 4 » Call of Duty 4 - Mapping » CoD4-Mapping-Hilfe » Laufgeschwindigkeit » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Neues Thema erstellen Antwort erstellen
Zum Ende der Seite springen Laufgeschwindigkeit
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
DjTranceFire
Teetrinker


Dabei seit: 24.02.2012
Beiträge: 36


Laufgeschwindigkeit Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Hallo Leute.
Ganz neu bin ich beim Mappen zwar nicht, habe bis jetzt aber nur eine kleine Anfängermap für einen Jumpmod gebastelt welche von allem nur das einfachste in sich hatte.
Nun hab ich mich nach einigen Monaten doch mal wieder ans mappen gesetzt da mich das Thema einfach nicht losgelassen hat, macht halt einfach Spaß. Mein momentanes Projekt wird wieder eine Jumpmap nur soll sie diesmal etwas aufwändiger werden was für mich im Klartext bedeutet: auf gehts mit den Scripts. Bisher habe ich damit keiner Erfahrung, habe es aber gestern schonmal hinbekommen einen funktionierenden Teleporter einzubauen. Jetzt will ich aber etwas einbauen für das ich leider nirgends etwas gefunden habe.. unglücklich
Meine Idee ist ein Gebiet in welchem die Laufgeschwindigkeit der Person beeinflusst wird. Ungefähr so wie bei Minecraft mit dem Soul Sand. Wichtig ist aber das es wirklich nur auf die Person einfluss nimmt welche sich genau in dem Gebiet befindet und nicht auf andere. Auch sollte das ganze aufhören sobald das Gebit verlassen wird. Nun war meine Hoffnung das ich hier jemanden finde der vllt schonmal sowas gebaut hat bzw. sowas erstellen könnte. Aber eins direkt vornweg. Ich würde mich zwar tierisch über eine kleine Anleitung sowie ein fertiges Script freuen welches ich dann nur noch einbauen muss, eine kleine Erklärung von der ganzen Sache wäre aber wirklich super damit ich dabei wenigstens etwas lerne und in Zukunft vllt das ein oder andere auch mal selber hinbekomme. Bin halt lernbegierig! grosses Grinsen Hoffe das mir hier vllt jemand helfen kann, vielen dank schonmal im vorraus! smile

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von DjTranceFire: 24.02.2012 23:31.

DjTranceFire ist offline Beiträge von DjTranceFire suchen Nehmen Sie DjTranceFire in Ihre Freundesliste auf
serthy
Codemeister


images/avatars/avatar-104.jpg


Dabei seit: 29.07.2010
Beiträge: 628


Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

trigger_multiple in die map mit KVP : targetname/soulsand_trigger

Code einblendenCode angehängt. Klicke hier zum Ein-/Ausblenden

code:
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:
init()
{
	// alle trigger mit KVP : targetname/soulsand_trigger in ein array schreiben
	trigger = getentArray( "soulsand_trigger" , "targetname" );

	// alle einzelnen trigger rufen die Think()-funktion auf
	for( i = 0 ; i < trigger.size ; i++ )
	{
		triggers[i] thread soulSandThink();
	}
}

soulSandThink()
{
	// self = ein trigger aus dem array
	while( isDefined( self ) ) //solange es den trigger gibt...
	{
		self waittill( "trigger" , player ); // ...wartet er bis er von einem spieler ausgelöst wird

		// falls der spieler am leben ist, soll er schneller laufen (soulSandTrigger()-funktion aufrufen)
		// falls der spieler schon im trigger ist, ignore...
		if( isAlive( player ) && player.sessionstate == "playing" && !isDefined( player.soulsandtrigger ) )
			player thread soulSandTrigger( self ); 

		// mit "thread" rufst du die funktion glaichzeitig auf, würde das fehlen wartet diese funktion solange bis die andere fertig ist
	}
}

soulSandTrigger( trigger )
{
	// self = der spieler

	// falls dem spieler eines von den events passiert, stoppe die funktion
	self endon( "disconnect" );
	self endon( "death" );

	// kleiner fix, sonst geht es nur 1x ^^
	self thread onDeath();

	// solange der spieler den trigger berührt, veränder den speed
	while( isDefined( trigger ) && self isTouching( trigger ) && isAlive( self ) && self.sessionstate == "playing" )
	{
		self setMoveSpeedScale( 1.5 );
	}
	
	// falls er ihn nicht mehr berührt, wieder normal
	self setMoveSpeedScale( 1.0 );
} 

onDeath()
{
	self.soulsandtrigger = undefined;
}



ich weiß allerdings nicht ob der geht, aber das ist was mir so sponatn dazzu einfiel

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von serthy: 25.02.2012 00:50.

serthy ist offline E-Mail an serthy senden Beiträge von serthy suchen Nehmen Sie serthy in Ihre Freundesliste auf
DjTranceFire
Teetrinker


Dabei seit: 24.02.2012
Beiträge: 36


Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Danke, habs mal ausprobiert aber es scheint nicht zu funktionieren. Die Geschwindigkeit bleibt die selbe wenn man durchläuft..
Zeile 9 musste ich ändern weil er mit "triggers" nichts anfangen konnte, daran dürfte es aber wohl nicht liegen oder?^^

Da ich ja neu bin hier im Forum und dazu nichts gefunden habe frage ich hier einfach mal ganz direkt.. Wie siehts hier aus wenn es mehrere Probleme/Fragen gibt? Alles in einen Thread oder lieber mehrere aufmachen? Also wenn sie nicht grad was miteinander zutun haben..^^
DjTranceFire ist offline Beiträge von DjTranceFire suchen Nehmen Sie DjTranceFire in Ihre Freundesliste auf
serthy
Codemeister


images/avatars/avatar-104.jpg


Dabei seit: 29.07.2010
Beiträge: 628


Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

habs getestet + geht, falls nicht, wschreib nochmal

Code einblendenCode angehängt. Klicke hier zum Ein-/Ausblenden

code:
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:
init()
{
	// alle trigger mit KVP : targetname/soulsand_trigger in ein array schreiben
	triggers = getentArray( "soulsand_trigger" , "targetname" );

	// alle einzelnen trigger rufen die Think()-funktion auf
	for( i = 0 ; i < triggers.size ; i++ )
	{
		triggers[i] thread soulSandThink();
	}
}

soulSandThink()
{
	// self = ein trigger aus dem array
	while( isDefined( self ) ) //solange es den trigger gibt...
	{
		self waittill( "trigger" , player ); // ...wartet er bis er von einem spieler ausgelöst wird

		// falls der spieler am leben ist, soll er schneller laufen (soulSandTrigger()-funktion aufrufen)
		// falls der spieler schon im trigger ist, ignore...
		if( isAlive( player ) && player.sessionstate == "playing" && !isDefined( player.soulsandtrigger ) )
			player thread soulSandTrigger( self ); 

		// mit "thread" rufst du die funktion glaichzeitig auf, würde das fehlen wartet diese funktion solange bis die andere fertig ist
	}
}

soulSandTrigger( trigger )
{
	// self = der spieler

	// falls dem spieler eines von den events passiert, stoppe die funktion
	self endon( "disconnect" );
	self endon( "death" );

	// kleiner fix, sonst geht es nur 1x ^^
	self thread onDeath();

	self.soulsandtrigger = true;
	self thread onEnter();

	// solange der spieler den trigger berührt, bleibe bei dem speed
	while( isDefined( trigger ) && self isTouching( trigger ) && isAlive( self ) && self.sessionstate == "playing" )
	{
		wait( 1.0 );
		self thread onTouch();
	}
	
	// falls er ihn nicht mehr berührt, wieder normal
	self thread onExit();
	self.soulsandtrigger = undefined;
	self notify( "soulsand_exit" );
} 

onDeath()
{
	self endon( "soulsand_exit" );

	self waittill( "death" );

	self.soulsandtrigger = undefined;
}

onEnter()
{
	// hier kommt das rein was passieren soll wenn du den trigger zum 1. mal berührst
	self iprintln( "Enter" );
}

onTouch()
{
	// hier das während du im trigger bist (wiederholt sich dann jede sekunde)
	self iprintln( "..." );
}

onExit()
{
	// hier das wenn du ihn wieder verlässt
	self iprintln( "Exit" );
}

serthy ist offline E-Mail an serthy senden Beiträge von serthy suchen Nehmen Sie serthy in Ihre Freundesliste auf
DjTranceFire
Teetrinker


Dabei seit: 24.02.2012
Beiträge: 36


Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Also irgendwie habe ich das Gefühl das ich momentan einfach zu dumm zum scripten bin.. unglücklich
Habe das ganze jetzt mal ausprobiert aber es funktioniert bei mir einfach nicht..
Irgendwo mach ich was verkehrt, nur wo?
Rechtsklick > Trigger > Multiple
targetname/soulsand_trigger
Dann das ganze in die .gsc rein und dann sollte doch eigentlich alles klappen oder? unglücklich
DjTranceFire ist offline Beiträge von DjTranceFire suchen Nehmen Sie DjTranceFire in Ihre Freundesliste auf
serthy
Codemeister


images/avatars/avatar-104.jpg


Dabei seit: 29.07.2010
Beiträge: 628


Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

genau mehr hab ich auch nicht gemacht
du musst natürlich das aufrufen in deiner mapname.gsc
also thread init();
und darunter dann mein script
serthy ist offline E-Mail an serthy senden Beiträge von serthy suchen Nehmen Sie serthy in Ihre Freundesliste auf
DjTranceFire
Teetrinker


Dabei seit: 24.02.2012
Beiträge: 36


Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Irgendwie bekomme ich das ganze nicht so richtig hin.. grosses Grinsen
Hättest du vllt Zeit und Lust dich mal mit mir im TS zusammen zu setzen um mir bei dem Problem zu helfen? Irgendwo mache ich wohl einen entscheidenen Fehler.. :x
DjTranceFire ist offline Beiträge von DjTranceFire suchen Nehmen Sie DjTranceFire in Ihre Freundesliste auf
serthy
Codemeister


images/avatars/avatar-104.jpg


Dabei seit: 29.07.2010
Beiträge: 628


Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

klar würde es mit TS gehen, aber dann wäre ja ein forum sinnlos smile
ich kann dir da auch nur erklären was ich hier schreiben würde, und mit cod4 modden (außer scripting) kenne ich mich nicht aus

mal eine checkliste:
- ist eine mapname.gsc vorhanden?
- wenn SP dann muss sie in maps-ordner
- wenn MP dann muss sie in den maps/mp-ordner
- in der mapname.gsc muss eine main() {} funktion sein
- in die main() schreibst du einfach thread init();
- dann fügst du den script ein
- map compilieren, ff erstellen, was auch immer nötig ist
- testen
serthy ist offline E-Mail an serthy senden Beiträge von serthy suchen Nehmen Sie serthy in Ihre Freundesliste auf
DjTranceFire
Teetrinker


Dabei seit: 24.02.2012
Beiträge: 36


Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Hab das Problem behoben.. grosses Grinsen Hab wärend ich auf eine Antwort gewartet habe mit einem anderem Script rumgespielt und dadurch gemerkt das ich "thread init();" an der falschen Stelle eingefügt habe.. grosses Grinsen Beim compilen dann grade mal in den Thread geguckt und deine Antwort gesehen.. grosses Grinsen Klappt alles wunderbar <3 Vielen Dank für deine Hilfe! smile
DjTranceFire ist offline Beiträge von DjTranceFire suchen Nehmen Sie DjTranceFire in Ihre Freundesliste auf
Baumstruktur | Brettstruktur
Gehe zu:
Neues Thema erstellen Antwort erstellen
Opferlamm-Clan Board » Call of Duty 4 » Call of Duty 4 - Mapping » CoD4-Mapping-Hilfe » Laufgeschwindigkeit

Impressum ||Datenschutzerklärung

Forensoftware: Wbb - WoltLab GmbH || zum Archiv