Willkommen im #Neuland
Login wie bei quake.ingame.de zuvor, die Passwörter aus der alten Datenbank wurden aber gelöscht - einmal hier neu anfordern.
Wer seine E-Mail-Adresse nicht mehr hat oder kennt, bitte eine Nachricht mit Infos schicken o. im Discord melden.

PQ Discord Server: #planetquake                                                                                                                                         Spenden? Hier entlang!

Fehler : game.def : error LNK2001: unresolved external symbol vmMain

Im Editing-Forum könnt ihr Fragen übers Mapping, Modeling und Skinning oder andere Kreativfragen wie Coding für Mods usw. stellen. Darüber hinaus werden Fragen rund um das Erstellen von Movies und um vorhandene Movies geklärt.
nobody-no

Fehler : game.def : error LNK2001: unresolved external symbol vmMain

Beitrag von nobody-no »

Hi,

ich habe microsoft visual C++ 2008 und versuche gerade die qagamex86.dll zu erstellen von dem Quake3Arena Quellcode. Es klappt alles Wunderbar. Ausser ziemlich zum Schluss bekomme ich immer zwei Fehlermeldungen. Das Projekt welches ich geöffnet habe heisst "quake3sdk.dsw". Unten drunter steht das es für die 2006 Version ist. Aber es sollte mit Sicherheit auch unter 2008 laufen.


"Linking...
game.def : error LNK2001: unresolved external symbol vmMain
.\Debug_TA/qagamex86.lib : fatal error LNK1120: 1 unresolved externals"

Seit zwei Tagen, versuche ich den Fehler zu finden , aber ohne Erfolg. Ich habe schon alles möglich versucht.


Diese Datei exestiert auch garnicht auf meinem Rechner "qagamex86.lib"

Und was bedeutet vmMain"

Vielleicht hat ja jemand hier das gleiche Problem gehabt und kann mir helfen.


Vielen Dank

Grüsse
Roughael
Stripe
Stripe
Beiträge: 2498
Registriert: Mär 2002

Beitrag von Roughael »

scheint mir so als ob du die g_main.c nicht eingebunden hast.

falls dem nicht so ist, kann ich dir was msvc angeht nicht besonders weiterhelfen.
guck mal hier in die tutorials sektion ('Getting Started'):
http://www.q3devel.6x.to/
und kompilier immer als qvm, dann hast du weniger probleme.
<-- Ehemaliger TTK-Bandit, bis inquake rumzickte -->

Dict.cc Firefox Addon | Q3Devel | Code3Arena(De) | GameType Revolution | Open Game Libraries
nobody-no

Beitrag von nobody-no »

Hi,

Ja Du hast Recht. Ich habe drei Dateien, die zu dem Quellcode gehören vor dem kompilieren ausgeschlossen also excludiert. Weil es bei diesen Dateien nur Fehlermeldungen gegeben hat. Es waren auch diese zwei Dateien dabei g_main.c und ai_main.c. Ich glaube da liegt der Fehler. Diese zwei Dateien und noch eine weitere hätte ich mit kompilieren müssen. Aber immer wenn ich den Quellcode mit diesen 3 Dateien kompiliert habe, bekam ich diese Fehlermeldungen

Diese bestimmt 80 mal

.\g_team.c(89) : error C2065: '__firstarg' : undeclared identifier


Und diese 5 mal

.\g_team.c(89) : warning C4013: '__typecode' undefined; assuming extern returning int


Bei genau diesen drei Dateien habe ich die oben genannten Fehlermeldungen erhalten, deswegen habe ich Sie vom Code excludiert.
g_main.c
ai_main.c
g_team.c


Als qvm kann ich mit den beiliegenden bat Dateien kompilieren. Nur wenn ich aus einem Tutorial, welche genau für diesen Quellcode geschreiben wurde, etwas verändere oder die Zeile die beschrieben sind eintrage, kommen nur Fehlermeldungen. Ich meine wenn ich den Code zur qvm mit den bat Dateien kompilieren möchte. Ohne Veränderungen des Quellcode, lässt sich die qvm bestens kompilieren. Ich dachte das es als DLL vielleicht geht.


