Vending Machine Script Error

Banana2077
Hallo Leute,

wollte mich heute mal an eine Vending Maschine wagen die einem Leben gibt wenn man es braucht grosses Grinsen

Nun kommt aber bei Maspstart das hier:




Das bei Build Fast file:

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:

Fastfile 1 of 2, "mp_asphalt3": [ver. 5] process...
Sound file 'sound/voiceovers/generic/OM/gen_m_death1.wav' not found
Sound file 'sound/voiceovers/generic/OM/gen_m_death2.wav' not found
Sound file 'sound/voiceovers/generic/OM/gen_m_death3.wav' not found
Sound file 'sound/voiceovers/generic/OM/gen_m_death4.wav' not found
Sound file 'sound/voiceovers/generic/OM/gen_m_death5.wav' not found
Sound file 'sound/voiceovers/generic/OM/gen_m_death6.wav' not found
Sound file 'sound/voiceovers/generic/OM/gen_m_death7.wav' not found
Sound file 'sound/voiceovers/generic/OM/gen_m_death8.wav' not found
Sound file 'sound/voiceovers/generic/ON/gen_n_death1.wav' not found
Sound file 'sound/voiceovers/generic/ON/gen_n_death2.wav' not found
Sound file 'sound/voiceovers/generic/ON/gen_n_death3.wav' not found
Sound file 'sound/voiceovers/generic/ON/gen_n_death4.wav' not found
Sound file 'sound/voiceovers/generic/ON/gen_n_death5.wav' not found
Sound file 'sound/voiceovers/generic/RU3/ru3_death_01.wav' not found
Sound file 'sound/voiceovers/generic/RU3/ru3_death_02.wav' not found
Sound file 'sound/voiceovers/generic/RU4/ru4_death_01.wav' not found
Sound file 'sound/voiceovers/generic/US7/us7_death_01.wav' not found
Sound file 'sound/voiceovers/generic/US7/us7_death_02.wav' not found
Sound file 'sound/voiceovers/generic/US7/us7_death_03.wav' not found
Sound file 'sound/voiceovers/generic/US7/us7_death_04.wav' not found
Sound file 'sound/voiceovers/generic/US7/us7_death_05.wav' not found
Sound file 'sound/voiceovers/generic/US7/us7_death_06.wav' not found
ERROR: Sound alias file mp_asphalt3.csv: missing 'name' and/or 'file' columns
link...compress...save...done.
Fastfile 2 of 2, "mp_asphalt3_load": [ver. 5] process...link...compress...save..
.done.
language is not english
copying fast files to german folder
Ein Unterverzeichnis oder eine Datei mit dem Namen "E:\Programme\Activision\Call
" existiert bereits.
Folgender Fehler trat auf: E:\Programme\Activision\Call.
Ein Unterverzeichnis oder eine Datei mit dem Namen "of" existiert bereits.
Folgender Fehler trat auf: of.
Ein Unterverzeichnis oder eine Datei mit dem Namen "Duty" existiert bereits.
Folgender Fehler trat auf: Duty.
Ein Unterverzeichnis oder eine Datei mit dem Namen "4" existiert bereits.
Folgender Fehler trat auf: 4.
Ein Unterverzeichnis oder eine Datei mit dem Namen "-" existiert bereits.
Folgender Fehler trat auf: -.
Ein Unterverzeichnis oder eine Datei mit dem Namen "Modern" existiert bereits.
Folgender Fehler trat auf: Modern.
Ein Unterverzeichnis oder eine Datei mit dem Namen "Warfare\zone\german" existie
rt bereits.
Folgender Fehler trat auf: Warfare\zone\german.
Drücken Sie eine beliebige Taste . . .





Meine .gsc sieht so aus:

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:

main()
{



maps\mp\_load::main();
maps\mp\_teleport::main();
maps\mp\_door::main();
maps\mp\_breakglass::main();
maps\mp\_elevator::main(); 
maps\mp\_lights::main();
maps\mp\mp_asphalt3_fx::main();


game["allies"] = "marines";
game["axis"] = "opfor";
game["attackers"] = "axis";
game["defenders"] = "allies";
game["allies_soldiertype"] = "desert";
game["axis_soldiertype"] = "desert";


thread tvexplosion();
}

