Forum

> > Stranded II > Scripts > Scripting - Fragen/Probleme
Forums overviewStranded II overview Scripts overviewLog in to reply

German Scripting - Fragen/Probleme

6,780 replies
Page
To the start Previous 1 2293 294 295339 340 Next To the start

old Re: Scripting - Fragen/Probleme

T-REX0113
User Off Offline

Quote
Das scritp funktioniert deshalb nicht weil es von dem Maschinengewehr oder Maschinenpistole der extension mod ist. Das script ist so ausgelegt das es NUR mit dieser waffe funktioniert und nihct mit der GG. Man müsste das script komplett umschreiben damit es geht.

old Re: Scripting - Fragen/Probleme

Fallout 1 Master
User Off Offline

Quote
Hi ich hab ma ne Frage,denke ma hier passt es am besten:

Und zwar ist seit neuem ein Fehler neim Machinengewehr und Pistole.
Und zwar habe ich z.B 20 Magazine.
Und die Waffe ausgerüstet.
Da werden ja normalerweise die Magazine mit angezeigt.
Aber sie werden nicht angezeigt.
Es steht immer da "Ich sollte erst nachladen".
Das Problem war schon vor der GG da.

old Re: Scripting - Fragen/Probleme

CineRuSS
User Off Offline

Quote
ok hier das gnaze Script mit der Muni:

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
82
id=1002
name=Ammobox
icon=gfx\ext\icons\ammoclip.bmp
model=gfx\ext_plugin\GG-Ammo.3ds
info=Muni für viele Waffen
scale=1000
weight=150






id=1003
name=Gatling
icon=gfx\ext_plugin\gatling.bmp
group=ext,weapon
model=gfx\ext_plugin\gatling.3ds
scale=1000
behaviour=gatlinggun
range=20000
mat=metal
weight=4900
info=Die Waffe ist so schnell man sieht es kaum !
health=1500
healthchange=0
damage=3
rate=1
#param=damage,3
param=isfirearm,1
param=rate,2000
param=ammoclip,1002
param=ammotype,1004
param=ammoamount,500
script=start
	on:attack1 {
		if (gety("unit",1)<-15) {
			speech "negative";
			skipevent;
			skip;
		}
		//Waffe geladen?
		$ammo=getlocal("unit",1,"reloaded1003");
		if ($ammo>0) {
			$ammo--;
			setlocal "unit",1,"reloaded1003",$ammo;
			play "pistol.wav",1,0,44100;
			local $pitch;
			$pitch=getpitch("unit",1);
			if ($pitch>-80) {
				setrot "unit",1,($pitch-1),"self","self";
			}
		} else {
			msg "Ich sollte erstmal nachladen!",3;
			skipevent;
		}
	}

	//ggf. nachladen
	if (($s2g_firearms_automatic==1)&&($ammo==0)) {
		event "reload1","unit",1;
	}


	on:impact {
		$tmp=impact_class();
		$tmp2=impact_id();
		//+16 Bonus Damage on Flesh
		if (compare_material($tmp,$tmp2,"flesh")==1) {
			damage $tmp,$tmp2,16;
		//+48 Bonus Damage on Glass
		} elseif (compare_material($tmp,$tmp2,"glass")==1) {
			damage $tmp,$tmp2,48;
		}
		freevar $tmp;
		freevar $tmp2;
	}

	on:inhand {
		play "take_ak.wav";
	}
script=end


was ist da falsch ? es schießt nicht !

Erbitte schnellstmöglich Hilfe.... ich will bald nen Video machen

old Re: Scripting - Fragen/Probleme

quester
User Off Offline

Quote
CineRuSS has written
ok hier das gnaze Script mit der Muni:

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
82
83
id=1002
name=Ammobox
icon=gfx\ext\icons\ammoclip.bmp
model=gfx\ext_plugin\GG-Ammo.3ds
info=Muni für viele Waffen
scale=1000
weight=150