Ich möchte gerne das Die Leute, die auf meinem Server connecten, wenn der Text kommt " Awaiting Gamestate " " Awaiting Challenge"
unten drunter aber auch z.B " Welcome to......." sehen. Das habe ich auf einem anderen Quake Server auch gesehen. Nur kann ich ihn nicht fragen, da dieser ServerAdmin nur Russisch spricht.

Desweiteren hat er seine Rail verändert. Er wird die Rail Veränderungen auch aus dem Tutorial " Megarail" haben.
Er benutzt das Mod Excessiveplus. Die veränderte Railgun hat aber rein garnichts mit Excessiveplus zu tun. und gehört nicht dazu. Ich denke mal er wird den game code verändert haben und die veränderte qvm in pk0 gepackt haben oder wird halt eine dll erstellt haben.

Fakt ist. Die Leute die Connecten, müssen sich keine extra Dateien herunterladen, auch nicht über Allowdownload. Man kann connecten und sieht unter " Awaiting Gamestate " Welcome to.....

und ist binnen weniger Sekunden ist man auf seinem Server und spielt mit seiner selbsterstellten Rail. Viellecht kannst Du mir dabei helfen.

Hier ist der Link zum tutorial http://www.quake3hut.co.uk/q3coding/Mega-Railgun%20.htm

Danke

Viele Grüsse
Roughael
Stripe
Stripe
Beiträge: 2498
Registriert: Mär 2002

Beitrag von Roughael »

  1. wenn du dateien entfernst darfst du dich nicht wundern dass etwas nicht klappt.
    wenn du dann nach hilfe fragst, frag immer nach dem ersten problem, nicht nach dem folgeproblem.
  2. firstarg oder typecode seh ich nirgends im code. zeig mir mal deine zeile 89 aus g_team.c
  3. das tutorial ist nicht für einen sauberen quake3 code geschrieben, oder für eine ältere version.
    wie du es zum kompilieren bekommst zeig ich dir am schluss meines posts.
  4. Der server den du gefunden hast hatte eine Serverseitige mod.
    - Excessive Plus ist eine solche serverseitige mod.
    - Excessive Plus ist nicht opensource, also der serveradmin hat NICHT die qvm dateien verändern können.
    - Excessive Plus kann mit sogenanten e+ configs stark verändert werden:Click Mich!
  5. Das mit der Welcome Message ist aller warscheinlichkeit nach eine cvar, bin mir da nicht 100% sicher, aber das sollte ohne mod und ohne e+ config möglich sein.
fix für dein tutorial:

ersetze:

Code: Alles auswählen

	// give the shooter a reward sound if they have made two railgun hits in a row
	if ( hits == 0 )
	{
		// complete miss
		ent->client->accurateCount = 0;
	} else {
		// check for "impressive" reward sound
		ent->client->accurateCount += hits;
		if ( ent->client->accurateCount >= 2 )
		{
			ent->client->accurateCount -= 2;
			ent->client->ps.persistant[PERS_REWARD_COUNT]++;
			ent->client->ps.persistant[PERS_REWARD] = REWARD_IMPRESSIVE;
			ent->client->ps.persistant[PERS_IMPRESSIVE_COUNT]++;
			// add the sprite over the player's head
			ent->client->ps.eFlags &= ~(EF_AWARD_IMPRESSIVE | EF_AWARD_EXCELLENT | EF_AWARD_GAUNTLET );
			ent->client->ps.eFlags |= EF_AWARD_IMPRESSIVE;
			ent->client->rewardTime = level.time + REWARD_SPRITE_TIME;
		}
		ent->client->ps.persistant[PERS_ACCURACY_HITS]++;
	}
durch:

Code: Alles auswählen

	// give the shooter a reward sound if they have made two railgun hits in a row
	if ( hits == 0 ) {
		// complete miss
		ent->client->accurateCount = 0;
	} else {
		// check for "impressive" reward sound
		ent->client->accurateCount += hits;
		if ( ent->client->accurateCount >= 2 ) {
			ent->client->accurateCount -= 2;
			ent->client->ps.persistant[PERS_IMPRESSIVE_COUNT]++;
			// add the sprite over the player's head
			ent->client->ps.eFlags &= ~(EF_AWARD_IMPRESSIVE | EF_AWARD_EXCELLENT | EF_AWARD_GAUNTLET | EF_AWARD_ASSIST | EF_AWARD_DEFEND | EF_AWARD_CAP );
			ent->client->ps.eFlags |= EF_AWARD_IMPRESSIVE;
			ent->client->rewardTime = level.time + REWARD_SPRITE_TIME;
		}
		ent->client->accuracy_hits++;
	}
