HX3 Foren

HX3 Foren (https://hx3.de/)
-   Editing (https://hx3.de/editing-139/)
-   -   KI-Schwierigkeit bei Auswahlbildschirm (https://hx3.de/editing-139/ki-schwierigkeit-auswahlbildschirm-14338/)

Ezekiel 30.01.2008 13:39

KI-Schwierigkeit bei Auswahlbildschirm
 
Tag,

ich will eine Mission editieren, bei der man beim Auswahlbildschirm, wenn man einen Server joint, die KI-Schwierigkeit einstellen kann. Diese Auswahl gibt es beispielsweise in "Air Cavallry" und in dem Ordner dieser Mission heißt die Datei "f_setAISkill.sqf".
Nun, wie baue ich dieses Skript in meine Mission ein?

Tajin 30.01.2008 17:22

Die Werte die man auswählen kann und die dann an dieses Script übergeben werden müssen in der Description.ext festgelegt werden.

z.B.:
Code:

titleParam1 = "Score Limit:";
valuesParam1[] = {999999,100,300,500};
defValueParam1 = 300;
textsParam1[] = {"none","100 points","300 points","500 points"};

titleParam2 = "Daytime:";
valuesParam2[] = {1,4,12,19.5};
defValueParam2 = 12;
textsParam2[] = {"night","morning","noon","evening"};


Welche Werte dein Script da braucht musst du nachgucken. Das kann ich dir ohne Blick auf den Code nicht sagen. Aber die Sachen kannst du ja am einfachsten aus der anderen Mission übernehmen.

Ezekiel 31.01.2008 11:05

Bei Evolution sind ja bekanntlich zwei Spalten für einmal die Uhrzeit und einmal wie schnell die Zeit vergehen soll und ob MH6-Respawn drin ist. Wie kriege ich da wohl die dritte Spalte rein?
Es kommt jetzt das, was in der Datei von Air Cavallry drin steht. Ich habe auch schon ausprobiert diese Datei einfach zu kopieren mit dem selben Ordner (f/common/f_setAISkill.sqf) oder wo muss ich die rein kopieren bei Evo?

Zitat:

// BAS f - setAISkill
// Version: 0-0-1 (2007-01-07)
// Author(s): Fer
// ================================================== ==================================

// DECLARE VARIABLES AND FUNCTIONS

private ["_trg","_men","_localMen","_localBLUMen","_localRE SMen","_localOPFMen","_localCIVMen","_strMen","_st rLocalMen","_strLocalBLUMen","_strLocalRESMen","_s trLocalOPFMen","_strLocalCIVMen","_superSkill","_h ighSkill","_mediumSkill","_lowSkill","_skillFriend ly","_skillEnemy"];

// ================================================== ==================================

// SET KEY VARIABLES
// AI Skills are set using the value of f_var_Param2. Usually, f_var_Param2 == Param2.

f_var_Param2 = Param2;
_superSkill = 1.00;
_highSkill = 0.75;
_mediumSkill = 0.50;
_lowSkill = 0.25;

// Using a dynamically created trigger we will create an array containing all men.

_trg = createTrigger ["EmptyDetector", [5000, 5000, 0]];
_trg setTriggerActivation ["ANY", "PRESENT", true];
_trg setTriggerArea [20000, 20000, 0, false];
_trg setTriggerStatements ["this", "", ""];
sleep 2;
_men = [];
{if (_x isKindOf "CAManBase") then {_men = _men + [_x]}} forEach list _trg;
deletevehicle _trg;

// We split out the contents of _men - first by locality, then by side.

_localMen = [];
_localBLUMen = [];
_localRESMen = [];
_localOPFMen = [];
_localCIVMen = [];

{if (local _x) then {_localMen = _localMen + [_x]}} forEach _men;
{if ((side _x) == west) then {_localBLUMen = _localBLUMen + [_x]}} forEach _localMen;
{if ((side _x) == resistance) then {_localRESMen = _localRESMen + [_x]}} forEach _localMen;
{if ((side _x) == east) then {_localOPFMen = _localOPFMen + [_x]}} forEach _localMen;
{if ((side _x) == civilian) then {_localCIVMen = _localCIVMen + [_x]}} forEach _localMen;

// DEBUG
if (f_var_debugMode == 1) then
{
_strMen = str _men;
_strLocalMen = str _localMen;
_strLocalBLUMen = str _localBLUMen;
_strLocalRESMen = str _localRESMen;
_strLocalOPFMen = str _localOPFMen;
_strLocalCIVMen = str _localCIVMen;
player sideChat format ["DEBUG (f\common\f_setAISkill.sqf): _men = %1",_strMen];
player sideChat format ["DEBUG (f\common\f_setAISkill.sqf): _localMen = %1",_strLocalMen];
player sideChat format ["DEBUG (f\common\f_setAISkill.sqf): _localBLUMen = %1",_strLocalBLUMen];
player sideChat format ["DEBUG (f\common\f_setAISkill.sqf): _localRESMen = %1",_strLocalRESMen];
player sideChat format ["DEBUG (f\common\f_setAISkill.sqf): _localOPFMen = %1",_strLocalOPFMen];
player sideChat format ["DEBUG (f\common\f_setAISkill.sqf): _localCIVMen = %1",_strLocalCIVMen];
};

// ================================================== ==================================

// SELECT FRIENDLY AND ENEMY AI SKILLS
// Using the value of f_var_Param2, values for _skillFriendly and _skillEnemy are set.

switch (f_var_Param2) do
{
// Random | Random
case 1:
{
};
// Random | Super
case 2:
{
};
// Random | High
case 3:
{
};
// Random | Medium
case 4:
{
};
// Random | Low
case 5:
{
};
// Super | Super
case 6:
{
_skillFriendly = _superSkill;
_skillEnemy = _superSkill;
};
// Super | High
case 7:
{
_skillFriendly = _superSkill;
_skillEnemy = _highSkill;
};
// Super | Medium
case 8:
{
_skillFriendly = _superSkill;
_skillEnemy = _mediumSkill;
};
// Super | Low
case 9:
{
_skillFriendly = _superSkill;
_skillEnemy = _lowSkill;
};
// High | Random
case 10:
{
};
// High | Super
case 11:
{
_skillFriendly = _highSkill;
_skillEnemy = _superSkill;
};
// High | High
case 12:
{
_skillFriendly = _highSkill;
_skillEnemy = _highSkill;
};
// High | Medium
case 13:
{
_skillFriendly = _highSkill;
_skillEnemy = _mediumSkill;
};
// High | Low
case 14:
{
_skillFriendly = _highSkill;
_skillEnemy = _lowSkill;
};
// Medium | Random
case 15:
{
};
// Medium | Super
case 16:
{
_skillFriendly = _mediumSkill;
_skillEnemy = _superSkill;
};
// Medium | High
case 17:
{
_skillFriendly = _mediumSkill;
_skillEnemy = _highSkill;
};
// Medium | Medium
case 18:
{
_skillFriendly = _mediumSkill;
_skillEnemy = _mediumSkill;
};
// Medium | Low
case 19:
{
_skillFriendly = _mediumSkill;
_skillEnemy = _lowSkill;
};
// Low | Random
case 20:
{
};
// Low | Super
case 21:
{
_skillFriendly = _lowSkill;
_skillEnemy = _superSkill;
};
// Low | High
case 22:
{
_skillFriendly = _lowSkill;
_skillEnemy = _highSkill;
};
// Low | Medium
case 23:
{
_skillFriendly = _lowSkill;
_skillEnemy = _mediumSkill;
};
// Low | Low
case 24:
{
_skillFriendly = _lowSkill;
_skillEnemy = _lowSkill;
};
// Debug Mode
case 99:
{
_skillFriendly = _lowSkill;
_skillEnemy = _lowSkill;
};
};

// ================================================== ==================================

// SET SIDE AI SKILL LEVELS
// AI Skill for each side is set (in part using variables from the init.sqf file).

if (f_isFriendlyBLU == 1) then {f_skillBLU = _skillFriendly} else {f_skillBLU = _skillEnemy};
if (f_isFriendlyRES == 1) then {f_skillRES = _skillFriendly} else {f_skillRES = _skillEnemy};
if (f_isFriendlyOPF == 1) then {f_skillOPF = _skillFriendly} else {f_skillOPF = _skillEnemy};
if (f_isFriendlyCIV == 1) then {f_skillCIV = _skillFriendly} else {f_skillCIV = _skillEnemy};

// DEBUG
if (f_var_debugMode == 1) then
{
_strSkillFriendly = str _skillFriendly;
_strSkillEnemy = str _skillEnemy;
player sideChat format ["DEBUG (f\common\f_setAISkill.sqf): _skillFriendly = %1",_strSkillFriendly];
player sideChat format ["DEBUG (f\common\f_setAISkill.sqf): _skillEnemy = %1",_strSkillEnemy];
player sideChat format ["DEBUG (f\common\f_setAISkill.sqf): f_skillBLU = %1",f_skillBLU];
player sideChat format ["DEBUG (f\common\f_setAISkill.sqf): f_skillRES = %1",f_skillRES];
player sideChat format ["DEBUG (f\common\f_setAISkill.sqf): f_skillOPF = %1",f_skillOPF];
player sideChat format ["DEBUG (f\common\f_setAISkill.sqf): f_skillCIV = %1",f_skillCIV];
};

// ================================================== ==================================

// SET SKILL LEVELS FOR ALL LOCAL AI
// AI Skill for all local AIs is set using side levels (see above).

{_x setSkill f_skillBLU} forEach _localBLUMen;
{_x setSkill f_skillRES} forEach _localRESMen;
{_x setSkill f_skillOPF} forEach _localOPFMen;
{_x setSkill f_skillCIV} forEach _localCIVMen;

// DEBUG
if (f_var_debugMode == 1) then
{
{_x addEventHandler ["hit", {_v=_this select 0; _skillV = skill _v; player sideChat format ["DEBUG (f\common\f_setAISkill.sqf): Skill %1 = %2",_v,_skillV]}];} forEach _localMen;
};

// ================================================== ==================================

if (true) exitWith {};

Tajin 31.01.2008 17:35

Ach du willst das in Evo einbauen ?

Vorneweg: eine dritte Spalte gibt es nicht, deswegen sind ja in den ersten 2 spalten oft mehrere Einstellungen aufeinmal drin.


Wenn du das zusammenbauen willst musste dir schon bissl was einfallen lassen, ansonsten wie oben bereits erwähnt übernimm den Teil mit den Parametern aus der description.ext von AirCav.
Das Script in den gleichen Ordner zu kopieren reicht natürlich auch nicht, du musst es auch irgendwie starten.



Naja wie auch immer, mit Evo wird dieses Script ohnehin nicht - oder nur in abgewandelter Form funktionieren. Allein schon deswegen weil Evo sein eigenes Spawnscript hat und der KIskill dabei miteinstellt wird.

Vermutlich wärst du besser damit beraten einfach die Skilleinstellungen er KI auf dem Server zu ändern. ^^

Ezekiel 31.01.2008 17:52

Hmm wohl wahr, mich kotzt die Evo-KI einfach nur an.

Ezekiel 08.02.2008 17:56

Hmm, ich kriege das nicht auf die Reihe. Kann mir bitte jemand den Gefallen tun und das für mich "einfügen"?


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:26 Uhr.

Angetrieben durch vBulletin, Entwicklung von Philipp Dörner & Tobias


SEO by vBSEO 3.2.0 ©2008, Crawlability, Inc.

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