I'm making a new text box and I need help

Users who are viewing this thread

Status
Not open for further replies.
Hello Warband modding community. I was making the new text box as I mentioned earlier on the topic and I have stuck in some subjects. If you can help with this matter I will be grateful.

First I am going to show the codes for showing you what I try to do :

("cf_player_send_login_info",
[
(store_script_param, ":player", 1),
(try_begin),
(player_is_active, ":player"),
(str_store_player_username , s1 , ":player"),
(multiplayer_send_string_to_player, ":player", multiplayer_message_type_poll_result, "@Please press Q key to send your login information"),
(eq|is_presentation_active, "prsnt_kayit_veya_giris"),
(try_begin),
(display_message, "@Presentation on player {s1} kayit veya giris has started"),
(else_try),
(display_message, "@Presentation on player {s1} kayit veya giris has failed"),
(try_end),
(try_end),
]),

  ("kayit_veya_giris",prsntf_manual_end_only, 0,[
(ti_on_presentation_load,
[
(set_fixed_point_multiplier, 1000),
(init_position, pos1),
(str_store_string, s1, "@Login id:"),
(create_text_overlay, reg1, s1,tf_with_outline),
(overlay_set_color, reg1, 0x000000),
(position_set_x, pos1, 200),
(position_set_y, pos1, 530),
(overlay_set_position, reg1, pos1),
(overlay_set_text, reg1, s1),
(position_set_x, pos1, 1000),
(position_set_y, pos1, 1000),
(create_simple_text_box_overlay, "$g_giris", tf_center_justify),
(position_set_x, pos1, 200),
(position_set_y, pos1, 500),
(overlay_set_position, "$g_giris", pos1),
(position_set_x, pos1, 600),
(position_set_y, pos1, 1000),
(overlay_set_size, "$g_giris", pos1),
(overlay_obtain_focus, "$g_giris"),
(str_clear, s0),
(overlay_set_text, "$g_giris", s0),
(presentation_set_duration, 999999),
]),
(ti_on_presentation_run,
    [
(try_begin),
(key_clicked, key_escape),
(presentation_set_duration, 0),
        (else_try),
(key_clicked, key_enter),
(presentation_set_duration, 0),
(try_end),
]),
]),

My codes in module mission templates.py are red in the spoiler below.