<-- Ehemaliger TTK-Bandit, bis inquake rumzickte -->

Dict.cc Firefox Addon | Q3Devel | Code3Arena(De) | GameType Revolution | Open Game Libraries
nobody-no

Beitrag von nobody-no »

Hi,

danke für Deine Mühe. Also ich kenne mich mit Excessiveplus sehr gut aus und die Meldung die beim Connecten des Server kommt ist keine cvar. Er muss selber eine qvm erzeugt haben. Irgendwie ist er an den Quellcode gekommen. Ich habe es jetzt auch geschafft, den quake3 Arena Quellcode zu bearbeiten und habe mein kleines Anfänger Mod fast fertig. Aber es funktioniert natürlich nciht in verbindung mit Excessiveplus. Sobald ich fs_game Excessiveplus lade und nicht fs_game baseq3, werden alle Excessiveplus Einstellungen geladen und meine nicht. Bei ihm klappt das ganze auch im zusammenhang mit Excessiveplus.

Fakt ist, ich bin mir jetzt ganz sicher , das der jenige den Quellcode von Excessiveplus verändert hat. Anders geht es nicht.


Trotzdem vielen dank für deine Hilfe :)

Grüsse
Roughael
Stripe
Stripe
Beiträge: 2498
Registriert: Mär 2002

Beitrag von Roughael »

Fakt ist, es kann nur eine mod zur zeit laufen.

Fakt ist, kein serveradmin bekommt den excessive sourcecode nur um nen text zu ändern :lol:

hab gerade nochmal nachgesehen, ist keine cvar, ist eine txt datei: Motd.txt
<-- Ehemaliger TTK-Bandit, bis inquake rumzickte -->

Dict.cc Firefox Addon | Q3Devel | Code3Arena(De) | GameType Revolution | Open Game Libraries
nobody-no

Beitrag von nobody-no »

Hi,

ja bei der Motd.txt, siehste Texte wenn Du fast auf dem Server drauf bist. Das habe ich auch. Also wenn Du schon den Quake3 Screenshot von der Map siehst. Ich meine ganz am Anfang der erste Connect. Wenn DU bei Dir auf dem Monitor "Awaiting Gamestate " Awaiting Challenge " siehst. Das ist das schwarze Connect Bild. Das allererste.

Unter Awaiting Challenge steht bei Ihm " Welcome to....." Und das kommt von Excessiveplus, sollte eigentlich.

Wenn Du mir verräts wie ich das machen kann, das wäre super.



Danke :)
Roughael
Stripe
Stripe
Beiträge: 2498
Registriert: Mär 2002

Beitrag von Roughael »

nein, der motd.txt kommt wenn man auf dem server ist, also ingame, nicht beim map laden.

der text den du meinst der kommt von der q3ui, also dem menü part. dieser muss lokal auf dem client sein, damit er dargestellt wird, es sei denn excessive hat dafür nen workaround mit ner cvar oder ner anderen text datei.
falls excessive plus das nicht eingebaut hat, kannst du das nicht serverseitig lösen, ohne einen download zu benötigen.

mal ganz davon abgesehen, warum willst du einen text ändern, der nur ne sekunde oder 2 zu sehen ist ?
ich kann den kaum lesen so schnell is der meist wieder weg.
<-- Ehemaliger TTK-Bandit, bis inquake rumzickte -->

Dict.cc Firefox Addon | Q3Devel | Code3Arena(De) | GameType Revolution | Open Game Libraries
nobody-no

Beitrag von nobody-no »

Hast Du quake3 installiert?

für diesen Text den ich meine muss irgendwo in einer der game dateien das hin trap_sendServerCommand........hello word so ungefähr

oder irgendwie so.hehe

Genau das meine ich, ist auch aus einem tutorial und soll genau das beweirken was ich meine. Nur leider kommen da auch nur Fehlermedungen beim Kompilieren. Vielleicht kannst Du den Code gerade biegen. Das wäre super nett :)


