WB comment ajouter une faction déja crée à la liste du rapport des relations ?

  • 主题发起人 FantasyWarrior
  • 开始时间

正在查看此主题的用户

FantasyWarrior 说:
que pensse tu de :
(troop_add_merchandise_with_faction,reg(2), ":cur_faction","itm_plan_1", 1),
(troop_add_merchandise_with_faction,reg(2), ":cur_faction","itm_plan_2", 1),
Je ne pense pas que ça fonctionne, vu que l'opération s'attend surement à un type d'item et pas a un item précis.

Tu pourrais tenter de rajouter un type d'item dans header_items un peu comme ça :
itp_type_plans            = 0x0000000000000015

Mettre tes items avec ce type, et ensuite ajouter
(troop_add_merchandise_with_faction,reg(2), ":cur_faction",itp_type_plans, 2),
 
C'est ce qui me semblais,mais j'avais pas les détails,merci  :grin:

je t'envoie une proposition par mp. :grin:
 
Si en fait aussi, (try_begin),ou else try? (troop_add_item, "trp_weaponsmith_begin/...end", "itm_plan_1", 1),(try_end),  :roll: normalement,la soluc de Bouyha_k reste la plus conventionelle car c'est la continuité du style de codes...faut que j'essaye tout ca...merci.


et en fait,ca fait un moment que je ne demande plus m'ettant fait une raison,mais si vous voullez partager les codes et les idées du dev, on peut faire ca sur le topic du mod. :grin:
 
Oui c'est vrai que c'est possible de faire en ajoutant les items directement, c'est juste que de cette manière les items sont ajoutés de manière aléatoire, sans être obliger d'agrandir la taille du code (donc garder la lisibilité).
 
Ok,tout ca es reglé merci!

Je repprend ma vielle idée, de faire en sorte que si on a pas du tout de bouffe dans son inventaire on a le display message "vous avez faim et vous vous sentez faible"
on enléve simplement -3 en force et agilité,ect...dés qu'on a de nouveau de la nouriture ca nous redonne nos stats perdues,les memes valeurs  :razz: c'est tellement simple que je m'étonne que ca n'a jamais été fait.

c'est juste un script a placer entre deux lignes, mais ou ?  :mrgreen:

j'éfface si j'ai trouvé...c'est simplement le script de perte de moral si on a rien.

pour a l'avenire mettre dessus (j'abuse mais c'est juste une idée) églement la soif,si on a pas d'objet type "consso buvable" :mrgreen:
et encore plus loing,cliquer sur son feu de camp (une copie de cooking fire,un truc comme ca) avec un bouton action qui nous envoie au menu (que voullez vous preparer?) avec peut etre un regain que partiel des penalités,jusqu'au regain complet si on cuit une grosse cuisse de sanglier  :mrgreen:

bref,je cherche juste pour le moment le script "rien a manger" > penalité pour les troupes,je vais mettre mes trucs ici,ca me semble bien^^

et tu sais que t'as le temps et si tu veux bien  :mrgreen: ou si quelqu'un d'autre répond ma foi...
 
Tu pourra trouver dans simple_triggers "@Party has nothing to eat!"
C'est là qu'est dit quand le joueur n'a plus assez a manger (en même temps il gère le fait de manger)
 
Merci, c'est un bon debut  :lol:

(ton solanel)

bOuYA_k, mon cher bOuYA_k, t'es d'attaque pour m'aider a coder (aller c'est les derniers  :twisted:) :

- systhème de faim

- une chance sur 6 de mourire ou 5 blessures de plus en plus graves...

d'abord je ne te demande pas plus que l'aide habituelle :wink: et au final on fait bien les trucs enssembles...

penchons nous a fond sur une chance sur 6 pour la mort si tu veux bien  :razz:

je te donne mes codes et mes demandes dés que possible, mais j'aimerais savoire si tu va passer quand tu peut pour avancer le truc  :mrgreen: pas grave si t'es pas chaud hein, pas de souccis  :wink:

j'ai déja pas mal de codes fait pour ce script (qu'on va appeller une chance sur 6 hein) je te file ces détails tres vite...je bosse encore sur le design et les textures dit donc  :???:
 
Ehm oui, ça me semble assez peu complexe à faire, même si il faudrait surement prévoir certains cas ou ça pourrait poser des problèmes (je ne sais pas lesquels, mais c'est possible qu'il y en ai).

Après je ne peut pas trop faire ça aujourd'hui, mais demain je pourrai t’amener un petit truc :grin:
 
