Armed-Assault.de Twitter


Editing The world is a Script - write it!

Antwort
 
Themen-Optionen Ansicht
Alt 30.01.2008, 12:39   #1 (permalink)
Newbie
 
Benutzerbild von Ezekiel
 
Registriert seit: 04.12.2006
Beiträge: 20
Ezekiel eine Nachricht über ICQ schicken
Standard 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?
__________________

RATM Reunion '07
RAR '08 ich komme!
Ezekiel ist offline   Mit Zitat antworten
Alt 30.01.2008, 16:22   #2 (permalink)
50 Beiträge100 Beiträge250 Beiträge
 
Benutzerbild von Tajin
 
Registriert seit: 17.01.2008
Beiträge: 267
Standard

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.
__________________
Tajin ist offline   Mit Zitat antworten
Alt 31.01.2008, 10:05   #3 (permalink)
Newbie
 
Benutzerbild von Ezekiel
 
Registriert seit: 04.12.2006
Beiträge: 20
Ezekiel eine Nachricht über ICQ schicken
Standard

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 {};

__________________

RATM Reunion '07
RAR '08 ich komme!
Ezekiel ist offline   Mit Zitat antworten
Alt 31.01.2008, 16:35   #4 (permalink)
50 Beiträge100 Beiträge250 Beiträge
 
Benutzerbild von Tajin
 
Registriert seit: 17.01.2008
Beiträge: 267
Standard

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. ^^
__________________
Tajin ist offline   Mit Zitat antworten
Alt 31.01.2008, 16:52   #5 (permalink)
Newbie
 
Benutzerbild von Ezekiel
 
Registriert seit: 04.12.2006
Beiträge: 20
Ezekiel eine Nachricht über ICQ schicken
Standard

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

RATM Reunion '07
RAR '08 ich komme!
Ezekiel ist offline   Mit Zitat antworten
Alt 08.02.2008, 16:56   #6 (permalink)
Newbie
 
Benutzerbild von Ezekiel
 
Registriert seit: 04.12.2006
Beiträge: 20
Ezekiel eine Nachricht über ICQ schicken
Standard

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

RATM Reunion '07
RAR '08 ich komme!
Ezekiel ist offline   Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus


Kontakt - HX3.de - Archiv - Nach oben

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