tvexplosion()//Script starts here
{
before = getent("object_before","targetname");
afterexp = getent("object_after","targetname");
trigger = getent("object_use","targetname");
fxorigin = getent("cratefx","targetname");
afterexp hide();
afterexp notsolid();
trigger waittill("trigger");
playfx (level._effect[ "tv_explosion" ], fxorigin.origin);
fxorigin playsound ("exp_television_shot1");
before hide();
before notsolid();
afterexp show();
afterexp solid();
}

precache();                    // Call the precache function

    venders = getentarray("heal","targetname");    // Get all the entitys that have "heal" for their "targetname"
    for(i=0;i<venders.size;i++)
        venders[i] thread vender();
}

vender()
{
    self.targetname = undefined;
    dir = getent(self.target,"targetname");
    if(isDefined(dir))
    {
        temp = spawnStruct();
        temp.origin = dir.origin;
        temp.angles = dir.angles;// Spawn a struct which doesnt count as an entity, record the script_origin's origin and angles then delete the script_origin
        dir delete();
        dir = temp;
    }
    self.target = undefined;

    self playLoopSound("vender");// Make the trigger play a loop sound

    while(1)
    {
        self waittill("trigger", player);// Wait until its triggered
        if(player.sessionstate != "playing")// Make sure the player is playing
            continue;

        if(!level.allow_vender)// If vending machines are not allowed then say a message
        {
            player iPrintlnBold("^2Sorry, fat rats are not allowed on this server");
            continue;
        }

        if(isDefined(dir))// If the script_origin is placed correctly in the map, then make a bottle pop out
        {
            self playSound("vender_drop");// Play the bottle drop sound

            if(isDefined(level.venderbottles[level.venderbottlescurrent]))
                level.venderbottles[level.venderbottlescurrent] delete();// If we have gone over the limit for max bottle in the map, delete the oldest one

            level.venderbottles[level.venderbottlescurrent] = spawn("script_model",self.origin);// Spawn the bottle
            level.venderbottles[level.venderbottlescurrent].angles = dir.angles; // Set the angles of the bottle
            level.venderbottles[level.venderbottlescurrent] setModel("com_bottle" + (randomInt(4) + 1));    // Set random bottle model
            point = dir.origin;
            origin = level.venderbottles[level.venderbottlescurrent].origin + mapsmp_utility::vector_Scale(anglestoup(level.venderbottles[level.venderbottlescurrent].angles),4 + randomFloat(1));
            velocity = VectorNormalize(origin - point);// Calculate velocity and direction of the impact
            velocity = mapsmp_utility::vector_Scale(velocity,10000 + randomInt(5000));
            level.venderbottles[level.venderbottlescurrent] physicsLaunch(point, velocity);            // Make the bottle fly!

            level.venderbottlescurrent++;

            if(level.venderbottlescurrent >= level.venderbottlesmax)
                level.venderbottlescurrent = 0;
        }

        if(isDefined(player.healthwait))// If the player has already used the vending machine then...
        {
            num = randomInt(100);
            if(num < 20)
                player iPrintlnBold("^2Kill Zombies and dont wait here!");
            else if(num >= 20 && num < 40)
                player iPrintlnBold("^1Careful! You'll break it!");// Say one of these random messages
            else if(num >= 40 && num < 60)
                player iPrintlnBold("^3Oh no! There's none left!");
            else if(num >= 60 && num < 80)
                player iPrintlnBold("^4You're hungry ain't ya?");
            else
                player iPrintlnBold("^5HmH, TASTY");
            continue;
        }

        player.healthwait = true;
        if(player.health < player.maxhealth)// If the players health is not at the max
        {
            player.health = player.maxhealth;// Set the players health to the max
            player iPrintlnBold("^2mmm... ^1y^2u^3m^4m^5y^6!");// Say these messages if the player was healed
            player iPrintlnBold("^1Health Restored!");
        }
        else
            player iPrintlnBold("^2You already have full health, but ^1y^2u^3m^4m^5y^6! ^2anyway!");// If the player already has full health then say this message
        player thread healthwait();
    }
}

healthwait()
{
    self endon("disconnect");    // Kill the thread if the player disconnects
    wait level.vender_wait;        // Wait how long level.vender_wait is
    self.healthwait = undefined;    // Make self.healthwait undefined
}  





Ich sehe schon selber das es was mit der linie 43 sein soll nur weiss ich beim besten willen nicht was da falsch ist weil ich mit scripten gar nichts am hut habe..


