Author Topic: Juste besoin d'une modife de script SVP!  (Read 862 times)

#Patriot#Hazal

  • Tailleur de maps (expérimenté)
  • Posts: 863
    • http://cod5-paintball.fr.nf/
Juste besoin d'une modife de script SVP!
« on: July 30, 2007, 03:17:21 PM »
Slt @ tous!!

Voilà je voudrais que sur ma map l'artilerie ce lance qu'au bout de certain tant et vraiment de la grosse comme celle du DRO et qu'elle recommence mais 5 min après, mais je sais pas comment faire!

Voilà mon .gsc avec le script du mortier et son .fx

gsc:

Code: [Select]
main()
{

        maps\mp\mortier_fx::main();
        maps\mp\mp_la_riviere_fx::main();
        maps\mp\mp_la_riviere_pluie::main();
        maps\mp\_load::main();

        ambientPlay("ambient_mp_la_riviere");

        // interactivitées
        maps\mp\_feuilles::main();
        maps\mp\_anti_couche::main();
        

        game["allies"] = "american";
        game["axis"] = "german";
        game["attackers"] = "allies";
        game["defenders"] = "axis";
        game["american_soldiertype"] = "normandy";
        game["german_soldiertype"] = "normandy";

        setCvar("r_glowbloomintensity0", ".25");
        setCvar("r_glowbloomintensity1", ".25");
        setcvar("r_glowskybleedintensity0",".3");

        level thread mortier();

}

mortier()
{
mortier = getentarray ("mortier","targetname");
while (1)
{
wait (1 + randomfloat(1));
GoodPosition = false;
while (!GoodPosition)
{
level.rand = randomint(mortier.size);
GoodPosition = true;
players = getentarray("player", "classname");
for(i = 0; i < players.size; i++)
{
if (distance(mortier[level.rand].origin,players[i].origin) < 200)
{
GoodPosition = false;
break;
}
}
}
mortier[level.rand] playsound("mortar_incoming");
wait (5);
origin = mortier[level.rand] getorigin();
playfx (level._effect["mortar_explosion"][randomint(2)], origin);
mortier[level.rand] playsound("mortar_explosion");
radiusDamage(mortier[level.rand].origin, 200, 200, 0);
}
}

et son fx:

Code: [Select]
main()
{
precacheFX();
}

precacheFX()
{
level._effect["mortar_explosion"][0] = loadfx ("fx/explosions/artilleryExp_grass.efx");
level._effect["mortar_explosion"][1] = loadfx ("fx/explosions/artilleryExp_dirt_brown_nodecal.efx");
}

Voilà merci d'avance!


Site de mon mod : Paintball CoD5

Florent

  • Legomaniaque
  • ****
  • Posts: 1468
    • http://www.florent-poujol.fr
Juste besoin d'une modife de script SVP!
« Reply #1 on: July 30, 2007, 04:48:03 PM »
Tu peux préciser l'utilité actuelle du thread mortier() s'il te plait ?

#Patriot#Hazal

  • Tailleur de maps (expérimenté)
  • Posts: 863
    • http://cod5-paintball.fr.nf/
Juste besoin d'une modife de script SVP!
« Reply #2 on: July 30, 2007, 05:22:28 PM »
Heu.... l'utilité??


Site de mon mod : Paintball CoD5

Florent

  • Legomaniaque
  • ****
  • Posts: 1468
    • http://www.florent-poujol.fr
Juste besoin d'une modife de script SVP!
« Reply #3 on: July 30, 2007, 05:57:01 PM »
Oui, il sert à quoi ton script là ?

Moi ce que j'ai compris c'est qu'il sert à faire pleuvoir un obus sur une position choisie aléatoirement parmis plusieur existante à un intervalle de 6 à 7 seconde si un joueur se situe à moins de 200 unités de la position au moment où celle-ci est sélectionnée par le script.

Ce qui n'est d'ailleur pas con.


Et toi tu veux faire la même chose sauf qu'il y auraient plusieurs obus qui tomberaient à la fois, que le temps entre chaques salve serait de 5 minutes et que ça ne commençerait pas au tout début de la map.

C'et bien ça ?

#Patriot#Hazal

  • Tailleur de maps (expérimenté)
  • Posts: 863
    • http://cod5-paintball.fr.nf/
Juste besoin d'une modife de script SVP!
« Reply #4 on: July 30, 2007, 07:46:55 PM »
Oui et que le joueur puisse être touché par les obus si il se trouve trop près de la zone prédéfinie.

Voilà merci d'avance si celà est possible!


Site de mon mod : Paintball CoD5

Florent

  • Legomaniaque
  • ****
  • Posts: 1468
    • http://www.florent-poujol.fr
Juste besoin d'une modife de script SVP!
« Reply #5 on: July 30, 2007, 11:14:02 PM »
Les nouveautés sont en rouge.

Quote
main()
{

       maps\mp\mortier_fx::main();
       maps\mp\mp_la_riviere_fx::main();
       maps\mp\mp_la_riviere_pluie::main();
       maps\mp\_load::main();

       ambientPlay("ambient_mp_la_riviere");

       // interactivitées
       maps\mp\_feuilles::main();
       maps\mp\_anti_couche::main();

       game["allies"] = "american";
       game["axis"] = "german";
       game["attackers"] = "allies";
       game["defenders"] = "axis";
       game["american_soldiertype"] = "normandy";
       game["german_soldiertype"] = "normandy";

       setCvar("r_glowbloomintensity0", ".25");
       setCvar("r_glowbloomintensity1", ".25");
       setcvar("r_glowskybleedintensity0",".3");


      level thread mortier();

}

