
рдореИрдВ рдЯрд╛рд░реЗрдВрдЯреВрд▓ рд╕реАрдЦрдиреЗ рдХреЗ рдЕрдиреБрднрд╡ рдХреЛ рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдореИрдВ рдЯрд╛рд░реЗрдВрдЯрдпреБрд▓рд╛ рдХреЗ рд╕рднреА рд▓рд╛рднреЛрдВ рдФрд░ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рд▓рд┐рдЦреВрдВрдЧрд╛, рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ рдХрдИ рд▓реЗрдЦ рдереЗ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП,
рдпрд╣ ,
рдпрд╣ рдФрд░
рдпрд╣ )ред рдпрд╣ рдкреЛрд╕реНрдЯ рдЯрд╛рд░реЗрдВрдЯрдпреБрд▓рд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рдиреЗ рдФрд░ рдХреБрдЫ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдФрд░ рдЕрдЪреНрдЫрд╛рдЗрдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рддреА рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рдмреЙрдХреНрд╕ рд╕реЗ рдорд┐рд▓ рд╕рдХрддреА рд╣реИрдВред
рд╕реНрдерд╛рдкрд┐рдд
рдЕрд╕рд▓ рдореЗрдВ, рдкрд╣рд▓реА рдмрд╛рдд рдЬреЛ рдореБрдЭреЗ рдкрддрд╛ рдЪрд▓реА рд╡рд╣ рдереА рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рдиред рдЪреВрдВрдХрд┐ рдореБрдЭреЗ рдореИрдХрдУрдПрд╕ рдкрд░ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереА, рддреЛ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ, рдХреБрдЫ рдЗрд╕ рдкрд░ рдЖрдПрдВрдЧреЗ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреАред рд╕рд╛рдЗрдЯ рдкрд░ рдкреЗрд╢ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдкреИрдХреЗрдЬ рдпрд╛ рддреЛ рдХрд┐рд╕реА рднреА рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рдХрд╛рд░рдг рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдпрд╛ рдХреНрдпреЛрдВрдХрд┐ рд╕рд┐рд╕реНрдЯрдо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдкреНрд░рдпреЛрдЧ рдХрд╛ рдЕрдиреБрднрд╡ рдХрд░ рдЪреБрдХрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдореИрдВрдиреЗ рд╕реНрд░реЛрдд рд╕реЗ рдЗрдХрдЯреНрдард╛ рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред
рд╕реНрдерд╛рдкрдирд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ README рдореЗрдВ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╡рд░реНрдгрд┐рдд рд╣реИред рдпрджрд┐ рд╕реНрд░реЛрдд рдЧрд┐рдЯ рд╕реЗ рдкрдВрдк рдХрд┐рдП рдЧрдП рд╣реЛрдВ рддреЛ рд╕рдмрдореЙрдбреНрдпреВрд▓ рдХреЛ рдкрдВрдк рдХрд░рдирд╛ рди рднреВрд▓реЗрдВред рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЬрдм MacOS рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдорд╛рдг рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдбрд░рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╕рднреА рдкрд░реАрдХреНрд╖рдг рдкрд╛рд╕ рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВ - рджрд╕реНрддрд╛рд╡реЗрдЬ рдХрд╛ рдХрд╣рдирд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕рд╛рдорд╛рдиреНрдп рд╣реИред
рдпрджрд┐ рдЖрдк рдХрдВрд╕реЛрд▓ рдХреНрд▓рд╛рдЗрдВрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ cmake рдХреЛ DEN DEN_CLIENT = true рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рджрд░рдЕрд╕рд▓, рдмрдирд╛рдиреЗ рдХреЗ рдмрд╛рдж рд╣рдореЗрдВ рд╕рд░реНрд╡рд░ рдФрд░ рдХреНрд▓рд╛рдЗрдВрдЯ рдорд┐рд▓рддрд╛ рд╣реИ, рдЕрдЧрд░ рдкреВрдЫрд╛ рдЬрд╛рдП рддреЛ рдХреНрд░рдорд╢рдГ src / box / tarantool_box рдФрд░ client / tarantool / tarantoolред
рд╕рд░реНрд╡рд░ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ
рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ, рдЖрдк рдкрд░реАрдХреНрд╖рдг рдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдПрдХ рдХрд╛ рд╡рд┐рдиреНрдпрд╛рд╕ рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдкрд░реАрдХреНрд╖рдг / рдмреЙрдХреНрд╕ / рдЯрд╛рд░реЗрдВрдЯреВрд▓.рдХреЙрдл
рдорд╣рддреНрд╡рдкреВрд░реНрдг рдорд╛рдкрджрдВрдбреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ slab_alloc_arena - рдпрд╣ рдЯрд╛рд░реЗрдВрдЯрдпреБрд▓рд╛ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рд╕реНрдореГрддрд┐ рдХреА рдорд╛рддреНрд░рд╛ рд╣реИред рдореИрдВ рдЖрдкрдХреЛ рдЗрд╕ рдкреИрд░рд╛рдореАрдЯрд░ рдХрд╛ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдЕрдзреНрдпрдпрди рдХрд░рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВред рдпрд╣ рднреА рд░реЛ_рдкрд░_рд╡рд╛рд▓ рдкрд░ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рдЖрд╢реНрдЪрд░реНрдп рдирд╣реАрдВ рд╣реЛрдЧрд╛ рдХрд┐ рдЗрддрдиреА рдЫреЛрдЯреА рдлрд╛рдЗрд▓реЗрдВ рдХреНрдпреЛрдВ рд╣реИрдВ))
рдЕрдм рдЪрд▓рд┐рдП рдордЬрд╝реЗрджрд╛рд░ рд╣рд┐рд╕реНрд╕реЗ рдкрд░ рдЖрддреЗ рд╣реИрдВред рдЯрд╛рд░реЗрдВрдЯрдпреБрд▓рд╛ рдХреЛ рдХреЗрд╡рд▓ рдЕрдиреБрдХреНрд░рдорд┐рдд рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ, рдФрд░ рдпрд╣ рдЙрд╕рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рдХрд┐ рдХреНрдпрд╛ рдмреЗрд╡рдХреВрдл рд╣реЛрдЧрд╛ рдФрд░ рдпрд╣ рдХрд┐рд╕ рдЖрдХрд╛рд░ рдХрд╛ рд╣реЛрдЧрд╛ред рджрд░рдЕрд╕рд▓, рдХреЙрдиреНрдлрд┐рдЧрд░ рдореЗрдВ рд╣рдо рдХреЗрд╡рд▓ рдЗрдВрдбреЗрдХреНрд╕ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддреЗ рд╣реИрдВред рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рдЕрдзрд┐рдХ рд╡рд┐рд╡рд░рдг рдкреНрд░рдХрд╛рд░ рдХреЗ рдЕрдиреБрдХреНрд░рдорд┐рддреЛрдВ рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдореБрдЦреНрдп рд╕реЗ: рдЬрдм рдПрдХ рд╕реВрдЪрдХрд╛рдВрдХ рдЪреБрдирддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдпрд╣ рд╕рдордЭрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХреНрдпрд╛ рд╣реИред рдПрдЪрдПрдПрд╕рдПрдЪ рд╕реВрдЪрдХрд╛рдВрдХ рдЧреИрд░-рдЕрджреНрд╡рд┐рддреАрдп рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдЧреИрд░-рд╡рд┐рд╢рд┐рд╖реНрдЯ рдореВрд▓реНрдпреЛрдВ рджреНрд╡рд╛рд░рд╛ рдХреНрд░рдордмрджреНрдз рд╕реВрдЪреА рдХреЗ рдЖрдпреЛрдЬрди рдХреЗ рд▓рд┐рдП TREE рдЕрдиреБрдХреНрд░рдорд┐рдд рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реИред рд╕реВрдЪрдХрд╛рдВрдХ рднреА рд╕рдордЧреНрд░ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рдкреНрд░рддреНрдпреЗрдХ рд╕реНрдерд╛рди рдХреЗ рд▓рд┐рдП рд╕реВрдЪрдХрд╛рдВрдХ рдХрд╛ рд╡рд░реНрдгрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдХрдИ рд╕реНрдерд╛рди рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред
рдХреБрд▓: рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВ рдХрд┐ рд╣рдореЗрдВ 5 рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рд╕реНрдерд╛рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдкрд╣рд▓рд╛ рдХреНрд╖реЗрддреНрд░ рдЧреИрд░-рдЕрджреНрд╡рд┐рддреАрдп рд╣реИ, рдЬрдмрдХрд┐ рдкрд╣рд▓рд╛ + рджреВрд╕рд░рд╛ рдХреНрд╖реЗрддреНрд░ рдЕрджреНрд╡рд┐рддреАрдп рд╣реИ; рдЙрди рдкрд░ рд╣рдо рдмрд┐рдВрджреБ рдЪрдпрди рдХрд░реЗрдВрдЧреЗред рдЪреМрдереЗ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рд╕реЙрд░реНрдЯрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдкреИрд░рд╛рдореАрдЯрд░ рд╣реЛрддрд╛ рд╣реИред рдХреБрд▓ рд╣рдо рдПрдХ рдЕрджреНрд╡рд┐рддреАрдп рд╕реВрдЪрдХрд╛рдВрдХ рдмрдирд╛рддреЗ рд╣реИрдВ:
space [0] .index [0] .type = "HASH" # рдЗрдВрдбреЗрдХреНрд╕ рдкреНрд░рдХрд╛рд░
space [0] .index [0] .unique = 1 # рд╡рд┐рд╢рд┐рд╖реНрдЯрддрд╛ рдХрд╛ рд╕рдВрдХреЗрдд
рд╕реНрдкреЗрд╕ [0] .index [0] .key_field [0] .fieldno = 0 # рдЯрдкрд▓ рдореЗрдВ рд░рд┐рдХреЙрд░реНрдб рд╕рдВрдЦреНрдпрд╛
space [0] .index [0] .key_field [0] .type = "NUM" # рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░
space [0] .index [0] .key_field [1] .fieldno = 1
space [0] .index [0] .key_field [1] .type = "NUM"
рд╣рдо рдкрд╣рд▓реЗ рдХреНрд╖реЗрддреНрд░ рджреНрд╡рд╛рд░рд╛ рдЧреИрд░-рдЕрдиреВрдареЗ рд░рд┐рдХреЙрд░реНрдбреЛрдВ рдХреЗ рдПрдХ рдкреИрдХреЗрдЯ рдХреЗ рдирдореВрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реВрдЪрдХрд╛рдВрдХ рдмрдирд╛рддреЗ рд╣реИрдВ:
space [0] .index [1] .type = "TREE"
space [0] .index [1] .unique = 0
space [0] .index [1] .key_field [0] .fieldno = 0
space [0] .index [1] .key_field [0] .type = "NUM"
рдкрд╣рд▓реЗ + рддреАрд╕рд░реЗ рдХреНрд╖реЗрддреНрд░ рджреНрд╡рд╛рд░рд╛ рдХреНрд░рдордмрджреНрдз рд░рд┐рдХреЙрд░реНрдб рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реВрдЪрдХрд╛рдВрдХ рдмрдирд╛рдПрдБ
space [0] .index [2] .type = "TREE"
space [0] .index [2] .unique = 0
space [0] .index [2] .key_field [0] .fieldno = 0
space [0] .index [2] .key_field [0] .type = "NUM"
space [0] .index [2] .key_field [1] .fieldno = 3
space [0] .index [2] .key_field [1] .type = "NUM"
рдЦреИрд░, рдпрд╣ рдордд рднреВрд▓реЛ рдХрд┐ рдЕрдВрддрд░рд┐рдХреНрд╖ рдХреЛ рд╕рдХреНрд░рд┐рдп рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
space [0] .enabled = 1
рдЕрдм рд╣рдо рдПрдХ рдЕрдиреНрдп рд╕реНрдерд╛рди рдХрд╛ рд╡рд░реНрдгрди рдХрд░реЗрдВрдЧреЗ рдЬрд╣рд╛рдВ рджреЛ рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЗ рд╕реНрддреВрдк рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдП рдЬрд╛рдПрдВрдЧреЗ: рдкрд╣рд▓рд╛ рдЕрджреНрд╡рд┐рддреАрдп рд╣реИ, рджреВрд╕рд░рд╛ рдирд╣реАрдВ рд╣реИред рдЗрд╕рдХреЗ рд╕рд░рд▓рддрдо рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдореЗрдВ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХреБрдВрдЬреА рдореВрд▓реНрдп рднрдВрдбрд╛рд░рдг:
space [1] .enabled = 1
space [1] .index [0] .type = "HASH"
space [1] .index [0] .unique = 1
space [1] .index [0] .key_field [0] .fieldno = 0
space [1] .index [0] .key_field [0] .type = "NUM"
рджрд░рдЕрд╕рд▓, рдЗрди рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рд╕рд╛рде, рдЯрд╛рд░реЗрдВрдЯрдпреБрд▓рд╛ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИред рдЖрдкрдХреЛ рднрдВрдбрд╛рд░рдг рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ - рдФрд░ рдЬрд╛рдУред
> ./src/box/tarantool_box --init-storage tarantool/src/box/tarantool_box: space 0 successfully configured tarantool/src/box/tarantool_box: space 1 successfully configured tarantool/src/box/tarantool_box: creating './00000000000000000001.snap.inprogress' tarantool/src/box/tarantool_box: saving snapshot './00000000000000000001.snap' tarantool/src/box/tarantool_box: done
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрдиреНрд╣реЛрдВрдиреЗ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд╕рднреА рдлрд╛рдЗрд▓реЗрдВ рдмрдирд╛рдИрдВ рдЬрд╣рд╛рдВ рд╕реЗ рд╣рдордиреЗ рдЯрд╛рд░реЗрдВрдЯрдпреБрд▓рд╛ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдерд╛ред рдпрджрд┐ рдЖрдк рдЗрд╕реЗ рдмрджрд▓рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдореЗрдВ рдПрдХ рдкреИрд░рд╛рдореАрдЯрд░ wirk_dir рд╣реИ, рдЬрд┐рд╕реЗ рдЖрдк рдЕрдкрдиреА рдЗрдЪреНрдЫрд╛рдиреБрд╕рд╛рд░ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЙрд╕рдХреЗ рдмрд╛рдж рд╣рдо рд╕рд░реНрд╡рд░ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ:
> ./src/box/tarantool_box --background > ps xa | grep tarantool 5627 ?? Us 0:10.55 tarantool/src/box/tarantool_box --background
рд╣реБрд░реНрд░реЗ! рдЖрдк рдбреЗрдЯрд╛ рдХреЛ рднрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рд╕рд╣реА рдХреНрд░рдо рдореЗрдВ рдФрд░ рдЖрд╡рд╢реНрдпрдХ рдорд╛рдирджрдВрдбреЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдирд┐рдХрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВред
рд╢реБрд░реБрдЖрдд рд╣реЛ рд░рд╣реА рд╣реИ
рдХрдВрд╕реЛрд▓ рдХреНрд▓рд╛рдЗрдВрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВ рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдХрдорд╛рдВрдб рдХреЛ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдкреЗрдВрдЯ рдХрд░реЗрдВ рдореИрдВ рдЕрдм рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛ - рдпрд╣ рдПрдХ рдЕрд▓рдЧ рд▓реЗрдЦ рдХрд╛ рд╡рд┐рд╖рдп рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдФрд░ рдЕрдм рдореИрдВ рд▓реВрдЖ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдиреНрджреНрд░рд┐рдд рдХрд░реВрдВрдЧрд╛ред рджрд┐рд▓рдЪрд╕реНрдк рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ, рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдВ рд╣реИрдВред рдЙрдирдХреА рдорджрдж рд╕реЗ, рдЖрдк рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рддрд░реНрдХ рдХреЗ рд╕рд╛рде рдХреБрдЫ "рдмреНрд▓реИрдХ рдмреЙрдХреНрд╕" рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рдФрд░ рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рдХреЛрдб рдХреЗ рдмрд╛рдХреА рд╣рд┐рд╕реНрд╕реЛрдВ рдХреЛ рдмрджрд▓ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рддрдХрдиреАрдХреА рдореЙрдбрд▓ рдХреЛ рд╡реНрдпрд╡рд╕рд╛рдп рдореЙрдбрд▓ рд╕реЗ рдЕрд▓рдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд▓реБрдЖ рдПрдХ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╕рдВрдХреЗрдд рд╣реИ рдХрд┐ рд╡реНрдпрд╛рдкрд╛рд░ рддрд░реНрдХ рд╡рд╣рд╛рдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдЗрд╕рд▓рд┐рдП, рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдкрд░ рдЯрд╛рд░реЗрдВрдЯрдпреБрд▓рд╛ init.lua рдлрд╝рд╛рдЗрд▓ рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╣рдо рдЕрдкрдиреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдЬреЛрдбрд╝ рджреЗрдВрдЧреЗред
рд▓реЗрдЦрди рдХрд╛рд░реНрдп рдХрд░рддреЗ рд╕рдордп, рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░реЛрдВ рдкрд░ рд╡рд┐рд╢реЗрд╖ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдерд╛, рд▓реБрдЖ рдореЗрдВ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИрдВ рдФрд░ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкрд░реНрд▓ рдореЗрдВ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреА рдЦрд╝рд╛рд╕рд┐рдпрдд рдХреЗ рдХрд╛рд░рдг, рд▓рд╛рд░ рдореЗрдВ рдкрд░реНрд▓ рд╕реЗ рдЕрдВрдХ рдмрд┐рд▓реНрдХреБрд▓ рднреА рдирд╣реАрдВ рдЖрддреЗ рд╣реИрдВ рдЬреИрд╕реЗ рд╡реЗ рдХрдВрд╕реЛрд▓ рдХреНрд▓рд╛рдЗрдВрдЯ рд╕реЗ рдЖрддреЗ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рдЬрдм рддрдХ рдЯрд╛рд░реЗрдВрдЯрдпреБрд▓рд╛ рдореЗрдВ рдПрдбреЗрдкреНрдЯрд░ рдореЗрдВ рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░реЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЖрдк рд╣рдореЗрд╢рд╛ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЬрд╣рд╛рдВ рдЖрдкрдХреЛ рдЙрдиреНрд╣реЗрдВ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдореЗрдВ рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред
рд╣рдо рдПрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд▓рд┐рдЦреЗрдВрдЧреЗ рдЬреЛ рдПрдХ рдлрд╝реАрд▓реНрдб рдХреЛ рджреВрд╕рд░реЗ рдлрд╝реАрд▓реНрдб рдХреЗ рдорд╛рди рдФрд░ рд╡рд░реНрддрдорд╛рди рджрд┐рдирд╛рдВрдХ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдмрджрд▓ рджреЗрдЧреАред рдПрдХ рдмрд╣реБрдд рд╣реА рдорд╛рдирдХ рдХрд╛рд░реНрдп, рдЬреЛ, рдПрдХ рдирд┐рдпрдо рдХреЗ рд░реВрдк рдореЗрдВ, рдХреЛрдб рдореЗрдВ "рдзреЛрдпрд╛ рдЧрдпрд╛" рд╣реИ, рдФрд░ рдЕрдЧрд▓реЗ рд░реАрдлреИрдХреНрдЯрд░рд┐рдВрдЧ рдХреЗ рджреМрд░рд╛рди, рдЗрд╕ рддрд░реНрдХ рдореЗрдВ рддрд╛рд░реАрдЦреЛрдВ рдХреА рдЧрдгрдирд╛ рдХреЗ рд╕рд╛рде рдПрдХ рддреНрд░реБрдЯрд┐ рдЙрддреНрдкрдиреНрди рд╣реЛрддреА рд╣реИред
function increase_score(id, id2) local id = tonumber(id) тАФ local fid = tonumber(id2) if(id == nil or fid == nil) then тАФ return false end
рдХреБрд▓ рдорд┐рд▓рд╛рдХрд░, рдпрд╣ рдорд╛рдирд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдмрд╛рд╣рд░реА рд╡реНрдпрд╡рд╕реНрдерд╛ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рдПрдХ рдкрд░рдорд╛рдгреБ рдХреНрд░рд┐рдпрд╛ рд╣реИред
рдЕрдм рдкреНрд░рджрд░реНрд╢рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рд╢рдмреНрджред рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреА рдХреЙрд▓ рдЖрд╡реГрддреНрддрд┐ 20,000 рдЖрд░рдкреАрдПрд╕ рддрдХ рдкрд╣реБрдВрдЪ рдЧрдИ рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдХрдВрдХрдбрд╝ рдХрд╛ рднрд╛рд░ 67% рдерд╛ред
рдЖрдЧреЗ, рдореИрдВ рдЖрдкрдХреЛ рдПрдХ рдФрд░ рдЕрдЪреНрдЫрд╛рдИ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрддрд╛рддрд╛ рд╣реВрдБред рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рдЧрдгрдирд╛ рдХреЗ рд╕рд╛рде рдЕрджреНрдпрддрди рдЕрдЪреНрдЫрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рдирд┐рдпрдо рдХреЗ рд░реВрдк рдореЗрдВ, рдЕрджреНрдпрддрди рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХрд╛рд░реНрдп рдХрд╣рддрд╛ рд╣реИ рдХрд┐ рдЗрди рдЖрдВрдХрдбрд╝реЛрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░, рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЙрдиреНрд╣реЗрдВ рдХреНрд░рдордмрджреНрдз рдХреНрд░рдо рдореЗрдВ рднреЗрдЬрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдХрд┐рд╕реА рдмрд╛рд╣рд░реА рдкреНрд░рдгрд╛рд▓реА рдХреЛ рдЫрд╛рдВрдЯрдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рдФрд░ рдЦреБрдж рдХреЛ рдЫрд╛рдВрдЯрдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ, рд╣рдо рдЕрдиреБрдХреНрд░рдорд┐рдд рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред
function get_top(uid) local id = tonumber(uid) тАФ if(id == nil) then
рдЗрд╕рд▓рд┐рдП рд╣рдордиреЗ рдПрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдмрдирд╛рдИ, рдЬреЛ рдЗрдВрдбреЗрдХреНрд╕ рдХреА рдкреНрд░рд╕рдиреНрдирддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рд╣рдореЗрдВ рдЕрд╡рд░реЛрд╣реА рдХреНрд░рдо рдореЗрдВ рдХреНрд░рдордмрджреНрдз рдбрдореА рдХреА рд╕реВрдЪреА рджреЗрддрд╛ рд╣реИред рдЫрдБрдЯрд╛рдИ рдХреНрд░рдо рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ, рдЖрдк box.index.LE рдкреНрд░рд▓реЗрдЦрди рдЦреЛрдЬ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рдЕрдВрддрд░ рд╣реИ рдФрд░ рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдФрд░ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг: рдЧреНрд░рд╛рд╣рдХ рд╕реЗ, рдЗрди рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рдЗрд╕ рддрд░рд╣ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ:
> lua increase_score(1,2)
рдФрд░
> lua get_top(1)
рдЕрдЧрд▓реЗ рд▓реЗрдЦ рдореЗрдВ рдореИрдВ рд▓рд┐рдЦреВрдВрдЧрд╛ рдХрд┐ рдХреИрд╕реЗ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рдЗрд╕ рд╕рднреА рдЕрдЪреНрдЫреЗ рдХреЗ рд╕рд╛рде рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдкрд░реНрд▓ рд╕реЗ рдЯрд╛рд░реЗрдВрдЯрдпреБрд▓рд╛ рдХреЗ рд╕рд╛рде рд╕рдВрд╡рд╛рдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбреНрд░рд╛рдЗрд╡рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рджрд┐рдЦрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред