OSP Code MP Arch3r OS: Health boxes and weapon boxes

Users who are viewing this thread

I don't have access to the full code at the moment (I'm in class), but I remember the important stuff.

Code:
(store_trigger_param_1, ":agent_id"),
      (store_trigger_param_2, ":instance_id"),

      (try_begin)
            (multiplayer_is_server),
            (agent_get_player_id,":pid",":agent_id"), #This one might be failing, but
            (player_get_gold, ":gold", ":pid"), #this is where it definitely fails, it gives me weird player ids on a LAN dedicated server with only myself.
           # ...get item price, check item price, remove gold, spawn item, try_end...

The weird thing is, it still spawns the item, even though the gold check can't pass since it can't get the gold value.  :???:
 
Have you tried the code in the OP?
Code:
check_weapon_box5 = (ti_on_scene_prop_use,
    [
      (store_trigger_param_1, ":agent_id"),
      (store_trigger_param_2, ":instance_id"),

      (multiplayer_is_server),
      (assign, ":cost", 2000), #gold required for healing
      (agent_get_player_id,":player_no",":agent_id"),
      (try_begin),
        (player_is_active, ":player_no"),
        (player_get_gold, ":player_gold", ":player_no"),
        (gt, ":player_gold", ":cost"), 
#        (store_random_in_range, ":weapon", "itm_reveran_dagger", "itm_reveran_horse"), #tBfC weapons
       (agent_set_hit_points,":agent_id",100,0), #refill health
        (prop_instance_get_position, pos1, ":instance_id"),
        (position_move_z,pos1,-5),
        (set_spawn_position, pos1),
#        (spawn_item, ":weapon"),
        (val_sub, ":player_gold", ":cost"),
        (player_set_gold, ":player_no", ":player_gold", multi_max_gold_that_can_be_stored),
      (try_end),
    ])

See if that does work and paste the whole code when you have access please.
 
Acid-NN-9 said:
Arch3r said:
You can use chests for example to buy bodyguard troops.

Mmm interesting.

I´m investigate how modify_visitors_at_scene and the spawn visitor operations works, because im a bit lost xD

Thanks!
Check my Open Source invasion codes, you might want to see how I spawned bots in my Invasion mod. http://forums.taleworlds.com/index.php/topic,112477.0.html
 
hiii

i dit it like lazslo but the prob , when i'm in game , i make the scene props weapon rack arming sword i have no winfow who say i can buy the object ,  how i can does ? thanks

Code:
check_weapon_rack_arming_sword = (ti_on_scene_prop_use,
    [
      (store_trigger_param_1, ":agent_id"),
      (store_trigger_param_2, ":instance_id"),

      (multiplayer_is_server),
      (assign, ":cost", 500), #gold required for spawning a weapon
      (agent_get_player_id,":player_no",":agent_id"),
      (try_begin),
        (player_is_active, ":player_no"),
        (player_get_gold, ":player_gold", ":player_no"),
        (gt, ":player_gold", ":cost"),
        (prop_instance_get_position, pos1, ":instance_id"),
        (position_move_z,pos1,-5),
        (set_spawn_position, pos1),
        (spawn_item, "itm_sword_medieval_c"), #arming sword swadian
        (val_sub, ":player_gold", ":cost"),
        (player_set_gold, ":player_no", ":player_gold", multi_max_gold_that_can_be_stored),
      (try_end),
    ])
	
("tbfc_weapon_rack_arming_sword",spr_use_time(1),"weapon_rack","boweapon_rack", [
      check_weapon_rack_arming_sword
      ]),


thanks for your help
 
yes I know I did :

Code:
 (else_try),
       (this_or_next|eq, ":scene_prop_id", "spr_door_destructible"),
       (this_or_next|eq, ":scene_prop_id", "spr_castle_f_door_b"),
       (this_or_next|eq, ":scene_prop_id", "spr_castle_e_sally_door_a"),
       (this_or_next|eq, ":scene_prop_id", "spr_castle_f_sally_door_a"),
       (this_or_next|eq, ":scene_prop_id", "spr_earth_sally_gate_left"),
       (this_or_next|eq, ":scene_prop_id", "spr_earth_sally_gate_right"),
       (this_or_next|eq, ":scene_prop_id", "spr_viking_keep_destroy_sally_door_left"),
       (this_or_next|eq, ":scene_prop_id", "spr_viking_keep_destroy_sally_door_right"),
       (this_or_next|eq, ":scene_prop_id", "spr_castle_f_door_a"),
       (this_or_next|eq, ":scene_prop_id", "spr_siege_ladder_move_6m"),
       (this_or_next|eq, ":scene_prop_id", "spr_siege_ladder_move_8m"),
       (this_or_next|eq, ":scene_prop_id", "spr_siege_ladder_move_10m"),
       (this_or_next|eq, ":scene_prop_id", "spr_siege_ladder_move_12m"),
       (this_or_next|eq, ":scene_prop_id", "spr_weapon_rack_arming_sword"),
       (eq, ":scene_prop_id", "spr_siege_ladder_move_14m"),
       (assign, ":effected_object", ":scene_prop_id"),
     (try_end), 