Salut  :smile:

Non,t'inquiete pas je ne te demande pas de m'inventer le script c'est fait  :mrgreen: je t'explique plus bas ce que je recherche pour "une chance sur 6 de mourir", vraiment indispenssable pour mon mod rpg! si on a pas peur de se lancer dans la melée et qu'au pire on a paumé ses copains qui boivent aun coup dans les tavernes  en t'attendant c'est pas tres jeux de role  :???:.

D'abord, si tu l'as vite fait, que pourais je mettre comme code dans ma mission assassin ou on met du poison en fesant semblant d'etre servant auprés de la cible, il me faudrais le meme resultat que si on tape ctrl+F4 (ca blesse la cible en plein cour d'un mission template).

(troop_set_health, "trp_marchand", 0),

ne marche pas en pleine scene, ca fonctione que si c'est appellé en entrant ou en sortant dans le mission template ou gamme menu ou autre...

en fait dans le dialogue,a "prenez votre medicament" ca debloque une variable corespondante au mt ou il doit tomber comme une merde  :lol: healt a 0,en pleine scene quois.ou meme "play anim death"  :mrgreen: remarque, mais faut pas qu'il se reléve, bhou! le mauvais acteur  :lol:

stp

******************************************************


Pour une chance sur 6 :

mes ko dans mes quetes se terminent toujours comme ca dans le mt :

插入代码块:
      (1, 3, ti_once, [(main_hero_fallen,0)],
       [
        (mission_enable_talk),
        (call_script, "script_fail_quest", "qst_rebel_entrepotmetz"),
        (call_script, "script_end_quest", "qst_rebel_entrepotmetz"),
        (call_script, "script_change_player_relation_with_faction_ex", "fac_kingdom_3", -6),
        (jump_to_menu,"mnu_captivity_start_castle_defeat"),
      (finish_mission,0),
         ]),

avec quelques variantes...voila mon script de mort une fois sur 6

  ("rr6",
  [
  (store_random_in_range, "$rand5", 0, 5),
#
      (try_begin),
      (eq,"$rand5",0),
      (display_message, "@Blessures: Vous vous en sortez indèmne !", 0x33DD33),#vert
      (else_try),
      (eq,"$rand5",1),
      (display_message, "@Blessures: Vous vous en sortez indèmne !", 0x33DD33),#vert
      (else_try),
      (eq,"$rand5",2),
      (display_message, "@Blessures: Vous etes légerement blessé !", 0xDDDD33),#jaune
#enlever legere stats et donner variable $leger a 1 debloque le dialogue medecin qui une fois soigné se remet a 0
      (else_try),
      (eq,"$rand5",3),
      (display_message, "@Blessures: Vous etes blessé !", 0xEE7744),#orange
#enlever moyenes stats et donner variable $moyen a 1 debloque le dialogue medecin qui une fois soigné se remet a 0
      (else_try),
      (eq,"$rand5",4),
      (display_message, "@Blessures: Vous etes griévement blessé !", 0x8B0000),#rouge
#enlever grosses stats et donner variable $lourde  a 1 debloque le dialogue medecin qui une fois soigné se remet a 0
      (else_try),
      (eq,"$rand5",5),
      (assign, "$game_death", 1), 
        (jump_to_menu, "mnu_death_game_over"),# menu "mort!"
      (try_end),
  ]),


mon game menu au cas ou c'est la mort qui tombe au sort  :twisted:

插入代码块:
      
        ( "death_game_over",mnf_scale_picture,
          "La Guerre viens de faire une nouvele victime...Vous etes MORT ! !",
          "none",
         [                          
          (set_background_mesh, "mesh_pic_mort"),
          (music_set_situation, 0),      
          (play_sound, "snd_death"),
          (assign, "$game_death", 0),   #securité meme si a 0 en reprenant une sauvegarde, evite un potentiel "effet memoire" juste pour ultra securiser ses parties.     
         ],
         [
           ("end",[],"Terminer...",             
            [
         (change_screen_quit),             
            ]),
     ]
   ),


donc, a mes ko de quetes je met