mortier()
{
wait letempsquetuveux; //pour retarder l'execution du thread


mortier = getentarray ("mortier","targetname");
while (1)
{
wait (1 + randomfloat(1));
GoodPosition = false;
while (!GoodPosition)
{
level.rand = randomint(mortier.size);
GoodPosition = true;
players = getentarray("player", "classname");
for(i = 0; i < players.size; i++)
{
if (distance(mortier[level.rand].origin,players.origin) < 200)
{
GoodPosition = false;
break;
}
}
}


for(i=0 ; i< lenombred'obus ; i++)
{
thread incomming_mortier(mortier);
}

wait 300; // attend 5 minutes

}
}



incomming_mortier(mortier)
{
origin = mortier[level.rand] getorigin();

mortier[level.rand] playsound("mortar_incoming");
wait 5;

origine = origin + randomintrange(-200 , 200);

playfx (level._effect["mortar_explosion"][randomint(2)], origine);

mortier[level.rand] playsound("mortar_explosion");

radiusDamage(origine, 200, 200, 0);

wait randomfloatrange(0.5 , 1.5);
}


#Patriot#Hazal

  • Tailleur de maps (expérimenté)
  • Posts: 863
    • http://cod5-paintball.fr.nf/
Juste besoin d'une modife de script SVP!
« Reply #6 on: July 30, 2007, 11:32:24 PM »
Je vais regarder ça!


Site de mon mod : Paintball CoD5

Florent

  • Legomaniaque
  • ****
  • Posts: 1468
    • http://www.florent-poujol.fr
Juste besoin d'une modife de script SVP!
« Reply #7 on: July 30, 2007, 11:47:03 PM »
J'ai fait une erreur :

la ligne   " wait randomfloatrange(0.5 , 1.5); "  à la fin du thread incomming_mortier(), il faut la mettre à la fin de la boucle for comme ça :


for(i=0 ; i< lenombred'obus ; i++)
{
thread incomming_mortier(mortier);
wait randomfloatrange(0.5 , 1.5);
}

#Patriot#Hazal

  • Tailleur de maps (expérimenté)
  • Posts: 863
    • http://cod5-paintball.fr.nf/
Juste besoin d'une modife de script SVP!
« Reply #8 on: July 31, 2007, 12:21:02 AM »
J'ai un problème a la ligne 73 mais je ne vois pas le blème!

Code: [Select]
main()
{

        maps\mp\mortier_fx::main();
        maps\mp\mp_la_riviere_fx::main();
        maps\mp\_load::main();

        ambientPlay("ambient_mp_la_riviere");

        // interactivitées
        maps\mp\_feuilles::main();
        maps\mp\_anti_couche::main();
        

        game["allies"] = "american";
        game["axis"] = "german";
        game["attackers"] = "allies";
        game["defenders"] = "axis";
        game["american_soldiertype"] = "normandy";
        game["german_soldiertype"] = "normandy";

        setCvar("r_glowbloomintensity0", ".25");
        setCvar("r_glowbloomintensity1", ".25");
        setcvar("r_glowskybleedintensity0",".3");

        level thread mortier();

}

mortier()
{
wait 60; //pour retarder l'execution du thread


mortier = getentarray ("mortier","targetname");
while (1)
{
wait (1 + randomfloat(1));
GoodPosition = false;
while (!GoodPosition)
{
level.rand = randomint(mortier.size);
GoodPosition = true;
players = getentarray("player", "classname");
for(i = 0; i < players.size; i++)
{
if (distance(mortier[level.rand].origin,players[i].origin) < 200)
{
GoodPosition = false;
break;
}
}
}


for(i=0; i< 20; i++)
{
thread incomming_mortier(mortier);
wait randomfloatrange(0.5 , 1.5);
}

wait 300; // attend 5 minutes
}
}



incomming_mortier(mortier)
{
origin = mortier[level.rand] getorigin();

mortier[level.rand] playsound("mortar_incoming");
wait 5;

origine = origin + randomintrange(-200 , 200);

playfx (level._effect["mortar_explosion"][randomint(2)], origine);

mortier[level.rand] playsound("mortar_explosion");

radiusDamage(origine, 200, 200, 0);
}


Site de mon mod : Paintball CoD5

Florent

  • Legomaniaque
  • ****
  • Posts: 1468
    • http://www.florent-poujol.fr
Juste besoin d'une modife de script SVP!
« Reply #9 on: July 31, 2007, 10:55:54 AM »
La ligne 73 c'est le wait 5;

A mon avis c'est dans la ligne d'en dessous qu'est le problème parce que c'est n'importe quoi cette ligne. :lol:

Remplaces-là par celle-ci :
origine = ((origin[0] + randomintrange(-200 , 200)), (origin[1] + randomintrange(-200 , 200)), origin[2]);

Ça ajoute un facteur alléatoire dans le point de chute de l'obus autour de la position initiale.