Admiral MOD - Mapvote am Ende der Map

Nightwing
Kann mir ein Scripter helfen??

Wenn beim Mapvote kein eindeutiges Ergebnis feststeht, sondern nur einzelne Stimmen abgegeben wurden, nimmt der Mod die oberste Zeile.

Da wär n Random besser...

Hier das Script:

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:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
144:
145:
146:
147:
148:
149:
150:
151:
152:
153:
154:
155:
156:
157:
158:
159:
160:
161:
162:
163:
164:
165:
166:
167:
168:
169:
170:
171:
172:
173:
174:
175:
176:
177:
178:
179:
180:
181:
182:
183:
184:
185:
186:
187:
188:
189:
190:
191:
192:
193:
194:
195:
196:
197:
198:
199:
200:
201:
202:
203:
204:
205:
206:
207:
208:
209:
210:
211:
212:
213:
214:
215:
216:
217:
218:
219:
220:
221:
222:
223:
224:
225:
226:
227:
228:
229:
230:
231:
232:
233:
234:
235:
236:
237:
238:
239:
240:
241:
242:
243:
244:
245:
246:
247:
248:
249:
250:
251:
252:
253:
254:
255:
256:
257:
258:
259:
260:
261:
262:
263:
264:
265:
266:
267:
268:
269:
270:
271:
272:
273:
274:
275:
276:
277:
278:
279:
280:
281:
282:
283:
284:
285:
286:
287:
288:
289:
290:
291:
292:
293:
294:
295:
296:
297:
298:
299:
300:
301:
302:
303:
304:
305:
306:
307:
308:
309:
310:
311:
312:
313:
314:
315:
316:
317:
318:
319:
320:
321:
322:
323:
324:
325:
326:
327:
328:
329:
330:
331:
332:
333:
334:
335:
336:
337:
338:
339:
340:
341:
342:
343:
344:
345:
346:
347:
348:
349:
350:
351:
352:
353:
354:
355:
356:
357:
358:
359:
360:
361:
362:
363:
364:
365:
366:
367:
368:
369:
370:
371:
372:
373:
374:
375:
376:
377:
378:
379:
380:
381:
382:
383:
384:
385:
386:
387:
388:
389:
390:
391:
392:
393:
394:
395:
396:
397:
398:
399:
400:
401:
402:
403:
404:
405:
406:
407:
408:
409:
410:
411:
412:
413:
414:
415:
416:
417:
418:
419:
420:
421:
422:
423:
424:
425:
426:
427:
428:
429:
430:
431:
432:
433:
434:
435:
436:
437:
438:
439:
440:
441:
442:
443:
444:
445:
446:
447:
448:
449:
450:
451:
452:
453:
454:
455:
456:
457:
458:
459:
460:
461:
462:
463:
464:
465:
466:
467:
468:
469:
470:
471:
472:
473:
474:
475:
476:
477:
478:
479:
480:
481:
482:
483:
484:
485:
486:
487:
488:
489:
490:
491:
492:
493:
494:
495:
496:
497:
498:
499:
500:
501:
502:
503:
504:
// * AdmiralMOD by Matthias Lorenz, http://www.cod2mod.com *



Vote() {


	if(game["am_error_logfile"] == 1) logPrint("Vote\n");


	level notify("am_vote_start");

	level.vote_starting = true;


	players = getentarray("player", "classname");
	if(players.size < 1) return;


	
	maps\mp\gametypes\_admiral_mod_hud::deleteLevelHudElementAll();
		
		
	if(isDefined(level.clock))	level.clock destroy();		



	// * Alle Player spawnen *        
	players = getentarray("player", "classname");
	for(i = 0; i < players.size; i++) {

		// * Nur die Spieler Spawnen, die eine Teamzuordnung haben *
		if(isDefined(players[i].pers["team"]) && (players[i].pers["team"] == "allies" || players[i].pers["team"] == "axis") ) {
		
			players[i] maps\mp\gametypes\_admiral_mod_player::SpawnVotePlayer();		
			players[i] freezeControls(true);	
		}
		
		
		// * Für Spectators nur Vote-Tabelle anzeigen *
		if(isDefined(players[i].pers["team"]) && players[i].pers["team"] == "spectator") {
		
			players[i].pers["team"] 	= "axis";
			players[i].pers["weapon"] 	= "shotgun_mp";
			players[i] maps\mp\gametypes\_admiral_mod_player::SpawnVotePlayer();		
			players[i] freezeControls(true);			
		}
				
	}


	wait 0.2;


	players = getentarray("player","classname");

	for(i=0;i<players.size;i++) {

		players[i] openMenu("close_highscore"); 		
		players[i] closeMenu(); 

		players[i] maps\mp\gametypes\_admiral_mod_player::ClearHud();

		if(isDefined(players[i].hud_teamicon))		players[i].hud_teamicon destroy();		
		if(isDefined(players[i].hud_enemyicon))		players[i].hud_enemyicon destroy();		
		if(isDefined(players[i].hud_teamscore))		players[i].hud_teamscore destroy();		
		if(isDefined(players[i].hud_enemyscore))	players[i].hud_enemyscore destroy();		
	

 		// * Wenn nur Clanmember, dann Check *
		if(game["am_vote_only_clanmembers"] == 1) {
			
			if(!isDefined(players[i].pers["clanmember"])) {
			
				players[i] setClientCvar("am_ui_show_vote_only_for_clanmembers", "1");					
				continue;
			}
			
			// * Vote nur für Clanmembers *
			if(game["am_vote_map"] == 1) 		players[i] thread maps\mp\gametypes\_admiral_mod_player::VoteMap(game["am_vote_maps"]);
			if(game["am_vote_gametype"] == 1) 	players[i] thread maps\mp\gametypes\_admiral_mod_player::VoteGametype(game["am_vote_gametypes"]);

		}
		else {

			// * Vote für alle *
			if(game["am_vote_map"] == 1) 		players[i] thread maps\mp\gametypes\_admiral_mod_player::VoteMap(game["am_vote_maps"]);
			if(game["am_vote_gametype"] == 1) 	players[i] thread maps\mp\gametypes\_admiral_mod_player::VoteGametype(game["am_vote_gametypes"]);
		}
	}



	
	level maps\mp\gametypes\_admiral_mod_hud::createLevelHudElement("cinema_vote_top", 0,0,"left","top","fullscreen","fullscreen",false,"black",640,80,-50,1,0,0,0);
	level maps\mp\gametypes\_admiral_mod_hud::createLevelHudElement("cinema_vote_bottom", 0,400,"left","top","fullscreen","fullscreen",false,"black",640,80,-50,1,0,0,0);
	level maps\mp\gametypes\_admiral_mod_hud::createLevelHudElement("cinema_vote_top_line", 0,80,"left","top","fullscreen","fullscreen",false,"white",640,2,-50,1,0.7,0.7,0.7);
	level maps\mp\gametypes\_admiral_mod_hud::createLevelHudElement("cinema_vote_bottom_line", 0,398,"left","top","fullscreen","fullscreen",false,"white",640,2,-50,1,0.7,0.7,0.7);

	maps\mp\gametypes\_admiral_mod_hud::showVoteBoard();




	level thread ShowMostVotedMaps();
	level thread ShowMostVotedGametypes();


	vote_zeit = game["am_vote_time"];

	maps\mp\gametypes\_admiral_mod_hud::createLevelTimerHudElement("vote_timer", 320,450,"center","middle","fullscreen","fullscreen",false,"default",2,4,&"AM_MP_TIME_TO_VOTE",vote_zeit,1,0.7,0,0);
	wait vote_zeit;  // Vote Zeit

	maps\mp\gametypes\_admiral_mod_hud::deleteLevelHudElementByName("vote_timer");





	// *** Auswertung ***

	level notify("am_vote_end");

	wait 1;
	
	// * Most Votes Anzeige beenden *
	level notify("am_vote_end_most_votes");
	
	
	
	// * Wenn kein Spieler mehr da, dann weiter in der normalen Map-Rotation *
	players = getentarray("player", "classname");
	if(players.size < 1) return;




	// **  Map  ** 
	gewaehlte_map = -2;

	if(game["am_vote_map"] == 1) {

		map_vote_punkte = [];

		// * Punkte-Liste auf 0 setzen (für die Maps) *
		for(i=0;i<game["am_vote_maps"].size;i++) map_vote_punkte[i] = 0;


		// * Ergebnis ermitteln *
		players = getentarray("player", "classname");

		for(i = 0; i < players.size; i++) {
	
			if(isDefined(players[i].vote_position_map)) {

				pos = players[i].vote_position_map;            
				if(!isDefined(map_vote_punkte[pos])) map_vote_punkte[pos] = 0; 
				map_vote_punkte[pos]++;           
			}
		}

		map_meisten_punkte  = 0;

		for(i = 0; i < game["am_vote_maps"].size; i++) {
			
			if(isDefined(map_vote_punkte[i]) && map_vote_punkte[i] > map_meisten_punkte) {

				map_meisten_punkte = map_vote_punkte[i];
				gewaehlte_map = i;				
			}
		}
	}



	// **  Gameytpe  ** 
	gewaehlte_gametype = -2;

	if(game["am_vote_gametype"] == 1) {

		gametype_vote_punkte = [];

		// * Punkte-Liste auf 0 setzen (für die gametypes) *
		for(i=0;i<game["am_vote_gametypes"].size;i++) gametype_vote_punkte[i] = 0;


		// * Ergebnis ermitteln *
		players = getentarray("player", "classname");

		for(i = 0; i < players.size; i++) {
			
			if(isDefined(players[i].vote_position_gametype)) {

				pos = players[i].vote_position_gametype;    
				if(!isDefined(gametype_vote_punkte[pos])) gametype_vote_punkte[pos] = 0; 
				gametype_vote_punkte[pos]++;           
			}
		}

		gametype_meisten_punkte  = 0;

		for(i = 0; i < game["am_vote_gametypes"].size; i++) {

			if(isDefined(gametype_vote_punkte[i]) && gametype_vote_punkte[i] > gametype_meisten_punkte) {

				gametype_meisten_punkte = gametype_vote_punkte[i];
				gewaehlte_gametype = i;				
			}
		}
	}




	// *** Ergebnis anzeigen ***


	//* gewählte Map und Gametype hervorheben (neue Position + Farben der Balken) *
	
	players = getentarray("player", "classname");

	for(i = 0; i < players.size; i++) {

		if(game["am_vote_map"] == 1) {
		
			data = players[i] maps\mp\gametypes\_admiral_mod_hud::getPlayerHudElementDataByName("vote_point_map");
			if(isDefined(data)) players[i] maps\mp\gametypes\_admiral_mod_hud::changePlayerHudElementByName("vote_point_map",data["shader"],data["width"],data["height"],0.7,data["color"]);
		}
		
		if(game["am_vote_gametype"] == 1) {
		
			data = players[i] maps\mp\gametypes\_admiral_mod_hud::getPlayerHudElementDataByName("vote_point_gametype");
			if(isDefined(data)) players[i] maps\mp\gametypes\_admiral_mod_hud::changePlayerHudElementByName("vote_point_gametype",data["shader"],data["width"],data["height"],0.7,data["color"]);
		}

		players[i] maps\mp\gametypes\_admiral_mod_hud::changePlayerHudElementPositionByName("vote_point_map",170,120 + gewaehlte_map * 15);
		players[i] maps\mp\gametypes\_admiral_mod_hud::changePlayerHudElementPositionByName("vote_point_gametype",470,120 + gewaehlte_gametype * 15);
	}
	
	wait 5;


	// * Hud befreien *
	players = getentarray("player", "classname");

	for(i = 0; i < players.size; i++) {

		players[i] maps\mp\gametypes\_admiral_mod_player::ClearHud();

		players[i] setClientCvar("am_ui_show_vote_headline", "0");
		players[i] setClientCvar("am_ui_show_vote_map_button", "0");
		players[i] setClientCvar("am_ui_show_vote_gametype_button", "0");
		players[i] setClientCvar("am_ui_show_vote_board_maps", "0");
		players[i] setClientCvar("am_ui_show_vote_board_gametypes", "0");
		players[i] setClientCvar("am_ui_show_vote_only_for_clanmembers", "0");	
	}




	maps\mp\gametypes\_admiral_mod_hud::deleteLevelHudElementAll();
	
	level maps\mp\gametypes\_admiral_mod_hud::createLevelHudElement("cinema_vote_top", 0,0,"left","top","fullscreen","fullscreen",false,"black",640,80,-50,1,0,0,0);
	level maps\mp\gametypes\_admiral_mod_hud::createLevelHudElement("cinema_vote_bottom", 0,400,"left","top","fullscreen","fullscreen",false,"black",640,80,-50,1,0,0,0);
	level maps\mp\gametypes\_admiral_mod_hud::createLevelHudElement("cinema_vote_top_line", 0,80,"left","top","fullscreen","fullscreen",false,"white",640,2,-50,1,0.7,0.7,0.7);
	level maps\mp\gametypes\_admiral_mod_hud::createLevelHudElement("cinema_vote_bottom_line", 0,398,"left","top","fullscreen","fullscreen",false,"white",640,2,-50,1,0.7,0.7,0.7);



	// * Nächste Map und nächster Gametype aus der normalen Maprotation holen *
	map 		= maps\mp\gametypes\_admiral_mod_hud::getMapNameAsLocalizedString(maps\mp\gametypes\_admiral_mod_utils::getNextMap());
	gametype 	= maps\mp\gametypes\_admiral_mod_hud::getGametypeNameAsLocalizedString(maps\mp\gametypes\_admiral_mod_utils::getNextGametype());


	// * Wenn eine Map gewählt wurde, oder ein Gametype, dann diesen nehmen anstatt die/den aus der Maprotation *
	if(game["am_vote_map"] == 1 && isDefined(game["am_vote_maps"][gewaehlte_map])) {
	
		if(game["am_allow_vote_custom_maps"] == 1) {
		
			// * Wenn Stock Map, dann mp_ *
			if(maps\mp\gametypes\_admiral_mod_utils::isMapNameExists("mp_" + game["am_vote_maps"][gewaehlte_map])) 	map 		= maps\mp\gametypes\_admiral_mod_hud::getMapNameAsLocalizedString("mp_" + game["am_vote_maps"][gewaehlte_map]);
			else 																									map 		= game["am_vote_maps"][gewaehlte_map];
		}	
		else {
		
			if(maps\mp\gametypes\_admiral_mod_utils::isMapNameExists("mp_" + game["am_vote_maps"][gewaehlte_map])) 	map 		= maps\mp\gametypes\_admiral_mod_hud::getMapNameAsLocalizedString("mp_" + game["am_vote_maps"][gewaehlte_map]);
		}
	}
	
	
	if(game["am_vote_gametype"] == 1 && isDefined(game["am_vote_gametypes"][gewaehlte_gametype])  && maps\mp\gametypes\_admiral_mod_utils::isGametypeNameExists(game["am_vote_gametypes"][gewaehlte_gametype])) 		gametype 	= maps\mp\gametypes\_admiral_mod_hud::getGametypeNameAsLocalizedString(game["am_vote_gametypes"][gewaehlte_gametype]);



	iprintln(&"AM_MP_NEXT_MAP_AND_GAMETYPE",map,gametype);

    
      
    
	if(game["am_allow_vote_custom_maps"] == 1)    {
	
		if(game["am_vote_map"] == 1 && isDefined(game["am_vote_maps"][gewaehlte_map]) && maps\mp\gametypes\_admiral_mod_utils::isMapNameExists("mp_" + game["am_vote_maps"][gewaehlte_map])) 	v_map = "mp_" + game["am_vote_maps"][gewaehlte_map];
		else 																																													v_map = game["am_vote_maps"][gewaehlte_map];
	}
	else {
	
		if(game["am_vote_map"] == 1 && isDefined(game["am_vote_maps"][gewaehlte_map]) && maps\mp\gametypes\_admiral_mod_utils::isMapNameExists("mp_" + game["am_vote_maps"][gewaehlte_map])) {

			v_map = "mp_" + game["am_vote_maps"][gewaehlte_map];
		}
		else {

			v_map = maps\mp\gametypes\_admiral_mod_utils::getNextMap();
		}
	}
	
	

    if(game["am_vote_gametype"] == 1 && isDefined(game["am_vote_gametypes"][gewaehlte_gametype]) &&  maps\mp\gametypes\_admiral_mod_utils::isGametypeNameExists(game["am_vote_gametypes"][gewaehlte_gametype])) {
    
    	v_gametype = game["am_vote_gametypes"][gewaehlte_gametype];
    }
    else {
    
    	v_gametype = maps\mp\gametypes\_admiral_mod_utils::getNextGametype();
    }
     
    
    next_map =  "gametype " + v_gametype + " map " + v_map;
   
    setcvar("sv_maprotationcurrent",next_map);


	wait 7;    

}



ShowMostVotedMaps() {

	level endon("am_vote_end_most_votes");


	// ***  Map  *** 

	if(game["am_vote_map"] != 1) return;
	
	
	if(game["am_error_logfile"] == 1) logPrint("ShowMostVotedMaps\n");
	
	
	while(1) {

		map_vote_punkte = [];
		m = 0;

		// * Punkte-Liste auf 0 setzen (für die Maps) *
		for(i=0;i<game["am_vote_maps"].size;i++) map_vote_punkte[i] = 0;


		// * Ergebnis ermitteln *
		players = getentarray("player", "classname");

		for(i = 0; i < players.size; i++) {
	
			if(isDefined(players[i].vote_position_map) && players[i].vote_position_map > -1) {

				pos = players[i].vote_position_map;            
				map_vote_punkte[pos]++;           
			}
		}


		meistgewaehlte_maps 		= [];
		meistgewaehlte_maps_votes 	= [];

		while(m<3) {

			map_meisten_punkte  = 0;

			for(i = 0; i < game["am_vote_maps"].size; i++) {

				if(map_vote_punkte[i] > map_meisten_punkte && !InMeistgewaehlteMapListe(i,meistgewaehlte_maps)) {

					map_meisten_punkte 				= map_vote_punkte[i];					
					meistgewaehlte_maps[m] 		 	= i;				
					meistgewaehlte_maps_votes[m] 	= map_meisten_punkte;
				}
			}
		
			m++;
		}					
		
		wait 0.5;
		
		
		for(i=0;i<3;i++) {
		
			level maps\mp\gametypes\_admiral_mod_hud::deleteLevelHudElementByName("most_votes_maps_" + i); 
		
			if(isDefined(meistgewaehlte_maps_votes[i]) && meistgewaehlte_maps_votes[i] > 0)	level maps\mp\gametypes\_admiral_mod_hud::createLevelTextHudElement("most_votes_maps_" + i, 100,126 + 15 * meistgewaehlte_maps[i],"center","middle","fullscreen","fullscreen",false,undefined,meistgewaehlte_maps_votes[i],1.3,50,1,1,1,1); 
		}
	}
}




InMeistgewaehlteMapListe(map_nr,meistgewaehlte_maps) {

	if(game["am_error_logfile"] == 1) logPrint("InMeistgewaehlteMapListe\n");


	for(i=0;i<meistgewaehlte_maps.size;i++) {
	
		if(map_nr == meistgewaehlte_maps[i]) return true;	
	}
	
	return false;
}


ShowMostVotedGametypes() {

	if(game["am_error_logfile"] == 1) logPrint("ShowMostVotedGametypes\n");


	level endon("am_vote_end_most_votes");


	// ***  Map  *** 

	if(game["am_vote_gametype"] != 1) return;
	
	
	while(1) {

		gametype_vote_punkte = [];
		m = 0;

		// * Punkte-Liste auf 0 setzen (für die Gametypes) *
		for(i=0;i<game["am_vote_gametypes"].size;i++) gametype_vote_punkte[i] = 0;


		// * Ergebnis ermitteln *
		players = getentarray("player", "classname");

		for(i = 0; i < players.size; i++) {
	
			if(isDefined(players[i].vote_position_gametype) && players[i].vote_position_gametype > -1) {

				pos = players[i].vote_position_gametype;            
				gametype_vote_punkte[pos]++;           
			}
		}


		meistgewaehlte_gametypes 		= [];
		meistgewaehlte_gametypes_votes 	= [];

		while(m<3) {

			gametype_meisten_punkte  = 0;

			for(i = 0; i < game["am_vote_gametypes"].size; i++) {

				if(gametype_vote_punkte[i] > gametype_meisten_punkte && !InMeistgewaehlteGametypeListe(i,meistgewaehlte_gametypes)) {

					gametype_meisten_punkte 			= gametype_vote_punkte[i];					
					meistgewaehlte_gametypes[m] 		= i;				
					meistgewaehlte_gametypes_votes[m] 	= gametype_meisten_punkte;
				}
			}
		
			m++;
		}					
		
		wait 0.5;
		
		
		for(i=0;i<3;i++) {
		
			level maps\mp\gametypes\_admiral_mod_hud::deleteLevelHudElementByName("most_votes_gametypes_" + i); 
		
			if(isDefined(meistgewaehlte_gametypes_votes[i]) && meistgewaehlte_gametypes_votes[i] > 0)	level maps\mp\gametypes\_admiral_mod_hud::createLevelTextHudElement("most_votes_gametypes_" + i, 395,126 + 15 * meistgewaehlte_gametypes[i],"center","middle","fullscreen","fullscreen",false,undefined,meistgewaehlte_gametypes_votes[i],1.3,50,1,1,1,1); 
		}
	}
}


InMeistgewaehlteGametypeListe(gametype_nr,meistgewaehlte_gametypes) {

	if(game["am_error_logfile"] == 1) logPrint("InMeistgewaehlteGametypeListe\n");


	for(i=0;i<meistgewaehlte_gametypes.size;i++) {
	
		if(gametype_nr == meistgewaehlte_gametypes[i]) return true;	
	}
	
	return false;
}

Nightwing
naja ich bin mal auf das als lösung gekommen, mithilfe ner freundin, die beruflich so zeugs macht:

nur haben wir eins vergessen, bei keiner stimme sucht sich das random ne map aus, und geht nicht wie vom admiralmodder vorgesehen in die normale rotation über.

wie kann ich das einstellen?

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:
	// **  Map  ** 
	gewaehlte_map = -2;
	
	if(game["am_vote_map"] == 1) {

		map_vote_punkte = [];

		// * Punkte-Liste auf 0 setzen (für die Maps) *
		for(i=0;i<game["am_vote_maps"].size;i++) map_vote_punkte[i] = 0;


		// * Ergebnis ermitteln *
		players = getentarray("player", "classname");

		for(i = 0; i < players.size; i++) {
	
			if(isDefined(players[i].vote_position_map)) {

				pos = players[i].vote_position_map;            
				if(!isDefined(map_vote_punkte[pos])) map_vote_punkte[pos] = 0; 
				map_vote_punkte[pos]++;           
			}
		}

		map_meisten_punkte  = 0;
		gewaehlte_maps = [];

		for(i = 0; i < game["am_vote_maps"].size; i++) {
			
			if(isDefined(map_vote_punkte[i]) && map_vote_punkte[i] > map_meisten_punkte) {
				map_meisten_punkte = map_vote_punkte[i];
			}
		}		
		gewaehlte_maps_count = 0;
		for(i = 0; i < game["am_vote_maps"].size; i++) {
			
			if(isDefined(map_vote_punkte[i]) && map_vote_punkte[i] == map_meisten_punkte) {
				gewaehlte_maps[gewaehlte_maps_count] = i;		
				gewaehlte_maps_count++;
			}
		}
		gewaehlte_map = gewaehlte_maps[RandomInt(gewaehlte_maps.size)];
	}



mal die woche über testen, wie es tut...
Nightwing
und noch eine Frage dazu:

Wie kann ich sagen, das er von den Maps, die in der cfg stehen, die Anzahl 7 Random holen soll??

Hier der Code

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:
	// * Maps und Gametypes für Voting *

	maplist 		= game["am_vote_maps"];
	gametypelist 	= game["am_vote_gametypes"];
	
		
	if(game["am_vote_map"] == 1) {

		for(i=0;i<15;i++) {	

			if(isDefined(maplist[i])) {

				map = maps\mp\gametypes\_admiral_mod_utils::firstToUpper(maplist[i]);

				self setClientCvar("am_ui_vote_map_" + i, map);					
			}
			else {
			
				self setClientCvar("am_ui_vote_map_" + i, " ");					
			}
		}	
	}




und wie kann ich ferner die HUD Elemente in Y Richtung verkleinern?

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:
showVoteBoard() {

 
 	if(game["am_vote_map"] != 1 && game["am_vote_gametype"] != 1) return;

	
	if(game["am_error_logfile"] == 1) logPrint("showVoteBoard\n");

	

	// * VoteBoard Background *
	if(game["am_vote_map"] == 1) 		level createLevelHudElement("vote_board_back_map", 170,110,"center","top","fullscreen","fullscreen",false,"white",220,260,1,0.7,0,0,0);
	if(game["am_vote_gametype"] == 1) 	level createLevelHudElement("vote_board_back_gametype", 470,110,"center","top","fullscreen","fullscreen",false,"white",220,260,1,0.7,0,0,0);
 
 
 
 	// * Die restlichen Elemente *
    players = getentarray("player", "classname");
                            
	for(p = 0; p < players.size; p++) {
		
		
		players[p] setClientCvar("am_ui_show_vote_headline", "1");
		players[p].pers["am_ui_show_vote_headline"] = 1;	

		if(game["am_vote_map"] == 1) {
		
			players[p] setClientCvar("am_ui_show_vote_map_button", "1");
			players[p].pers["am_ui_show_vote_map_button"] = 1;
		}
		if(game["am_vote_gametype"] == 1) {
		
			players[p] setClientCvar("am_ui_show_vote_gametype_button", "1");
			players[p].pers["am_ui_show_vote_gametype_button"] = 1;
		}


		if(game["am_vote_map"] == 1) {

			players[p] setClientCvar("am_ui_show_vote_board_maps", "1");						
			players[p].pers["am_ui_show_vote_board_maps"] = 1;
		}

		if(game["am_vote_gametype"] == 1) {
		
			players[p] setClientCvar("am_ui_show_vote_board_gametypes", "1");
			players[p].pers["am_ui_show_vote_board_gametypes"] = 1;			
		}		
	}

}