Danke schonmal für die Hilfe.

Banana


EDIT: Nach diesem Tutorial: KLICK
KillerPikachu
Du schließt die Klammer vom 'main' zu früh. Das führt dazu, dass der Teil:

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

code:
1:
2:
3:
4:
5:
6:
7:
precache();                    // Call the precache function

    venders = getentarray("heal","targetname");    // Get all the entitys that have "heal" for their "targetname"
    for(i=0;i<venders.size;i++)
        venders[i] thread vender();
}


Weder in der main- noch in einer anderen Funktions teht

-> schieb das zeugs hoch und füg es zwischen

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

code:
1:
2:
thread tvexplosion();

und

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

code:
1:
}

ein
Nightwing

Zitat:

Original von Banana2077

Ich sehe schon selber das es was mit der linie 43 sein soll nur weiss ich beim besten willen nicht was da falsch ist weil ich mit scripten gar nichts am hut habe..

Hättest mal das Tutorial ein zweites Mal gelesen. Zunge raus grosses Grinsen
Du hast den precache() Aufruf nicht in der main() Funktion Deiner map.gsc eingebaut.

ToM
OLD MAN WITH GUN

Zitat:

Original von Nightwing
Hättest mal das Tutorial ein zweites Mal gelesen. Zunge raus grosses Grinsen
Du hast den precache() Aufruf nicht in der main() Funktion Deiner map.gsc eingebaut.

ToM
Das verursacht aber nicht den Fehler (eine Funktion die definiert ist aber nicht aufgerufen wird verursacht keinen Fehler).
Das Problem ist, hinter dem precache() (da, wo die Funktion definiert wird) darf kein Semikolon am Ende stehen. Der Script-error hat die Stelle, die den Feher verursacht mit einem * sogar markiert.
Nightwing
Danke OMWG!
Dieses fiese kleine Zeichen hab ich übersehen, trotz mehrfachen Schauens. Teufel

ToM

Edit: Killer hats wohl in seinem Tutorial auch übersehen. Zunge raus

Edit 2:

Falsch, Killer hat es nicht übersehen, aber das Tutorial ist leicht unübersichtlich.
Am besten nimmt man den Code, der ein fertiges Script inklusive Mapscript beinhaltet und ändert eben die Einträge in der main() Funktion.
Banana2077
Erst einmal danke für die Antworten!!

Nun kapier ich aber gar nichts mehr grosses Grinsen

Habe jetzt mal ein bisschen rumgebastelt nur meckert er jetzt bei jedem semikolon..

Das Tvexplosion habe ich mal gelöscht brauche es eigentlihc auch gar nicht...

Könnte mir das jemand mal richten?

Vielen Dank!

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



maps\mp\_load::main();
maps\mp\_teleport::main();
maps\mp\_door::main();
maps\mp\_breakglass::main();
maps\mp\_elevator::main(); 
maps\mp\_lights::main();
maps\mp\mp_asphalt3_fx::main();


game["allies"] = "marines";
game["axis"] = "opfor";
game["attackers"] = "axis";
game["defenders"] = "allies";
game["allies_soldiertype"] = "desert";
game["axis_soldiertype"] = "desert";



precache()                    // Call the precache function

    venders = getentarray("heal","targetname");    // Get all the entitys that have "heal" for their "targetname"
    for(i=0;i<venders.size;i++)
        venders[i] thread vender();
}

vender()
{
    self.targetname = undefined;
    dir = getent(self.target,"targetname");
    if(isDefined(dir))
    {
        temp = spawnStruct();
        temp.origin = dir.origin;
        temp.angles = dir.angles;// Spawn a struct which doesnt count as an entity, record the script_origin's origin and angles then delete the script_origin
        dir delete();
        dir = temp;
    }
    self.target = undefined;

    self playLoopSound("vender");// Make the trigger play a loop sound

    while(1)
    {
        self waittill("trigger", player);// Wait until its triggered
        if(player.sessionstate != "playing")// Make sure the player is playing
            continue;

        if(!level.allow_vender)// If vending machines are not allowed then say a message
        {
            player iPrintlnBold("^2Sorry, fat rats are not allowed on this server");
            continue;
        }

        if(isDefined(dir))// If the script_origin is placed correctly in the map, then make a bottle pop out
        {
            self playSound("vender_drop");// Play the bottle drop sound

            if(isDefined(level.venderbottles[level.venderbottlescurrent]))
                level.venderbottles[level.venderbottlescurrent] delete();// If we have gone over the limit for max bottle in the map, delete the oldest one

            level.venderbottles[level.venderbottlescurrent] = spawn("script_model",self.origin);// Spawn the bottle
            level.venderbottles[level.venderbottlescurrent].angles = dir.angles; // Set the angles of the bottle
            level.venderbottles[level.venderbottlescurrent] setModel("com_bottle" + (randomInt(4) + 1));    // Set random bottle model
            point = dir.origin;
            origin = level.venderbottles[level.venderbottlescurrent].origin + mapsmp_utility::vector_Scale(anglestoup(level.venderbottles[level.venderbottlescurrent].angles),4 + randomFloat(1));
            velocity = VectorNormalize(origin - point);// Calculate velocity and direction of the impact
            velocity = mapsmp_utility::vector_Scale(velocity,10000 + randomInt(5000));
            level.venderbottles[level.venderbottlescurrent] physicsLaunch(point, velocity);            // Make the bottle fly!

            level.venderbottlescurrent++;

            if(level.venderbottlescurrent >= level.venderbottlesmax)
                level.venderbottlescurrent = 0;
        }

        if(isDefined(player.healthwait))// If the player has already used the vending machine then...
        {
            num = randomInt(100);
            if(num < 20)
                player iPrintlnBold("^2Kill Zombies and dont wait here!");
            else if(num >= 20 && num < 40)
                player iPrintlnBold("^1Careful! You'll break it!");// Say one of these random messages
            else if(num >= 40 && num < 60)
                player iPrintlnBold("^3Oh no! There's none left!");
            else if(num >= 60 && num < 80)
                player iPrintlnBold("^4You're hungry ain't ya?");
            else
                player iPrintlnBold("^5HmH, TASTY");
            continue;
        }

        player.healthwait = true;
        if(player.health < player.maxhealth)// If the players health is not at the max
        {
            player.health = player.maxhealth;// Set the players health to the max
            player iPrintlnBold("^2mmm... ^1y^2u^3m^4m^5y^6!");// Say these messages if the player was healed
            player iPrintlnBold("^1Health Restored!");
        }
        else
            player iPrintlnBold("^2You already have full health, but ^1y^2u^3m^4m^5y^6! ^2anyway!");// If the player already has full health then say this message
        player thread healthwait();
    }
}

healthwait()
{
    self endon("disconnect");    // Kill the thread if the player disconnects
    wait level.vender_wait;        // Wait how long level.vender_wait is
    self.healthwait = undefined;    // Make self.healthwait undefined
}  

Nightwing
In Deinem letzten Script fehlte noch die Funktion precache(), somit wurden die Models nicht precached.
Ich habe das Script nur mal kurz überflogen: Es fehlen die \ Zeichen in dem Codeteil von Killer.
Dürfte daran liegen, das der CODE Tag vom RGN Wiki diese nicht zulässt / anzeigt.

Beispiel in Zeile 72 des Scripts:

velocity = maps\mp\_utility::vector_Scale(velocity,10000 + randomInt(5000));

Ich habe mal das Script von Killer genommen und Deine Settings und Aufrufe in der main() reingeschrieben:

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:
main()
{
	maps\mp\_load::main();
	maps\mp\_teleport::main();
	maps\mp\_door::main();
	maps\mp\_breakglass::main();
	maps\mp\_elevator::main(); 
	maps\mp\_lights::main();
	maps\mp\mp_asphalt3_fx::main();

	game["allies"] = "marines";
	game["axis"] = "opfor";
	game["attackers"] = "axis";
	game["defenders"] = "allies";
	game["allies_soldiertype"] = "desert";
	game["axis_soldiertype"] = "desert";

    precache();// Call the precache function

    venders = getentarray("heal","targetname");// Get all the entitys that have "heal" for their "targetname"
    for(i=0;i<venders.size;i++)
        venders[i] thread vender();
}

precache()
{
    if(getDvar(getDvar("mapname") + "_allow_vender") == "")
        setDvar(getDvar("mapname") + "_allow_vender", 1);// This creates the dvar to enable the vending machines

    if(getDvar(getDvar("mapname") + "_health_wait") == "")
        setDvar(getDvar("mapname") + "_health_wait", 10);// This creates the dvar to set the time between being able to get health again

    level.allow_vender = int(getDvar(getDvar("mapname") + "_allow_vender"));
    level.vender_wait = int(getDvar(getDvar("mapname") + "_health_wait"));

    for(i=1;i<5;i++)
        precacheModel("com_bottle" + i);// Precache (load) the com_bottle1, com_bottle2, com_bottle3 and com_bottle4 models

    level.venderbottles = [];
    level.venderbottlescurrent = 0;
    level.venderbottlesmax = 24;// Max bottles in the map at one time, try not to have this too high as it can cause lag and somtimes crash the server
}

vender()
{
    self.targetname = undefined;
    dir = getent(self.target,"targetname");
    if(isDefined(dir))
    {
        temp = spawnStruct();
        temp.origin = dir.origin;
        temp.angles = dir.angles;// Spawn a struct which doesnt count as an entity, record the script_origin's origin and angles then delete the script_origin
        dir delete();
        dir = temp;
    }
    self.target = undefined;

    self playLoopSound("vender");// Make the trigger play a loop sound

    while(1)
    {
        self waittill("trigger", player);// Wait until its triggered
        if(player.sessionstate != "playing")// Make sure the player is playing
            continue;

        if(!level.allow_vender)// If vending machines are not allowed then say a message
        {
            player iPrintlnBold("^2Sorry, fat rats are not allowed on this server");
            continue;
        }

        if(isDefined(dir))// If the script_origin is placed correctly in the map, then make a bottle pop out
        {
            self playSound("vender_drop");// Play the bottle drop sound

            if(isDefined(level.venderbottles[level.venderbottlescurrent]))
                level.venderbottles[level.venderbottlescurrent] delete();// If we have gone over the limit for max bottle in the map, delete the oldest one

            level.venderbottles[level.venderbottlescurrent] = spawn("script_model",self.origin);// Spawn the bottle
            level.venderbottles[level.venderbottlescurrent].angles = dir.angles; // Set the angles of the bottle
            level.venderbottles[level.venderbottlescurrent] setModel("com_bottle" + (randomInt(4) + 1));    // Set random bottle model
            point = dir.origin;
            origin = level.venderbottles[level.venderbottlescurrent].origin + maps\mp\_utility::vector_Scale(anglestoup(level.venderbottles[level.venderbottlescurrent].angles),4 + randomFloat(1));
            velocity = VectorNormalize(origin - point);// Calculate velocity and direction of the impact
            velocity = maps\mp\_utility::vector_Scale(velocity,10000 + randomInt(5000));
            level.venderbottles[level.venderbottlescurrent] physicsLaunch(point, velocity);            // Make the bottle fly!

            level.venderbottlescurrent++;

            if(level.venderbottlescurrent >= level.venderbottlesmax)
                level.venderbottlescurrent = 0;
        }

        if(isDefined(player.healthwait))// If the player has already used the vending machine then...
        {
            num = randomInt(100);
            if(num < 20)
                player iPrintlnBold("^2When was the last time you saw a fat rat?");
            else if(num >= 20 && num < 40)
                player iPrintlnBold("^1Careful! You'll break it!");// Say one of these random messages
            else if(num >= 40 && num < 60)
                player iPrintlnBold("^3Oh no! There's none left!");
            else if(num >= 60 && num < 80)
                player iPrintlnBold("^4You're hungry ain't ya?");
            else
                player iPrintlnBold("^5Woof");
            continue;
        }

        player.healthwait = true;
        if(player.health < player.maxhealth)// If the players health is not at the max
        {
            player.health = player.maxhealth;// Set the players health to the max
            player iPrintlnBold("^2mmm... ^1y^2u^3m^4m^5y^6!");// Say these messages if the player was healed
            player iPrintlnBold("^1Health Restored!");
        }
        else
            player iPrintlnBold("^2You already have full health, but ^1y^2u^3m^4m^5y^6! ^2anyway!");// If the player already has full health then say this message
        player thread healthwait();
    }
}

healthwait()
{
    self endon("disconnect");    // Kill the thread if the player disconnects
    wait level.vender_wait;        // Wait how long level.vender_wait is
    self.healthwait = undefined;    // Make self.healthwait undefined
}  


Für die Config gibts noch 2 DVAR's:

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

code:
1:
2:
3:
set mp_dein_mapname_allow_vender "1"
set mp_dein_mapname_health_wait "10"