trap_SendServerCommand( client->ps.clientNum, "print "Eternal Arena! n" S_COLOR_RED "http://www.q3center.com/ea/n"" );
Roughael
Stripe
Stripe
Beiträge: 2498
Registriert: Mär 2002

Beitrag von Roughael »

ich habe q3 installiert, auch den source, ich hab jahrelang für q3 mods geschrieben.

nix für ungut, lern ersma programmieren.
kauf dir "Programmieren in C" von Kernighan/Ritchie:
- Das Original
- Die Kopie
- Hier ist es auch dabei
- Oder von Amazon für viel asche und mit hässlichem design..


Was besseres wirst nich finden für den anfang in c.
Bei ebay wirst das buch warscheinlich für wenige euro abgreifen können, hab meins damals für nen euro bekommen.
achte aber drauf dass du die 2. ausgabe (ANSI-C) erwischt.
Bei den von mir angegebenen links hast du auf jeden fall die aktuelle version.
Welche du kaufst bleibt dir überlassen, aber die paar euro solltest du schon investieren.

anyway, zu deinem problem..
so wirste das warscheinlich haben wollen:
trap_SendServerCommand( client->ps.clientNum, "print \"Eternal Arena! \n" S_COLOR_RED "http://www.q3center.com/ea/\n\"" );
der code wird aber nicht das bewirken was du beschrieben hast.
<-- Ehemaliger TTK-Bandit, bis inquake rumzickte -->

Dict.cc Firefox Addon | Q3Devel | Code3Arena(De) | GameType Revolution | Open Game Libraries
nobody-no

Beitrag von nobody-no »

Hi,

Ja, Du hast recht. Ich werde mir ein Buch kaufen :)

Trotzdem vielen Dank für deine Hilfe und Mühe.

Diesen Server meine ich. Wenn Du auf ihm connectest siehst Du ganz am Anfang " Welcome to......." möchte ich hier nicht weiter ausschreiben.


85.21.245.144:27960


Grüsse :)
Roughael
Stripe
Stripe
Beiträge: 2498
Registriert: Mär 2002

Beitrag von Roughael »

bekomme da keine solche nachricht.
edit:
versuchs mal mit g_motd oder sv_hostname, das ist das letzte was mir so einfallen würde.
aber ganz ehrlich, bei mir geht das alles so schnell ich seh da nichmal nen text aufblitzen, der "welcome to bla" zeigt.
<-- Ehemaliger TTK-Bandit, bis inquake rumzickte -->

Dict.cc Firefox Addon | Q3Devel | Code3Arena(De) | GameType Revolution | Open Game Libraries
nobody-no

Beitrag von nobody-no »

Hi,

darf ich noch um etwas bitten? Also ich habe mein Mod jetzt fast fertig gestellt. Ist instagib Rail.

Nur ich möchte, wenn ich mit der Rail auf dem Boden schiesse, in die Luft fliegen. Also Railjumping. Ich bin seit Stunden nach einem geeignete Tutorial am suchen, aber es lässt sich nichts finden. mit Knockback und SplashDamage funktioniert das nicht. Da diese Funktion für die Rail nicht geboten wird. Ich bin mir sicher, das ich in der g_weapon.c eetwas eintragen muss, weiss aber leider nicht was.

Bitte helfe mir noch einmal. Ich weiss das das für Dich kein Problem ist :) Nur für diesen einen Code das Programmieren lernen, möchte ich auch nicht.


Es wäre sehr nett, wenn Du mir bei dem Railjumping helfen würdest.

Vielen Dank

Grüsse
M.Schröder
Roughael
Stripe
Stripe
Beiträge: 2498
Registriert: Mär 2002

Beitrag von Roughael »

füge folgenden code ans ende deiner weapon_railgun_fire funktion ein:

Code: Alles auswählen

	// Railjump
	VectorMA (muzzle, ent->client->ps.viewheight + [color=red]120[/color], forward, end);
	trap_Trace (&trace, muzzle, NULL, NULL, end, passent, CONTENTS_SOLID );
	if ( trace.fraction < 1 ) {
		float knockback = (1-trace.fraction) * [color=red]150[/color];
		float mass = 200;

		// Push in oposite direction
		VectorMA (ent->client->ps.velocity, -(g_knockback.value * knockback / mass), forward, ent->client->ps.velocity);

		// set the timer so that the other client can't cancel
		// out the movement immediately
		if ( !ent->client->ps.pm_time ) {
			int		t;

			t = knockback * 2;
			if ( t < 50 ) {
				t = 50;
			}
			if ( t > 200 ) {
				t = 200;
			}
			ent->client->ps.pm_time = t;
			ent->client->ps.pm_flags |= PMF_TIME_KNOCKBACK;
		}
	}