Glaub das ist einfacher zu Fragen, wie zu probieren, da ich nicht verstehe, was mit den zahlen alles angegeben ist


Danke für kommende Antworten!
MikeTNT

Zitat:

Original von Nightwing
und noch eine Frage dazu:

Wie kann ich sagen, das er von den Maps, die in der cfg stehen, die Anzahl 7 Random holen soll??



Laut Modder ist die maximal mögliche Anzahl bei COD2 auf 5 beschränkt, mehr ist nicht möglich.

cu Mike
Nightwing
würd mir ehrlich gesagt auch reichen
MikeTNT
Sorry, ich glaube ich habe da etwas verwechselt. Du redest vermutlich vom Admiral-Vote-System. Ich rede vom Vote-System, welches in AWE (auch in eXtreme+) vorkommt.

Bei AM gibt es doch gar keine Random-Funktion, oder irre ich mich? Soweit ich mich erinnere, stehen bis zu 15 Maps fest zur Auswahl.

cu Mike
Nightwing
das ist ausnahmslos richtig mike!

der am mapvote hat 2 fehler:

erstens, wenn bei nem vote ein gleichstand rauskommt, nimmt er die oberste map, also völliger blödsinn

das hab ich korrigiert, da macht er nun random

jetzt will ich das noch perfekter haben, er soll aus der gesamten rotation 7 maps random auswählen

natürlich wird dann auch das hud element verkleinert, wenn ich das mal durchsteig, wie der das angegeben hat...

es kommt der tag, da hab ich dann den admiral mod so, wie ich ihn haben will grosses Grinsen aber dann fällt mir bestimmt wieder ne andere dummheit ein cool

grüßle ToM
Nightwing
ok, hier die lösung:

in der datei _admiral_mod_vars.gsc folgendes ändern:

