Kleines problem !

rompe500
Hey leute,

Wollte ne kleine mod schreiben für sniper "ohne promod" und hab des so eingestellt

Zitat:


//Waffen
class_assault_limit "99"
class_specops_limit "0"
class_heavygunner_limit "0"
class_demolitions_limit "0"
class_sniper_limit "0"

//Sniper
class_assault_primary "m40a3"
class_assault_primary_attachment "none"
class_assault_secondary "deserteaglegold" class_assault_secondary_attachment "none"
class_assault_perk1 "specialty_bulletaccuracy"
class_assault_perk2 "specialty_bulletdamage"
class_assault_perk3 "specialty_bulletpenetration"
class_assault_grenade "none"
class_assault_camo "camo_none" class_assault_frags "0" class_assault_special "0"


aber wenn ich /exec sniper.cfg mache bleibt die anfangs klasse so wie sie ist , was mache ich falsch?

Neben bei wollte ich wissen wie ich nen Text hinkriege der wie bei promod auftaucht am ende einer runde
Arnold
Nun, der unterschied zwischen einer Mod und einer server.cfg ist, dass die Mod programmiert ist und die cfg (lang = configuration) nur eine Einstellung ist.


Verstehst du etwas von "Scripten"?

Das was du geschrieben hast, kann nicht funktionieren, da die Mod nicht existiert. Deine Variablen sind sozusagen für das Spiel ein Griff in's leere.

Du könntest es so in etwa scripten:

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

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
sniperscript()
{
self waittill("connected")
self waittill("spawned_player")
self endon("disconnect")
   {
   self takeallweapons(); // Egal, welche waffe gewählt wurde, sie wird weggenommen
   self giveweapon("m21_mp"); //sniper geben - deinen waffennamen eingeben
   self givemaxammo("m21_mp"); // Maximale ammo geben - für längere kämpfe.
   }
}



EDIT: Aber nicht in die Config - sondern in die Mod.ff oder eine iwd (dafür reicht eine iwd aus)
rompe500
Hab jetzt einen IWD gemacht namens z_customruleset und beide im mod ordner aber es gehen keine waffen weg oder so.

kann man noch perks adden?


PS : von scripten keine ahnung aber würds gern lernen ^^
Arnold
das mit dem modden ist noch komplizierter.

Das, was ich gescriptet habe, muss erst in einer anderen GSC datei angesprochen werden. z.b. in der _globallogic.gsc

so:

self thread pfad\_name::sniperscript()


Das mit den perks kann ich dir auch erklären. sry, muss aber erstmal in's bett^^
rompe500
ja gut ^^ öhm also

self thread pfad\_name::sniperscript()

einfach am anfang der gsc
Arnold
nein, nicht am anfang...

kennst du die glc?
--> maps/mp/gametypes/_globallogic.gsc

darunter dürfte sich irgendwo der thread XXX befinden.
XXX heißt hier "onplayerspawn()"

da musst du es nach dem "self waittill("spawned_player")" einfügen. beachte, dass es wie folgt funktioniert:

self thread pfad\_glcName::ThreadName()

und in dieser eben mein script.

wenn du noch perks adden willst, musst du bei dem takeweapon, giveweapon u.s.w. folgendes adden:

self SetPerk("specialty_bulletdamage");

natürlich gibt es mehr als nur dieses Perk. das will ich nicht alles hier listen, da ich selber noch einen mod machen will^^
rompe500
hab dat jetzt hingekriegt aber kriege immer script compile error ^^

Hier ma die _globallogic.gsc

http://www36.zippyshare.com/v/55787996/file.html

steht auch was mit bad syntax

hab mir einfach eine _globallogic.gsc ausm internet gezogen.
serthy
süß :p

okay ich fang mal von vorne an
ich kann dir nur sogut helfen wie ich es kann allerdings hab ich keine ahnung von cod4, aber cod2 wird ähnlich sein

okay du machst dir ein neues winzip-verzeichnis und nennst es meinmod.iwd
dann guckst du mal in deinem main ordner nach wo dieser ordner ist
maps/mp/gametypes/_globallogic.gsc
irgendwo in einer der iwd's
kopier dir den ganzen ordner raus und schieb ihn in deine mod.iwd
dann lösch alles dadrin außer die globallogic und die ganzen gametypes wie sd dm tdm und so
dann guckst du in die globallogic wie es arnold beschrieben hat suchst nach
onplayerspawn()
und fügst das nach dem hier:self waittill("spawned_player") genau das ein:
self thread maps/mp/gametypes\_glcName::ThreadName()

so
dann gehst du in den ordner wieder wo alles drinne ist (maps/mp/gametypes/)
und machst dir auf deinem desktop oder so ein neues textdokument auf
das nennst du _glcName.gsc
darein kommt dann das was arnold gescripted hat:

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

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
sniperscript()
{
self waittill("connected")
self waittill("spawned_player")
self endon("disconnect")
 {
 self takeallweapons();
 self giveweapon("m21_mp");
 self givemaxammo("m21_mp");
 }
}



so diese gsc datei schiebst du nu in deinen gametypes ordner in deiner iwd
und ready
weiß nich wegen fastfile, aber das wird dir ein anderer erklären
und hoffentlich meine fehler berichtigen :o
Arnold
Ich habe hier mal ein Beispiel und ausschnitt meiner eigenen Mod. Den Code kannst du wenn du willst verwenden.


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:
self_init() // Dieser Thread wurde in meinem Gametype (CJ aka CoD Jumper) bei onspawnplayer() aufgerfen.
{
	self notify("cj_respawn");
	self iprintlnbold("You Spawned!");
	self thread cj_start_health();
	self thread cj_health_loop();
	self thread cj_take_weapon(); // das ist der thread, der für dich wichtig sein sollte.
	wait 5;
	self thread cj_infinitive_rockets();
}

cj_start_health()
{
	self.maxhealth = 500;
	self.health = self.maxhealth;

}

cj_health_loop()
{
	self endon("cj_respawn");
	self endon("disconnect");
	while(1)
	{
		self.health = self.maxhealth;
		wait .5;
	}
}

cj_take_weapon() // Hier steht das, was du brauchst, wenn du es ganz simpel schreiben willst: (vergiss nicht, die threads anzusprechen, wie ich z.b. bei self_init())
{//  hier musst du dann allerdings z.b. anstatt rpg_mp dragunov_acog_mp oder so einfügen. Mit einem random int kann man auch zufallsmäßig entscheiden, welche sniper am spawn gewählt wird. das will ich aber nicht erklären, da das hier zu weit geht
	wait .5;
	self takeallweapons();
	self giveWeapon("rpg_mp");
	self giveWeapon("usp_mp");
	self switchtoweapon("usp_mp");
	self setActionSlot( 3, "weapon", "rpg_mp" );
}


cj_infinitive_rockets()
{
	self endon("disconnect");
	self endon("cj_respawn");
	self endon("killed_player");
	self endon("joined_spectators");
	
	while(1)
	{
		if(getdvarint("cj_inf_rockets") == 1)
			self GiveMaxAmmo("rpg_mp");
		wait 0.5;
	}
}