spiel ein wenig mit den rot markierten werten, ich hab hier nich viel getuned.
erhöhe die 120, wenn du denkst, dass wärend des springens zu wenig push ausgeübt wird.
erhöhe die 150, wenn du denkst, dass generell zu wenig push ausgeübt wird.
<-- Ehemaliger TTK-Bandit, bis inquake rumzickte -->

Dict.cc Firefox Addon | Q3Devel | Code3Arena(De) | GameType Revolution | Open Game Libraries
nobody-no

Beitrag von nobody-no »

Hi,

super danke Dir für Deine Hilfe :)

Weisst Du auch zufällig den Code, wie ich den Weapon Drop wegbekommen? Immer wenn ich einen anderen kille, bleibt eine Railgun zurück.

Vielleicht weisst Du auch hier Rat.


Danke

Grüsse
Roughael
Stripe
Stripe
Beiträge: 2498
Registriert: Mär 2002

Beitrag von Roughael »

in g_combat.c gibts die funktion TossClientItems, kommentier dort den waffen part einfach aus.
<-- Ehemaliger TTK-Bandit, bis inquake rumzickte -->

Dict.cc Firefox Addon | Q3Devel | Code3Arena(De) | GameType Revolution | Open Game Libraries
nobody-no

Beitrag von nobody-no »

Super vielen dank :)

Ich möchte Dich echt nicht nerven. Aber ich bin gerade dabei ein zweites Mod zu schreiben. Ich habe es jetzt geschafft, das die Railgun Rockets schiesst.

Ich habe in der g_weapon.c einfach die weapon_railgun Funktion gegen die Rocket Funktion ausgetauscht.

Bei Railgun steht jetzt folgender Code

======================================================================

RAILGUN

======================================================================
*/


/*
=================
weapon_railgun_fire
=================
*/
void weapon_railgun_fire (gentity_t *ent) {
gentity_t *m;

m = fire_rocket (ent, muzzle, forward);
m->damage *= s_quadFactor;
m->splashDamage *= s_quadFactor;

VectorAdd( m->s.pos.trDelta, ent->client->ps.velocity, m->s.pos.trDelta ); // "real" physics

}