Sollten noch Fehler auftreten, poste bitte die Fehlermeldung.

ToM
Banana2077
Gleich ne Frage...

Wo kommen denn die beiden DVAR Werte hin??
Nightwing

Zitat:

Original von Banana2077

Wo kommen denn die beiden DVAR Werte hin??

Die sind für die Config des Servers gedacht.
Zum testen brauchst Du die aber nicht, da sind die Vars auf einen Standardwert gesetzt.

ToM
Banana2077
Jetzt meckert er das hier:
OLD MAN WITH GUN
In Zeile 18 fehlt jetzt hinter dem precache() das Semikolon Augenzwinkern

In Zeile 18 muss es dahinter, in Zeile 25 darf es keinesfalls dahinter.

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

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
precache() // <- Definition der Funktion precache = kein Semikolon
{
  blub();
  blah();
}

was_anderes()
{
  if (foo < bar )
    precache(); // <- Aufruf der Funktion precache() = Semikolon am Ende 
}

Nightwing

Zitat:

Original von OLD MAN WITH GUN

In Zeile 18 fehlt jetzt hinter dem precache() das Semikolon Augenzwinkern

Klar. Jetzt weiss ich auch, was mich verwirrt hat:
In seinem ersten Script hatte Banana in seiner main() Funktion keinen Aufruf der precache() Funktion, nur die precache() mit dem Semikolon (= quasi als Funktion):
Da war der Fehler (der mich verwirrt hat), das dieser Teil in die main() Funktion reingehört.
Der eigentliche Code für die precache() fehlte komplett.
Ich hab das Script oben mal korrigiert.

Danke für's entwirren. Zunge raus

ToM
Banana2077
Okey erst mal vielen dank an alle..

Werde das gleich mal probieren muss jetzt nämlich weg..

Auch wenn ich jetzt immer noch nicht verstanden hab warum mit oder ohen Semikolon (ist aber auch eigentlich egal).. grosses Grinsen


Sollte man vielleicht mal im cod4 wiki ändern...


Also soll ich jetzt dein vorher gepostestes Script nehmen Nightwing?

Gruß


Valle
Nightwing

Zitat:

Original von Banana2077

Auch wenn ich jetzt immer noch nicht verstanden hab warum mit oder ohen Semikolon (ist aber auch eigentlich egal).. grosses Grinsen

Hatte OMWG ein Post weiter oben doch schön erklärt.

Zitat:

Original von Banana2077

Also soll ich jetzt dein vorher gepostestes Script nehmen Nightwing?
Yep.

ToM
Banana2077

Zitat:

Original von Nightwing
Auch wenn ich jetzt immer noch nicht verstanden hab warum mit oder ohen Semikolon (ist aber auch eigentlich egal).. grosses Grinsen

Hatte OMWG ein Post weiter oben doch schön erklärt.


Wollte damit nur sagen das ich nicht verstehe warum da jetzt eins hinkommt und weiter unten nicht...


Bin im Scripten nicht so muss ich noch lernen..

Achja wegen den DVARS soll ich die dann dem Server-Admin geben?


--- Edit by Nightwing: Doppelposting entfernt ---
Nightwing

Zitat:

Original von Banana2077

Achja wegen den DVARS soll ich die dann dem Server-Admin geben?

Sicher. Die sollte er in einer der cfg's einfügen.

ToM
Banana2077
Vielen DANK!!

Es funktioniert super!

Das einzige Problem ist jetzt noch das ich meinen Sound nicht höre..kommt nur das:





