Ich könnte auch ein leeres Starterpack anbieten, wenn ich schon dabei bin. (Wenn schon, denn schon.)
man könnte auch ein Jeff-Starterpack machen.Ich finde, das macht noch wenig Sinn, da noch nicht wirklich viele Räume von Jeffs Wohnung bekannt sin bzw. noch gar nicht existieren. :-\
Bei den neuen für AGS3 gibt es die A_OPEN, ... nicht mehr.
Das waren nur defines, die ersetzt wurden durch eActOpen, ...
Genauso gibt es die DIR_UP, .. nicht mehr.
Die heißen jetzt eDirUp, ...
Warum hast du die #defines, [...] umbenannt? [...]
[...] wirds damit in Zukunft anfragen wie die von Indy hageln. ::)
Außerdem sind die ganzen MovePlayer(...) Sachen aus den Starterpacks auch rausgefolgen... usw.Heisst das du hast komplette Funktionen rausgelöscht ???
Außerdem sind die ganzen MovePlayer(...) Sachen aus den Starterpacks auch rausgefolgen... usw.Du kennst aber schon den entscheidenden Unterschied zwischen MovePlayer und den AGS-internen Funktionen ,oder?
if (UsedAction(A_WALK_TO)) {
if (MovePlayer(35,138)) {
FaceDirection(GetPlayerCharacter(),DIR_LEFT);
}
}
...
if (any_click_move(222, 133, eDirUp))
{
if (UsedAction(eActWalkTo))
{
// Wait(5);
}
...
'Das sind wir schon so gewöhnt': Benutzt ihre heute auch noch WIndows 3.1?also ich für meinen teil benutze immer noch XP obwohl es da schon was neueres gäbe ;) :P
Weil, ihr habt euch ja daran gewöhnt und jetzt umsteigen? Nein. (Die Analogie ist vielleicht nicht ganz passend, trifft es aber zu Großem Teil)
...dass man alles bisher Gelernte noch weiter verwenden kann.Das fände ich auch besonders wichtig.
// --- action ---
#define A_COUNT_ 10
#define eActUseInventory -3
#define eActSwitchTo -2
#define eActDefault -1
enum eAction
{
// eActUseInventory,
// eActSwitchTo,
// eActDefault,
eActWalkTo = 0,
eActLookAt = 1,
eActTalkTo = 2,
eActGiveTo = 3,
eActPickUp = 4,
eActUse = 5,
eActOpen = 6,
eActClose = 7,
eActPush = 8,
eActPull = 9,
eActCount, // immer als letztes
};
enum eAction
{
eActWalkTo = 0,
A_WALK_TO = 0,
eActLookAt = 1,
A_LOOK_AT = 1,
eActTalkTo = 2,
A_TALK_TO = 2,
eActGiveTo = 3,
A_GIVE_TO = 3,
eActPickUp = 4,
A_PICK_UP = 4,
eActUse = 5,
A_USE = 5,
eActOpen = 6,
A_OPEN = 6,
eActClose = 7,
A_CLOSE = 7,
eActPush = 8,
A_PUSH = 8,
eActPull = 9,
A_PULL = 9,
eActCount = 10,
A_COUNT_ = 10,
eActDefault = 11,
A_DEFAULT = 11,
eActSwitchTo = 12,
A_SWITCH_TO = 12,
eActUseInventory = 13,
A_USE_INV = 13,
};
// --- FaceDirection ---
enum eDirection
{
eDirUp = 0,
DIR_UP = 0,
eDirLeft = 1,
DIR_LEFT = 1,
eDirDown = 2,
DIR_DOWN = 2,
eDirRight = 3,
DIR_RIGHT = 3,
};
import function FaceDirection (this Character*, eDirection dir);
import function FaceDirection (int charac, eDirection dir);
import function EnterRoom (this Character*, int room, int x, int y, eDirection dir);
import function EnterRoom (int room, int x, int y, eDirection dir);
// deprecated (veraltet)
function FaceDirection(int charac, eDirection dir)
{
character[charac].FaceDirection(dir);
}
// deprecated (veraltet)
function EnterRoom (int room, int x, int y, int dir)
{
player.EnterRoom(room, x, y, dir);
}
Du Rocco, ich hab in meiner Episode vor, das Mansion in die Luft zu sprengen, das ist ja kein Problem oder?Ist das oft doch nicht so klar, wie man sich das selber denkt. ;)
Das könnte dann komplett neu aufgebaut werden, das alte will doch sowieso keiner mehr sehen.
An dieser Stelle könnte ja man auch noch das bis jetzt noch nicht vorhandene Michael-Starterpack erwähnen. ;)
BG
der Volltanker
Mir ist bei fast allen SPs aufgefallen, dass zum Beispiel die Türengrafiken nicht stimmen.
Hi,
also meine "aktuellste" Version des Villa-Templates ist vom 14.02.2008 20:11. Zum Vergleich: Die Template von der Ress-HP ist vom 22.10.06.
Linus war damals so frei und hatte das PlugIn herausgelöscht und das Ganze als Template für AGS3.0 herausgebracht.
Hier ist ein DL-Link:
http://sharebase.to/files/uF8MZyAfCF.html
Das Einzigste, was man noch fehlerhaft bezeichnen könnte, ist das "Anschauen des Warnschildes" (in der Bibliothek), da es ja nun taghell ist. Der Kommentar des Chars ist "Es ist zu dunkel".
Getestet bzw. kompiliert:
1. Fehlerfrei unter AGS 3.02 SP1
2. Nicht ganz so fehlerfrei unter AGS v3.1.2 SP1, February 2009
Meldung: Dialog 0(14): The command 'return' will be ignored since the script for this option has already finished.
also manchmal verwundert es mich doch sehr, dass unter demselben Link (also der -EINDEUTIG- von mir war) eine völlig andere Datei zu finden istWenn der freehoster längere Zeit keinen Download registriert, wird der Platz -und somit auch die ID- wieder freigegeben.
Weder Name, Größe oder Passwort stimmen bzw. sind vorhanden. -- DDB-079.part19.rar (20 MB)
Wie sieht es eigentlich mit den Stockwerknummern aus?das hatte ich schonmal erwähnt
Im Deutschen beginnt man im Erdgeschoß mit E, im amerikanischen (laut Forumsdiskussion hier) mit 1.
Folglich stimmt das G im alten SP nicht. Wie sollten wir das Handhaben? (Momentan ist ein E drin)
Die Stockwerksbuchstaben können in der Übersetzung geändert werden siehe: RREADME.TXT.
Grüße Rulaman
---------------------------
Adventure Game Studio
---------------------------
There was an error creating your game. The error was: Unable to extract template files.
Error details: AGS.Types.AGSEditorException: Unable to extract template files.
at AGS.Native.NativeMethods.ExtractTemplateFiles(String templateFileName)
at AGS.Editor.Tasks.CreateNewGameFromTemplate(String templateFileName, String newGameDirectory)
at AGS.Editor.GUIController.CreateNewGame(String newGameDirectory, String newGameName, GameTemplate createFromTemplate)
---------------------------
OK
---------------------------
Well spotted, thanks, that seems to happen if the template is from a previous version and has Sound or Music files. I'll get it fixed.
Hi, hab gerade die Antwort von CJ gesehen.Code: [Auswählen]Well spotted, thanks, that seems to happen if the template is from a previous version and has Sound or Music files. I'll get it fixed.
Übersetzung: Gut erkannt, danke. Es scheint, dass Musik und Sounds im Template das Problem sind. Ich werde es beheben.
if the template is from a previous versiones muss heißen ;) :
* Fixed editor crash creating new game if the template was from a previous version with Sound/Music folders
if ( null != guic )
{
if ( guic.ID == 12 )
{
objekt = character[UpperButton()].Name;
}
else
{
objekt = character[LowerButton()].Name;
}
}
if ( null != guic )
{
if ( guic.ID == 12 )
{
if ( UpperButton() == -1 )
{
}
else
{
objekt = character[UpperButton()].Name;
}
}
else
{
if ( UpperButton() == -1 )
{
}
else
{
objekt = character[LowerButton()].Name;
}
}
}
....
Gibt es irgendwo noch das AGS 3.0.2 herunterzuladen?
...
function unhandled_event (int xxx, int yyy)
if (type == 2 || type == 6)
player.FaceCharacter(Character.GetAtScreenXY(mouse.x, mouse.y));
if (type == 2 || type == 6)
{
Character *charAt;
charAt = Character.GetAtScreenXY(mouse.x, mouse.y);
if ( charAt )
{
player.FaceCharacter(charAt);
}
}
Ich habe einen weiteren Fehler im Starterpack gefunden.
Er tritt auf, wenn man in einem scrollbaren Raum die Gib-Funktion auf einen anderen Charakter benutzt und der Raum dann scrollt, so dass sich der Mauscursor vom Charakter wegbewegt, bzw. wenn bei einer Gib-Aktion der Spieler, solange die Figur läuft, den Mauscursor vom Charakter wegbewegt.
Es ist also folgende Ersetzung vorzunehmen.
In der Funktionfunction unhandled_event (int xxx, int yyy)
folgendes ersetzen:
if (type == 2 || type == 6)
player.FaceCharacter(Character.GetAtScreenXY(mouse.x, mouse.y));
durch
if (type == 2 || type == 6)
{
Character *charAt;
charAt = Character.GetAtScreenXY(mouse.x, mouse.y);
if ( charAt )
{
player.FaceCharacter(charAt);
}
}
if ( keycode == eKey1 ) Flashlight.Enabled = true;
if ( keycode == eKey2 ) Flashlight.Enabled = false;
if ( keycode == eKey3 ) v_Flashlight(true);
if ( keycode == eKey4 ) v_Flashlight(false);
if ( keycode == eKeyUpArrow ) Flashlight.Transparency++;
if ( keycode == eKeyDownArrow ) Flashlight.Transparency--;
if ( keycode == eKey5 ) Flashlight.Radius++;
if ( keycode == eKey6 ) Flashlight.Radius--;
Hat einer mal getestet, ob sich die aktuellen Templates (v1.2?) mit der neueren AGS-Version 3.2 öffnen lassen?Ich habe ein paar kleinere Fehler in dieser Alpha entdeckt. Tja, Rulaman, Arbeit von etlichen Minuten wartet da auf Dich ;D .
Ich weiß nicht, obs an mir, dem Programm bzw. dessen Version (V3.2 RC1) oder dem Beta-Status liegt, aber ich bekomme, wenn ich Entsprechendes öffnen will, folgende Meldung:Zitat---------------------------
Adventure Game Studio
---------------------------
There was an error creating your game. The error was: Unable to extract template files.
Error details: AGS.Types.AGSEditorException: Unable to extract template files.
at AGS.Native.NativeMethods.ExtractTemplateFiles(String templateFileName)
at AGS.Editor.Tasks.CreateNewGameFromTemplate(String templateFileName, String newGameDirectory)
at AGS.Editor.GUIController.CreateNewGame(String newGameDirectory, String newGameName, GameTemplate createFromTemplate)
---------------------------
OK
---------------------------
Ich hoffe doch nicht, dass dies wieder Unlängen an Anpassungen erfordert?
Erster Fehler: Bei mir (640x400 Auflösung im Fenster unter WinXP) wird die Schrift nicht richtig dargestellt (die schwarzen Outlines sind verschoben).ist ein ags bug der mit antialiasing bei TTF schriftarten zusammenhängt
Edit: der Fehler tritt bei allen 3er SPs auf, die mit 3.2 kompliert werden.
WOW! ich wusst' gar nicht das es ags 3.2 schon gibt :Pgibt es auch noch nicht, ist nur ein release candidate
Muss ich mir mal downloaden ;)
LG domi
Erster Fehler: Bei mir (640x400 Auflösung im Fenster unter WinXP) wird die Schrift nicht richtig dargestellt (die schwarzen Outlines sind verschoben).ist ein ags bug der mit antialiasing bei TTF schriftarten zusammenhängt
Edit: der Fehler tritt bei allen 3er SPs auf, die mit 3.2 kompliert werden.
wenn man das in den game-settings deaktiviert, funkt das wieder
If no major issues are reported in the next week or so, I'll create the RAR release and update the website.
@Bòógieman:hast du es schon probiert, wie vorgeschlagen das antialiasing bei TTF schriftarten in den game-settings zu deaktivieren?
Ja, das scheint mir auch zu sein. Habe das mal mit dem Michael-SP ausprobiert. Die finale Version iust für mich unbrauchbar.
Aber da ich mit der BETA bislang keine Probleme habe, und die neuen SPs wieder auf 3.0.2-SP1 basieren, besteht für mich aktuell kein Handlungsbedarf.
Das Einzige was noch zu tun ist, den Bug im engl. Forum zu melden mit kleinem Reproduktionsbeispiel.
@rulaman:[...]Nur dumm, dass das leere Template noch (bzw. ich weiß nicht den aktuellen Stand) das alte Türenskript enthält, [...]
Wie genau meinst du dass?
Ist im Mansion agt nicht die neue Technik drin?
Und wieso leer?
String VariableExtensions (String location)
{
int i = 0;
bool b_Ready = false;
Hotspot* hotAt = Hotspot.GetAtScreenXY(mouse.x, mouse.y);
Object *objAt = Object.GetAtScreenXY(mouse.x, mouse.y);
while ( i < MAX_DOORS )
{
if ( ((Door[i].h_Hotspot == hotAt) && (Door[i].l_Room == player.Room)) ||
((Door[i].h_NewHotspot == hotAt) && (Door[i].l_NewRoom == player.Room)) )
{
if ( (Door[i].i_GlobalInt == eDoorClosed) || (Door[i].i_GlobalInt == eDoorLocked) )
{
location = location.AddExtension('o');
}
else
{
location = location.AddExtension('c');
}
i = MAX_DOORS; // simulates a break;
b_Ready = true;
}
i++;
}
// globig (Strg+F globig springt hierher)
if ( b_Ready )
{
}
else
{
// Muster
/*
if ((r == 31) && (h == 1)) location = OpenCloseExtension (10, location); // Haustür [main door]
else if ((r == 48) && (h == 1)) location = OpenCloseExtension (10, location); // Haustür [main door]
*/
}
return location;
}
Door[eDoorNumHaustuer].Init(oTuer, hTuer);
cFred.SayIfIsEdison("Das ist die erste Tür zu meinem Geheimlabor.");
cEdna.SayIfIsEdison("Das geht es in das Geheimlabor von meinem Schatz.");
cEd.SayIfIsEdison("Da geht es in das Geheimlabor von Papa.");
player.SayIfNotEdison("Das ist die äußere Tür zum Labor.");
Da müsste denke ich folgendes stattdessen hin:cFred.SayIfPlayer("Das ist die erste Tür zu meinem Geheimlabor.");
cEdna.SayIfPlayer("Da geht es in das Geheimlabor von meinem Schatz.");
cEd.SayIfPlayer("Da geht es in das Geheimlabor von Papa.");
player.SayIfNotEdison("Das ist die äußere Tür zum Labor.");
player.SayIfIsEdisonElse(String message, optional String messageNotEdison, optional String messageFred, optional String messageEdna, optional String messageEd);
Als zugehörige Funktion würde ich mir sowas in der Art vorstellen:bool SayIfIsEdisonElse(this Character*, String message, String messageNotEdison, String messageFred, String messageEdna, String messageEd) {
// Weitere Edisons einfügen, wenn Chars importiert sind.
if(this!=cFred||this!=cEdna||this!=cEd) this.Say(message);
else {
if(this==cFred) {
if(messageFred) this.Say(messageFred);
else if(messageNotEdison) this.Say(messageNotEdison);
} else if(this==cEdna) {
if(messageEdna) this.Say(messageEdna);
else if(messageNotEdison) this.Say(messageNotEdison);
} else {
if(messageEd) this.Say(messageEd);
else if(messageNotEdison) this.Say(messageNotEdison);
}
}
}
Hab ich jetzt nicht getestet, aber dann könnte man im Kerker das schonmal (zumindest von der Anzahl der Befehle) radikal verkürzen:player.SayIfIsEdisonElse("...zum Labor.","","...meinem Geheimlabor.","...meinem Schatz.","...Papa.");
Dann noch die Funktion "Variable Extension" ersetzen durch:Das reicht nicht, denn um das neue Tür-Skript in ältere (3.0.2) Starterpacks zu integrieren muss man zudem noch die DoorType-Funktionen aus einem neueren einfügen und DOORS_MAX definieren, das war mir noch aufgefallen, denn nur mit den Extensions ist einem ja noch nicht geholfen. ;)
DOORS_MAX ist für die alte Türenskript-Funktionen, MAX_DOORS ist für die neuen Türen-Funktionen.Kann auch sein, dass ich dann einfach alle MAX_DOORS durch DOORS_MAX ersetzt hab. ;D
Ich habe ja noch mal nachgeschaut. Es ist noch kein Starterpak für 3.1.x dabei, die anderen sind ja auf 3.0.2 .
Wäre evtl. noch ganz praktisch, dafür noch ein Starterpak rauszubringen.[...]
[...] wenn nicht ganz so viele Räume da sind und man nicht noch die vielen Ints rausfischen muss. ;)[...]
[...]Ansonsten finde ich nicht unbedingt, dass überhaupt richtige Räume fürs Gameplay (4 sind ja auch so schon drin) darin sein müssten.[...]
Warum muss eine Tür wissen, welche Hotspots sie hat?Für die ">v" Erweiterung, denk ich mal.
Und warum braucht eine Tür zwei Objekte (Door.o_Objekt, Door.o_NewObjekt)?Würde mich wundern, wenn die Tür nur auf einer Seite aufgeht. ;)
Für die ">v" Erweiterung, denk ich mal.
Würde mich wundern, wenn die Tür nur auf einer Seite aufgeht. ;)
Das andere Objekt ist im neuen Raum.
// init
if ( this.l_Room == player.Room )
{
this.o_Objekt = o_Objekt;
}
else if ( this.l_NewRoom == player.Room )
{
this.o_NewObjekt = o_Objekt;
}
// ClickSpecial()
if ( player.Room == this.l_Room )
{
...
o_Objekt = this.o_Objekt;
...
}
else if ( player.Room == this.l_NewRoom )
{
...
o_Objekt = this.o_NewObjekt;
...
}
Repositorium, ist ein verwaltetes Verzeichnis zur Speicherung und Beschreibung von digitalen Objekten.kannst du bitte kurz erklären, wie man das nutzt, was man damit machen kann und wie man aktiv was beisteuern kann.
function gSaveUp_OnClick(GUIControl *control, MouseButton button)
{
gSavetextbox.Visible = false;
if (GStopsaveitemSave < 5)
{
GStopsaveitemSave = 0;
}
else
{
GStopsaveitemSave -= 5;
}
lstSave.TopItem = GStopsaveitemSave;
if ( lstSave.SelectedIndex >= lstSave.TopItem && lstSave.SelectedIndex <= lstSave.TopItem + 8 )
{
lstSave_OnSelectionChanged(control);
}
}
function gSaveDown_OnClick(GUIControl *control, MouseButton button)
{
gSavetextbox.Visible = false;
if ( GStopsaveitemSave < 95 )
{
GStopsaveitemSave += 5;
lstSave.TopItem = GStopsaveitemSave;
}
if ( lstSave.SelectedIndex >= lstSave.TopItem && lstSave.SelectedIndex <= lstSave.TopItem + 8 )
{
lstSave_OnSelectionChanged(control);
}
}
#define SAVE_GAME_OFFSET 100
#define BORDER_WIDTH 1
function lstSave_OnSelectionChanged(GUIControl *control)
{
String sDescription;
int i = lstSave.SelectedIndex;
sDescription = String.Format("%d. ", i + 1);
gSaveTextBoxlbl.Text = sDescription;
sDescription = Game.GetSaveSlotDescription(i + SAVE_GAME_OFFSET);
if( null == sDescription )
{
sDescription = "";
}
gSaveTextBox.Text = sDescription;
gSaveTextBox.SetPosition(GetTextWidth(gSaveTextBoxlbl.Text, gSaveTextBoxlbl.Font) - 1, - BORDER_WIDTH);
int x = gSave.X + lstSave.X + gSaveTextBoxlbl.X;
int y = gSave.Y + lstSave.Y + ((i - lstSave.TopItem) * gSavetextbox.Height + BORDER_WIDTH);
gSavetextbox.SetPosition(x, y);
gSavetextbox.Visible = true;
}