/*


Es funktioniert wunderbar. Aber leider fehlt der Railgun strich.
Es kommen natürlich nur Rocktes raus. Ich hätte es gerne so, das wenn ich schiesse, dieser dünne rote Railgun strich zu sehen ist und beim Aufprall natürlich die Rockets explodieren.


Im internet habe ich befehle gefunden, wie fire_steck oder stack, aber das ging natürlich nicht.


Das ist recht kompliziert. Kennst Du vielleicht den Befehl?

Danke


Grüsse
M.Schröder
Roughael
Stripe
Stripe
Beiträge: 2498
Registriert: Mär 2002

Beitrag von Roughael »

ich versteh nicht ganz, willst du einfach nur dass beim treffen mit der railgun ne explosion kommt, also die waffe trotzdem instant hit bleibt,
oder willst du die waffe zu einer projektilwaffe machen, wo die rakete ein weilchen fliegt bis sie einschlägt ?
denke nicht so linear, dass du ne rakete brauchst um ne explosion zu bekommen, das geht auch ohne.
<-- Ehemaliger TTK-Bandit, bis inquake rumzickte -->

Dict.cc Firefox Addon | Q3Devel | Code3Arena(De) | GameType Revolution | Open Game Libraries
nobody-no

Beitrag von nobody-no »

Hi,


Also so wie die rail jetzt ist, ist sie gut so. Ich sehe im Spiel eine Railgun die Rockets schiesst. Das ist genau richtig so.
Aber wenn ich schiesse, sehe ich nicht diesen roten dünnen Strahl der normalerweise vorne aus der railgun kommt. Ich möchte das die Rail ganz genau so bleibt wie sie ist und weiterhin Rockets schiesst, nur möchte ich dazu noch diesen roten railgunstrahl haben. Also der vorne aus der Rail herauskommt.


Mit Railgun Strahl der vorne rauskommt und ( so wie es schon ist ) mit einer Explosion beim Aufprall.

Hier kannst Du es sehen 85.21.245.144:27960

Das ist schon ein wenig komplizierter. Und die OnJoin Message bekomme ich auch nicht richtig hin. :( Ich meine die Message die man einmal Angezeigt bekommt, wenn man gerade den Server beitritt, nicht die g_motd. Ich habe es eigentlich fast geschafft mit der OnJoin Message. Nur sehe ich sie nicht einmal, wenn ich den Server beitrete, sondern sehe diese Nachricht immer, wenn ich gefraggt wurde und wieder lebendig werde.


Grüsse :)
Roughael
Stripe
Stripe
Beiträge: 2498
Registriert: Mär 2002

Beitrag von Roughael »

guck dir den server nochmal genauer an, es wird keine rocket aus der railgun geschossen.
es tritt lediglich am ende des railgun strahls eine explosion auf.

damit du das so hinbekommst, brauchst du die original weapon_railgun_fire funktion wieder, aber mit folgender änderung:

du führst nur EINEN! trace durch, und am hitpoint rufst du G_RadiusDamage auf (falls du splashdamage willst, G_Damage wenn nicht),
und sendest einen EV_MISSILE_MISS/EV_MISSILE_HIT event.

zusätzlich, damit kein railgun impact effekt auftritt (der fleck auf der wand), musst du noch tent->s.eventParm auf 255 setzen,
das wird schon gemacht wenn du auf ein SURF_NOIMPACT triffst, muss hier aber immer gemacht werden.
<-- Ehemaliger TTK-Bandit, bis inquake rumzickte -->

Dict.cc Firefox Addon | Q3Devel | Code3Arena(De) | GameType Revolution | Open Game Libraries
nobody-no

Beitrag von nobody-no »

Hi,

ich verstehe das nicht so ganz was Du schreibst, bin halt noch anfänger. Ich weiss garnicht was ein trace und ein Hitpoint ist :( Mit Radius Damage habe ich auch alles schon versucht und auch oben als int Wert reingeschreiben. Aber beim Kompilieren, kommen immer Fehler.

Ich weiss, das ich viel verlange, ist mir auch schon recht unangenehm, aber wärst Du bitte so freundlich und würdest mir den fertigen Code hier posten. Das wäre super super nett von Dir.

Achja die Onjoin Message habe ich gerade selber hinbekommen :) Juhuu


Danke Dir

Grüsse
Roughael
Stripe
Stripe
Beiträge: 2498
Registriert: Mär 2002

Beitrag von Roughael »

sorry, aber erweiterte coding dienste geb ich nur freunden, oder leuten die mich bezahlen.
in einigen fällen, sofern es sich im rahmen hält auch an leute die selber was für ihr projekt machen.

da du zu keiner der gruppen gehörst, kann ich dir nur 2erlei dinge raten:
1. lern programmieren, und find selber raus was ich mit dem post gemeint habe.
dazu geh einige q3 coding tutorials durch, am besten die code3arena tutorials, die sind gut als einführung:
originalseite, englische tuts
übersetzung der tutorials ins deutsche

2. für die sachen die du machen willst, kannst du excessive nehmen.
schreib dir ne config, das ist wesentlich einfacher als programmieren zu lernen.
Ich wette mit dir wenn du im excessive forum nachfragst, bekommst du auch raus wie man die welcome message sendet, die dir so am herzen liegt.

alternativ könntest du auch sagen, ne das mir zuviel ich bezahl dich für den aufwand.
your choice.
<-- Ehemaliger TTK-Bandit, bis inquake rumzickte -->

Dict.cc Firefox Addon | Q3Devel | Code3Arena(De) | GameType Revolution | Open Game Libraries
nobody-no

Beitrag von nobody-no »

Hi,

ich verstehe dich schon. Mit so einer Antwort habe ich gerechnet.
Das ist kein Problem. Ich bedanke mich für Deine gemachte Mühe und Hilfe. Du hast mir mit deinen Antworten schon sehr viel weiter geholfen und ich habe ne menge geschafft, was ich ohne Dich nicht so schnell geschafft hätte. Du scheinst netter Kerl zu sein ;)

Ich wünsche Dir noch einen schönen Abend.


Grüsse :)
nobody-no

Beitrag von nobody-no »

Roughael
Stripe
Stripe
Beiträge: 2498
Registriert: Mär 2002

Beitrag von Roughael »

null problemo.
sollte das nochn post sein ? der is irgendwie ziemlich leer.
<-- Ehemaliger TTK-Bandit, bis inquake rumzickte -->

Dict.cc Firefox Addon | Q3Devel | Code3Arena(De) | GameType Revolution | Open Game Libraries
nobody-no

Beitrag von nobody-no »

Hi,

habe es nach langen tüffteln endlich geschafft :) Die Explosion am Ende des Railstrahls, waren ja blos zwei Zeilen und mit RadiusDamage 5. Für jemanden der es wirklich kann mega einfach.
Aber für mich...... Aber nun ist es perfekt.


Kannst ja mal testen

85.114.132.144:57000


Greetz :) :) :)
Roughael
Stripe
Stripe
Beiträge: 2498
Registriert: Mär 2002

Beitrag von Roughael »

na dann hab ich ja doch noch was bewirken können :)

kleiner fehler ist noch drin:
die railgun kann im original q3 durch spieler hindurchschiessen.
bis zu MAX_RAILHITS (oder so) wird der railstrahl verlängert.
diese funktion ist in deiner mod auch noch aktiv, also dein railstrahl geht durch den spieler hindurch, und trifft die wand hinter ihm.
kannst das ändern indem du MAX_RAILHITS auf 1 stellst.
<-- Ehemaliger TTK-Bandit, bis inquake rumzickte -->

Dict.cc Firefox Addon | Q3Devel | Code3Arena(De) | GameType Revolution | Open Game Libraries
nobody-no

Beitrag von nobody-no »

Danke Dir für diese Info :)
nobody-no

Beitrag von nobody-no »

Hi,

ich habe da noch mal ne einfache Frage. Also ich habe mein Mod jetzt unlagged gemacht, weil die Rail bei vielen Leuten mit schlechten Ping zu spät reagiert hat.

Ich bin dieses Tutorial durchgegangen, in dem erklärt wird wie man ein Mod unlagged macht.
http://code3arena.planetquake.gamespy.c ... al41.shtml

Es hat alles wunderbar geklappt. Nur ist es nicht viel oder garnicht besser geworden.

In diesen Tutorial werden z.B diese Sachen definiert.

void G_StoreTrail( gentity_t *ent );
void G_ResetTrail( gentity_t *ent );
void G_TimeShiftClient( gentity_t *ent, int time );
void G_TimeShiftAllClients( int time, gentity_t *skip );
void G_UnTimeShiftClient( gentity_t *ent );
void G_UnTimeShiftAllClients( gentity_t *skip );

Nur hat es mich stutzig gemacht, das ich ncihts in die g_weapon.c eintragen musste. Also habe ich mir selber einen Code zusammen gebastelt.

Ich habe in der Weapon_railgun_fire Funktion die in der g_weapon.c ist folgenden Code eingefügt. Zweimal, einmal unter der Zeile "VectorMA (muzzle, 8192, forward, end);" Und dann noch mal unter dieser Zeile "} while ( unlinked < MAX_RAIL_HITS );"
War ein Beispiel auf einer anderen Seite. Nur musste ich eine andere Funktion eintragen.



//unlagged - backward reconciliation #2
// put them back
G_UnTimeShiftClient( ent );
//unlagged - backward reconciliation #2


Beim Kompilieren gab es keine Fehler, lief alles reibungslos. Nur ich habe das Gefühl das es trotzdem nicht so richtig unlagged ist.
Habeich vielleicht was vergessen. Sollte der Code in der Weapon.c vielleicht so aussehen, oder ist der Code nicht nötig.

//unlagged - backward reconciliation #2
// put them back
G_UnTimeShiftClient( ent );
G_StoreTrail( ent );
G_ResetTrail( ent );
G_TimeShiftClient( ent );
G_TimeShiftAllClients( int );
G_UnTimeShiftAllClients( skip );
//unlagged - backward reconciliation #2


Es wäre super, wenn Du mir einen Tipp geben könntest.

Dankeschön

Grüsse :)
nobody-no

Beitrag von nobody-no »

Hat sich schon erledigt

Grüsse
Antworten