Das kommt bei Fast File:

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:
Fastfile 1 of 2, "mp_asphalt3": [ver. 5] process...
Sound file 'sound/voiceovers/generic/OM/gen_m_death1.wav' not found
Sound file 'sound/voiceovers/generic/OM/gen_m_death2.wav' not found
Sound file 'sound/voiceovers/generic/OM/gen_m_death3.wav' not found
Sound file 'sound/voiceovers/generic/OM/gen_m_death4.wav' not found
Sound file 'sound/voiceovers/generic/OM/gen_m_death5.wav' not found
Sound file 'sound/voiceovers/generic/OM/gen_m_death6.wav' not found
Sound file 'sound/voiceovers/generic/OM/gen_m_death7.wav' not found
Sound file 'sound/voiceovers/generic/OM/gen_m_death8.wav' not found
Sound file 'sound/voiceovers/generic/ON/gen_n_death1.wav' not found
Sound file 'sound/voiceovers/generic/ON/gen_n_death2.wav' not found
Sound file 'sound/voiceovers/generic/ON/gen_n_death3.wav' not found
Sound file 'sound/voiceovers/generic/ON/gen_n_death4.wav' not found
Sound file 'sound/voiceovers/generic/ON/gen_n_death5.wav' not found
Sound file 'sound/voiceovers/generic/RU3/ru3_death_01.wav' not found
Sound file 'sound/voiceovers/generic/RU3/ru3_death_02.wav' not found
Sound file 'sound/voiceovers/generic/RU4/ru4_death_01.wav' not found
Sound file 'sound/voiceovers/generic/US7/us7_death_01.wav' not found
Sound file 'sound/voiceovers/generic/US7/us7_death_02.wav' not found
Sound file 'sound/voiceovers/generic/US7/us7_death_03.wav' not found
Sound file 'sound/voiceovers/generic/US7/us7_death_04.wav' not found
Sound file 'sound/voiceovers/generic/US7/us7_death_05.wav' not found
Sound file 'sound/voiceovers/generic/US7/us7_death_06.wav' not found
ERROR: Sound alias file mp_asphalt3.csv: missing 'name' and/or 'file' columns
link...compress...save...done.
Fastfile 2 of 2, "mp_asphalt3_load": [ver. 5] process...link...compress...save..
.done.
language is not english
copying fast files to german folder
Ein Unterverzeichnis oder eine Datei mit dem Namen "E:\Programme\Activision\Call
" existiert bereits.
Folgender Fehler trat auf: E:\Programme\Activision\Call.
Ein Unterverzeichnis oder eine Datei mit dem Namen "of" existiert bereits.
Folgender Fehler trat auf: of.
Ein Unterverzeichnis oder eine Datei mit dem Namen "Duty" existiert bereits.
Folgender Fehler trat auf: Duty.
Ein Unterverzeichnis oder eine Datei mit dem Namen "4" existiert bereits.
Folgender Fehler trat auf: 4.
Ein Unterverzeichnis oder eine Datei mit dem Namen "-" existiert bereits.
Folgender Fehler trat auf: -.
Ein Unterverzeichnis oder eine Datei mit dem Namen "Modern" existiert bereits.
Folgender Fehler trat auf: Modern.
Ein Unterverzeichnis oder eine Datei mit dem Namen "Warfare\zone\german" existie
rt bereits.
Folgender Fehler trat auf: Warfare\zone\german.
Drücken Sie eine beliebige Taste . . .






Und nochmal 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:
main()
{
	maps\mp\_load::main();
	maps\mp\_teleport::main();
	maps\mp\_door::main();
	maps\mp\_breakglass::main();
	maps\mp\_elevator::main(); 
	maps\mp\_lights::main();
	maps\mp\mp_asphalt3_fx::main();

	game["allies"] = "marines";
	game["axis"] = "opfor";
	game["attackers"] = "axis";
	game["defenders"] = "allies";
	game["allies_soldiertype"] = "desert";
	game["axis_soldiertype"] = "desert";

    precache();// Call the precache function

    venders = getentarray("heal","targetname");// Get all the entitys that have "heal" for their "targetname"
    for(i=0;i<venders.size;i++)
        venders[i] thread vender();
}

precache()
{
    if(getDvar(getDvar("mp_asphalt3") + "_allow_vender") == "")
        setDvar(getDvar("mp_asphalt3") + "_allow_vender", 1);// This creates the dvar to enable the vending machines

    if(getDvar(getDvar("mp_asphalt3") + "_health_wait") == "")
        setDvar(getDvar("mp_asphalt3") + "_health_wait", 10);// This creates the dvar to set the time between being able to get health again

    level.allow_vender = int(getDvar(getDvar("mp_asphalt3") + "_allow_vender"));
    level.vender_wait = int(getDvar(getDvar("mp_asphalt3") + "_health_wait"));

    for(i=1;i<5;i++)
        precacheModel("com_bottle" + i);// Precache (load) the com_bottle1, com_bottle2, com_bottle3 and com_bottle4 models

    level.venderbottles = [];
    level.venderbottlescurrent = 0;
    level.venderbottlesmax = 10;// Max bottles in the map at one time, try not to have this too high as it can cause lag and somtimes crash the server
}

