Godot: UPNP.add_port_mapping () delete_port_mapping () рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рддреНрд░реБрдЯрд┐ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 23 рдЕрдкреНрд░реИрд▓ 2020  ┬╖  1рдЯрд┐рдкреНрдкрдгреА  ┬╖  рд╕реНрд░реЛрдд: godotengine/godot

рдЧреЛрдбреЛрдЯ рд╕рдВрд╕реНрдХрд░рдг:
рей.реи.рез рд╕реНрдерд┐рд░рдГ

рд╕рдВрд╕реНрдХрд░рдг рд╕рд╣рд┐рдд рдУрдПрд╕ / рдбрд┐рд╡рд╛рдЗрд╕:
рд╡рд┐рдВрдбреЛрдЬ 10
рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдиреЗ рд╡рд╛рд▓рд╛ рд░рд╛рдЙрдЯрд░ рдПрдХ рдСрд░реЗрдВрдЬ рд▓рд╛рдЗрд╡рдмреЙрдХреНрд╕ рд╣реИ, рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╡рд┐рд╡рд░рдг рдХреЗ рдХреМрди рд╕реЗ рднрд╛рдЧ .xml рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рдФрд░ рд╕реБрд░рдХреНрд╖рд┐рдд рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореИрдВ рдЗрд╕рдХреЗ рд▓рд┐рдП рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдкрд╣реБрдБрдЪ рдирд╣реАрдВ рд╣реИред

рдореБрджреЗ рдХрд╛ рд╡рд┐рд╡рд░рдг:
рдкреЛрд░реНрдЯ рдореИрдкрд┐рдВрдЧ рдЬреЛрдбрд╝рдиреЗ рд╕реЗ delete_port_mapping рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рддреНрд░реБрдЯрд┐ рдЙрддреНрдкрдиреНрди рд╣реЛрддреА рд╣реИред рдкреЛрд░реНрдЯ рдореИрдкрд┐рдВрдЧ рдареАрдХ рд╕реЗ рдЬреЛрдбрд╝рд╛ рд╣реБрдЖ рд▓рдЧрддрд╛ рд╣реИ рдФрд░ рдмрд╛рдж рдореЗрдВ рдмрд┐рдирд╛ рдХрд┐рд╕реА рддреНрд░реБрдЯрд┐ рдХреЗ рдЗрд╕реЗ рд╣рдЯрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдЗрд╕ рдкреНрд░рд╢реНрди рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдореБрджреНрджрд╛ https://godotengine.org/qa/65365/delete_port_mapping-condition-i-0-is-true
рдЖрдЙрдЯрдкреБрдЯ E 0:00:03.211 delete_port_mapping: Condition "i != (0)" is true. Returned: UPNP::upnp_result(i) <C++ Source> modules/upnp/upnp_device.cpp:90 @ delete_port_mapping() <Stack Trace> UPNPTest.gd:8 @ _ready()

рдкреНрд░рдЬрдирди рдХреЗ рдЪрд░рдг:
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЪрд▓рд╛рдПрдБ:
var upnp = UPNP.new()
upnp.discover()
upnp.add_port_mapping(4200)
рдиреНрдпреВрдирддрдо рдкреНрд░рдЬрдирди рдкрд░рд┐рдпреЛрдЬрдирд╛:
upnp рдмрдЧ repro.zip

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдпрд╣ рдПрдХ рдмрд╣реБрдд рдХрд╖реНрдЯрдкреНрд░рдж рдмрдЧ рд╣реИ рдЬреЛ рдореЗрд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рднреА рд╣реЛ рд░рд╣рд╛ рд╣реИред

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рдпрджрд┐ рдХрд┐рд╕реА рдХреЗ рдкрд╛рд╕ рдПрдХ рд╣реА рдмрдЧ рд╣реИ рдФрд░ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдорд┐рд▓рддреА рд╣реИ, рддреЛ рдЖрдк рдкреЛрд░реНрдЯ рдореИрдкрд┐рдВрдЧ рдХреЛ рд╕реАрдзреЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЧреЗрдЯрд╡реЗ рдореЗрдВ рдЬреЛрдбрд╝рдХрд░ рддреНрд░реБрдЯрд┐ рдХреЛ рджрд░рдХрд┐рдирд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рдПрдХ рд╣реА рдмрд╛рдд рд╣реИ upnp.add_port_mapping рдХрд░рддрд╛ рд╣реИ, рд╢реВрдиреНрдп рдПрдХ рдЧреИрд░ рдореМрдЬреВрджрд╛ рдкреЛрд░реНрдЯ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реИред

upnp = UPNP.new()
var result = upnp.discover()
if result == UPNP.UPNP_RESULT_SUCCESS:
    var gateway = upnp.get_gateway()
    gateway.add_port_mapping(4200)

>рд╕рднреА рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдпрд╣ рдПрдХ рдмрд╣реБрдд рдХрд╖реНрдЯрдкреНрд░рдж рдмрдЧ рд╣реИ рдЬреЛ рдореЗрд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рднреА рд╣реЛ рд░рд╣рд╛ рд╣реИред

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рдпрджрд┐ рдХрд┐рд╕реА рдХреЗ рдкрд╛рд╕ рдПрдХ рд╣реА рдмрдЧ рд╣реИ рдФрд░ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдорд┐рд▓рддреА рд╣реИ, рддреЛ рдЖрдк рдкреЛрд░реНрдЯ рдореИрдкрд┐рдВрдЧ рдХреЛ рд╕реАрдзреЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЧреЗрдЯрд╡реЗ рдореЗрдВ рдЬреЛрдбрд╝рдХрд░ рддреНрд░реБрдЯрд┐ рдХреЛ рджрд░рдХрд┐рдирд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рдПрдХ рд╣реА рдмрд╛рдд рд╣реИ upnp.add_port_mapping рдХрд░рддрд╛ рд╣реИ, рд╢реВрдиреНрдп рдПрдХ рдЧреИрд░ рдореМрдЬреВрджрд╛ рдкреЛрд░реНрдЯ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реИред

upnp = UPNP.new()
var result = upnp.discover()
if result == UPNP.UPNP_RESULT_SUCCESS:
    var gateway = upnp.get_gateway()
    gateway.add_port_mapping(4200)

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

RebelliousX picture RebelliousX  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

SleepProgger picture SleepProgger  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

EdwardAngeles picture EdwardAngeles  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

blurymind picture blurymind  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

n-pigeon picture n-pigeon  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