but ingame, impossible to buy, I approach weapon rack arming rack but nothing appears

screen :


 
Gorillaz,

Even if you haven't added the string for your weapon dispensor prop correctly, it should still say something like 'Raise Ladder' or 'Open Door' when you target it. So if you aren't seeing any message at all then you should try placing the prop, then restarting the map, THEN trying to use it.

Sometimes when you place a prop in edit mode (or edit the terrain, etc.) it's useful to save your changes and then restart the map before testing it.

 
boweapon_rack....are you sure it's not bo_weapon_rack?

Nvm, checked it.

Well, in the scene_props code post, you are using a tbfc_weapon_rack_arming_sword prop, but on the screenie and module_scripts you are referring to weapon_rack_arming_sword
 
I remove tbfc but its still not working
Code:
check_weapon_rack_arming_sword = (ti_on_scene_prop_use,
    [
      (store_trigger_param_1, ":agent_id"),
      (store_trigger_param_2, ":instance_id"),

      (multiplayer_is_server),
      (assign, ":cost", 500), #gold required for spawning a weapon
      (agent_get_player_id,":player_no",":agent_id"),
      (try_begin),
        (player_is_active, ":player_no"),
        (player_get_gold, ":player_gold", ":player_no"),
        (gt, ":player_gold", ":cost"),
        (prop_instance_get_position, pos1, ":instance_id"),
        (position_move_z,pos1,-5),
        (set_spawn_position, pos1),
        (spawn_item, "itm_sword_medieval_c"), #arming sword swadian
        (val_sub, ":player_gold", ":cost"),
        (player_set_gold, ":player_no", ":player_gold", multi_max_gold_that_can_be_stored),
      (try_end),
    ])
	
("weapon_rack_arming_sword",spr_use_time(1),"weapon_rack","boweapon_rack", [
      check_weapon_rack_arming_sword
      ]),

, I will do as you said Lazslo but like its not working, I must be a mistake but I can not find it.
thanks for you repons
 
You only edited the first part of  that script, there's a second part you need to edit.

(store_script_param, ":instance_id", 1),

    (prop_instance_get_scene_prop_kind, ":scene_prop_id", ":instance_id"),
   
    (try_begin),
      (this_or_next|eq, ":scene_prop_id", "spr_winch_b"),
      (eq, ":scene_prop_id", "spr_winch"),
      (assign, ":effected_object", "spr_portcullis"),
    (else_try),
      (this_or_next|eq, ":scene_prop_id", "spr_door_destructible"),
      (this_or_next|eq, ":scene_prop_id", "spr_castle_f_door_b"),
      (this_or_next|eq, ":scene_prop_id", "spr_castle_e_sally_door_a"),
      (this_or_next|eq, ":scene_prop_id", "spr_castle_f_sally_door_a"),
      (this_or_next|eq, ":scene_prop_id", "spr_earth_sally_gate_left"),
      (this_or_next|eq, ":scene_prop_id", "spr_earth_sally_gate_right"),
      (this_or_next|eq, ":scene_prop_id", "spr_viking_keep_destroy_sally_door_left"),
      (this_or_next|eq, ":scene_prop_id", "spr_viking_keep_destroy_sally_door_right"),
      (this_or_next|eq, ":scene_prop_id", "spr_castle_f_door_a"),
      (this_or_next|eq, ":scene_prop_id", "spr_siege_ladder_move_6m"),
      (this_or_next|eq, ":scene_prop_id", "spr_siege_ladder_move_8m"),
      (this_or_next|eq, ":scene_prop_id", "spr_siege_ladder_move_10m"),
      (this_or_next|eq, ":scene_prop_id", "spr_siege_ladder_move_12m"),
      (this_or_next|eq, ":scene_prop_id", "spr_siege_ladder_move_14m"),
      (this_or_next|eq, ":scene_prop_id", "spr_weapon_rack_arming_sword"),
      (assign, ":effected_object", ":scene_prop_id"),
    (try_end), 

    (scene_prop_get_slot, ":item_situation", ":instance_id", scene_prop_open_or_close_slot),
 
    (try_begin), #opening/closing portcullis
      (eq, ":effected_object", "spr_portcullis"),

      (try_begin),
        (eq, ":item_situation", 0),
        (str_store_string, s0, "str_open_gate"),
      (else_try),
        (str_store_string, s0, "str_close_gate"),
      (try_end),
    (else_try), #opening/closing door
      (this_or_next|eq, ":effected_object", "spr_door_destructible"),
      (this_or_next|eq, ":effected_object", "spr_castle_f_door_b"),
      (this_or_next|eq, ":effected_object", "spr_castle_e_sally_door_a"),
      (this_or_next|eq, ":effected_object", "spr_castle_f_sally_door_a"),
      (this_or_next|eq, ":effected_object", "spr_earth_sally_gate_left"),
      (this_or_next|eq, ":effected_object", "spr_earth_sally_gate_right"),
      (this_or_next|eq, ":effected_object", "spr_viking_keep_destroy_sally_door_left"),
      (this_or_next|eq, ":effected_object", "spr_viking_keep_destroy_sally_door_right"),
      (eq, ":effected_object", "spr_castle_f_door_a"),

      (try_begin),
        (eq, ":item_situation", 0),
        (str_store_string, s0, "str_open_door"),
      (else_try),
        (str_store_string, s0, "str_close_door"),
      (try_end),
    (else_try), #raising/dropping ladder
      (try_begin),
        (eq, ":item_situation", 0),
        (str_store_string, s0, "str_raise_ladder"),
      (else_try),
        (str_store_string, s0, "str_drop_ladder"),
      (try_end),
    (else_try),
        (eq, ":effected_object", "spr_spr_weapon_rack_arming_sword"),
        (str_store_string, s0, "@Add your string here"),

    (try_end),