vender()
{
    self.targetname = undefined;
    dir = getent(self.target,"targetname");
    if(isDefined(dir))
    {
        temp = spawnStruct();
        temp.origin = dir.origin;
        temp.angles = dir.angles;// Spawn a struct which doesnt count as an entity, record the script_origin's origin and angles then delete the script_origin
        dir delete();
        dir = temp;
    }
    self.target = undefined;

    self playLoopSound("vender");// Make the trigger play a loop sound

    while(1)
    {
        self waittill("trigger", player);// Wait until its triggered
        if(player.sessionstate != "playing")// Make sure the player is playing
            continue;

        if(!level.allow_vender)// If vending machines are not allowed then say a message
        {
            player iPrintlnBold("^2Vender Machine is not allowed!");
            continue;
        }

        if(isDefined(dir))// If the script_origin is placed correctly in the map, then make a bottle pop out
        {
            self playSound("vender_drop");// Play the bottle drop sound

            if(isDefined(level.venderbottles[level.venderbottlescurrent]))
                level.venderbottles[level.venderbottlescurrent] delete();// If we have gone over the limit for max bottle in the map, delete the oldest one

            level.venderbottles[level.venderbottlescurrent] = spawn("script_model",self.origin);// Spawn the bottle
            level.venderbottles[level.venderbottlescurrent].angles = dir.angles; // Set the angles of the bottle
            level.venderbottles[level.venderbottlescurrent] setModel("com_bottle" + (randomInt(4) + 1));    // Set random bottle model
            point = dir.origin;
            origin = level.venderbottles[level.venderbottlescurrent].origin + maps\mp\_utility::vector_Scale(anglestoup(level.venderbottles[level.venderbottlescurrent].angles),4 + randomFloat(1));
            velocity = VectorNormalize(origin - point);// Calculate velocity and direction of the impact
            velocity = maps\mp\_utility::vector_Scale(velocity,10000 + randomInt(5000));
            level.venderbottles[level.venderbottlescurrent] physicsLaunch(point, velocity);            // Make the bottle fly!

            level.venderbottlescurrent++;

            if(level.venderbottlescurrent >= level.venderbottlesmax)
                level.venderbottlescurrent = 0;
        }

        if(isDefined(player.healthwait))// If the player has already used the vending machine then...
        {
            num = randomInt(100);
            if(num < 20)
                player iPrintlnBold("^2Kill Zombies and dont waste your time!");
            else if(num >= 20 && num < 40)
                player iPrintlnBold("^1Careful! You'll break it!");// Say one of these random messages
            else if(num >= 40 && num < 60)
                player iPrintlnBold("^3Oh no! There's none left!");
            else if(num >= 60 && num < 80)
                player iPrintlnBold("^4You're hungry ain't ya?");
            else
                player iPrintlnBold("^5Map by ^1red^5nose..But dont waste your time Bro.");
            continue;
        }

        player.healthwait = true;
        if(player.health < player.maxhealth)// If the players health is not at the max
        {
            player.health = player.maxhealth;// Set the players health to the max
            player iPrintlnBold("^3Hmmm... ^1Tasty^2!!!!");// Say these messages if the player was healed
            player iPrintlnBold("^1Health Restored!");
        }
        else
            player iPrintlnBold("^2You already have full health, but ^1y^2u^3m^4m^5y^6! ^2anyway!");// If the player already has full health then say this message
        player thread healthwait();
    }
}

healthwait()
{
    self endon("disconnect");    // Kill the thread if the player disconnects
    wait level.vender_wait;        // Wait how long level.vender_wait is
    self.healthwait = undefined;    // Make self.healthwait undefined
}  

bangingbernie
Fehlermeldung FF:

Wird hier schon beschrieben CoD4 Tools und deutsche Version vollständig zum laufen?

Modtools richtig installiert? [Tutorial] Installation der MOD-Tools & UPDATE auf 1.1
Banana2077
Das hilft mir aber nicht das dann der Sound geht oder?

Diese anderen roten Fehler sind mir eigentlich ziemlich egal...
Nightwing

Zitat:

Original von Banana2077

Diese anderen roten Fehler sind mir eigentlich ziemlich egal...

Diese anderen roten Fehler bedeuten, das Deine soundalias keinen Eintrag für diese Sounds beinhaltet.
Installier Dir die Tools sauber und füg die Sounds in die *.csv ein, dann wird das auch funktionieren.

ToM