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 2 » eXtreme MOD für CoD2 » Losing Packets » 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 Losing Packets
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
uweachim
Tele-Tubbie


Dabei seit: 27.01.2009
Beiträge: 141


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

CoD2, 1.3, extreme2.6 modern weapens

Moin moin Leute,
im extreme mod 2.7 bleiben nach der PB Losing Packets Meldung und dem Neueinstieg die Punkte die man hatte erhalten.

Leider sind meine Englischkentnisse nicht so gut, dass ich bei my cod nachfragen kann.
Gibt es vielleicht eine Möglichkeit, aus irgendeiner Datei in 2.7, das in den 2.6 zu kopieren, damit auch in meinem 2.6 die Punkte erhalten bleiben???????
Ich möchte nämlich nicht auf 2.7 umsteigen.

Danke und Gruß

Uwe
uweachim ist offline E-Mail an uweachim senden Beiträge von uweachim suchen Nehmen Sie uweachim 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

Möglich ist (fast) alles ^.^

was für Punkte sind denn genau gemeint? (wo sind die im spiel, was bringen die?)
serthy ist offline E-Mail an serthy senden Beiträge von serthy suchen Nehmen Sie serthy in Ihre Freundesliste auf
sefeschnut
Milupa-Fan


images/avatars/avatar-1046.jpg


Dabei seit: 02.02.2007
Beiträge: 533


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

Er meint die Kills die ein Spieler hat beim 2.7 ist das Standard wenn man gekickt oder den Server verlässt und innerhalb 1 Minute wieder auf den Server verbindet bekommt man wieder seine letzten kills

__________________

sefeschnut ist offline E-Mail an sefeschnut senden Beiträge von sefeschnut suchen Nehmen Sie sefeschnut 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

okay und los gehts:
mache lieber vorher eine kopie von jeder datei die du ab jetzt veränderst, damit dein server nicht total verunstaltet wird ^^

in der _ex_memory.gsc ganz oben in die init() muss das rein:

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

code:
1:
2:
3:
4:
 registerMemory("score", "points", 0, 0, 1000000, "int");
registerMemory("score", "kills", 0, 0, 1000000, "int");
registerMemory("score", "deaths", 0, 0, 1000000, "int");
registerMemory("score", "bonus", 0, 0, 1000000, "int");


sieht dann so aus:

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:
#include extreme_ex_utils;

init()
{
// Either set it to true or false. DO NOT DISABLE!
level.ex_memory_log = false;

// registerMemory(memID, itemID, itemDef, itemMin, itemMax, itemType)
// itemType: "int", "bool", "char", "float", "string"
// itemMin on itemType "char" can be used as a string with valid characters
registerMemory("cinematic", "status", 1, 0, 1, "bool");
registerMemory("diana", "status", 0, 0, 1, "bool");
registerMemory("lrbind", "key", "m", "1234567890abcdefghijklmnopqrstuvwxyz", "", "char");
registerMemory("jukebox", "status", level.ex_jukebox_power ,0, 1, "bool");
registerMemory("jukebox", "loop", 0 ,0 ,1, "bool");
registerMemory("jukebox", "shuffle", 0, 0, 1, "bool");
registerMemory("jukebox", "track", 1, 1, 99, "int");
registerMemory("zoom", "sr", level.ex_zoom_default_sr, level.ex_zoom_min_sr, level.ex_zoom_max_sr, "int");
registerMemory("zoom", "lr", level.ex_zoom_default_lr, level.ex_zoom_min_lr, level.ex_zoom_max_lr, "int");
registerMemory("rcon", "pin", "xxxx", "", "", "string");

registerMemory("score", "points", 0, 0, 1000000, "int");
registerMemory("score", "kills", 0, 0, 1000000, "int");
registerMemory("score", "deaths", 0, 0, 1000000, "int");
registerMemory("score", "bonus", 0, 0, 1000000, "int");
//dumpMemoryStruct();
}


okay hier sind wir fertig

weiter gehts in der _ex_clientcontrol.gsc in der 2. funktion namens exPlayerJoinedServer():

musst du nach

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

code:
1:
2:
 // check to see if the players name has changed since connecting