What you already did in blue.
New code in green.
 
a okkkk yes  i did

Code:
(this_or_next|eq, ":scene_prop_id", "spr_castle_f_door_a"),
       (this_or_next|eq, ":scene_prop_id", "spr_siege_ladder_move_6m"),
       (this_or_next|eq, ":scene_prop_id", "spr_siege_ladder_move_8m"),
       (this_or_next|eq, ":scene_prop_id", "spr_siege_ladder_move_10m"),
       (this_or_next|eq, ":scene_prop_id", "spr_siege_ladder_move_12m"),
       (this_or_next|eq, ":scene_prop_id", "spr_weapon_rack_arming_sword"),
       (eq, ":scene_prop_id", "spr_siege_ladder_move_14m"),
       (assign, ":effected_object", ":scene_prop_id"),
     (try_end),   

     (scene_prop_get_slot, ":item_situation", ":instance_id", scene_prop_open_or_close_slot),
   
     (try_begin), #opening/closing portcullis
       (eq, ":effected_object", "spr_portcullis"),

       (try_begin),
         (eq, ":item_situation", 0),
         (str_store_string, s0, "str_open_gate"),
       (else_try), 
         (str_store_string, s0, "str_close_gate"),
       (try_end),
     (else_try), #opening/closing door
       (this_or_next|eq, ":effected_object", "spr_door_destructible"),
       (this_or_next|eq, ":effected_object", "spr_castle_f_door_b"),
       (this_or_next|eq, ":effected_object", "spr_castle_e_sally_door_a"),
       (this_or_next|eq, ":effected_object", "spr_castle_f_sally_door_a"),
       (this_or_next|eq, ":effected_object", "spr_earth_sally_gate_left"),
       (this_or_next|eq, ":effected_object", "spr_earth_sally_gate_right"),
       (this_or_next|eq, ":effected_object", "spr_viking_keep_destroy_sally_door_left"),
       (this_or_next|eq, ":effected_object", "spr_viking_keep_destroy_sally_door_right"),
       (eq, ":effected_object", "spr_castle_f_door_a"),

       (try_begin),
         (eq, ":item_situation", 0),
         (str_store_string, s0, "str_open_door"),
       (else_try),
         (str_store_string, s0, "str_close_door"),
       (try_end),
     (else_try), #raising/dropping ladder
       (try_begin),
         (eq, ":item_situation", 0),
         (str_store_string, s0, "str_raise_ladder"),
       (else_try),
         (str_store_string, s0, "str_drop_ladder"),
       (try_end),
	 (else_try), #using box
       (eq, ":effected_object", "spr_weapon_rack_arming_sword"),
         (str_store_string, s0, "str_tageul"),
     (try_end),
   ]),
 
Back
Top Bottom