WB Questions pour mon mod (1429)

Users who are viewing this thread

@fladin

Ca fait donc 1VS1 basé sur les joutes de native c'est ca ?  :eek:

Et pour mon (set_visitor, 61,  je met :troup_no ?

Si bOuYA_k as le simple script = 1 seigneur + le therme a employer pour le mettre sur mon entry point 63 qui va avec, j'aime auant, ca serais plus adapté a mes scripts et ca m'enlève 4000 lignes de scripts qui vont calculer pour rien, car la c'est un truc dédié a nombre d'équipes/taille équipes, qui  est ramenné a 1 VS 1.

Calculs pour rien a mon sens  :neutral: mais si ca marchait et pas d'autres soluc'...

Merci bcp en tout cas  :wink:


edit:

fladin said:
je laisse ça aux vrai experts  :neutral:

Tu l'as dit !!!  :lol:
On se fait un ciné pendant que d'autres sortent leur cerveaux de leur crane ?

Nan...mais ca tiens a des mises en formes toutes simples qui m'échapent, en gros : pas de référence sur native, il faut inventer et moi je séche la, pourtant pas mal de monde te sortent ca, car c'est quelques lignes normalement, mais moi si j'ai pas la reference a prendre dans une meme situation trouvable dans native...

Y'as cette situation dans native, mais elle est parasitée pour etre une version taille/nombre équipe...y'as bien le tournois 1 VS 1 de Dunde en osp, mais c'est imcomplet !!! il as un call_script_machin a son game_menu et pas de call_script_machin coréspondant a son module script  :roll:


edit: un peut plus d'explication (bien que je pense que ca change rien por trouver le tirage au sort = un seigneur a repertorier).

"rejoindre la joute"

choix de classes: a cheval + lance ou a pied (juste 1 vs 1)

prenons a cheval + lance comme dans la video.
Au bouton "entrer en lice", le tirage au sort des seigneurs presents en ville est lancé.
de la j'ai mes variables $jouteur1, 2, 3 a 8 assignées chaquns a une troupe.

En suite relié a mon mission template, si je perd = fin du tournois, je lance un try for range des jouteurs tirés au sort pour trouver un vainqueur (meme pas lié a leur renomé ou autre, ca suffira...).

si a mon mission template je gagne = assigner tour 2 a 1

A mes boutons game menu "entrer au tour suivant, j'ai la condition, si $tour2 a 1 et pas tour 2,3 ect...

Comme j'ai gagné (ca as assigné $tour2 a 1 et tour1,3,4,5,6,7,8 a 0.

Je rejoins donc le tour 2.
Dans ce boutons avec condition tour2 a 1, j'ai le set_jump_entry 63: jouteur2...
dans cette configuration (SIMPLE et directe!) je me bat dans tous les tours avec les 8 jouteurs tirés au sort, on imagine les autres rencontres sans nous pour éllimiber des concurents...

Manque juste ce fuc**** tirage au sort + le (troop_get_slot ...qui appelle le npc pour    (set_visitor, 61,
 
61 est le point de départ de l'autre jouteur , c'est ça ?

(je suis au bouleau ... et  j'avoue que je  ne suis pas à 100% avec toi pour l'instant
à la maison par contre je suis à 100% mais j'ai pas de connexion internet  :roll:... ok j’arrête de raconter ma vie  :cool:)

dans mon mod j'ai fait en sorte qu'il y est seulement 16 concurrents (j'ai remplacé toute les  valeurs "64" par "16" )
donc 4 tours pour chaque tournoi , donc j'ai pas touché au calculs lourds et  inutiles des teams et tout ça ...trop fainéant , c'est pas très élégant mais ça marche !

l'essentiel pour moi est  que ça marche, même si c'est programmé avec les pieds ...
l'optimisation viendra plus tard

allez bon courage
 
Moi aussi, meme si c'est mal foutu, tant que ca marche... :roll:

mais la c'est bien foutu et enléve 4000 lignes de scripts donc  :lol:
je refait tout le tournois de native en fait, je garde rien...ca sera bcp plus court!

Oui en effet

entry points :

60 = joueur
61 = enemi
63 = destination en ligne droite de l'ennemi
64 = quand l'ennemi est a proximité c'est que je ne l'ai pas assomé et qu'il ne m'as pas eu = ex equo.

mais n'allons pas enbrouiller bOuYA_k-hlO qui as juste 2 truc a m'aider a trouver...


edit:

bha je vais tester ca attention!  :mrgreen:

  ("tirage_jouteurs",
[
  (assign,"$jouteur_1", 0,
  (assign,"$jouteur_2", 0,
  (assign,"$jouteur_3", 0,
  (assign,"$jouteur_4", 0,
  (assign,"$jouteur_5", 0,
  (assign,"$jouteur_6", 0,
  (assign,"$jouteur_7", 0,
  (assign,"$jouteur_8", 0,

    (try_begin),
      (call_script, "script_add_jouteur"),
  (assign,"$jouteur_1", ":cur_troop"),
      (else_try),
      (call_script, "script_add_jouteur"),
  (assign,"$jouteur_2", ":cur_troop"),
        (else_try),
      (call_script, "script_add_jouteur"),
  (assign,"$jouteur_3", ":cur_troop"),
        (else_try),
      (call_script, "script_add_jouteur"),
  (assign,"$jouteur_4", ":cur_troop"),
        (else_try),
      (call_script, "script_add_jouteur"),
  (assign,"$jouteur_5", ":cur_troop"),
        (else_try),
      (call_script, "script_add_jouteur"),
  (assign,"$jouteur_6", ":cur_troop"),
        (else_try),
      (call_script, "script_add_jouteur"),
  (assign,"$jouteur_7", ":cur_troop"),
        (else_try),
      (call_script, "script_add_jouteur"),
  (assign,"$jouteur_8", ":cur_troop"),

          ]),




          ("add_jouteur",
            [
      (try_begin),
  (party_collect_attachments_to_party, ":center_no", "p_temp_party"),
    (party_get_num_companion_stacks, ":num_stacks", "p_temp_party"),
    (try_for_range, ":stack_no", 0, ":num_stacks"),
      (party_stack_get_troop_id, ":cur_troop", "p_temp_party", ":stack_no"),
      (troop_is_hero, ":cur_troop"),
              (try_end),
          ]),

= j'éspère 1 seigneur présent en ville pour le tournois = une variable assignée et aprés envoyable par game menu sur mon entry point, j'y crois pas trop mais je sent que je m'en approche.
C'est vraiment ce sale truc en rouge qu'il me faut : tirer un abrutis au sort parmis les seigneurs en ville et basta.
 
Ehm... j'ai l'impression que au plus des choses sont ajoutés sur le sujet, au moins je comprend ce dont tu as besoin :mrgreen:

Mais bon...
Pour tirer au sort un seigneur dans la ville tu as plusieurs options:
Code:
(assign, ":selected_lord", -1),
(assign, ":num_lord", 0),
(try_for_range, ":lord_no", lords_begin, lords_end),
	(troop_get_slot, ":party_no", ":lord_no", slot_troop_leaded_party),
	(party_get_attached_to, ":center", ":party_no"),
	(eq, ":center", "$g_encountered_party"),
	(val_add, ":num_lord", 1),
(try_end),
(try_begin),
	(gt, ":num_lord", 0),
	(store_random_in_range, ":rand", 0, ":num_lord"),
	(assign, ":i", 0),
	(assign, ":end", lords_end),
	(try_for_range, ":lord_no", lords_begin, ":end"),
		(troop_get_slot, ":party_no", ":lord_no", slot_troop_leaded_party),
		(party_get_attached_to, ":center", ":party_no"),
		(eq, ":center", "$g_encountered_party"),
		(try_begin),
			(ge, ":i", ":rand"),
			(assign, ":selected_lord", ":lord_no"),
			(assign, ":end", 0),
		(else_try),
			(val_add, ":i", 1),
		(try_end),
	(try_end),
(try_end),
Code:
(assign, ":selected_lord", -1),
(assign, ":num_lord", 0),
(party_get_num_attached_parties, ":num_parties", "$g_encountered_party"),
(try_for_range, ":cur_rank", 0, ":num_parties"),
	(party_get_attached_party_with_rank, ":attached_party", "$g_encountered_party", ":cur_rank"),
	(party_stack_get_troop_id, ":cur_troop", ":attached_party", 0),
	(is_between, ":cur_troop", lords_begin, lords_end),
	(val_add, ":num_lord", 1),
(try_end),
(try_begin),
	(gt, ":num_lord", 0),
	(store_random_in_range, ":rand", 0, ":num_lord"),
	(assign, ":i", 0),
	(try_for_range, ":cur_rank", 0, ":num_parties"),
		(party_get_attached_party_with_rank, ":attached_party", "$g_encountered_party", ":cur_rank"),
		(party_stack_get_troop_id, ":cur_troop", ":attached_party", 0),
		(is_between, ":cur_troop", lords_begin, lords_end),
		(try_begin),
			(ge, ":i", ":rand"),
			(assign, ":selected_lord", ":lord_no"),
			(assign, ":num_parties", 0),
		(else_try),
			(val_add, ":i", 1),
		(try_end),
	(try_end),
(try_end),

L'option 2 peut être simplifiée dans certaines conditions:
Si il n'est pas possible que des party autres que celles des seigneurs soient 'attachés' à une ville (c'est à dire que on voit son nom lorsque l'on passe le curseur sur la ville).
Que toutes les party qui sont 'attachés' soient composées d'un leader (ça se rapporte un peu à la première condition).
Que tout les seigneurs qui sont dans une ville soient 'attachés' à celle-ci.

En tant que note, c'est le cas sur le module_system de native, mais c'est pas forcement le cas partout.
Dans ce cas la, on peut simplifier par ça:
Code:
(assign, ":selected_lord", -1),
(party_get_num_attached_parties, ":num_parties", "$g_encountered_party"),
(store_random_in_range, ":rand", 0, ":num_parties"),
(party_get_attached_party_with_rank, ":attached_party", "$g_encountered_party", ":rand"),
(party_stack_get_troop_id, ":cur_troop", ":attached_party", 0),
(try_begin), # On est jamais trop prudent
	(is_between, ":cur_troop", lords_begin, lords_end),
	(assign, ":selected_lord", ":cur_troop"),
(try_end),

Voila pour le tirage au sort des seigneurs, en tout cas, dans la manière que j'ai pensé que tu voulais l'implémenter.
Appeler plusieurs fois cette fonction risque de retourner plusieurs fois un même résultat (plus grand avec un nombre faible de seigneurs dans la ville), donc il faut soit l'appeler plusieurs fois d'affilé (ce qui n'est pas souvent une bonne chose avec une fonction aléatoire), ou alors prendre en compte ce fait, et vérifier que si il y a des doublons on les ignore et on met un jouteur banal.
Il est aussi possible de trouver des alternatives, comme par exemple mettre un slot temporaire pour les seigneurs choisis (ne pas choisir ceux qui ont ce slot mis a 1 par exemple). Ou bien enlever la partie aléatoire, mais dans ce cas la, il n'y aura plus d'aléatoire.

Voila, et pour la deuxième requête, je n'ai pas vraiment bien compris, et puis il est tard :oops:.


En tant que note de bas de page (aka ps), si ce script est lancé dans un menu, il n'est pas grave de faire de grandes opérations, si le joueur doit attendre 1 seconde après avoir cliqué sur une option il ne le remarquera surement pas (surtout avec warband, il pourrait penser que c'est un chargement du jeu). Et puis bon, faire suffisamment d'opérations pour faire un temps d'attente de 1 seconde dans un menu (donc sans autre calcul effectué par l'ordinateur) surtout avec les ordinateurs d'aujourd'hui... Il faut y aller fort...
 
WOW merci bcp!  :grin:

Mais ou tu trouve tout ca ??

Ca sort d'ou ca par ex?  :lol:
(val_add, ":i", 1),

Bref, bravo et encore merci, je vais éssayer tout ca.

Oui en effet j'avais prévu qu'il pouvais y avoir au moins 2X le meme seigneur, je vais contrer ce truc...


edit

(troop_get_slot, ":party_no", ":lord_no", slot_troop_leaded_party),
(party_get_attached_to, ":center", ":party_no"),
(eq, ":center", "$g_encountered_party"),

Bon sang  :???: j'ai tourné en rond une semaine pour ces 3 lignes, impossible de les monter, surmenage & compagnie quois.

Nikel



edit:

Enorme!  :lol:
Ca marche! j'ai fait une joute avec Jeanne d'Arc  :lol:

Comme on dit, je t'en doit une  :eek:

MERCI, c'est vraiment sur 3 lignes que je bloquais, alors que j'en écris 2000 la  :mrgreen:
C'est sur la bonne voie  :wink:


edit:
Au secouuuuurs; help  :lol:

Ca me saoule quois, et bien sur c'est tellement compliqué que j'arrive meme pas a expliquer mais bon...

Y'as pas mal de trucs lancés qui semblent presque marcher mais c'est pas encore ca.
par ex

bOuYA_k-hlO said:
Voila pour le tirage au sort des seigneurs, en tout cas, dans la manière que j'ai pensé que tu voulais l'implémenter.
Appeler plusieurs fois cette fonction risque de retourner plusieurs fois un même résultat (plus grand avec un nombre faible de seigneurs dans la ville), donc il faut soit l'appeler plusieurs fois d'affilé (ce qui n'est pas souvent une bonne chose avec une fonction aléatoire), ou alors prendre en compte ce fait, et vérifier que si il y a des doublons on les ignore et on met un jouteur banal.
Il est aussi possible de trouver des alternatives, comme par exemple mettre un slot temporaire pour les seigneurs choisis (ne pas choisir ceux qui ont ce slot mis a 1 par exemple). Ou bien enlever la partie aléatoire, mais dans ce cas la, il n'y aura plus d'aléatoire.

Comment tu ferai ce slot stp ? ou quelqu'un d'autre...
je pense que c'est a module_trigers ou simple trigers, et après...pour ne pas avoir le meme seigneur choisis plusieurs fois...

C'est vraiment gigantesque et c'est un peut normal que ca soit pas au point, mais j'aimerais bien en voir le bout  :roll:

J'ai meme pensé a un championnat avec des point distribués aux vainqueurs, une grille classement a consulter, un prix spécial annuel en +, ect...mais on en est pas la, c'est déja revolutionaire (et ca marche presque! manque des ratés a régler, je dirais 3/4 scripts ou fonctions maximum) je peut dire que c'est un vrais jeu de simu de tournois dans le jeu, ou en tout cas un projet  :lol:

Je ne peut pas abandonner ca...et ca gave du coup  :???:

Si y'en as qui veulent se pencher sérieusement dessus, je peut copier tous les scripts ici...si on le ferai a plusieurs ca permeterai de le finir, et meme l'étoffer un peut comme le championnat, et plus encore...
la pour le moment j'ai que des appercus de ce que ca pourra etre, puissant mais ca tiens pas pour le moment, quelques ratés...


edit: par ex pour que ca marche un meme agent est appellé par différents thermes, par ex pour agent = aller a cet entry point, agent attaquer le joueur, agent = a telle distance de cet autre entry point on lance le menu "aucun jouteur n'as gané, on recommance" :cur_agent, :agent_no, :guard_agent...

Ca passe ca, ca va, mais c'est pour donner une idée du casse tete, j'ai jamais rien vu de la sorte  :???: c'est quasi au niveau de la notice de pilotage d'un ovni, si quelqu'un accepte le challenge...





edit: allez un autre raté dans la foullé (ce qui fait 2 demandes).

>mission template
>j'appelle un agent (ce qui me permet de lui faire faire des trucs)
>j'arrive très bien si c'est une troupe définie, par ex mon entrainement aux joutes avec une troupe fixe

(1, 0, 0,[
          ],
[
  (try_for_agents, ":cur_agent"),
    (agent_get_troop_id, ":cur_agent_troop", ":cur_agent"),
    (eq, "trp_jouteur_training", ":cur_agent_troop"),
    (assign, ":guard_agent", ":cur_agent"),


          (try_begin),
(get_player_agent_no, ":player_agent"),
  (agent_set_look_target_agent, ":guard_agent", ":player_agent"),

  (agent_get_position, pos0, ":guard_agent"),
  (agent_get_position, pos1, ":player_agent"),
  (get_distance_between_positions, ":dist", pos0, pos1),

    (le, ":dist", 300),


 
(agent_set_attack_action, ":guard_agent", 0, 0), #value: -2 = clear any attack action, 0 = thrust, 1 = slashright, 2 = slashleft, 3 = overswing - second value 0 = ready and release, 1 = ready and hold

(try_end),
  (try_end),
]),



Bien sur ca ce corse quand c'est une troupe tirée au sort a repertorier
    (try_for_agents, ":cur_agent"),
      (agent_is_non_player, ":cur_agent"),
      (agent_is_human, ":cur_agent"),
    (neq, "trp_town_1_arena_master", ":cur_agent"), 
    (neq, "trp_town_2_arena_master", ":cur_agent"),
    (neq, "trp_town_3_arena_master", ":cur_agent"),
    (neq, "trp_town_4_arena_master", ":cur_agent"),
    (neq, "trp_town_5_arena_master", ":cur_agent"),
    (neq, "trp_town_6_arena_master", ":cur_agent"),
    (neq, "trp_town_7_arena_master", ":cur_agent"),
    (neq, "trp_town_8_arena_master", ":cur_agent"),
    (neq, "trp_town_9_arena_master", ":cur_agent"),
    (neq, "trp_town_10_arena_master", ":cur_agent"),
    (neq, "trp_town_11_arena_master", ":cur_agent"),
    (neq, "trp_town_12_arena_master", ":cur_agent"),
    (neq, "trp_town_13_arena_master", ":cur_agent"),
    (neq, "trp_town_14_arena_master", ":cur_agent"),
    (neq, "trp_town_15_arena_master", ":cur_agent"),
    (neq, "trp_town_16_arena_master", ":cur_agent"),
    (neq, "trp_town_17_arena_master", ":cur_agent"),
    (neq, "trp_town_18_arena_master", ":cur_agent"),
    (neq, "trp_town_19_arena_master", ":cur_agent"),
    (neq, "trp_town_20_arena_master", ":cur_agent"),
    (neq, "trp_town_21_arena_master", ":cur_agent"),
    (neq, "trp_town_22_arena_master", ":cur_agent"),
        (assign, ":guard_agent", ":cur_agent"),

marche pas comme ca  :roll: les maitres de tournois présent dans la scene par défaut a cause d'un entry point assigné a module troops, sont forcément présents et veulent aussi nous attaquer, et du coup le bon agent n'est pas appellé, ou ce dérnier code n'est pas au point plutot...?
Y'as nous, le concurrent, et le maitre tournois.
Mon agent concurrent est bien present dans la scene par

tirage au sort (en simplifiant) module script

(assign, "$jouteur_1", -1),
(party_get_num_attached_parties, ":num_parties", "$g_encountered_party"),
(store_random_in_range, ":rand", 0, ":num_parties"),
(party_get_attached_party_with_rank, ":attached_party", "$g_encountered_party", ":rand"),
(party_stack_get_troop_id, ":cur_troop", ":attached_party", 0),
(assign, "$jouteur_1", ":cur_troop"),

game_menu
(set_visitor, 61, "$jouteur_1"),

mais bien sur , ca ne marche pas pour appeller cet agent après a mission template

  (try_for_agents, ":cur_agent"),
    (agent_get_troop_id, ":cur_agent_troop", ":cur_agent"),
    (eq, "$jouteur_1", ":cur_agent_troop"),
    (assign, ":guard_agent", ":cur_agent"),
 
en attendant maitre Bouya ...

peut être déclarer un slot dans module_contants :
slot_troop_participant_au_tournois          = 56 (par exemple)

puis dans ton script (je ne sais pas ou :roll:) :
(troop_set_slot, ":troop_no", slot_troop_participant_au_tournois, 1),

et pour verifier si le concurrent n'est pas  déjà choisis :
(troop_slot_eq,":troop_no",slot_troop_participant_au_tournois,1),

c'est lourde comme solution
 
Oui c'est  module_contants il me semble  :wink:
merci!

J'ai quelques ratés encore...on va y arriver  :smile:

mais si.

Et pour assigner au slot
(troop_set_slot, ":cur_troop", slot_troop_participant_au_tournois),
non ?

*Bien sur en m'acharnant je m'enlise et je crame ma perception des choses et manque de recul, en clair je sait plus combien font 1+1, mais si je m'acharne pas ca se fera pas... :roll:
Du coup y'as que de l'aide qui pourais me relancer, ou une pause et du recul mais bon, ca avancera pas.
 
A ouais!

(troop_set_slot, ":cur_troop", slot_troop_participant_au_tournois, 1),

1 ajouter, -1 retirer il me semble...bon, je vais éssayer des trucs comme ca avant de recommancer une nouvelle base.

reste a retrouver et reporter l'ID de ma troupe tirée au sort a mettre a module_mission_template...


edit: ah oui quel con, j'ai pas mis de agent_get_troop_id ici

vu que ca commence par (agent_is_non_player, ":cur_agent"), voila ca m'as encore embrouillé  :roll:


(try_for_agents, ":cur_agent"),
      (agent_is_non_player, ":cur_agent"),
      (agent_is_human, ":cur_agent"),
    (neq, "trp_town_1_arena_master", ":cur_agent"), 
    (neq, "trp_town_2_arena_master", ":cur_agent"),
    (neq, "trp_town_3_arena_master", ":cur_agent"),
    (neq, "trp_town_4_arena_master", ":cur_agent"),
    (neq, "trp_town_5_arena_master", ":cur_agent"),
    (neq, "trp_town_6_arena_master", ":cur_agent"),
    (neq, "trp_town_7_arena_master", ":cur_agent"),
    (neq, "trp_town_8_arena_master", ":cur_agent"),
    (neq, "trp_town_9_arena_master", ":cur_agent"),
    (neq, "trp_town_10_arena_master", ":cur_agent"),
    (neq, "trp_town_11_arena_master", ":cur_agent"),
    (neq, "trp_town_12_arena_master", ":cur_agent"),
    (neq, "trp_town_13_arena_master", ":cur_agent"),
    (neq, "trp_town_14_arena_master", ":cur_agent"),
    (neq, "trp_town_15_arena_master", ":cur_agent"),
    (neq, "trp_town_16_arena_master", ":cur_agent"),
    (neq, "trp_town_17_arena_master", ":cur_agent"),
    (neq, "trp_town_18_arena_master", ":cur_agent"),
    (neq, "trp_town_19_arena_master", ":cur_agent"),
    (neq, "trp_town_20_arena_master", ":cur_agent"),
    (neq, "trp_town_21_arena_master", ":cur_agent"),
    (neq, "trp_town_22_arena_master", ":cur_agent"),
        (assign, ":guard_agent", ":cur_agent"),

Je vais éssayer de m'en sortir pour ca, vu que j'aurais surement d'autres blems...


edit: ok c'est bon je l'ai  :smile:

        (try_for_agents, ":cur_agent"),
          (agent_get_troop_id, ":cur_agent_troop", ":cur_agent"),
    (neq, ":cur_agent_troop", "trp_player"),
    (neq, ":cur_agent_troop", "trp_town_1_arena_master"), 
    (neq, ":cur_agent_troop", "trp_town_2_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_3_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_4_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_5_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_6_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_7_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_8_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_9_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_10_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_11_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_12_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_13_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_14_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_15_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_16_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_17_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_18_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_19_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_20_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_21_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_22_arena_master"),

      (agent_is_human, ":cur_agent_troop"),
        (assign, ":guard_agent", ":cur_agent"),

Bon, si vous le voulez bien on reparle bientot du tirage au sort des seigneurs en ville et de leur assignation a un slot, et leur store troop name pour la liste des concurrents encore en lice...je crois que c'est mes plus gros problèmes, je me demande si je devrais pas reprendre ca des scripts de native si seulement je savais comment en faire un 1 vs 1.
 
WOW!  :shock:

Il me manque d'1 truc !!! le reste je peut le faire...



IMPORTANT !
Il ne me manque que ceci:

avec un script random in range, il me faut repertorier les seigneurs de la ville courante (la ou il y as le tournois) et les stoquer dans un slot.
(valleur_add,1)
ca fait une liste dans le slot non ?

De CETTE liste, encore un tirage au sort > il en resulte un seigneur, ce seigneur je l'assigne a une variable "$jouteur" et le retire de la liste/slot
(valleur_add, -1),
encore la meme chose: dans ce slot/liste je tire un autre seigneur et sans l'assigner je le retire (valleur_add, -1),

Voyez vous ? ou je doit y mettre plus de détails ? j'aimerais qu'on commence a envoyer des trucs au hasard et le transformer/le faire avancer...

Je suis en train de réussir !!! wow, j'y croyais plus.


Je commence, de toute facon on ne parlera (si vous le voullez hein) que de ce script.

appellé par game menu
c'est donc juste un script ou deux, a module script
et je simplifie...


(try_begin),
(party_get_num_attached_parties, ":num_parties", "$g_encountered_party"),
(store_random_in_range, ":rand", 0, ":num_parties"),
(party_get_attached_party_with_rank, ":attached_party", "$g_encountered_party", ":rand"),
(party_stack_get_troop_id, ":cur_troop", ":attached_party", 0),
(try_begin),
(is_between, ":cur_troop", lords_begin, lords_end),
        (neq, ":cur_troop", "trp_player"),
        (neq, ":cur_troop", "trp_kidnapped_girl"),

        (troop_set_slot, "trp_tournament_participants", ":cur_slot", ":cur_troop"),
        (val_add, ":cur_slot", 1),


simplifié...

ca fait bien une liste/slot trp_tournament_participants non ???

comment maintenant tirer 1 seigneur au sort de ce slot svp ???!  :razz:

c'est tout ce qui me manque, un slot/liste a remplir des participants, ET tirer au sort un participant de cette liste a chaques fois que je lance le script, et je l'assign troop _set_slot vall_add, -1 (ce qui fait qu'il ne sera plus tiré au sort ?  :razz: ).
 
hoola ça devient trop compliqué tout ça ... :???:

peut-etre vais-je encore  compliquer ta tache en suggérant ce script  de native?

Code:
  # script_get_random_tournament_participant
  # Input: none
  # Output: reg0 = troop_no
  ("get_random_tournament_participant",
    [(call_script, "script_get_num_tournament_participants"),
     (assign, ":num_participants", reg0),
     (store_random_in_range, ":random_troop", 0, ":num_participants"),
     (assign, ":continue", 1),
     (try_for_range, ":cur_slot", 0, 16),#-----change 64 to 16
       (eq, ":continue", 1),
       (troop_slot_ge, "trp_tournament_participants", ":cur_slot", 0),
       (val_sub, ":random_troop", 1),
       (lt, ":random_troop", 0),
       (assign, ":continue", 0),
       (troop_get_slot, ":troop_no", "trp_tournament_participants", ":cur_slot"),
       (troop_set_slot, "trp_tournament_participants", ":cur_slot", -1),
     (try_end),
     (assign, reg0, ":troop_no"),
     ]),

un début de piste avec ce troop_slot_...

allez courage tu y es presque  :grin:
 
Oui c'est ce que j'en ai déduis aussi, et je travaille sur un truc similaire  :smile:

Faut mettre en forme c'est ca le problème  :mrgreen:
Oui ca va venir c'est sur, je sait pas quand...j'ai la forme par contre, faire une liste de concurrents, en piocher un dedans, l'enlever de la liste/ si on le bat on passe au suivant, si on est battu on en parle plus on quite le tournois et on remet a 0 pour le prochain...


Merci de t'etre penché sur ces saletés vu le mal que ca fait au cerveau  :wink:


edit

ici le slot (la liste de concurrents de Fladin/ c'est ce que j'ai pris aussi pour faire ma liste) c'est bien "trp_tournament_participants" > la liste de concurrents ? comme native...
 
Je ne vais pas faire un post détaillé ici, je reviendrai potentiellement demain, ou si ça sera pas possible, durant la semaine prochaine.

Mais bon, je vais tenter de répondre a certaines questions, premièrement, faire :
Code:
(troop_set_slot, ":troop", ":slot", 1),
n'ajoute pas 1 au slot, ça le set, donc ça le met a 1.
Pour ajouter, il faut faire:
Code:
(troop_get_slot, ":val", ":troop", ":slot"),
(val_add, ":val", 1),
(troop_set_slot, ":troop", ":slot", ":val"),
Ensuite, il n'est pas possible de faire des listes avec un slot, mais effectivement, comme tu l'as fait dans ton script, il est possible de simuler une liste avec plusieurs slots.

FantasyWarrior said:
comment maintenant tirer 1 seigneur au sort de ce slot svp ???!  :razz:

c'est tout ce qui me manque, un slot/liste a remplir des participants, ET tirer au sort un participant de cette liste a chaques fois que je lance le script, et je l'assign troop _set_slot vall_add, -1 (ce qui fait qu'il ne sera plus tiré au sort ?  :razz: ).
Pour tirer au sort, encore une fois, si tu as toujours 8 personnes pour tes tournois, tu peux faire:
Code:
(store_random_in_range, ":rand", 0, 8),
(store_add, ":slot", ":first_slot", ":rand"),
(troop_get_slot, ":selected_troop", "trp_tournament_participant", ":slot"),
Avec ":first_slot" qui est en fait la première valeur assigné à ":cur_slot" ici:
FantasyWarrior said:
(try_begin),
(party_get_num_attached_parties, ":num_parties", "$g_encountered_party"),
(store_random_in_range, ":rand", 0, ":num_parties"),
(party_get_attached_party_with_rank, ":attached_party", "$g_encountered_party", ":rand"),
(party_stack_get_troop_id, ":cur_troop", ":attached_party", 0),
(try_begin),
(is_between, ":cur_troop", lords_begin, lords_end),
        (neq, ":cur_troop", "trp_player"),
        (neq, ":cur_troop", "trp_kidnapped_girl"),

        (troop_set_slot, "trp_tournament_participants", ":cur_slot", ":cur_troop"),
        (val_add, ":cur_slot", 1),

Voila, je ne suis pas sur mon ordinateur, mais demain je ferai un edit sur ce post pour developper sur prendre un seigneur aléatoire sur les slots, car ce que j'ai mis dessus ne prend pas en compte le fait que les seigneurs ne doivent etre pris qu'une seule fois.

J'espere avoir été clair, ou du moins, compréhensible :smile:
 
Oui c'est clair; merci bcp a vous  :wink:

Je pense m'en sortir avec ca, j'éssaye moi aussi de mettre en place un truc demain et dans la semaine donc, tu as le temps si ca t'intéresera toujours.

On y est presque en effet, c'est un poil plus court que les scripts tournois native, mais aussi compliqué et surtout ca fera vraiment plus de trucs, je le dit a ceux qui voudrons les joutes en osp : impossible a rassembler  :wink: ca casse vraiment la tete , mais on poura toujour y jouer... :mrgreen:

Bien sur je vous rajoute tous les deux comme codeurs dans les credits, meme si ca fait pas bcp de temps ca aura carément et directement contribué.

MERCI  :smile:

Ok, j'ai encore changé de méthode (c'est juste la troisième fois  :evil:) mais il ne me reste qu'un détail a régler et les joutes de ouf c'est fait !!!


module_mission_template
>ca me fait un code error "invalid agent id"pourtant les 3 appels de troop marchent  :roll: et plus de message invalid agent si j'enleve les scripts assosciés aux trucs avec les appels d'id de troops soulignés en rouge.

  (
    "joutes",0,-1,
    "joutes",
    [
      (0,mtef_visitor_source|mtef_team_0,af_override_all,aif_start_alarmed,1,[]),
      (1,mtef_visitor_source|mtef_team_0,af_override_all,aif_start_alarmed,1,[]),
      (2,mtef_visitor_source|mtef_team_0,af_override_all,aif_start_alarmed,1,[]),
      (3,mtef_visitor_source|mtef_team_0,af_override_all,aif_start_alarmed,1,[]),
      (4,mtef_visitor_source|mtef_team_0,af_override_all,aif_start_alarmed,1,[]),
      (5,mtef_visitor_source|mtef_team_0,af_override_all,aif_start_alarmed,1,[]),
      (6,mtef_visitor_source|mtef_team_0,af_override_all,aif_start_alarmed,1,[]),
      (7,mtef_visitor_source|mtef_team_0,af_override_all,aif_start_alarmed,1,[]),

      (8,mtef_visitor_source|mtef_team_0,af_override_all,aif_start_alarmed,1,[]),
      (9,mtef_visitor_source|mtef_team_0,af_override_all,aif_start_alarmed,1,[]),
      (10,mtef_visitor_source|mtef_team_0,af_override_all,aif_start_alarmed,1,[]),
      (11,mtef_visitor_source|mtef_team_0,af_override_all,aif_start_alarmed,1,[]),
      (12,mtef_visitor_source|mtef_team_0,af_override_all,aif_start_alarmed,1,[]),
      (13,mtef_visitor_source|mtef_team_0,af_override_all,aif_start_alarmed,1,[]),
      (14,mtef_visitor_source|mtef_team_0,af_override_all,aif_start_alarmed,1,[]),
      (15,mtef_visitor_source|mtef_team_0,af_override_all,aif_start_alarmed,1,[]),

      (16,mtef_visitor_source|mtef_team_0,af_override_all,aif_start_alarmed,1,[]),
      (17,mtef_visitor_source|mtef_team_0,af_override_all,aif_start_alarmed,1,[]),
      (18,mtef_visitor_source|mtef_team_0,af_override_all,aif_start_alarmed,1,[]),
      (19,mtef_visitor_source|mtef_team_0,af_override_all,aif_start_alarmed,1,[]),
      (20,mtef_visitor_source|mtef_team_0,af_override_all,aif_start_alarmed,1,[]),
      (21,mtef_visitor_source|mtef_team_0,af_override_all,aif_start_alarmed,1,[]),
      (22,mtef_visitor_source|mtef_team_0,af_override_all,aif_start_alarmed,1,[]),
      (23,mtef_visitor_source|mtef_team_0,af_override_all,aif_start_alarmed,1,[]),

      (24,mtef_visitor_source|mtef_team_0,af_override_all,aif_start_alarmed,1,[]),
      (25,mtef_visitor_source|mtef_team_0,af_override_all,aif_start_alarmed,1,[]),
      (26,mtef_visitor_source|mtef_team_0,af_override_all,aif_start_alarmed,1,[]),
      (27,mtef_visitor_source|mtef_team_0,af_override_all,aif_start_alarmed,1,[]),
      (28,mtef_visitor_source|mtef_team_0,af_override_all,aif_start_alarmed,1,[]),
      (29,mtef_visitor_source|mtef_team_0,af_override_all,aif_start_alarmed,1,[]),
      (30,mtef_visitor_source|mtef_team_0,af_override_all,aif_start_alarmed,1,[]),
      (31,mtef_visitor_source|mtef_team_0,af_override_all,aif_start_alarmed,1,[]),
#32
      (32, mtef_visitor_source|mtef_team_0,af_override_all,aif_start_alarmed,1,[]),
      (33,mtef_visitor_source|mtef_team_0,af_override_all,aif_start_alarmed,1,[]),
      (34,mtef_visitor_source|mtef_team_0,af_override_all,aif_start_alarmed,1,[]),
      (35,mtef_visitor_source|mtef_team_0,af_override_all,aif_start_alarmed,1,[]),
      (36, mtef_visitor_source|mtef_team_0,af_override_all,aif_start_alarmed,1,[]),
      (37,mtef_visitor_source|mtef_team_0,af_override_all,aif_start_alarmed,1,[]),
      (38,mtef_visitor_source|mtef_team_0,af_override_all,aif_start_alarmed,1,[]),
      (39,mtef_visitor_source|mtef_team_0,af_override_all,aif_start_alarmed,1,[]),
#40-49 not used yet
      (40,mtef_visitor_source|mtef_team_0,af_override_all,aif_start_alarmed,1,[]),
      (41,mtef_visitor_source|mtef_team_0,af_override_all,aif_start_alarmed,1,[]),
      (42,mtef_visitor_source|mtef_team_0,af_override_all,aif_start_alarmed,1,[]),
      (43,mtef_visitor_source|mtef_team_0,af_override_all,aif_start_alarmed,1,[]),
      (44,mtef_visitor_source|mtef_team_0,af_override_all,aif_start_alarmed,1,[]),
      (45,mtef_visitor_source|mtef_team_0,af_override_all,aif_start_alarmed,1,[]),
      (46,mtef_visitor_source|mtef_team_0,af_override_all,aif_start_alarmed,1,[]),
      (47,mtef_visitor_source|mtef_team_0,af_override_all,aif_start_alarmed,1,[]),
      (48,mtef_visitor_source|mtef_team_0,af_override_all,aif_start_alarmed,1,[]),
      (49,mtef_visitor_source|mtef_team_0,af_override_all,aif_start_alarmed,1,[]),

      (50, mtef_scene_source,af_override_horse|af_override_weapons|af_override_head,0,1,[]),
      (51, mtef_visitor_source,af_override_horse|af_override_weapons|af_override_head,0,1,[]),
      (52, mtef_scene_source,af_override_horse,0,1,[]),#not used yet:
      (53, mtef_scene_source,af_override_horse,0,1,[]),
      (54, mtef_scene_source,af_override_horse,0,1,[]),
      (55, mtef_scene_source,af_override_horse,0,1,[]),
#used for torunament master scene

      (56, mtef_visitor_source|mtef_team_0, af_override_all, aif_start_alarmed, 1, []),
      (57, mtef_visitor_source|mtef_team_0, af_override_all, aif_start_alarmed, 1, []),
      (58, mtef_visitor_source|mtef_team_0, af_override_all, aif_start_alarmed, 1, []),
      (59, mtef_visitor_source|mtef_team_0, af_override_all, aif_start_alarmed, 1, []),
      (60, mtef_visitor_source|mtef_team_0, af_override_all, aif_start_alarmed, 1, [itm_new_joutes_horse_blue, itm_new_hourglass_gauntlets, itm_new_steel_greaves, itm_new_churburg_13_brass_blue,itm_new_helmet_tournament_blue_1, itm_newlance_joutes_joueur]),
      (61, mtef_visitor_source|mtef_team_1, af_override_all, aif_start_alarmed, 1, [itm_new_joutes_horse_red, itm_new_wisby_gauntlets_red, itm_new_shynbaulds, itm_new_churburg_13_brass_red,itm_new_helmet_tournament_red_1, itm_newlance_joutes_enemi]),
      (62, mtef_visitor_source|mtef_team_0, af_override_all, aif_start_alarmed, 1, []),
      (63, mtef_visitor_source|mtef_team_0, af_override_all, aif_start_alarmed, 1, []),


    ],

  [

      (ti_before_mission_start, 0, 0, [],
      [
        (call_script, "script_change_banners_and_chest"),
        ]),







           
      (ti_tab_pressed, 0, 0,
      [
        (jump_to_menu, "mnu_tournament_withdraw_verify"),
        (finish_mission),       
        ],
      []),


(ti_on_agent_spawn, 0, 0, [],[


        (try_for_agents, ":cur_agent"),
          (agent_get_troop_id, ":cur_agent_troop", ":cur_agent"),
          (eq, ":cur_agent_troop", "trp_player"),
          (try_begin),
            (agent_get_wielded_item, ":cur_wielded_item", ":cur_agent", 0),
              (assign, ":cur_wielded_item", "itm_newlance_joutes_joueur"),
            (agent_set_wielded_item, ":cur_agent", ":cur_wielded_item"),
        (try_end),




]),



    (0, 0, ti_once,
    [],
    [
(play_sound, "snd_public_loop", sf_looping),
    ]),


(1, 0, 0,[#celui la est pour : concurrent allez en ligne droite a un entry point contre la barriere de separation
          ],
[


        (try_for_agents, ":cur_agent"),
          (agent_get_troop_id, ":cur_agent_troop", ":cur_agent"),
    (neq, ":cur_agent_troop", "trp_player"),
    (neq, ":cur_agent_troop", "trp_town_1_arena_master"), 
    (neq, ":cur_agent_troop", "trp_town_2_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_3_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_4_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_5_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_6_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_7_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_8_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_9_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_10_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_11_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_12_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_13_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_14_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_15_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_16_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_17_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_18_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_19_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_20_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_21_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_22_arena_master"),

      (agent_is_human, ":cur_agent_troop"),
        (assign, ":guard_agent", ":cur_agent"),



   


  (try_end),
   
(assign, ":target_entry_point", 63),
            (try_begin),
                (agent_set_slot, ":guard_agent", 0, ":target_entry_point"),
                (entry_point_get_position, pos1, ":target_entry_point"),
                (try_begin),
                  (init_position, pos2),
                  (position_set_y, pos2, 250),
                  (position_transform_position_to_parent, pos1, pos1, pos2),
                (try_end),
                (agent_set_scripted_destination, ":guard_agent", pos1, 0),
(try_end),


]),

 
    (0, 0, 0,
      [

         

      ],
      [#celui la est pour : concurent a une certaine distance d'un scene prop invisible on va au menu"personne n'as gagné" (car si il va jusqu'au bout du couloir c'est que je ne l'ai pas touché, et qu'il ne m'as pas eu non plus).

(scene_prop_get_instance, ":cur_instance_id", "spr_111_tournois_result_enemi", 0),         
        (ge, ":cur_instance_id", 0),



        (try_for_agents, ":cur_agent"),
          (agent_get_troop_id, ":cur_agent_troop", ":cur_agent"),
    (neq, ":cur_agent_troop", "trp_player"),
    (neq, ":cur_agent_troop", "trp_town_1_arena_master"), 
    (neq, ":cur_agent_troop", "trp_town_2_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_3_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_4_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_5_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_6_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_7_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_8_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_9_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_10_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_11_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_12_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_13_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_14_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_15_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_16_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_17_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_18_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_19_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_20_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_21_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_22_arena_master"),

      (agent_is_human, ":cur_agent_troop"),
        (assign, ":guard_agent", ":cur_agent"),

  (try_begin), 
        (agent_get_position, pos10, ":guard_agent"),
        (prop_instance_get_position, pos11, ":cur_instance_id"),
        (get_distance_between_positions, ":dist", pos10, pos11),
        (lt, ":dist", 300),

(play_sound, "snd_defaite_joute"),
(eq, "$message_pas_repete_joutes", 0),
(display_message, "@Aucun jouteur ne s'est distingué, vous re-commancez la joute."),




  (jump_to_menu, "mnu_town_tournament_joutes"),



(assign, "$message_pas_repete_joutes", 1),
        (finish_mission),
(try_end),
(try_end),
          ]),


     

(1, 0, 0,[#celui la est pour : a une certaine distance du joueur, le concurrent le frappe sans dévier de sa trajectoire contre la barriere de séparation
          ],
[
        (try_for_agents, ":cur_agent"),
          (agent_get_troop_id, ":cur_agent_troop", ":cur_agent"),
    (neq, ":cur_agent_troop", "trp_player"),
    (neq, ":cur_agent_troop", "trp_town_1_arena_master"), 
    (neq, ":cur_agent_troop", "trp_town_2_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_3_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_4_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_5_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_6_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_7_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_8_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_9_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_10_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_11_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_12_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_13_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_14_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_15_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_16_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_17_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_18_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_19_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_20_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_21_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_22_arena_master"),

      (agent_is_human, ":cur_agent_troop"),
        (assign, ":guard_agent", ":cur_agent"),

   
          (try_begin),
(get_player_agent_no, ":player_agent"),
  (agent_set_look_target_agent, ":guard_agent", ":player_agent"),

  (agent_get_position, pos0, ":guard_agent"),
  (agent_get_position, pos1, ":player_agent"),
  (get_distance_between_positions, ":dist", pos0, pos1),

    (le, ":dist", 300),


 
(agent_set_attack_action, ":guard_agent", 0, 0), #value: -2 = clear any attack action, 0 = thrust, 1 = slashright, 2 = slashleft, 3 = overswing - second value 0 = ready and release, 1 = ready and hold

(try_end),
  (try_end),
]),




    (0, 0, 0,



    ],

[

  (store_trigger_param_1, ":dead_agent_no"),
  (store_trigger_param_2, ":killer_agent_no"),
 
  (get_player_agent_no, ":my_agent"),
  (try_begin),
    (eq, ":my_agent", ":killer_agent_no"), # if I killed the agent
    (neg|agent_is_human, ":dead_agent_no"),#if it is not human => it is horse
      (agent_get_item_id, ":horse_item_id", ":dead_agent_no"),
      (eq, ":horse_item_id", "itm_new_joutes_horse_red"),
 



(eq, "$message_pas_repete_joutes", 0),
(play_sound, "snd_mort_cheval_joute"), 
  (display_message, "@Vous avez blessé le cheval du concurent, vous etes disqualifié."), 
 
       
     
         

(assign, "$horse_joustes_dead", 1),
(assign, "$message_pas_repete_joutes", 1), 
  (try_end),
]),


      (1, 3, ti_once, [(main_hero_fallen,0)],
      [
  (play_sound, "snd_defaite_joute"),       
       
        ]),
   

      (1, 3, ti_once, [(main_hero_fallen,0)],
      [       
(display_message, "@Vous avez perdu cette joute."), 
        (jump_to_menu, "mnu_tournois_lost"),
        (finish_mission),
       
        ]),




      (1, 3, ti_once,
      [
        (num_active_teams_le, 1),
        (neg|main_hero_fallen),       
        ],
      [
  (play_sound, "snd_victoire_manche"),                 

]),







      (1, 3, ti_once,
      [
        (store_mission_timer_a, reg1),     
        (ge, reg1, 4),
        (num_active_teams_le, 1),
        (neg|main_hero_fallen),       
        ],
      [
         
(display_message, "@Vous avez remporté cette joute !"),         


(call_script, "script_reglage_tours"),



        (jump_to_menu, "mnu_town_tournament_joutes"),     
        (finish_mission),       

]),


      (1, 3, ti_once,
      [

        (store_mission_timer_a, reg1),     
        (ge, reg1, 4),
(eq, "$horse_joustes_dead", 1),   
        ],
      [
  (jump_to_menu, "mnu_tournois_lost"), 
        (finish_mission),     

]),



             
  ],     
),

Si vous avez des idées...

Comme vous le voyez : c'était chaud chaud  :???: c'est fait a 95%
J'ai jamais rien fait d'aussi hard dans aucun jeu :roll:
 
Ah? peut etre  :roll:

De toute facon ca a l'air bon la!!!  :razz:
Saufs bugs en testant a fond, c'est fait ,tout est fait !!!  :lol:

Merci les frangins  :smile:

J'éspère a bcp plus tard sur ce topic  du déséspoir.  :mrgreen:

encore merci ^^
 
Hum, je pensais que c'était bon, mais ca m'as claqué dans les doigts en testant +  :mrgreen:

encore l'invalid agent_ID dérnier prob' !


module_mission_template
>ca me fait un code error "invalid agent id"pourtant les 3 appels de troop marchent  :roll: et plus de message invalid agent si j'enleve les scripts assosciés aux trucs avec les appels d'id de troops soulignés en rouge.

  (
    "joutes",0,-1,
    "joutes",
    [
      (0,mtef_visitor_source|mtef_team_0,af_override_all,aif_start_alarmed,1,[]),
      (1,mtef_visitor_source|mtef_team_0,af_override_all,aif_start_alarmed,1,[]),
      (2,mtef_visitor_source|mtef_team_0,af_override_all,aif_start_alarmed,1,[]),
      (3,mtef_visitor_source|mtef_team_0,af_override_all,aif_start_alarmed,1,[]),
      (4,mtef_visitor_source|mtef_team_0,af_override_all,aif_start_alarmed,1,[]),
      (5,mtef_visitor_source|mtef_team_0,af_override_all,aif_start_alarmed,1,[]),
      (6,mtef_visitor_source|mtef_team_0,af_override_all,aif_start_alarmed,1,[]),
      (7,mtef_visitor_source|mtef_team_0,af_override_all,aif_start_alarmed,1,[]),

      (8,mtef_visitor_source|mtef_team_0,af_override_all,aif_start_alarmed,1,[]),
      (9,mtef_visitor_source|mtef_team_0,af_override_all,aif_start_alarmed,1,[]),
      (10,mtef_visitor_source|mtef_team_0,af_override_all,aif_start_alarmed,1,[]),
      (11,mtef_visitor_source|mtef_team_0,af_override_all,aif_start_alarmed,1,[]),
      (12,mtef_visitor_source|mtef_team_0,af_override_all,aif_start_alarmed,1,[]),
      (13,mtef_visitor_source|mtef_team_0,af_override_all,aif_start_alarmed,1,[]),
      (14,mtef_visitor_source|mtef_team_0,af_override_all,aif_start_alarmed,1,[]),
      (15,mtef_visitor_source|mtef_team_0,af_override_all,aif_start_alarmed,1,[]),

      (16,mtef_visitor_source|mtef_team_0,af_override_all,aif_start_alarmed,1,[]),
      (17,mtef_visitor_source|mtef_team_0,af_override_all,aif_start_alarmed,1,[]),
      (18,mtef_visitor_source|mtef_team_0,af_override_all,aif_start_alarmed,1,[]),
      (19,mtef_visitor_source|mtef_team_0,af_override_all,aif_start_alarmed,1,[]),
      (20,mtef_visitor_source|mtef_team_0,af_override_all,aif_start_alarmed,1,[]),
      (21,mtef_visitor_source|mtef_team_0,af_override_all,aif_start_alarmed,1,[]),
      (22,mtef_visitor_source|mtef_team_0,af_override_all,aif_start_alarmed,1,[]),
      (23,mtef_visitor_source|mtef_team_0,af_override_all,aif_start_alarmed,1,[]),

      (24,mtef_visitor_source|mtef_team_0,af_override_all,aif_start_alarmed,1,[]),
      (25,mtef_visitor_source|mtef_team_0,af_override_all,aif_start_alarmed,1,[]),
      (26,mtef_visitor_source|mtef_team_0,af_override_all,aif_start_alarmed,1,[]),
      (27,mtef_visitor_source|mtef_team_0,af_override_all,aif_start_alarmed,1,[]),
      (28,mtef_visitor_source|mtef_team_0,af_override_all,aif_start_alarmed,1,[]),
      (29,mtef_visitor_source|mtef_team_0,af_override_all,aif_start_alarmed,1,[]),
      (30,mtef_visitor_source|mtef_team_0,af_override_all,aif_start_alarmed,1,[]),
      (31,mtef_visitor_source|mtef_team_0,af_override_all,aif_start_alarmed,1,[]),
#32
      (32, mtef_visitor_source|mtef_team_0,af_override_all,aif_start_alarmed,1,[]),
      (33,mtef_visitor_source|mtef_team_0,af_override_all,aif_start_alarmed,1,[]),
      (34,mtef_visitor_source|mtef_team_0,af_override_all,aif_start_alarmed,1,[]),
      (35,mtef_visitor_source|mtef_team_0,af_override_all,aif_start_alarmed,1,[]),
      (36, mtef_visitor_source|mtef_team_0,af_override_all,aif_start_alarmed,1,[]),
      (37,mtef_visitor_source|mtef_team_0,af_override_all,aif_start_alarmed,1,[]),
      (38,mtef_visitor_source|mtef_team_0,af_override_all,aif_start_alarmed,1,[]),
      (39,mtef_visitor_source|mtef_team_0,af_override_all,aif_start_alarmed,1,[]),
#40-49 not used yet
      (40,mtef_visitor_source|mtef_team_0,af_override_all,aif_start_alarmed,1,[]),
      (41,mtef_visitor_source|mtef_team_0,af_override_all,aif_start_alarmed,1,[]),
      (42,mtef_visitor_source|mtef_team_0,af_override_all,aif_start_alarmed,1,[]),
      (43,mtef_visitor_source|mtef_team_0,af_override_all,aif_start_alarmed,1,[]),
      (44,mtef_visitor_source|mtef_team_0,af_override_all,aif_start_alarmed,1,[]),
      (45,mtef_visitor_source|mtef_team_0,af_override_all,aif_start_alarmed,1,[]),
      (46,mtef_visitor_source|mtef_team_0,af_override_all,aif_start_alarmed,1,[]),
      (47,mtef_visitor_source|mtef_team_0,af_override_all,aif_start_alarmed,1,[]),
      (48,mtef_visitor_source|mtef_team_0,af_override_all,aif_start_alarmed,1,[]),
      (49,mtef_visitor_source|mtef_team_0,af_override_all,aif_start_alarmed,1,[]),

      (50, mtef_scene_source,af_override_horse|af_override_weapons|af_override_head,0,1,[]),
      (51, mtef_visitor_source,af_override_horse|af_override_weapons|af_override_head,0,1,[]),
      (52, mtef_scene_source,af_override_horse,0,1,[]),#not used yet:
      (53, mtef_scene_source,af_override_horse,0,1,[]),
      (54, mtef_scene_source,af_override_horse,0,1,[]),
      (55, mtef_scene_source,af_override_horse,0,1,[]),
#used for torunament master scene

      (56, mtef_visitor_source|mtef_team_0, af_override_all, aif_start_alarmed, 1, []),
      (57, mtef_visitor_source|mtef_team_0, af_override_all, aif_start_alarmed, 1, []),
      (58, mtef_visitor_source|mtef_team_0, af_override_all, aif_start_alarmed, 1, []),
      (59, mtef_visitor_source|mtef_team_0, af_override_all, aif_start_alarmed, 1, []),
      (60, mtef_visitor_source|mtef_team_0, af_override_all, aif_start_alarmed, 1, [itm_new_joutes_horse_blue, itm_new_hourglass_gauntlets, itm_new_steel_greaves, itm_new_churburg_13_brass_blue,itm_new_helmet_tournament_blue_1, itm_newlance_joutes_joueur]),
      (61, mtef_visitor_source|mtef_team_1, af_override_all, aif_start_alarmed, 1, [itm_new_joutes_horse_red, itm_new_wisby_gauntlets_red, itm_new_shynbaulds, itm_new_churburg_13_brass_red,itm_new_helmet_tournament_red_1, itm_newlance_joutes_enemi]),
      (62, mtef_visitor_source|mtef_team_0, af_override_all, aif_start_alarmed, 1, []),
      (63, mtef_visitor_source|mtef_team_0, af_override_all, aif_start_alarmed, 1, []),


    ],

  [

      (ti_before_mission_start, 0, 0, [],
      [
        (call_script, "script_change_banners_and_chest"),
        ]),







           
      (ti_tab_pressed, 0, 0,
      [
        (jump_to_menu, "mnu_tournament_withdraw_verify"),
        (finish_mission),       
        ],
      []),


(ti_on_agent_spawn, 0, 0, [],[


        (try_for_agents, ":cur_agent"),
          (agent_get_troop_id, ":cur_agent_troop", ":cur_agent"),
          (eq, ":cur_agent_troop", "trp_player"),
          (try_begin),
            (agent_get_wielded_item, ":cur_wielded_item", ":cur_agent", 0),
              (assign, ":cur_wielded_item", "itm_newlance_joutes_joueur"),
            (agent_set_wielded_item, ":cur_agent", ":cur_wielded_item"),
        (try_end),




]),



    (0, 0, ti_once,
    [],
    [
(play_sound, "snd_public_loop", sf_looping),
    ]),


(1, 0, 0,[#celui la est pour : concurrent allez en ligne droite a un entry point contre la barriere de separation
          ],
[


        (try_for_agents, ":cur_agent"),
          (agent_get_troop_id, ":cur_agent_troop", ":cur_agent"),
    (neq, ":cur_agent_troop", "trp_player"),
    (neq, ":cur_agent_troop", "trp_town_1_arena_master"), 
    (neq, ":cur_agent_troop", "trp_town_2_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_3_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_4_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_5_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_6_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_7_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_8_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_9_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_10_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_11_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_12_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_13_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_14_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_15_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_16_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_17_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_18_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_19_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_20_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_21_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_22_arena_master"),

      (agent_is_human, ":cur_agent_troop"),
        (assign, ":guard_agent", ":cur_agent"),



   


  (try_end),
   
(assign, ":target_entry_point", 63),
            (try_begin),
                (agent_set_slot, ":guard_agent", 0, ":target_entry_point"),
                (entry_point_get_position, pos1, ":target_entry_point"),
                (try_begin),
                  (init_position, pos2),
                  (position_set_y, pos2, 250),
                  (position_transform_position_to_parent, pos1, pos1, pos2),
                (try_end),
                (agent_set_scripted_destination, ":guard_agent", pos1, 0),
(try_end),


]),

 
    (0, 0, 0,
      [

         

      ],
      [#celui la est pour : concurent a une certaine distance d'un scene prop invisible on va au menu"personne n'as gagné" (car si il va jusqu'au bout du couloir c'est que je ne l'ai pas touché, et qu'il ne m'as pas eu non plus).

(scene_prop_get_instance, ":cur_instance_id", "spr_111_tournois_result_enemi", 0),         
        (ge, ":cur_instance_id", 0),



        (try_for_agents, ":cur_agent"),
          (agent_get_troop_id, ":cur_agent_troop", ":cur_agent"),
    (neq, ":cur_agent_troop", "trp_player"),
    (neq, ":cur_agent_troop", "trp_town_1_arena_master"), 
    (neq, ":cur_agent_troop", "trp_town_2_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_3_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_4_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_5_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_6_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_7_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_8_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_9_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_10_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_11_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_12_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_13_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_14_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_15_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_16_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_17_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_18_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_19_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_20_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_21_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_22_arena_master"),

      (agent_is_human, ":cur_agent_troop"),
        (assign, ":guard_agent", ":cur_agent"),

  (try_begin), 
        (agent_get_position, pos10, ":guard_agent"),
        (prop_instance_get_position, pos11, ":cur_instance_id"),
        (get_distance_between_positions, ":dist", pos10, pos11),
        (lt, ":dist", 300),

(play_sound, "snd_defaite_joute"),
(eq, "$message_pas_repete_joutes", 0),
(display_message, "@Aucun jouteur ne s'est distingué, vous re-commancez la joute."),




  (jump_to_menu, "mnu_town_tournament_joutes"),



(assign, "$message_pas_repete_joutes", 1),
        (finish_mission),
(try_end),
(try_end),
          ]),


     

(1, 0, 0,[#celui la est pour : a une certaine distance du joueur, le concurrent le frappe sans dévier de sa trajectoire contre la barriere de séparation
          ],
[
        (try_for_agents, ":cur_agent"),
          (agent_get_troop_id, ":cur_agent_troop", ":cur_agent"),
    (neq, ":cur_agent_troop", "trp_player"),
    (neq, ":cur_agent_troop", "trp_town_1_arena_master"), 
    (neq, ":cur_agent_troop", "trp_town_2_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_3_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_4_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_5_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_6_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_7_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_8_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_9_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_10_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_11_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_12_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_13_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_14_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_15_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_16_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_17_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_18_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_19_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_20_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_21_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_22_arena_master"),

      (agent_is_human, ":cur_agent_troop"),
        (assign, ":guard_agent", ":cur_agent"),

   
          (try_begin),
(get_player_agent_no, ":player_agent"),
  (agent_set_look_target_agent, ":guard_agent", ":player_agent"),

  (agent_get_position, pos0, ":guard_agent"),
  (agent_get_position, pos1, ":player_agent"),
  (get_distance_between_positions, ":dist", pos0, pos1),

    (le, ":dist", 300),


 
(agent_set_attack_action, ":guard_agent", 0, 0), #value: -2 = clear any attack action, 0 = thrust, 1 = slashright, 2 = slashleft, 3 = overswing - second value 0 = ready and release, 1 = ready and hold

(try_end),
  (try_end),
]),




    (0, 0, 0,



    ],

[

  (store_trigger_param_1, ":dead_agent_no"),
  (store_trigger_param_2, ":killer_agent_no"),
 
  (get_player_agent_no, ":my_agent"),
  (try_begin),
    (eq, ":my_agent", ":killer_agent_no"), # if I killed the agent
    (neg|agent_is_human, ":dead_agent_no"),#if it is not human => it is horse
      (agent_get_item_id, ":horse_item_id", ":dead_agent_no"),
      (eq, ":horse_item_id", "itm_new_joutes_horse_red"),
 



(eq, "$message_pas_repete_joutes", 0),
(play_sound, "snd_mort_cheval_joute"), 
  (display_message, "@Vous avez blessé le cheval du concurent, vous etes disqualifié."), 
 
       
     
         

(assign, "$horse_joustes_dead", 1),
(assign, "$message_pas_repete_joutes", 1), 
  (try_end),
]),


      (1, 3, ti_once, [(main_hero_fallen,0)],
      [
  (play_sound, "snd_defaite_joute"),       
       
        ]),
   

      (1, 3, ti_once, [(main_hero_fallen,0)],
      [       
(display_message, "@Vous avez perdu cette joute."), 
        (jump_to_menu, "mnu_tournois_lost"),
        (finish_mission),
       
        ]),




      (1, 3, ti_once,
      [
        (num_active_teams_le, 1),
        (neg|main_hero_fallen),       
        ],
      [
  (play_sound, "snd_victoire_manche"),                 

]),







      (1, 3, ti_once,
      [
        (store_mission_timer_a, reg1),     
        (ge, reg1, 4),
        (num_active_teams_le, 1),
        (neg|main_hero_fallen),       
        ],
      [
         
(display_message, "@Vous avez remporté cette joute !"),         


(call_script, "script_reglage_tours"),



        (jump_to_menu, "mnu_town_tournament_joutes"),     
        (finish_mission),       

]),


      (1, 3, ti_once,
      [

        (store_mission_timer_a, reg1),     
        (ge, reg1, 4),
(eq, "$horse_joustes_dead", 1),   
        ],
      [
  (jump_to_menu, "mnu_tournois_lost"), 
        (finish_mission),     

]),



             
  ],     
),

Presque fini  :cool: c'est ultra complex, et ca marche !
 
fladin said:
je ne comprend pas  :???:
tu as déjà remplacé tout les (agent_is_human, ":cur_agent_troop") par (agent_is_human, ":cur_agent") ?
Effectivement, tester si ":cur_agent_troop" est un agent humain n'est pas valide.
FantasyWarrior said:
(ti_on_agent_spawn, 0, 0, [],[
        (try_for_agents, ":cur_agent"),
          (agent_get_troop_id, ":cur_agent_troop", ":cur_agent"),
          (eq, ":cur_agent_troop", "trp_player"),
          (try_begin),
            (agent_get_wielded_item, ":cur_wielded_item", ":cur_agent", 0),
              (assign, ":cur_wielded_item", "itm_newlance_joutes_joueur"),
            (agent_set_wielded_item, ":cur_agent", ":cur_wielded_item"),
        (try_end),
]),
Le compilateur ne te met pas un warning concernant l'absence d'un (try_end) ?

Et puis, je suppose que tu pourrais remplacer tes lignes
    (neq, ":cur_agent_troop", "trp_player"),
    (neq, ":cur_agent_troop", "trp_town_1_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_2_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_3_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_4_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_5_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_6_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_7_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_8_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_9_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_10_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_11_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_12_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_13_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_14_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_15_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_16_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_17_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_18_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_19_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_20_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_21_arena_master"),
    (neq, ":cur_agent_troop", "trp_town_22_arena_master"),
Par ça:
    (neq, ":cur_agent_troop", "trp_player"),
    (neg|is_between, ":cur_agent_troop", "trp_town_1_arena_master", "trp_town_23_arena_master"),
    # Apres, je pense que le town_23_arena_master n'existe pas, mais c’était pour dire la troupe qui viens juste après
Bon après, ça n'a aucune chance de corriger ton bug courant, mais ça rend le code plus concis, à moins que les troupes ne soient pas les unes après les autres.
 
Oui désolé les amis  :???: j'aurais du plus expliquer.

Bon d'abord je comprend pas d'ou j'ai pris ma référence  :shock: ce test de la facon dont je l'ai éssayé et maintenant décomenté c'étais plutot ca

  #  (try_for_agents, ":cur_agent"),
  #    (agent_is_non_player, ":cur_agent"),
#    (agent_is_human, ":cur_agent"),
  #  (neq, "trp_town_1_arena_master", ":cur_agent"), 
  #  (neq, "trp_town_2_arena_master", ":cur_agent"),
  #  (neq, "trp_town_3_arena_master", ":cur_agent"),
  #  (neq, "trp_town_4_arena_master", ":cur_agent"),
  #  (neq, "trp_town_5_arena_master", ":cur_agent"),
  #  (neq, "trp_town_6_arena_master", ":cur_agent"),
  #  (neq, "trp_town_7_arena_master", ":cur_agent"),
  #  (neq, "trp_town_8_arena_master", ":cur_agent"),
  #  (neq, "trp_town_9_arena_master", ":cur_agent"),
  #  (neq, "trp_town_10_arena_master", ":cur_agent"),
  #  (neq, "trp_town_11_arena_master", ":cur_agent"),
  # (neq, "trp_town_12_arena_master", ":cur_agent"),
  # (neq, "trp_town_13_arena_master", ":cur_agent"),
  #  (neq, "trp_town_14_arena_master", ":cur_agent"),
  #  (neq, "trp_town_15_arena_master", ":cur_agent"),
  #  (neq, "trp_town_16_arena_master", ":cur_agent"),
  #  (neq, "trp_town_17_arena_master", ":cur_agent"),
  #  (neq, "trp_town_18_arena_master", ":cur_agent"),
  #  (neq, "trp_town_19_arena_master", ":cur_agent"),
  #  (neq, "trp_town_20_arena_master", ":cur_agent"),
  #  (neq, "trp_town_21_arena_master", ":cur_agent"),
  #  (neq, "trp_town_22_arena_master", ":cur_agent"),
  #    (assign, ":guard_agent", ":cur_agent"),

#(try_end),


Et en effet ca ne passe pas.
Normalement on fait ca pour une trp_troop, et la pas de souccis

(1, 0, 0,[

          ],

[
  (assign, ":guard_agent", 0),
  (try_for_agents, ":cur_agent"),
    (agent_get_troop_id, ":cur_agent_troop", ":cur_agent"),
    (eq, "trp_rebel_montpelier_tower_1", ":cur_agent_troop"),
    (assign, ":guard_agent", ":cur_agent"),
  (try_end),
  (get_player_agent_no, ":player_agent"),
  (agent_get_position, pos0, ":player_agent"),
  (agent_get_position, pos1, ":guard_agent"),
  (get_distance_between_positions, ":dist", pos0, pos1),
  (try_begin),
    (le, ":dist", 500),
    (start_mission_conversation, "trp_rebel_montpelier_tower_1"),
  (try_end),
]),


Le truc c'est que mon :guard_agent au final doit etre une troupe tirée au sort, soit la variable directe a laquelle la troupe tirée au sort courrante est assosciée (ca ne marche pas non plus comme ca).
soit d'une autre manière...c'est aussi la troupe présente actuellement sur la scene.

  (try_for_agents, ":cur_agent"),# test2
    (agent_get_troop_id, ":cur_agent_troop", ":cur_agent"),# test2
    (this_or_next|eq, "$jouteur_1", ":cur_agent_troop"),# test2
    (this_or_next|eq, "$jouteur_2", ":cur_agent_troop"),# test2
    (this_or_next|eq, "$jouteur_3", ":cur_agent_troop"),# test2
    (this_or_next|eq, "$jouteur_4", ":cur_agent_troop"),# test2
    (this_or_next|eq, "$jouteur_5", ":cur_agent_troop"),# test2
    (this_or_next|eq, "$jouteur_6", ":cur_agent_troop"),# test2
    (this_or_next|eq, "$jouteur_7", ":cur_agent_troop"),# test2
  (eq, "$jouteur_8", ":cur_agent_troop"),# test2
    (assign, ":guard_agent", ":cur_agent"),# test2

  (try_end),#test2




Pourtant une sorte de "get_troop_ID" marche avec ces variables et par ex

(
    "town_tournament_autre_vainqueur",mnf_disable_all_keys,
    "Le vainqueur du tournois est : {s4}.",
    "none",
    [


(str_store_troop_name, s4, "$jouteur_1"),

Mais pas dans mon script assign :guard_agent

va falloire ruser  :smile:

Et je m'entetais a vouloir faire marcher trp_town_1_arena_master_begin, trp_town_1_arena_master_end  :mrgreen:

Merci pour votre investissement  :grin:


edit:
YES! c'est bon les copines  :grin:
J'ai compris!

en fait je cherchais a identifier des agents qui ne sont pas dans la scene!

Maintenant c'est bon.
      (ti_on_agent_spawn, 0, 0,

    [],
    [
          (assign, "$guard", 0),       
        (try_for_agents, ":agent_no"),
          (agent_get_troop_id, ":troop_no", ":agent_no"),

          (try_begin),
                    (eq, "$tour1", 1), # si je suis au tour 1
            (eq, ":troop_no", "$jouteur_8"),          # j'ai forcément le jouteur 8 vu que je me bat en premier avec les derniers de la liste des concurrents
        (assign, "$guard", ":agent_no"),        # j'assigne l'id de ma troupe derriere la variable locale qui est prise de $jouteur_8 et je met ca a chaque tour a $guard
          (else_try),
                    (eq, "$tour2", 1),
            (eq, ":troop_no", "$jouteur_7"),         
        (assign, "$guard", ":agent_no"),     
          (else_try),
                    (eq, "$tour3", 1),
            (eq, ":troop_no", "$jouteur_6"),         
        (assign, "$guard", ":agent_no"),     
          (else_try),
                    (eq, "$tour4", 1),
            (eq, ":troop_no", "$jouteur_5"),         
        (assign, "$guard", ":agent_no"),     
          (else_try),
                    (eq, "$tour5", 1),
            (eq, ":troop_no", "$jouteur_4"),         
        (assign, "$guard", ":agent_no"),     
          (else_try),
                    (eq, "$tour6", 1),
            (eq, ":troop_no", "$jouteur_3"),         
        (assign, "$guard", ":agent_no"),     
          (else_try),
                    (eq, "$tour7", 1),
            (eq, ":troop_no", "$jouteur_2"),         
        (assign, "$guard", ":agent_no"),     
          (else_try),
                    (eq, "$tour8", 1),
            (eq, ":troop_no", "$jouteur_1"),         
        (assign, "$guard", ":agent_no"),     
          (else_try),

        (try_end),
        (try_end),
         

    ]),


#et ces trucs la marchent enfin et 3 en meme temps


(1, 0, 0,[
          ],
[
   
(assign, ":target_entry_point", 63),
            (try_begin),
                (agent_set_slot, "$guard", 0, ":target_entry_point"),
                (entry_point_get_position, pos1, ":target_entry_point"),
                (try_begin),
                  (init_position, pos2),
                  (position_set_y, pos2, 250),
                  (position_transform_position_to_parent, pos1, pos1, pos2),
                (try_end),
                (agent_set_scripted_destination, "$guard", pos1, 0),
(try_end),


]),

Franchement...j'suis trop malin  :mrgreen:

voila...reste plus qu'a faire les scenes et les vraies joutes sont pretes !  :razz: hyper amusant en fait^^

Je voulais faire une video avec les sons, mais je vais faire des screens si ca vous intéresse  :grin:
 
Back
Top Bottom