插入代码块:
      (1, 3, ti_once, [(main_hero_fallen,0)],
       [
        (mission_enable_talk),
        (call_script, "script_fail_quest", "qst_rebel_entrepmetz"),
        (call_script, "script_end_quest", "qst_rebel_entrepmetz"),
        (call_script, "script_change_player_relation_with_faction_ex", "fac_kingdom_3", -6),
###rr6 begin
         (call_script, "script_rr6"),
         (try_begin),
        (eq, "$game_death", 0),
        (jump_to_menu,"mnu_captivity_start_castle_defeat"),
         (try_end), 
  ### note: si          (eq, "$game_death", 1),  = on ne va pas au castle defeat (prison) ou le menu pour chaques main hero fallen, mais bien au menu "death" et screen return (ecran d'aceuil quois)
###rr6 end
       (finish_mission,0),
         ]),



et ma question: c'est assez le bazard a inclure pour chaques hero fallen du MT qui coresponde a toutes les défaites ecrits vraiment tres différament a chaques fois  :mrgreen:
Aurais tu une astuce ou serais tu assez éclairé pour me filer soit un autre endroit infaible pour le pas rater mon call script rr6 ailleurs que dans le mt qui corésponde a chaques ko (j'ai essayé aux passages de menus comme prisonier ou defaite en siege, mais c'est trop bordelique c'est jamais appelé de la meme facon), ou voudrais tu taper tous les call script rr6 a tous les main hero fallen ou les trucs qui y ressemblent,bref tous les ko du jeux quois  :roll:


C'est tres chaud, alors si tu veux bien prend ton temps, sinon ben ca sera pour moi (cette vacherie)  :mrgreen:

Merci d'avoire lu et déchifré les scripts en tous cas  :grin:

et sinon,y'avais pas un mod ou on pouvais mourire ??? si il es en osp je pourais peut etre copier les endroits ou c'est placé dans le mt...
 
Le mieux c'est de metrte ça dans le script battle_debrief je pense, il est appelé quand une bataille est finie (celles qui proviennent du la map). Après si tu as rajouté des missions_template toi même, je ne pense pas qu'il y ai réellement de solution, il faut mettre ces lignes partout.


Pour ton marchand, utilise plutôt agent_set_health.
Ou alors
(agent_deliver_damage_to_agent, <agent_id_deliverer>, <agent_id>, [damage_amount], [weapon_item_id]),
Qui est surement l'opération appliqué lors du ctrl+F4 (vu que c'est le joueur qui tue la troupe).

Le problème c'est que pour trouver le bon agent il te faudra faire un truc un peu comme ça :

插入代码块:
(try_for_agents, ":agent_no"),
  (agent_get_troop_id, ":agent_troop_id", ":agent_no"),
  (eq, ":agent_troop_id", "trp_marchand"),
  (...),
(try_end),
Où au niveau des (...),  tu devras mettre l'opération pour retirer la vie à ce pauvre marchand.


Et oui effectivement il y avait un mod ou on pouvait mourir, je ne me souviens plus du nom par contre.
 
Merci bOuYA_k  :razz:

Je voie ca plus tard, ca fait du bien d'etre aidé crois moi  :wink:

surtout quand on se sens seul face a un tsunami de codes  :mrgreen:

Edit: merci  :razz:

le premier truc avec le pnj qui meurt a la fin du dialogue marche bien, ca fait son effet !!!  :lol:

screens totalements inutiles, mais ca me fait plaisire de te montrer le résultat et c'est vite fait  :mrgreen:

Tu fait semblant d'etre un serveur en extra au prés du cuisinier de la cible a empoisonner

Dh1PN.jpg


tu refile le verre empoisonné a la cible

jPUe0.jpg


et boum, il tombe au bout de 20 segondes ou tu te demande "ca va marcher ???"

F_1d_.jpg


aYBC8.jpg


:lol:

Pour les autres codes des blessures ou mort, j'irais tranquilement pas a pas...je ne pensse pas avoir d'autres questions jusque la, mais on ne sait jamais.

encore merci,tes aides me rendent un tres grand service  :eek:
 
:grin:


Bon, je ne devrais pas abuser, c'est pas vraiment un blocage mais ca m'accélererais juste si t'as les réponsses qui te viennent de suite, donc ne te force pas pour ca  :wink:


Mais c'est juste que j'es des surnoms a atitrer selon la variable débloquée pendant une quete (par ex, si j'ai fait les assassinats, on m'appelle la mort noire :mrgreen:) et un suivie pour les bléssures et la faim a afficher, je vais mettre ca a rapport/ status du perssonage (en haut de rapport avec les seigneurs/factions....) mais en fait c'est ou ?  :???: gamme menu ?