id=1003
name=Gatling
icon=gfx\ext_plugin\gatling.bmp
group=ext,weapon
model=gfx\ext_plugin\gatling.3ds
scale=1000
behaviour=[b]machine[/b]gun
[b]Es sollte auch ein exestierender Behavior ausgewählt werden[/b]
range=20000
mat=metal
weight=4900
info=Die Waffe ist so schnell man sieht es kaum !
health=1500
healthchange=0
damage=3
rate=1
#param=damage,3
param=isfirearm,1
param=rate,2000
param=ammoclip,1002
param=ammotype,1004
param=ammoamount,500
script=start
	on:attack1 {
		if (gety("unit",1)<-15) {
			speech "negative";
			skipevent;
			skip;
		}
		//Waffe geladen?
		$ammo=getlocal("unit",1,"reloaded1003");
		if ($ammo>0) {
			$ammo--;
			setlocal "unit",1,"reloaded1003",$ammo;
			play "pistol.wav",1,0,44100;
			local $pitch;
			$pitch=getpitch("unit",1);
			if ($pitch>-80) {
				setrot "unit",1,($pitch-1),"self","self";
			}
		} else {
			msg "Ich sollte erstmal nachladen!",3;
			skipevent;
		}
	}

	//ggf. nachladen
	if (($s2g_firearms_automatic==1)&&($ammo==0)) {
		event "reload1","unit",1;
	}


	on:impact {
		$tmp=impact_class();
		$tmp2=impact_id();
		//+16 Bonus Damage on Flesh
		if (compare_material($tmp,$tmp2,"flesh")==1) {
			damage $tmp,$tmp2,16;
		//+48 Bonus Damage on Glass
		} elseif (compare_material($tmp,$tmp2,"glass")==1) {
			damage $tmp,$tmp2,48;
		}
		freevar $tmp;
		freevar $tmp2;
	}

	on:inhand {
		play "take_ak.wav";
	}
script=end


was ist da falsch ? es schießt nicht !

Erbitte schnellstmöglich Hilfe.... ich will bald nen Video machen

Sonst einfach mal die Fehlermeldung sagen, damit man auch was machen kann.

old Re: Scripting - Fragen/Probleme

T-REX0113
User Off Offline

Quote
ich bin echt am verzweifeln:

Ich will das wenn ein timer abgelaufen ist das dann an einem bestimmten Info 3 einheizen erzeugt werden aber es klappt nicht. sie werden immer neben mir plaziert und es kommt ein error. unit with ID 106 does not exits.

1
2
3
4
5
6
7
8
9
10
on:trigger { 
	$id=create ("unit",202);
	  getx("info",4),gety("info",4),getz("info",4);
	$id=create ("unit",202);
	  getx("info",4),gety("info",4),getz("info",4);
	$id=create ("unit",202);
	  getx("info",4),gety("info",4),getz("info",4);

	free "self";
}

was mach ich falsch?

old Re: Scripting - Fragen/Probleme

Hurri04
Super User Off Offline

Quote
wie man schön bei s2 cmd create sehen kann, kann man beim create-befehl auch direkt die x- und z- position angeben (y brauchst du garnicht, weil die unit eh automatisch auf terrain-höhe gesetzt wird)

wenn ich da richtig verstanden habe, dann willst du, dass alle 3 units an der gleichen info erstellt werden? (falls es sich dabei um aggressive units handelt, also solche, die den spieler direkt angreifen, dann solltest du besser 3 verschiedene infos nehmen, da es sonst aussieht, als wäre es nur eine unit, da sich alle 3 gleichzeitig auf den spieler zubewegen.)

ansonsten brauchst du dann aber nur einmal den x- und z- wert des infos zu bestimmen, allerdings sind das mehrere befehle.

des weiteren empfielt es sich hier, eine s2 cmd loop -schleife zu benutzen.

1
2
3
4
5
6
7
8
on:trigger {
	$x=getx("info", 4);
	$z=getz("info", 4);
	loop("count", 3) {
		$id=create("unit", 202, $x, $z);
	}
	free "self";
}
(Edit: habe einen kleinen fehler im script verbessert )
edited 2×, last 07.12.09 10:43:09 pm

old Re: Scripting - Fragen/Probleme

Nova
User Off Offline

Quote
Ich würde folgendes Script empfehlen, ist allerdings geschmackssache:
1
2
3
4
5
6
7
8
on:trigger
	{
	loop ("count", 3)
		{
		$id = create ("unit", 202);
		setat "unit", $id, "info", 4;
		}
	}

old Re: Scripting - Fragen/Probleme

T-REX0113
User Off Offline

Quote
Ah danke für die Hilfe.

@Hurri04:

Wenn man 3 einheiten auf 3 unterschiedliche Infos machen will muss das script dann aussehen?

Und noch ein problem:

Wenn du Units gespawnt werden (per script) wie mache ich das, das wenn die Tot sind eine msg kommt.
Ich habe das so probiert aber das geht nicht.

