Okay.
also, 2 sachen. ich hätte den text nicht message_text nennen sollen, tut mir leid, ich wusste nicht dass in den templates noch eine "message_text" besteht, weil ich die templates kaum benutze.
Außerdem hat das in der function main nicht ganz gestimmt. die while schleife aus meinem code musste nach hinten, und ihr inhalt in die while schleife die schon besteht. Sonst geht der code zu meiner while(1) schleife, die für immer asgeführt wird, und geht nie weiter. Das bedeutet, zum beispiel die level_load funktion wäre nie ausgeführt worden. Außerdem war der rest meiner function main noch da, die musste ganz raus... so dass es nur eine function main gibt.
Sonst müsste alles mehr oder weniger gehen.
Mach bitte zuerst eine backup copie von deinem script bevor du meins ausprobierst, ich will nicht dass mein code deinen überschreibt und dann ich schuld war dass es nicht mehr geht^^...
dann probier das hier mal:
Code:
////////////////////////////////////////////////////////////////////////
// A6 main wdl:
// Created by WED.
////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
// The PATH keyword gives directories where template files can be found.
path "C:\\Programme\\GStudio6\\template_6"; // Path to A6 templates directory
path "C:\\Programme\\GStudio6\\template_6\\code"; // Path to A6 template code subdirectory
path "C:\\Programme\\GStudio6\\template_6\\images"; // Path to A6 template image subdirectory
path "C:\\Programme\\GStudio6\\template_6\\sounds"; // Path to A6 template sound subdirectory
path "C:\\Programme\\GStudio6\\template_6\\models"; // Path to A6 template model subdirectory
/////////////////////////////////////////////////////////////////
// Filename of the starting level.
string level_str = <pinka_1.WMB>; // give file names in angular brackets
////////////////////////////////////////////////////////////////////////////
// Included files
include <gid01.wdl>; // global ids
include <display00.wdl>; // basic display settings
include <cameraSelect.wdl>;
include <cameraTarget.wdl>;
include <camera3rd01.wdl>;
include <plSelect.wdl>;
include <miscInput01.wdl>;
include <plBipedInput01.wdl>;
include <bipedPhy01.wdl>;
include <bipedAnim01.wdl>;
include <bipedSnd01.wdl>;
include <plBiped01.wdl>;
include <plBipedHUD01.wdl>;
include <trigger00.wdl>;
include <particle00.wdl>;
include <zoom.wdl>;
include <money.wdl>;
include <levels00.wdl>;
//include <tut1.wdl>;// ich habe tut aus kommentier, da es nicht funzt !
include <chat.wdl>;
font standard_font = "Courier New",3,14;
string new_message;
string message1;
string message2;
string message3;
string message4;
string message5;
string entry[100];
string finished_entry[150];
text chat_message_text
{
font = standard_font;
strings =4;
pos_x = 10;
string = message1,message2,message3,message4,message5;
layer = 7;
}
text entry_text
{
font = standard_font;
string = entry;
layer = 7;
pos_x = 10;
pos_y = 10;
}
function scroll_message(new_message)
{
str_cpy(message5,message4);
str_cpy(message4,message3);
str_cpy(message3,message2);
str_cpy(message2,message1);
str_cpy(message1,new_message);
}
function chat()
{
camera.ambient = -75;
chat_message_text.visible = on;
entry_text.visible = on;
}
function server_function(str)
{
if(event_type == event_string && str == finished_entry) //was the string for exchanging messages sent?
{
scroll_message(str);
send_string(str);
}
if(event_type == event_join)
{
str_cpy(finished_entry," -> ");
str_cat(finished_entry,str);
str_cat(finished_entry," joined. <-");
scroll_message(finished_entry);
send_string(finished_entry);
}
if(event_type == event_leave)
{
str_cpy(finished_entry," -> ");
str_cat(finished_entry,str);
str_cat(finished_entry," left. <-");
scroll_message(finished_entry);
send_string(finished_entry);
}
}
function client_function(str)
{
if(event_type == event_string && str == finished_entry) //was the string for exchanging messages sent?
{
scroll_message(str);
}
}
/////////////////////////////////////////////////////////////////
// Desc: The main() function is started at game start
function main()
{
chat_message_text.pos_y = screen_size.y - 80;
on_server = server_function;
on_client = client_function;
on_c = chat; //enter chat mode on "c"
//place your commands somewhere around here...
// set some common flags and variables
// freeze all entity functions
freeze_mode = 1;
// no level has been loaded yet...
gid01_level_state = gid01_level_not_loaded;
// entry: Warning Level (0,1, or 2)
// entry_help: Sets sensitivity to warnings (0 = none, 1 = some, 2 = all).
warn_level = 2; // announce bad texture sizes and bad wdl code
// entry: Starting Mouse Mode (0, 1, or 2)
mouse_mode = 0;
// wait 3 frames (for triple buffering) until it is flipped to the foreground
wait(3);
// now load the level
level_load(level_str);
wait(2); // let level load
// level should be loaded at this point...
gid01_level_state = gid01_level_loaded;
//+++ load starting values
// un-freeze the game
freeze_mode = 0;
// save start of game here
wait(6); // allow time for functions that wait for "gid01_level_loaded" to load
file_delete("start0.SAV"); // remove any old savefile
wait(1);
if( game_save("start",0,SV_ALL) <= 0)
{
diag("\nWARNING! main - Cannot save 'start' of level (ignore on restarts).");
}
else
{
diag("\nWDL: main - Game 'start' saved.");
}
// main game loop
while(1)
{
if(gid01_level_state != gid01_level_loaded)
{
freeze_mode = 1; // pause the game
while(gid01_level_state != gid01_level_loaded) { wait(1); }
freeze_mode = 0; // resume the game
}
if(camera.ambient == -75) //if you're in chat mode...
{
result = inkey(entry);
if(result == 27) //pressed exit? Then leave chat mode.
{
camera.ambient = 0;
chat_message_text.visible = off;
entry_text.visible = off;
}
else //pressed enter etc... continue: send string and go back to inkey();
{
str_cpy(finished_entry,player_name);
str_cat(finished_entry,": ");
str_cat(finished_entry,entry);
send_string(finished_entry);
ifdef server; //if you're a client you'll get the string sent back to you by the server, so don't show it yet.
scroll_message(finished_entry);
endif;
str_cpy(entry,"");
}
}
wait(1);
}
}
// Desc: this is the function used to restart the game.
function main_restart_game()
{
// wait 3 frames (for triple buffering) until it is flipped to the foreground
wait(3);
// freeze the game
freeze_mode = 1;
if( game_load("start",0) <= 0)
{
diag("\nWARNING! main_restart_game - Cannot load 'start' of level.");
}
else
{
diag("\nWDL: main_restart_game - Game 'start' loaded");
}
// un-freeze the game
freeze_mode = 0;
}
// Desc: this is the function used to quit the game.
function main_quit()
{
//+++ // save global skills & strings
exit;
}
/////////////////////////////////////////////////////////////////
// The following definitions are for the pro edition window composer
// to define the start and exit window of the application.
WINDOW WINSTART
{
TITLE "3D GameStudio";
SIZE 480,320;
MODE IMAGE; //STANDARD;
BG_COLOR RGB(240,240,240);
FRAME FTYP1,0,0,480,320;
// BUTTON BUTTON_START,SYS_DEFAULT,"Start",400,288,72,24;
BUTTON BUTTON_QUIT,SYS_DEFAULT,"Abort",400,288,72,24;
TEXT_STDOUT "Arial",RGB(0,0,0),10,10,460,280;
}
/* no exit window at all..
WINDOW WINEND
{
TITLE "Finished";
SIZE 540,320;
MODE STANDARD;
BG_COLOR RGB(0,0,0);
TEXT_STDOUT "",RGB(255,40,40),10,20,520,270;
SET FONT "",RGB(0,255,255);
TEXT "Any key to exit",10,270;
}*/
/////////////////////////////////////////////////////////////////
//INCLUDE <debug.wdl>;
Hoffe es geht!
Micha