et j'ai attaqué jeanne d'arc aussi, elle es sencé me suivre, mais le premier groupe de bandits qui passe ou toute seule au bout d'un moment je la perd , et elle ne suit plus  :???:

avec le recopiage tout simple de "suivez moi, j'ai un plan " avec les autres seigneurs (pas encore nétoyé pour garder l'essenciel):

插入代码块:
  [anyone|plyr ,"lord_2quest", [],  "C'est un honneur de combattre a vos cotés.", "lord_2quest2",
   [
#lancer quete
    (play_sound,"snd_start_quest"),
    (str_store_string, s2, "@  ."),      #description quete... pas encore fait.
    (call_script, "script_start_quest", "qst_jeanne_orleans", "$g_talk_troop"),
#
     (assign, "$temp", spai_accompanying_army),
     (assign, "$temp_2", "p_main_party"),
	 
	 (store_current_hours, ":hours"),
	 (party_set_slot, "$g_talk_troop_party", slot_party_following_orders_of_troop, "trp_kingdom_heroes_including_player_begin"),
	 (party_set_slot, "$g_talk_troop_party", slot_party_orders_type, "$temp"),
	 (party_set_slot, "$g_talk_troop_party", slot_party_orders_object, "$temp_2"),
	 (party_set_slot, "$g_talk_troop_party", slot_party_orders_time, ":hours"),
     (call_script, "script_party_set_ai_state", "$g_talk_troop_party", "$temp", "$temp_2"),
     (str_clear, s12),
     (try_begin),
   #    (neg|faction_slot_eq, "$g_talk_troop_faction", slot_faction_marshall, "trp_player"), 
   #    (neg|faction_slot_eq, "$g_talk_troop_faction", slot_faction_leader, "trp_player"), 
       (str_store_string, s12, "str_but_if_this_goes_badly"),
     (try_end),   
       ]],

  [anyone ,"lord_2quest2", [],"Dieu soit loué, allons les surprendres aux tourelles Messire, et une dérnière chose... appellez moi simplement Jeanne.", "close_window",[(assign, "$g_leave_encounter",1)]],

Sinon, je peut peut etre utiliser a la place le "l'enemi arive en force, fuyez vers..." , mais va t'elle m'attendre la bas ?  :roll: au pire y'a le classique pour les feignants "partez devans on se retrouve la bas"  :lol: mais bon...tu la quite a bordeau et la recroise a Orléans  :roll:
 
Pour éviter qu'elle ne parte attaquer des bandits il faut surement utiliser : (party_set_aggressiveness, ":party_no", 0),
Pour qu'elle ne soit pas agressive (donc qu'elle n'attaque pas d'autres groupes).

Après sinon, à part lorsque des bandits attaquent il n'y a pas d'autres actions qui font que la pauvre Jeanne s'en aille faire d'autres choses ailleurs ?

Et des rapports, oui, ils sont dans game_menu, dans le menu reports.
 
Merci  :grin:

Excuse moi, ca peut semblé évident ce que je te demande  :mrgreen: mais comme je te le disais c'est pour m'accélerer, pendant que je fait la scene et les pnj/dialogues, si tu jette un oeil sur des trucs de mes scripts quand j'en arive a ca, tak! je recopie tes trucs et on va plus vite  :grin:

Oui, sinon, elle a l'initiative de refaire ce qu'elle fesais au bout d'un moment,retourne a son chateau ou si meme le trajet es trop long ben elle m'ésquive  :mrgreen:....je ne sais pas trop quois faire, normalement c'est moi qui doit la suivre jusqu'a Orléans, mais on va peut etre rester sur suivez moi...

Pourtant je me rappelle que le "suivez moi j'ai un plan" fonctionais plutot bien" je jeterais un oeil si j'ai le temp....


******


je rajoute ca en avance et oui faut tracer  :mrgreen:(jette un oeil distrais en cas) commer ajouter un bouton action a un objet ? avec un result script comme animation/play sound...

c'est pour une bombarde, voila mon idée de bombarde:

bouton acion "faire feu"
play sound/anim feu/fummé/la mort des 5/6 pnj visée (ca fonctione comme la mission assassina pour l'empoisonnement, la ca va) et si possible une anim de feu et fumé a l'endroit ou ils sont ,leur entry point peut etre).

merci

note, mon idée pour tout ca c'est de reproduire des scenes de film a l'identique avec bandes sons et tout...quand c'est le moment de charger ,play sound "un extrait son du film "suivez moi!" et les memes evenements déclenchés, déclenchent leur bande son...