1
2
3
4
5
6
7
8
9
on:trigger { 
     $x=getx("info", 4); 
     $z=getz("info", 4); 
     loop("count", 3) { 
          $id=create("unit", 202, $x, $z); 
	  addscript "unit",$id,"maps/bla.txt","unit";
     } 
     free "self"; 
}

und in der datei steht das:

1
2
3
4
5
//~unit

on:kill { $units= count("unit",$id);
		msg "$units verbleiben",4;
	}

Warum klappt das nicht wenn ich eine Unit kille das dann die msg kommt: 2 verbleiben?
und wenn alle tot sind müsste doch eine msg kommen mit: 0 verbleiben.

old Re: Scripting - Fragen/Probleme

Nova
User Off Offline

Quote
Du musst beachten: Typ ist nicht gleich ID
Die ID ist für jede Einheit einzigartig. Jede Einheit auf der Karte bekommt eine feste ID welche sie bis zu ihrem Tod behält.
Der Typ dagegen ist für jede Einheitenart identisch. So haben z. B. alle Raptoren den Typ 2.

Du musst bei s2 cmd count daher den Typ angeben. Der wäre 202 bei dir. Beachte allerdings, dass count ALLE Einheiten des Typs auf der Map zählt. Du darfst also die Einheiten nur für das Script benutzten, für nichts sonst.

old Re: Scripting - Fragen/Probleme

Hurri04
Super User Off Offline

Quote
wenn du 3 einheiten bei 3 verschiedenen infos spawnen willst, dann musst du natürlich auch die verscheidene x- und z- werte ermitteln, (des weiteren kannst du dann natürlich auch kein loop mehr nehmen).

1
2
3
4
5
6
7
8
9
10
11
12
13
14
on:trigger { 
	$x1=getx("info", [HIER DIE ID VON INFO 1 EINSETZEN]); 
	$x2=getx("info", [HIER DIE ID VON INFO 2 EINSETZEN]); 
	$x3=getx("info", [HIER DIE ID VON INFO 3 EINSETZEN]); 
	$z1=getz("info", [HIER DIE ID VON INFO 1 EINSETZEN]); 
	$z2=getz("info", [HIER DIE ID VON INFO 2 EINSETZEN]); 
	$z3=getz("info", [HIER DIE ID VON INFO 3 EINSETZEN]); 

	$id=create("unit", 202, $x1, $z1); 
	$id=create("unit", 202, $x2, $z2); 
	$id=create("unit", 202, $x3, $z3); 

	free "self"; 
}
(die IDs natürlich ohne die eckigen klammern außen rum)

old Re: Scripting - Fragen/Probleme

T-REX0113
User Off Offline

Quote
edit:

es geht immer noch nicht. Also die units werden gespawnt aber wenn ich einen kill kommt die msg nicht.

1
2
3
4
5
6
7
8
9
//~native

on:kill { 
	$units= count("unit",202);
	if ($units==0) { msg "Welle 1 Überstanden",4;
	}else{
	msg "$units verbleiben",3;
	}
}

und bei dem Timer steht das drin:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
on:trigger {
     $x1=getx("info",4); 
     $x2=getx("info",5); 
     $x3=getx("info",6); 
     $z1=getz("info",4); 
     $z2=getz("info",5); 
     $z3=getz("info",6); 

     $id=create("unit", 202, $x1, $z1); 
     $id=create("unit", 202, $x2, $z2); 
     $id=create("unit", 202, $x3, $z3); 

     addscript "unit",202,"maps/dm/dm.txt","native";

     free "self"; 
}

aber die msg wird einfach nicht angezeigt. kein scrip fehler oder error kommt, nichts.
edited 1×, last 08.12.09 05:19:54 pm

old Re: Scripting - Fragen/Probleme

Hurri04
Super User Off Offline

Quote
hmm, also ich seh da jetzt auf den ersten blick keinen fehler (muss aber nichts heißen )

was vllt interssant wäre zu wissen wäre wie oft der timer denn ausgelöst wird.
wenn das nämlich z.b. jede halbe sekunde passiert, kann es bei aufwändigen scripts, insbesondere bei solchen, die noch auf ein zusätzliches script zugreifen, wie es bei dir der fall ist, schon mal gerne zu überlastungen kommen.
die ergebnisse fallen dabei schonmal unterschiedlich aus, entweder das spiel hängt sich komplett auf oder es hängt sich für ein paar sekunden auf und läuft danach wieder oder vllt werden auch befehle einfach nicht ausgeführt (?) ...

old Re: Scripting - Fragen/Probleme