(
    "multiplayer_bt",mtf_battle_mode,-1, #battle mode
    "You lead your men to battle.",
    [
      (0,mtef_visitor_source|mtef_team_0|mtef_no_auto_reset,0,aif_start_alarmed,1,[]),
      (1,mtef_visitor_source|mtef_team_0|mtef_no_auto_reset,0,aif_start_alarmed,1,[]),
      (2,mtef_visitor_source|mtef_team_0,0,aif_start_alarmed,1,[]),
      (3,mtef_visitor_source|mtef_team_0,0,aif_start_alarmed,1,[]),
      (4,mtef_visitor_source|mtef_team_0,0,aif_start_alarmed,1,[]),
      (5,mtef_visitor_source|mtef_team_0,0,aif_start_alarmed,1,[]),
      (6,mtef_visitor_source|mtef_team_0,0,aif_start_alarmed,1,[]),
      (7,mtef_visitor_source|mtef_team_0,0,aif_start_alarmed,1,[]),

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

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

      (24,mtef_visitor_source|mtef_team_1,0,aif_start_alarmed,1,[]),
      (25,mtef_visitor_source|mtef_team_1,0,aif_start_alarmed,1,[]),
      (26,mtef_visitor_source|mtef_team_1,0,aif_start_alarmed,1,[]),
      (27,mtef_visitor_source|mtef_team_1,0,aif_start_alarmed,1,[]),
      (28,mtef_visitor_source|mtef_team_1,0,aif_start_alarmed,1,[]),
      (29,mtef_visitor_source|mtef_team_1,0,aif_start_alarmed,1,[]),
      (30,mtef_visitor_source|mtef_team_1,0,aif_start_alarmed,1,[]),
      (31,mtef_visitor_source|mtef_team_1,0,aif_start_alarmed,1,[]),

      (32,mtef_visitor_source|mtef_team_0|mtef_no_auto_reset,0,aif_start_alarmed,1,[]),
      (33,mtef_visitor_source|mtef_team_0|mtef_no_auto_reset,0,aif_start_alarmed,1,[]),
      (34,mtef_visitor_source|mtef_team_0,0,aif_start_alarmed,1,[]),
      (35,mtef_visitor_source|mtef_team_0,0,aif_start_alarmed,1,[]),
      (36,mtef_visitor_source|mtef_team_0,0,aif_start_alarmed,1,[]),
      (37,mtef_visitor_source|mtef_team_0,0,aif_start_alarmed,1,[]),
      (38,mtef_visitor_source|mtef_team_0,0,aif_start_alarmed,1,[]),
      (39,mtef_visitor_source|mtef_team_0,0,aif_start_alarmed,1,[]),

      (40,mtef_visitor_source|mtef_team_0,0,aif_start_alarmed,1,[]),
      (41,mtef_visitor_source|mtef_team_0,0,aif_start_alarmed,1,[]),
      (42,mtef_visitor_source|mtef_team_0,0,aif_start_alarmed,1,[]),
      (43,mtef_visitor_source|mtef_team_0,0,aif_start_alarmed,1,[]),
      (44,mtef_visitor_source|mtef_team_0,0,aif_start_alarmed,1,[]),
      (45,mtef_visitor_source|mtef_team_0,0,aif_start_alarmed,1,[]),
      (46,mtef_visitor_source|mtef_team_0,0,aif_start_alarmed,1,[]),
      (47,mtef_visitor_source|mtef_team_0,0,aif_start_alarmed,1,[]),

      (48,mtef_visitor_source|mtef_team_1,0,aif_start_alarmed,1,[]),
      (49,mtef_visitor_source|mtef_team_1,0,aif_start_alarmed,1,[]),
      (50,mtef_visitor_source|mtef_team_1,0,aif_start_alarmed,1,[]),
      (51,mtef_visitor_source|mtef_team_1,0,aif_start_alarmed,1,[]),
      (52,mtef_visitor_source|mtef_team_1,0,aif_start_alarmed,1,[]),
      (53,mtef_visitor_source|mtef_team_1,0,aif_start_alarmed,1,[]),
      (54,mtef_visitor_source|mtef_team_1,0,aif_start_alarmed,1,[]),
      (55,mtef_visitor_source|mtef_team_1,0,aif_start_alarmed,1,[]),

      (56,mtef_visitor_source|mtef_team_1,0,aif_start_alarmed,1,[]),
      (57,mtef_visitor_source|mtef_team_1,0,aif_start_alarmed,1,[]),
      (58,mtef_visitor_source|mtef_team_1,0,aif_start_alarmed,1,[]),
      (59,mtef_visitor_source|mtef_team_1,0,aif_start_alarmed,1,[]),
      (60,mtef_visitor_source|mtef_team_1,0,aif_start_alarmed,1,[]),
      (61,mtef_visitor_source|mtef_team_1,0,aif_start_alarmed,1,[]),
      (62,mtef_visitor_source|mtef_team_1,0,aif_start_alarmed,1,[]),
      (63,mtef_visitor_source|mtef_team_1,0,aif_start_alarmed,1,[]),
    ],
    [
      common_battle_init_banner,

      multiplayer_server_check_polls,
     
      (ti_server_player_joined, 0, 0, [],
[
(store_trigger_param_1, ":player_no"),
(call_script, "script_multiplayer_server_player_joined_common", ":player_no"),
(call_script, "script_cf_player_send_login_info",),
(game_key_clicked, gk_quests_window),
(neg|is_presentation_active, "prsnt_kayit_veya_giris"),
(start_presentation, "prsnt_kayit_veya_giris"),
]),

And I get this error:
SCRIPT ERROR ON OPCODE 23: Invalid Script Parameter ID: 0; LINE NO: 0:
At script: cf_player_send_login_info. At script: cf_player_send_login_info. Presentation on player Yabgu_Ali kayit veya giris has started

I am currently trying to modify multiplayer battle game type. I have tried to make a text box named $g_giris which is a global variable. My main goal to make a registration or login section on whenever a player joins the server. But first I need to make it's fundamentals. I hope I could tell what I am into. Thanks in advance.

Edit: And I can't see my text box when I click "Q" key.
 
your script call is not using the parameter

Code:
 (call_script, "script_cf_player_send_login_info",),

also you have several issues with your cf_ script. It is not how they work, and your display message is also not working.

check the tutorial/description on that type of script and if you need help let us know
 
kalarhan said:
your script call is not using the parameter

Code:
 (call_script, "script_cf_player_send_login_info",),

also you have several issues with your cf_ script. It is not how they work, and your display message is also not working.

check the tutorial/description on that type of script and if you need help let us know

Can you direct me to proper tutorial please? Thanks for your explanations.

Edit: I checked this https://www.freewebs.com/jikbyond/40kTut/M&B%20Module%20System%20Doc2-3.pdf and syntax usage.
 
Naber La said:
Can you direct me to proper tutorial please? Thanks for your explanations.

hum you can search the Q&A thread for the keyword cf_, there are plenty of discussion and explanation on how to use it there. I dont recall of a tutorial that explains it, but check the tutorial section to make sure as well.

once you review the old answers you can ask about it here or there if there is somethign you didnt understand.
 
So I've managed to do something else that there are no more errors. But still script doesn't work. Here are my scripts:

("player_send_login_info",
[
(store_script_param, ":player", 1),
(try_begin),
(player_is_active, ":player"),
(str_store_player_username , s1 , ":player"),
(is_presentation_active, "prsnt_kayit_veya_giris"),
(try_begin),
(display_message, "@Presentation on player {s1} kayit veya giris has started"),
(multiplayer_send_string_to_player, ":player", multiplayer_event_show_server_message, "@Please press Q key to send your login information"),
(try_end),
(else_try),
(player_is_active, ":player"),
(str_store_player_username , s1 , ":player"),
(display_message, "@Presentation on player {s1} kayit veya giris has failed"),
(try_end),
]),

  ("kayit_veya_giris",prsntf_manual_end_only, 0,[
(ti_on_presentation_load,
[
(set_fixed_point_multiplier, 1000),
(init_position, pos1),
(str_store_string, s1, "@Login id:"),
(create_text_overlay, reg1, s1, tf_with_outline),
(overlay_set_color, reg1, 0xFFFF0000),
(position_set_x, pos1, 200),
(position_set_y, pos1, 530),
(overlay_set_position, reg1, pos1),
(overlay_set_text, reg1, s1),
(position_set_x, pos1, 1000),
(position_set_y, pos1, 1000),
(create_simple_text_box_overlay, "$g_giris", tf_center_justify),
(position_set_x, pos1, 200),
(position_set_y, pos1, 500),
(overlay_set_position, "$g_giris", pos1),
(position_set_x, pos1, 600),
(position_set_y, pos1, 1000),
(overlay_set_size, "$g_giris", pos1),
(overlay_obtain_focus, "$g_giris"),
(str_clear, s0),
(overlay_set_text, "$g_giris", s0),
(presentation_set_duration, 999999),
]),
(ti_on_presentation_run,
[
(try_begin),
(key_clicked, key_escape),
                (presentation_set_duration, 0),
            (else_try),
                (key_clicked, key_enter),
            (try_end),
]),
]),

login_box = (ti_server_player_joined, 0, 0, [],
[
(store_trigger_param_1, ":player"),
(start_presentation, "prsnt_kayit_veya_giris"),
(call_script, "script_player_send_login_info", ":player"),
])

Can anyone help with this lines of codes ? Showing me where did i do wrong ?
 
You should take a look at what is executed clientside and what is executed serverside.
For example, your trigger is only ever executed serverside:
Code:
ti_server_player_joined       = -15.0 # Multiplayer server-side trigger. New player has connected to the server.
    # trigger param 1 = player_id of joined player
However, presentations are executed on the clients side. As you can see, that doesn't work out the way you want it to.
There are some other issues, but you should start with that.
 
I couldn't make it pop up on players' screen automatically , so i decided to try something else. My main goal is making a text box which takes entry from the users and saves that in database or compare it if it is saved but that is future's work. Now I just try to make a text box but i keep failing i tried to search and compare my text box with other user created text boxes which ones are working but that didn't help me either. Here are my codes (there is a problem with my presentation as far as I understand) :

  ("kayit_veya_giris",prsntf_manual_end_only, 0,[
(ti_on_presentation_load,
[
(set_fixed_point_multiplier, 1000),
(init_position, pos1),
(str_store_string, s1, "str_login_id"),
(create_text_overlay, reg1, s1, tf_with_outline),
(overlay_set_color, reg1, 0xFFFF0000),
(position_set_x, pos1, 200),
(position_set_y, pos1, 530),
(overlay_set_position, reg1, pos1),
(overlay_set_text, reg1, s1),
(position_set_x, pos1, 1000),
(position_set_y, pos1, 1000),
(create_simple_text_box_overlay, "$g_giris", tf_center_justify),
(position_set_x, pos1, 200),
(position_set_y, pos1, 500),
(overlay_set_position, "$g_giris", pos1),
(position_set_x, pos1, 600),
(position_set_y, pos1, 1000),
(overlay_set_size, "$g_giris", pos1),
(overlay_obtain_focus, "$g_giris"),
(str_clear, s0),
(overlay_set_text, "$g_giris", s0),
(presentation_set_duration, 999999),
]),
]),

In module_scripts.py I aim for making a warn message on warn_player_about_login_info. On player_send_login_info , I want to make a checking state which is presentation works or not and report it to console and logs.

  ("player_send_login_info",
[
(store_script_param, ":player_no", 1),
(try_begin),
(player_is_active, ":player_no"),
(str_store_player_username, s1, ":player_no"),
(player_get_unique_id, reg0, ":player_no"),
(try_begin),
(neg|is_presentation_active, "prsnt_kayit_veya_giris"),
(display_message, "@Presentation on player {s1} kayit veya giris has failed! GUID: {reg0}"),
(server_add_message_to_log, "@Presentation on player {s1} kayit veya giris has failed! GUID: {reg0}"),
(else_try),
(display_message, "@Presentation on player {s1} kayit veya giris has started! GUID: {reg0}"),
(multiplayer_send_string_to_player, ":player_no", multiplayer_event_show_server_message, "@Please enter your login ID and Password for your account!"),
(server_add_message_to_log, "@Presentation on player {s1} kayit veya giris has started! GUID: {reg0}"),
(try_end),
(try_end),
]),

  ("warn_player_about_login_info",
[
(store_script_param, ":player_no", 1),
(try_begin),
(player_is_active, ":player_no"),
(str_store_player_username, s1, ":player_no"),
(multiplayer_send_string_to_player, ":player_no", multiplayer_event_show_server_message, "@Dear Player {s1} please press 'Q' to enter your login ID and Password for your account, otherwise your progress won't be saved!"),
(try_end),
]),

Red ones are my codes in module mission templates.py. In here I warn players about they should enter their login info.

    (
    "multiplayer_bt",mtf_battle_mode,-1, #battle mode
    "You lead your men to battle.",
    [
      (0,mtef_visitor_source|mtef_team_0|mtef_no_auto_reset,0,aif_start_alarmed,1,[]),
      (1,mtef_visitor_source|mtef_team_0|mtef_no_auto_reset,0,aif_start_alarmed,1,[]),
      (2,mtef_visitor_source|mtef_team_0,0,aif_start_alarmed,1,[]),
      (3,mtef_visitor_source|mtef_team_0,0,aif_start_alarmed,1,[]),
      (4,mtef_visitor_source|mtef_team_0,0,aif_start_alarmed,1,[]),
      (5,mtef_visitor_source|mtef_team_0,0,aif_start_alarmed,1,[]),
      (6,mtef_visitor_source|mtef_team_0,0,aif_start_alarmed,1,[]),
      (7,mtef_visitor_source|mtef_team_0,0,aif_start_alarmed,1,[]),

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

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

      (24,mtef_visitor_source|mtef_team_1,0,aif_start_alarmed,1,[]),
      (25,mtef_visitor_source|mtef_team_1,0,aif_start_alarmed,1,[]),
      (26,mtef_visitor_source|mtef_team_1,0,aif_start_alarmed,1,[]),
      (27,mtef_visitor_source|mtef_team_1,0,aif_start_alarmed,1,[]),
      (28,mtef_visitor_source|mtef_team_1,0,aif_start_alarmed,1,[]),
      (29,mtef_visitor_source|mtef_team_1,0,aif_start_alarmed,1,[]),
      (30,mtef_visitor_source|mtef_team_1,0,aif_start_alarmed,1,[]),
      (31,mtef_visitor_source|mtef_team_1,0,aif_start_alarmed,1,[]),

      (32,mtef_visitor_source|mtef_team_0|mtef_no_auto_reset,0,aif_start_alarmed,1,[]),
      (33,mtef_visitor_source|mtef_team_0|mtef_no_auto_reset,0,aif_start_alarmed,1,[]),
      (34,mtef_visitor_source|mtef_team_0,0,aif_start_alarmed,1,[]),
      (35,mtef_visitor_source|mtef_team_0,0,aif_start_alarmed,1,[]),
      (36,mtef_visitor_source|mtef_team_0,0,aif_start_alarmed,1,[]),
      (37,mtef_visitor_source|mtef_team_0,0,aif_start_alarmed,1,[]),
      (38,mtef_visitor_source|mtef_team_0,0,aif_start_alarmed,1,[]),
      (39,mtef_visitor_source|mtef_team_0,0,aif_start_alarmed,1,[]),

      (40,mtef_visitor_source|mtef_team_0,0,aif_start_alarmed,1,[]),
      (41,mtef_visitor_source|mtef_team_0,0,aif_start_alarmed,1,[]),
      (42,mtef_visitor_source|mtef_team_0,0,aif_start_alarmed,1,[]),
      (43,mtef_visitor_source|mtef_team_0,0,aif_start_alarmed,1,[]),
      (44,mtef_visitor_source|mtef_team_0,0,aif_start_alarmed,1,[]),
      (45,mtef_visitor_source|mtef_team_0,0,aif_start_alarmed,1,[]),
      (46,mtef_visitor_source|mtef_team_0,0,aif_start_alarmed,1,[]),
      (47,mtef_visitor_source|mtef_team_0,0,aif_start_alarmed,1,[]),

      (48,mtef_visitor_source|mtef_team_1,0,aif_start_alarmed,1,[]),
      (49,mtef_visitor_source|mtef_team_1,0,aif_start_alarmed,1,[]),
      (50,mtef_visitor_source|mtef_team_1,0,aif_start_alarmed,1,[]),
      (51,mtef_visitor_source|mtef_team_1,0,aif_start_alarmed,1,[]),
      (52,mtef_visitor_source|mtef_team_1,0,aif_start_alarmed,1,[]),
      (53,mtef_visitor_source|mtef_team_1,0,aif_start_alarmed,1,[]),
      (54,mtef_visitor_source|mtef_team_1,0,aif_start_alarmed,1,[]),
      (55,mtef_visitor_source|mtef_team_1,0,aif_start_alarmed,1,[]),

      (56,mtef_visitor_source|mtef_team_1,0,aif_start_alarmed,1,[]),
      (57,mtef_visitor_source|mtef_team_1,0,aif_start_alarmed,1,[]),
      (58,mtef_visitor_source|mtef_team_1,0,aif_start_alarmed,1,[]),
      (59,mtef_visitor_source|mtef_team_1,0,aif_start_alarmed,1,[]),
      (60,mtef_visitor_source|mtef_team_1,0,aif_start_alarmed,1,[]),
      (61,mtef_visitor_source|mtef_team_1,0,aif_start_alarmed,1,[]),
      (62,mtef_visitor_source|mtef_team_1,0,aif_start_alarmed,1,[]),
      (63,mtef_visitor_source|mtef_team_1,0,aif_start_alarmed,1,[]),
    ],
    [
      common_battle_init_banner,

      multiplayer_server_check_polls,

  (ti_server_player_joined, 0, 0, [],
  [
            (store_trigger_param_1, ":player_no"),
            (call_script, "script_multiplayer_server_player_joined_common", ":player_no"),
            (multiplayer_is_server),
            (call_script, "script_warn_player_about_login_info", ":player_no"),
      ]),

In module_triggers.py , I wanted to trigger a chat box when users press "Q" key on keyboard.

  (0, 0.05, 0, [(key_clicked, key_q),], # login box
  [
(store_trigger_param_1, ":player_no"),
(call_script,"script_player_send_login_info", ":player_no"),
(start_presentation, "prsnt_kayit_veya_giris"),
  ]),
]

In module_strings.py , I placed a string to be fetched.

("login_id", "What is the name of your account ?:"),

There is no errors in the compiling part. The problem is presentation doesn't pop up.
 
Maybe just change your idea about player identification ?

Using unique id would be much easier.

Using your code you must send message to server and process everything serverside.
Otherwise it will be easily exploitable.



 
PitchPL said:
Maybe just change your idea about player identification ?

Using unique id would be much easier.

Using your code you must send message to server and process everything serverside.
Otherwise it will be easily exploitable.

I took your advice and made easier and safer whitelist script. Now I am trying to learn advanced php for a website that user makes an account then puts his guid in whitelist so he/she can connect to the server.

Edit: I decided to share my work with you and here is the results (I did modify Illuminati's script about whitelisting for pw) :

  ("cf_whitelist_check", # check if the player is whitelisted
  [
  (store_script_param, ":player_no", 1), # must be valid 
  (player_is_active, ":player_no"),
  (assign, reg1, ":player_no"),
  (player_get_unique_id, ":guid", ":player_no"),
  (assign, reg2, ":guid"),
      (send_message_to_url, "str_whitelist_url"),
    ]),

("game_receive_url_response",
    [
(try_begin),
(assign, ":return_code", reg0),
(assign, ":player_no", reg1),
(player_get_unique_id, reg2, ":player_no"),
(player_is_active, ":player_no"),
(str_store_player_username, s0, ":player_no"),
(try_begin),
(eq, ":return_code", 1), #whitelisted
(else_try),
(eq, ":return_code", 0), #not whitelisted
(display_message, "@{s0} with GUID:{reg2} tried to join without being on the whitelist!"),
(server_add_message_to_log, "@{s0} with GUID:{reg2} tried to join without being on the whitelist!"),
(multiplayer_send_string_to_player, ":player_no", multiplayer_event_show_server_message, "@Dear {s0} you are not whitelisted! Please ask to be whitelisted by contacting a GM! Your GUID:{reg2}"), #Edit this to your liking
(kick_player, ":player_no"),
(try_end),
(try_end),

Red codes the ones that i add on module_mission_templates.py

    (
    "multiplayer_bt",mtf_battle_mode,-1, #battle mode
    "You lead your men to battle.",
    [
      (0,mtef_visitor_source|mtef_team_0|mtef_no_auto_reset,0,aif_start_alarmed,1,[]),
      (1,mtef_visitor_source|mtef_team_0|mtef_no_auto_reset,0,aif_start_alarmed,1,[]),
      (2,mtef_visitor_source|mtef_team_0,0,aif_start_alarmed,1,[]),
      (3,mtef_visitor_source|mtef_team_0,0,aif_start_alarmed,1,[]),
      (4,mtef_visitor_source|mtef_team_0,0,aif_start_alarmed,1,[]),
      (5,mtef_visitor_source|mtef_team_0,0,aif_start_alarmed,1,[]),
      (6,mtef_visitor_source|mtef_team_0,0,aif_start_alarmed,1,[]),
      (7,mtef_visitor_source|mtef_team_0,0,aif_start_alarmed,1,[]),

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

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

      (24,mtef_visitor_source|mtef_team_1,0,aif_start_alarmed,1,[]),
      (25,mtef_visitor_source|mtef_team_1,0,aif_start_alarmed,1,[]),
      (26,mtef_visitor_source|mtef_team_1,0,aif_start_alarmed,1,[]),
      (27,mtef_visitor_source|mtef_team_1,0,aif_start_alarmed,1,[]),
      (28,mtef_visitor_source|mtef_team_1,0,aif_start_alarmed,1,[]),
      (29,mtef_visitor_source|mtef_team_1,0,aif_start_alarmed,1,[]),
      (30,mtef_visitor_source|mtef_team_1,0,aif_start_alarmed,1,[]),
      (31,mtef_visitor_source|mtef_team_1,0,aif_start_alarmed,1,[]),

      (32,mtef_visitor_source|mtef_team_0|mtef_no_auto_reset,0,aif_start_alarmed,1,[]),
      (33,mtef_visitor_source|mtef_team_0|mtef_no_auto_reset,0,aif_start_alarmed,1,[]),
      (34,mtef_visitor_source|mtef_team_0,0,aif_start_alarmed,1,[]),
      (35,mtef_visitor_source|mtef_team_0,0,aif_start_alarmed,1,[]),
      (36,mtef_visitor_source|mtef_team_0,0,aif_start_alarmed,1,[]),
      (37,mtef_visitor_source|mtef_team_0,0,aif_start_alarmed,1,[]),
      (38,mtef_visitor_source|mtef_team_0,0,aif_start_alarmed,1,[]),
      (39,mtef_visitor_source|mtef_team_0,0,aif_start_alarmed,1,[]),

      (40,mtef_visitor_source|mtef_team_0,0,aif_start_alarmed,1,[]),
      (41,mtef_visitor_source|mtef_team_0,0,aif_start_alarmed,1,[]),
      (42,mtef_visitor_source|mtef_team_0,0,aif_start_alarmed,1,[]),
      (43,mtef_visitor_source|mtef_team_0,0,aif_start_alarmed,1,[]),
      (44,mtef_visitor_source|mtef_team_0,0,aif_start_alarmed,1,[]),
      (45,mtef_visitor_source|mtef_team_0,0,aif_start_alarmed,1,[]),
      (46,mtef_visitor_source|mtef_team_0,0,aif_start_alarmed,1,[]),
      (47,mtef_visitor_source|mtef_team_0,0,aif_start_alarmed,1,[]),

      (48,mtef_visitor_source|mtef_team_1,0,aif_start_alarmed,1,[]),
      (49,mtef_visitor_source|mtef_team_1,0,aif_start_alarmed,1,[]),
      (50,mtef_visitor_source|mtef_team_1,0,aif_start_alarmed,1,[]),
      (51,mtef_visitor_source|mtef_team_1,0,aif_start_alarmed,1,[]),
      (52,mtef_visitor_source|mtef_team_1,0,aif_start_alarmed,1,[]),
      (53,mtef_visitor_source|mtef_team_1,0,aif_start_alarmed,1,[]),
      (54,mtef_visitor_source|mtef_team_1,0,aif_start_alarmed,1,[]),
      (55,mtef_visitor_source|mtef_team_1,0,aif_start_alarmed,1,[]),

      (56,mtef_visitor_source|mtef_team_1,0,aif_start_alarmed,1,[]),
      (57,mtef_visitor_source|mtef_team_1,0,aif_start_alarmed,1,[]),
      (58,mtef_visitor_source|mtef_team_1,0,aif_start_alarmed,1,[]),
      (59,mtef_visitor_source|mtef_team_1,0,aif_start_alarmed,1,[]),
      (60,mtef_visitor_source|mtef_team_1,0,aif_start_alarmed,1,[]),
      (61,mtef_visitor_source|mtef_team_1,0,aif_start_alarmed,1,[]),
      (62,mtef_visitor_source|mtef_team_1,0,aif_start_alarmed,1,[]),
      (63,mtef_visitor_source|mtef_team_1,0,aif_start_alarmed,1,[]),
    ],
    [
      common_battle_init_banner,

      multiplayer_server_check_polls,

  (ti_server_player_joined, 0, 0, [],
  [
            (store_trigger_param_1, ":player_no"),
            (call_script, "script_multiplayer_server_player_joined_common", ":player_no"),
            (call_script, "script_cf_whitelist_check", ":player_no"),
      ]),

  ("whitelist_url", "http://ip/directory/whitelist.php?guid={reg2}&playerno={reg1}"),

and php file in my webserver directory

<?php
$GUID = $_GET["guid"] ; //Getting input of player's guid from server
$playerno = $_GET["playerno"] ; //Getting input of player id from server

if(empty($GUID) || empty($playerno))
{
echo "Error!" ;
exit;
}
// Add guids below
$whitelist = array(
'',
'',
'',
'') ;

if (in_array($_GET['guid'], $whitelist))
{
    //This will echo a return code used in url_response saying the player is whitelisted
echo "1|$playerno";

}
else
{
    //This will echo a return code used in url_response saying the player is not whitelisted
echo "0|$playerno";
}
?>

Thanks to everyone!
 
Status
Not open for further replies.
Back
Top Bottom