self extreme_ex_security::checkInit();


das einfügen:

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

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
 memory = self extreme_ex_memory::getMemory("score", "points");
if(!memory.error) self.score = memory.value;
memory = self extreme_ex_memory::getMemory("score", "kills");
if(!memory.error) self.pers["kill"] = memory.value;
memory = self extreme_ex_memory::getMemory("score", "deaths");
if(!memory.error)
{
self.deaths = memory.value;
self.pers["death"] = memory.value;
}
memory = self extreme_ex_memory::getMemory("score", "bonus");
if(!memory.error) self.pers["bonus"] = memory.value;


was am endo so aussieht:

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:
exPlayerJoinedServer()
{
// set one-off vars
self.ex_sinbin = false;
self.ex_glplay = undefined;
self.pers["spec_on"] = false;
self.pers["dth_on"] = false;
self.pers["intro_on"] = false;

// check to see if the players name has changed since connecting
self extreme_ex_security::checkInit();


memory = self extreme_ex_memory::getMemory("score", "points");
if(!memory.error) self.score = memory.value;
memory = self extreme_ex_memory::getMemory("score", "kills");
if(!memory.error) self.pers["kill"] = memory.value;
memory = self extreme_ex_memory::getMemory("score", "deaths");
if(!memory.error)
{
self.deaths = memory.value;
self.pers["death"] = memory.value;
}
memory = self extreme_ex_memory::getMemory("score", "bonus");
if(!memory.error) self.pers["bonus"] = memory.value;




// check if player prefers a female model
self extreme_ex_diana::checkDiana();

// make sure to update the ui_zoom variable
self extreme_ex_zoom::checkZoom();



speichern, server neustarten, und hoffen das es klappt
die deaths sollten klappen, score auch, bin mir aber bei den killstreaks nicht sicher

EDIT:
ich merke grade das es dabei passieren kann das deine stats immer wieder aufgerufen werden und nicht nach 1 min gelöscht werden :/

EDIT2:
okay, scheint nicht allzu verschachtelt zu sein: auf ein neues

alles so wie oben beschrieben machen

dann in die _ex_varcache.gsc gehen und danach suchen:

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

code:
1:
2:
3:
4:
 //****************************************************************************
// initialize players array
//****************************************************************************
level.players = [];

und das darunter einfügen:

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

code:
1:
2:
3:
4:
 //****************************************************************************
// eXtreme+ score memory
//****************************************************************************
level.ex_scorememory = [[level.ex_drm]]("ex_scorememory", 60, 0, 3600, "int");


sodass es so aussieht:

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

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
 //****************************************************************************
// initialize players array
//****************************************************************************
level.players = [];

//****************************************************************************
// eXtreme+ score memory
//****************************************************************************
level.ex_scorememory = [[level.ex_drm]]("ex_scorememory", 60, 0, 3600, "int");



dann wieder in die _ex_memory.gsc gehen und das

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

code:
1:
2:
3:
4:
5:
 if(level.ex_scorememory)
{
level.scorememory = [];
level thread onSecond();
}

in die init() ganz unten drunter unter dem was du davor eingefügt hast einfügen, sieht dann so aus:

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:
init()
{
// Either set it to true or false. DO NOT DISABLE!
level.ex_memory_log = false;

// registerMemory(memID, itemID, itemDef, itemMin, itemMax, itemType)
// itemType: "int", "bool", "char", "float", "string"
// itemMin on itemType "char" can be used as a string with valid characters
registerMemory("cinematic", "status", 1, 0, 1, "bool");
registerMemory("diana", "status", 0, 0, 1, "bool");
registerMemory("lrbind", "key", "m", "1234567890abcdefghijklmnopqrstuvwxyz", "", "char");
registerMemory("jukebox", "status", level.ex_jukebox_power ,0, 1, "bool");
registerMemory("jukebox", "loop", 0 ,0 ,1, "bool");
registerMemory("jukebox", "shuffle", 0, 0, 1, "bool");
registerMemory("jukebox", "track", 1, 1, 99, "int");
registerMemory("zoom", "sr", level.ex_zoom_default_sr, level.ex_zoom_min_sr, level.ex_zoom_max_sr, "int");
registerMemory("zoom", "lr", level.ex_zoom_default_lr, level.ex_zoom_min_lr, level.ex_zoom_max_lr, "int");
registerMemory("rcon", "pin", "xxxx", "", "", "string");

registerMemory("score", "points", 0, 0, 1000000, "int");
registerMemory("score", "kills", 0, 0, 1000000, "int");
registerMemory("score", "deaths", 0, 0, 1000000, "int");
registerMemory("score", "bonus", 0, 0, 1000000, "int");
//dumpMemoryStruct();

if(level.ex_scorememory)
{
level.scorememory = [];
level thread onSecond();
}
}



dann kommt gleich darunter folgendes:

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:
onSecond()
{
for( ; ; )
{
wait( [[level.ex_fpstime]]( 1.0 ) );

for(i = 0; i < level.scorememory.size; i++)
if(isDefined(level.scorememory[i].graceperiod) && level.scorememory[i].graceperiod > 0) level.scorememory[i].graceperiod--;
}
}

setScoreMemory(name)
{
index = -1;

// check if name is already in list
for(i = 0; i < level.scorememory.size; i++)
{
if(level.scorememory[i].name == name)
{
index = i;
break;
}
}

// name is not in list, so check for expired records
if(index == -1)
{
for(i = 0; i < level.scorememory.size; i++)
{
if(level.scorememory[i].graceperiod == 0)
{
index = i;
break;
}
}
}

// no expired records, so create new one
if(index == -1)
{
index = level.scorememory.size;
level.scorememory[index] = spawnstruct();
}

level.scorememory[index].graceperiod = level.ex_scorememory;
level.scorememory[index].name = name;
}

getScoreMemory(name)
{
index = -1;

// check if name is in list
for(i = 0; i < level.scorememory.size; i++)
{
if(isDefined(level.scorememory[i].name) && level.scorememory[i].name == name)
{
// check if still in grace period
if(level.scorememory[i].graceperiod > 0) index = i;
break;
}
}

// return true if player is still in grace period
return( (index != -1) );
}


was dann schlussendlich so (komplett) aussieht:

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:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
init()
{
// Either set it to true or false. DO NOT DISABLE!
level.ex_memory_log = false;

// registerMemory(memID, itemID, itemDef, itemMin, itemMax, itemType)
// itemType: "int", "bool", "char", "float", "string"
// itemMin on itemType "char" can be used as a string with valid characters
registerMemory("cinematic", "status", 1, 0, 1, "bool");
registerMemory("diana", "status", 0, 0, 1, "bool");
registerMemory("lrbind", "key", "m", "1234567890abcdefghijklmnopqrstuvwxyz", "", "char");
registerMemory("jukebox", "status", level.ex_jukebox_power ,0, 1, "bool");
registerMemory("jukebox", "loop", 0 ,0 ,1, "bool");
registerMemory("jukebox", "shuffle", 0, 0, 1, "bool");
registerMemory("jukebox", "track", 1, 1, 99, "int");
registerMemory("zoom", "sr", level.ex_zoom_default_sr, level.ex_zoom_min_sr, level.ex_zoom_max_sr, "int");
registerMemory("zoom", "lr", level.ex_zoom_default_lr, level.ex_zoom_min_lr, level.ex_zoom_max_lr, "int");
registerMemory("rcon", "pin", "xxxx", "", "", "string");

registerMemory("score", "points", 0, 0, 1000000, "int");
registerMemory("score", "kills", 0, 0, 1000000, "int");
registerMemory("score", "deaths", 0, 0, 1000000, "int");
registerMemory("score", "bonus", 0, 0, 1000000, "int");
//dumpMemoryStruct();

if(level.ex_scorememory)
{
level.scorememory = [];
level thread onSecond();
}
}

onSecond()
{
for( ; ; )
{
wait( [[level.ex_fpstime]]( 1.0 ) );

for(i = 0; i < level.scorememory.size; i++)
if(isDefined(level.scorememory[i].graceperiod) && level.scorememory[i].graceperiod > 0) level.scorememory[i].graceperiod--;
}
}

setScoreMemory(name)
{
index = -1;

// check if name is already in list
for(i = 0; i < level.scorememory.size; i++)
{
if(level.scorememory[i].name == name)
{
index = i;
break;
}
}

// name is not in list, so check for expired records
if(index == -1)
{
for(i = 0; i < level.scorememory.size; i++)
{
if(level.scorememory[i].graceperiod == 0)
{
index = i;
break;
}
}
}

// no expired records, so create new one
if(index == -1)
{
index = level.scorememory.size;
level.scorememory[index] = spawnstruct();
}

level.scorememory[index].graceperiod = level.ex_scorememory;
level.scorememory[index].name = name;
}

getScoreMemory(name)
{
index = -1;

// check if name is in list
for(i = 0; i < level.scorememory.size; i++)
{
if(isDefined(level.scorememory[i].name) && level.scorememory[i].name == name)
{
// check if still in grace period
if(level.scorememory[i].graceperiod > 0) index = i;
break;
}
}

// return true if player is still in grace period
return( (index != -1) );
}



dann müssen wir nochmal in die _ex_clientcontrol.gsc in der funktion in der wir vorhins waren, und etwas abändern (das was wir zuerst da eingefügt haben muss erweitert werden):
das hier haben wir vorhins eingefügt, und dass wieder löschen:

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

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
memory = self extreme_ex_memory::getMemory("score", "points");
if(!memory.error) self.score = memory.value;
memory = self extreme_ex_memory::getMemory("score", "kills");
if(!memory.error) self.pers["kill"] = memory.value;
memory = self extreme_ex_memory::getMemory("score", "deaths");
if(!memory.error)
{
self.deaths = memory.value;
self.pers["death"] = memory.value;
}
memory = self extreme_ex_memory::getMemory("score", "bonus");
if(!memory.error) self.pers["bonus"] = memory.value;



und dafür das einsetzen:

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:
 if(level.ex_scorememory && level extreme_ex_memory::getScoreMemory(self.name))
{
memory = self extreme_ex_memory::getMemory("score", "points");
if(!memory.error) self.score = memory.value;
memory = self extreme_ex_memory::getMemory("score", "kills");
if(!memory.error) self.pers["kill"] = memory.value;
memory = self extreme_ex_memory::getMemory("score", "deaths");
if(!memory.error)
{
self.deaths = memory.value;
self.pers["death"] = memory.value;
}
memory = self extreme_ex_memory::getMemory("score", "bonus");
if(!memory.error) self.pers["bonus"] = memory.value;
}



die KOMPLETTE funktion sollte jetzt so aussehen:

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:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
exPlayerJoinedServer()
{
// set one-off vars
self.ex_sinbin = false;
self.ex_glplay = undefined;
self.pers["spec_on"] = false;
self.pers["dth_on"] = false;
self.pers["intro_on"] = false;

// check to see if the players name has changed since connecting
self extreme_ex_security::checkInit();


if(level.ex_scorememory && level extreme_ex_memory::getScoreMemory(self.name))
{
memory = self extreme_ex_memory::getMemory("score", "points");
if(!memory.error) self.score = memory.value;
memory = self extreme_ex_memory::getMemory("score", "kills");
if(!memory.error) self.pers["kill"] = memory.value;
memory = self extreme_ex_memory::getMemory("score", "deaths");
if(!memory.error)
{
self.deaths = memory.value;
self.pers["death"] = memory.value;
}
memory = self extreme_ex_memory::getMemory("score", "bonus");
if(!memory.error) self.pers["bonus"] = memory.value;
}


// check if player prefers a female model
self extreme_ex_diana::checkDiana();

// make sure to update the ui_zoom variable
self extreme_ex_zoom::checkZoom();

// detect forced auto-assign (0 = off, 1 = all, 2 = non-clan only)
self.ex_autoassign = 0;
if(level.ex_autoassign == 1) self.ex_autoassign = 1;
else if(level.ex_autoassign == 2 && (!isDefined(self.ex_name) || self.ex_clid != 1)) self.ex_autoassign = 1;

//if(self.ex_autoassign) logprint("TEAM DEBUG (C): " + self.name + " self.ex_autoassign switched onn");
// else logprint("TEAM DEBUG (C): " + self.name + " self.ex_autoassign switched offn");

if(self.ex_autoassign) self setClientCvar("ui_allow_select_team", "0");
else self setClientCvar("ui_allow_select_team", "1");

// bots need to reselect weapon on round based games with swapteams enabled
if(isDefined(self.pers["isbot"]))
{
if(level.ex_roundbased && level.ex_swapteams && game["roundsplayed"] > 0 && !isDefined(self.pers["weapon"]))
{
if(level.ex_testclients_diag) logprint(self.name + " reselecting new weapons...n");
self thread extreme_ex_bots::dbotLoadout();
}
}

// if roundbased, no need to hear any intro sounds again if they've already been playing
if(level.ex_roundbased && isDefined(self.pers) && isDefined(self.pers["score"])) return;

// if using the ready-up system, no need to hear any intro sounds again if they've already been playing
if(level.ex_readyup && isDefined(game["readyup_done"]) && isDefined(self.pers["team"])) return;

// start menu music
if(level.ex_gameover && (level.ex_endmusic || level.ex_mvmusic || level.ex_statsmusic)) skip_intromusic = true;
else skip_intromusic = false;

thread extreme_ex_maps::getmapstring(getCvar("mapname"));

if(!skip_intromusic && level.ex_intromusic > 0)
{
if(level.ex_intromusic == 1 && level.msc)
{
self.pers["intro_on"] = true;
self playlocalsound(getCvar("mapname"));
}
else
{
if(level.ex_intromusic == 2 && level.msc)
{
self.pers["intro_on"] = true;
self playlocalsound("mus_" + getCvar("mapname"));
}
else
{
if(level.ex_intromusic == 3 || !level.msc)
{
intro = randomInt(10) + 1;
self.pers["intro_on"] = true;
self playlocalsound("intromusic_" + intro);
}
}
}
}

if(level.ex_plcdmsg)
{
if( (isDefined(self.ex_name) && level.ex_clano[self.ex_clid]) || !isDefined(self.ex_name) )
iprintln(&"CLIENTCONTROL_HASJOINED", [[level.ex_pname]](self));
}
}



so nun ist das hoffentlich geschafft, jetzt fehlt nur noch einwas:
die zeit in die config schreiben..
gehe in den scriptdata ordner und suche dir eine config aus
ich nehme jetzt mal die serversettings.cfg und da kommt der befehl rein:

set ex_scorememory 60

bei 0 ist es ausgeschaltet und es muss zwichen 0 und 3600 liegen
also nach wie viel sekunden ein spieler der reconnected ist seine stats wiederhat



wie du siehst isses garnich so einfach, und hier können mehr als viele fehler jetzt rauskommen ^^...

trotzdem viel erfolg

Dieser Beitrag wurde 2 mal editiert, zum letzten Mal von serthy: 14.05.2012 20:59.

serthy ist offline E-Mail an serthy senden Beiträge von serthy suchen Nehmen Sie serthy in Ihre Freundesliste auf
uweachim
Tele-Tubbie


Dabei seit: 27.01.2009
Beiträge: 141


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 du,

vielen vielen Dank für deine Mühe!!!!!!!

DAS geht mir aber ein bisschen zu sehr ins Eingemachte.
Habs begonnen, aber schon zwei Fehler gemacht.

Den Eintrag in der _ex_varcache.gsc

1:
2:
3:
4:
view sourceprint?1.
//*************************************************************************
***
2.
// initialize players array
3.
//*************************************************************************
***
4.
level.players = [];


finde ich nicht!!!!!!

Denke, da gebe ich lieber auf und lass es so wie es ist.
Tut mir echt leid,dass ich jetzt deine kostbare Zeit verschwendet habe.
Besteht vielleicht die Möglichkeit, dass ich dir die zu ändernden Dateien von mir schicke (e-mail oder so) und du mir die geänderten Dateien zurücksendest????????

Gruß
Uwe
uweachim ist offline E-Mail an uweachim senden Beiträge von uweachim suchen Nehmen Sie uweachim 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

Oupps, da hab ich mich mit den 2 dateien verhauen, war nicht leicht die auseinanderzuhalten
im prinzip ist es egal wo du das in der _ex_varcache.gsc einfügst, mach es in der main() funktion in die mitte irgendwohin, zB. unter die Zeile:

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

code:
1:
	level.ex_intermission = [[level.ex_drm]]("ex_intermission", 10, 5, 60, "int");

serthy ist offline E-Mail an serthy senden Beiträge von serthy suchen Nehmen Sie serthy in Ihre Freundesliste auf
uweachim
Tele-Tubbie


Dabei seit: 27.01.2009
Beiträge: 141


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

Moin moin du.

habe es gestern Abend zwei mal versucht, aber leider startet der Server dann nicht mehr.
Liegt an der _ex_clientcontrol.gsc sagt mein provider.

Hat lange genug gedauert.
Wir lassen es lieber so wie es ist.

Vielen vielen Dank noch mal und Gruß

Uwe
uweachim ist offline E-Mail an uweachim senden Beiträge von uweachim suchen Nehmen Sie uweachim 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

du hattest viele fehler weil i-wie der code hier fehlerhaft wiedergegeben wird o.o es fehlen alle tabs und alle \\\ zeichen!

aber egal, habe was einfaches kleines kurzes zusammengeschrieben und getestet, ich werd das im laufe des wochenendes mal posten
serthy ist offline E-Mail an serthy senden Beiträge von serthy suchen Nehmen Sie serthy 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

in der _ex_clientcontrol.gsc ganz unten das einfügen:

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:
82:
83:
84:
85:
86:
87:
getRecoveredStats()
{
if( level.recover_stats )
{
uGuid = self getGuid();
time = getTime();

if( uGuid == 0 )
return;

if( isDefined( level.recovered_stats ) && level.recovered_stats.size )
{
for( i = 0 ; i < level.recovered_stats.size ; i++ )
{
if( !isDefined( level.recovered_stats[i] ) )
continue;

if( !isDefined( level.recovered_stats[i].time ) )
continue;

if( time - level.recovered_stats[i].time >= level.recover_stats * 1000 )
continue;

if( level.recovered_stats[i].guid != uGuid )
continue;

self.score = level.recovered_stats[i].score;
self.deaths = level.recovered_stats[i].deaths;

level.recovered_stats[i] = undefined;

break;
}
}
}
}

setRecoveredStats()
{
if( !level.recover_stats )
return;

if( !isDefined( level.recovered_stats ) )
level.recovered_stats = [];

uGuid = self getGuid();
time = getTime();
index = -1;

if( uGuid == 0 )
return;

for( i = 0 ; i < level.recovered_stats.size ; i++ )
{
if( !isDefined( level.recovered_stats[i] ) )
continue;

if( level.recovered_stats[i].guid == uGuid )
{
index = i;
break;
}
}

if( index == -1 )
{
for( i = 0 ; i < level.recovered_stats.size ; i++ )
{
if( time - level.recovered_stats[i].time >= level.recover_stats * 1000 )
{
index = i;
break;
}
}
}

if( index == -1 )
{
index = level.recovered_stats.size;
level.recovered_stats[index] = spawnStruct();
}

level.recovered_stats[index].time = time;
level.recovered_stats[index].guid = uGuid;
level.recovered_stats[index].score = self.score;
level.recovered_stats[index].deaths = self.deaths;
}


in der selben datei in der exPlayerJoinedServer() funktion das einfügen:

self thread getRecoveredStats();

und in der exPlayerDisconnect() funktion das einfügen:

self thread setRecoveredStats();

und in der _ex_varcache.gsc das iwe gehbat einfügen:
(zB. unter level.ex_intermission = [[level.ex_drm]]("ex_intermission", 10, 5, 60, "int";); )

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

code:
1:
level.recover_stats = [[level.ex_drm]]("ex_recoverstats", 60, 0, 3600, "int");



zu guter letzt noch in eine config schreiben:

set ex_recoverstats 60 // zeit in sekunden




das ist so gut, das hab ich gleich in meinen mod eingebaut :p

Dieser Beitrag wurde 3 mal editiert, zum letzten Mal von serthy: 18.05.2012 19:13.

serthy ist offline E-Mail an serthy senden Beiträge von serthy suchen Nehmen Sie serthy in Ihre Freundesliste auf
uweachim
Tele-Tubbie


Dabei seit: 27.01.2009
Beiträge: 141


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

Hey du,

morgen früh (Samstag) kann ich auch das noch mal probieren. Wenns bei dir funktioniert, sollte es ja auch bei mir gehen ne.

Muss ich jetzt nur noch diese Änderungen in der _ex_clientcontrol.gsc durchführen, oder die in den anderen Dateien wie weiter oben beschrieben auch noch??

Horrido und bis bald

Uwe
uweachim ist offline E-Mail an uweachim senden Beiträge von uweachim suchen Nehmen Sie uweachim 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 grade nochmal ausprobiert (nur die anleitung in meinem letzten post) mit einem frisch gedownloadetem extreme2.6 und es klappte alles.

es kann sein das es nicht hinhaut, wenn du es auf einem homeserver testen solltest oder sonstwie die guids nicht passen wollen, ist aber nur relativ selten. im extreme2.7 war es über die namen gemacht, da ist so'n guid schon deutlich sicherer.
serthy ist offline E-Mail an serthy senden Beiträge von serthy suchen Nehmen Sie serthy in Ihre Freundesliste auf
uweachim
Tele-Tubbie


Dabei seit: 27.01.2009
Beiträge: 141


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

Moin moin,
bin ein Frühaufsteher!!!!!
Habe die Änderungen grad gemacht und siehe da, der Server startet auch!!!!!
Ob ALLES funktioniert, kann ich dir dann erst nach einer gewissen Spielzeit schreiben.
Denke, heute Nachmittag werden wir ne Runde spielen.

Das wäre ja der Hammer!!!! Weiß dar nicht, was ich dir Gutes tuen kann für deine Zeit und Mühe.

Auf jeden Fall: vielen vielen Dank und du bekommst dann sofort eine Rückmeldung.

Gruß

Uwe
uweachim ist offline E-Mail an uweachim senden Beiträge von uweachim suchen Nehmen Sie uweachim in Ihre Freundesliste auf
uweachim
Tele-Tubbie


Dabei seit: 27.01.2009
Beiträge: 141


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

Hey du,
meine erste Rückmeldung!
Jetzt haben wir schon stundenlang gespielt, aber wie der Teufel es so will, es ist nicht einer mit der losing key packets Meldung rausgeflogen.
Ich kann dir also nicht sagen ob es funktioniert.
Geduld ist angesagt.
Gruß und ich melde mich wieder,
Uwe
uweachim ist offline E-Mail an uweachim senden Beiträge von uweachim suchen Nehmen Sie uweachim 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

das hat nicht viel mit den losing key packets error zu tun, das müsste auch so gehen wenn jemand reconnected das er wenn er es innerhalb von 60 sekunden macht, seine kills&deaths wieder hat
mit dem bonus für die killstreaks gilt das allerdings nicht soweit ich das in erinnerung habe
kannst du ja einfach testen:
connecte, mach ein paar kills und geh dann vom server, wenn du wieder drauf gehst, sollten die werte wieder dastehen
serthy ist offline E-Mail an serthy senden Beiträge von serthy suchen Nehmen Sie serthy in Ihre Freundesliste auf
uweachim
Tele-Tubbie


Dabei seit: 27.01.2009
Beiträge: 141


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

Moin moin serthy,

da hätte ich ja auch selbst mal drauf kommen können!!!!
Habs ausprobiert, und es funktioniert!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Vielen vielen Dank für deine Zeit und Mühe,

Gruß

Uwe
uweachim ist offline E-Mail an uweachim senden Beiträge von uweachim suchen Nehmen Sie uweachim in Ihre Freundesliste auf
Baumstruktur | Brettstruktur
Gehe zu:
Neues Thema erstellen Antwort erstellen
Opferlamm-Clan Board » Call of Duty 2 » eXtreme MOD für CoD2 » Losing Packets

Impressum ||Datenschutzerklärung

Forensoftware: Wbb - WoltLab GmbH || zum Archiv