vu que warband es assez pauvre en sons et en anims ne serais ce que les levres qui bougent pour les pnj si ils avaient un dialogue, ben il me faut compensser avec quelque chose pour que ca bouge assez  :roll: je met le paquet de sons du coup.
 
Pour les objets utilisables, il faut rajouter un trigger à l'item dans module_scene_prop.

Par exemple :
插入代码块:
("pillow_a",spr_use_time(1),"pillow_a","bo_pillow", [
  (ti_on_scene_prop_use, 
  [
    (store_trigger_param_1, ":agent_id"),
    (store_trigger_param_2, ":instance_id"),
    (assign, reg5, ":instance_id"),
    (display_message, "@Oh Hello! Tu est en train de m'utiliser! Je suis l’instance numéro {reg5} d'un coussin ravie de faire ta connaissance."),
  ]
]),
Avec spr_use_time(1) le temps d'utilisation avant le déclenchement de l'action.

Et au niveau de faire suivre le joueur, le problème viens du fait que Jeanne contrôle un groupe tout comme les autres seigneurs, ce qui fait qu'elle va changer ses actions comme les autres seigneurs.
Un trigger pourrait faire l'affaire, qui lui redonne le bon ordre si il n'est pas le bon, mais il doit y avoir une meilleure solution.
Surement modifier les script npc_decision_checklist_party_ai.
Du genre rajouter à cet endroit la :
插入代码块:
	#Wait in current city (dangerous to travel with less (<=10) men)
	(try_begin),
Quelque chose comme ça :
插入代码块:
	(try_begin),
		(check_quest_active, "qst_jeanne_orleans"),
		(eq, ":troop_no", "trp_jeanne"),
		# (eq, ":old_ai_state", spai_following_army),
		# (eq, ":old_ai_object", "p_main_party"),
		(assign, ":action", spai_following_army),
		(assign, ":object", "p_main_party"),
	(else_try),
	#Wait in current city (dangerous to travel with less (<=10) men)
Normalement ça devrait fonctionner correctement, et tant que la quête est active, Jeanne suivra le joueur (là j'ai un doute sur si c'est exactement ça que tu veux, tu pourrais vouloir que jusqu’à l'arrivé à Orléans, sans terminer la quête, c'est pour ça que j'ai mis les commentaires, en les rajoutant c'est possible de faire ça).
 
Wow! c'est impressionant  :shock:

T'as toujours les bons codes, quois que je demande,j'ai vraiment l'impression d'etre a la bour maintenant  :roll:

Mais des trucs énormes seront réalisées avec tout ca  :grin:

Merci t'aura vraiment fait les scripts hard pour le mod  :eek: je me demande....tu met du temp a trouver ?  :mrgreen:


Pour la bombarde, faudrais t'il ?:

dans le triger du scene prop bombarde

插入代码块:
    (try_begin),
      (key_is_down, key_f),
     (call_script, "script_bombarde_orleans")   
 (play_sound,"snd_boum"),

 (position_move_x,pos1,0),(position_move_y,pos1,107),(particle_system_burst,"psys_pistol_smoke",pos1,15)   ### c'est ici que je doit regler la position de ma fumée et flame dans la bouche du cannon ?
 (particle_system_burst,"psys_pistol_smoke",pos1,225)  ### et ici la fumée du point d'impact sur la cible au loing ?
 (try_end),

script_bombarde_orleans

插入代码块:
  ("bombarde_orleans",
  [
         (agent_deliver_damage_to_agent, "$g_bombarde", "trp_archer_de la_tour_1", 800), 
         (agent_deliver_damage_to_agent, "$g_bombarde", "trp_archer_de la_tour_2", 800), 
         (agent_deliver_damage_to_agent, "$g_bombarde", "trp_archer_de la_tour_3", 800),  
         (agent_deliver_damage_to_agent, "$g_bombarde", "trp_archer_de la_tour_4", 800),  
   ]),

J'arange,mais tu voie  :eek: 800 pts de deg, il ont aucune chance les pauvres  :lol:

Pardonne moi  :???: j'ai meme pas éssayé...je remet ca a jour aprés mes essais, commence juste a y jetter un oeil...je te demande trop de boulot je crois, mais prennons le temps pour ca.

Wow! ca n'as pas l'air dur  :razz: mais je suis vraiment a la bour, faut que je me tape 18 heures/jour dés ce week end  :twisted:
 
后退
顶部 底部