T-REX0113
User Off Offline

Quote
also der timer ist auf 3 sekunden eingestellt und er wird nur 1 mal benutzt also nach starten des spiels 3 sekundne später werden die einheiten gespawnt und das addscript aktiviert, normalerweise. Aber es geht nix.

old Re: Scripting - Fragen/Probleme

Hurri04
Super User Off Offline

Quote
kay, ich glaub jetzt hab ich den fehler gefunden, das liegt an dem s2 cmd addscript, da hattest du die typen-nummer angegeben, anstatt der ID.
folglich müsste das script also lauten:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
on:trigger {
	$x1=getx("info",4);
	$x2=getx("info",5);
	$x3=getx("info",6);
	$z1=getz("info",4);
	$z2=getz("info",5);
	$z3=getz("info",6);

	$id=create("unit", 202, $x1, $z1);
	addscript "unit", $id, "maps/dm/dm.txt", "native";

	$id=create("unit", 202, $x2, $z2);
	addscript "unit", $id, "maps/dm/dm.txt", "native";

	$id=create("unit", 202, $x3, $z3);
	addscript "unit", $id, "maps/dm/dm.txt", "native";

	free "self";
}
(ich würde dir übrigens so sachen empfehlen wie zeilen-einrücken und nach einem komma ein leerzeichen lassen. solche sachen sind zwar nicht zwingend erforderlich, erleichtern aber die übersicht deutlich.)


(der timer ist übrigens auch okay so mit 3 sekunden, das verkraftet Stranded noch^^)

old Re: Scripting - Fragen/Probleme

CineRuSS
User Off Offline

Quote
ich bin echt am verzweifeln ob ich irgendwann mal hinkriege.....

nachdem ich in den PDA eine Funktion Namens "Landkarte" eingefügt habe funktionierte garnichts mehr.

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
####PDA
id=1000
name=Sony PDA
model=gfx\ext_plugin\sony-pda.3ds
icon=gfx\ext_plugin\sony-pda.png
info=Ein PDA ! Türlich von Sony.
scale=0.03
healthchange=0
mat=metal
weight=500
script=start

 on:use { event "pda";}

 on:pda {

  add "Hauptmenü";
  add "";
  add "Hier kannst du Musik Hören, oder andere Dinge machen";
  msgbox "PDA";
  button 0, "Musik","53","musikmenu";
  button 1,"Kaufen","19","buy";
  button 2,"Landkarte",54","map";
  button 9,"Beenden","3","closemenu;";
 }

 on:musikmenu {
  add "Wähle einen Titel aus den du gerne Hören willst.";
  msgbox "Musikmenü";
  button 0,"Eifel 65 I'm Blue Remix","53","title01";
  button 1,"Böhse Onkelz   Der nette Mann","53","title02";
  button 8,"Stopp","3","stop";
  button 9,"Zurück","7","pda";

 }

 on:title01 { stopmusic; music "PDA\Eiffel 65 I'm Blue HardCore Mix.mp3" ,2 ,1;}
 on:title02 { stopmusic; music "PDA\Bhse Onkelz  Der nette Mann.mp3" ,2 ,1;}
 on:stop { stopmusic;}

 on:buy {
  add "Das ist nur als Beispiel gedacht was man";
  add "mit dem PDA noch machen könnte";
  msgbox "Kaufmenü";
  button 0,"Heiltrank","19","find 36;";
  button 9,"Zurück","7","pda";
 }

 on:map {
   //texture with actual map image
	on:load {event "texturemap";}
	on:drop {event "texturemap";}
	on:create {event "texturemap";}
	on:texturemap {
		if ($maptexture<5) {
			$maptexture++;
		}else{
			$maptexture=0;
		}
		savemapimage join("gfx\mapskin",$maptexture,".bmp"),64;
		texture join("gfx\mapskin",$maptexture,".bmp");
  add "Kann Bugs enthalten!";
  msgbox "Landkarte";
  button 9,"Zurück","7","pda";
	}


script=end

old Re: Scripting - Fragen/Probleme

CineRuSS
User Off Offline

Quote
TheKilledDeath has written
du kannst doch nicht in ein on: Ereignis weitere on: Ereignisse reinschreiben


mhmm stimmt


aber wie lässt sich dann die aktuelle Karte anzeigen ?
edited 1×, last 17.12.09 02:02:56 pm
To the start Previous 1 2293 294 295339 340 Next To the start
Log in to reply Scripts overviewStranded II overviewForums overview