string "am_vote_maps" in "am_vote_maps_orig"

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

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
    game["am_vote_maps"] = [];

    game["am_vote_map"]								= GetV("int","am_vote_map",0,0,1);
    game["am_vote_gametype"]						= GetV("int","am_vote_gametype",0,0,1);
    game["am_vote_time"]							= GetV("int","am_vote_time",30,10,45);    
    game["am_vote_only_clanmembers"]				= GetV("int","am_vote_only_clanmembers",0,0,1);
    game["am_vote_maps_orig"]       					= GetV("array_komma","am_vote_maps",maplist,"","");
    game["am_vote_gametypes"]              			= GetV("array_komma","am_vote_gametypes",gametypelist,"","");
    game["am_allow_vote_custom_maps"]				= GetV("int","am_allow_vote_custom_maps",0,0,1);    



in der datei _admiral_mod_player.gsc die funktion PlayerVoteCvarsInit() {
am besten komplett mit der neuen hier überschreiben:

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:
PlayerVoteCvarsInit() {

	self endon("disconnect");


	wait 1 + RandomInt(10); // * Damit kein Server Command Overflow *


	// * Bei Maprestart (Gametype SD, ...)  nicht erneut die CVars laden *
	if(isDefined(self.pers["VoteCvarsInit"])) return;
	
	self.pers["VoteCvarsInit"] = true;

   
	// * Vote: muß hier stehen, damit eine evtl. alte gesetzte 1 gelöscht wird *
	self setClientCvar("am_ui_show_vote_headline", "0");
	self setClientCvar("am_ui_show_vote_map_button", "0");
	self setClientCvar("am_ui_show_vote_gametype_button", "0");
	self setClientCvar("am_ui_show_vote_board_maps", "0");
	self setClientCvar("am_ui_show_vote_board_gametypes", "0");
	self setClientCvar("am_ui_show_vote_only_for_clanmembers", "0");



	// * Maps und Gametypes für Voting *

	maplist 		= game["am_vote_maps_orig"];
	gametypelist 	= game["am_vote_gametypes"];
	mapanzahl = 8;
	
	indexlist = [];
	maplist_result = [];
	
	for(i=0;i<mapanzahl;i++){
		used = false;
		index = RandomInt(maplist.size - 1);
		for(j=0;j<mapanzahl;j++){
			if(isDefined(indexlist[j])  && indexlist[j]== index){
				used = true;
				break;
			}
		}
		if(used){
			i--;
			continue;
		}
		indexlist[i] = index;
	}
		
	if(game["am_vote_map"] == 1) {

		for(i=0;i<mapanzahl;i++) {	
			index = indexlist[i];
			
			if(isDefined(maplist[index])) {

				map = maps\mp\gametypes\_admiral_mod_utils::firstToUpper(maplist[index]);
				maplist_result[i] = maplist[index];

				self setClientCvar("am_ui_vote_map_" + i, map);					
			}
			else {
				self setClientCvar("am_ui_vote_map_" + i, " ");					
			}
		}	
	}
	
	game["am_vote_maps"] = maplist_result;



in der config unter set am_vote_maps alle maps, die auf dem server sind, eintragen. komma als trennstelle


nun sucht sich das script 8 maps random aus, die zur abstimmung angezeigt werden.
Nightwing
die HUD elemente hab ich nicht verkleinert, ist unnötig.

bei 0 playern votet das randomscript trotzdem, aber auch egal.

im original würde er in die standardrotation springen, bei meinem nimmt er eine map random.

fakt ist, wieder ein grosser teil des modifizierten mods geschafft!!!
Nightwing
na juhuu

ein fehler gibts da noch, hab ich heut während em zocken festgestellt:
(schieb doch keine paranoia)

jedem client werden andere maps zur auswahl gestellt.

frage an die scriptprofis hier:

wie kann ich sagen, das alle maps zwar random geholt werden, aber JEDEM client die gleichen angezeigt werden???

Danke für Eure Hilfe

ToM

EDIT: Es tut nun so, wie es soll. Die ganzen Codeschnipsel hier reinzustellen wär aber zu schwierig, also müsst Ihr warten, bis ich die ganze Erweiterung fertig habe und zum DL reinstell.