Trick's - გაკვეთილები [5]
Games - თამაშები [31]
Movie's - დემოები [18]
Model's - იარაღის სკინები [28]
Model's - იარაღის სკინები [8]
CT/T Model's - მოდელები [4]
Sprites - ეფექტები [4]
Logo - ლოგოები [9]
Backgrounds - ფონები [5]
Soft - პროგრამები [23]
Configs - კონფიგები [73]
Cheat's - ჩეთები [8]
AntiCheat - ანტიჩეთი [31]
Patch - პაჩები [4]
Amx - მოდები [16]
Plugin's - პლაგინები [48]
სხვადასხვა..... [5]
Players/მოთამაშეები [6]
სერვერები [1]
როგორ დავამატოთ სიახ... [0]
Mobile - მობილურისთვის [0]
ჩვენი გამოკითხვა
როგორ არის ჩვენი საიტი
Total of answers: 18
სტატისტიკა

სულ ონლაინში: 1
სტუმარი: 1
მომხმარებელი: 0
შესვლის ფორმა
რეკლამა
რეკლამა
რეკლამა
რეკლამა
რეკლამა
მთავარი » 2013 » სურათის ლინკი-3 » 23 » როგორ შევქნათ პლუგინი !
21.44
როგორ შევქნათ პლუგინი !
ნაწილი 1:

პლუგინის შესაქმნელად დაგვбѓირდება:
1. ტვინი вЂ" 1 ცალი
2. თვალები вЂ" 2 ცალი
3. ხელები вЂ" 2 ცალი
4. პროგრამა AMXX Studio

მაშ ასე. დავიწყოთ უმარტივესი პლუგინით: T ვირუსი

გახსენით პროგრამა AMXX Studio



იპოვეთ წარწერა:
#define PLUGIN "New Plug-In"
#define VERSION "1.0"
#define AUTHOR "author"

"New Plug-In"-ის მაგივრად ჩაწერეთ პლუგინის სახელი. ამ შემთხვევაში T Virus
"1.0"-ის მაგივრად შეგიძლიათ ჩაწეროთ პლუგინის ვერსია. ეს როცა განაახლებთ და ახალი ვერსია გექნებათ
"author"-ის მაგივრად უნდა ჩაწეროთ ავტორის სახელი

იქ ასევე იქნება ასეთი წარწერა:
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)

// Add your code here...
}

მანდ ჯერ არაფერს არ ვწერთ, ამ პლუგინში ეგ არ დაგვбѓირდება

ახლა დააбѓირეთ Public Function-ის ღილაკს:

ესВ ლინკВ სურათისВ ნახეთ: http://i053.radikal.ru/1201/05/3dc9440daa8f.jpg

გაჩნდება ასეთი რამ:







"Function"-ის მაგივრად ვწერთ client_connect და გვერდზე ფრჩხილებში ვწერთ id.
ანუ ასე უნდა გამოვიდეს:







ფუნქცია client_connect(id) აფიქსირებს ყველა მოთამაშეს სერვერზე შემოსვლისას. თუ რა მოუვათ ამ მოთამაშეებს შემოსვლისას ეგ უნდა ჩავწეროთ { } вЂ" ამათ შორის. ანუ ამ შემთხვევაში ვაიძულებთ რომ თავად დაიყენონ ღილაკებზე სერვერის ჩატში გაბაზრება, შემდეგი ბრძანებით:
client_cmd(id, "bind t ^"say shemodit all, dzaan magari serveria! ip: 0.0.0.0:0000^"")

"shemodit all, dzaan magari serveria! ip: 0.0.0.0:0000" ამის მაგივრად რაც გინდათ ის დაწერეთ

უნდა მივიღოთ ასეთი რამ:

ესВ ლინკВ სურათისВ ნახეთ: http://s56.radikal.ru/i153/1201/5a/a1423632815f.jpg

შეგიძლიათ სხვა ღილაკებზეც დაუყენოთ ეს "ვირუსი":

ესВ ლინკВ სურათისВ ნახეთ: http://s61.radikal.ru/i172/1201/c5/5aa0a2694581.jpg

მორჩა! T ვირუსის კოდი მზადაა. ახლა ეს კოდი უნდა შეინახოთ, დააбѓირეთ ზემოთ, შენახვის ღილაკს:



ახლა თქვენ გაქვთ პლუგინის კოდი ანუ .sma ფაილი. მაგრამ ეს ჯერ არ არის პლუგინი, ეს მხოლოდ მისი კოდია. ახლა ეს კოდი უნდა დააკომპლიროთ რომ მიიღოთ პლუგინი. ახლა გასწავლით როგორ უნდა დააკომპლიროთ პლუგინის კოდი

ამისათვის დაგვбѓირდება რაიმე ნორმალური AMX

1. ჩააგდეთ თქვენი გაკეთებული .sma ფაილი ამ AMX-ის addons/amxmodx/scripting ფოლდერში
2. აიღეთ თქვენი .sma ფაილი და დაადეთ ფაილ compile.exe (რომელიც იმავე ფოლდერში უნდა იყოს)
3. გამოჩნდება ფანჯარა, არ დახუროთ სანამ არ დაეწერება Press Enter to Exit
4. ეს რომ დაეწერება (Press Enter to exit) დააбѓირეთ Enter-ს და მიეცით Refresh
5. გაჩნდება ახალი ფოლდერი სახელად compiled, გახსენით ეს ფოლდერი და იქ იპოვით უკვე დაკომპლირებულ კოდს, ანუ პლუგინს (.amxx ფაილი) რომელიც მზადაა სერვერზე დასაყენებლად

გილოცავთ! თქვენ ისწავლეთ პლუგინების კოდების დაკომპლირება და T ვირუსის შექმნაც


ნაწილი 2:

რა არის .inc ფაილებიი ეს არის include ფაილები რომლებიც არიან თქვენი AMX-ის addons/amxmodx/scripting/include ფოლდერში. თუ ასეთი ფოლდერი თქვენს AMX-ში არ არის ან თუ ფოლდერი ცარიელია, მაშინ ეგ AMX არაფრად არ გამოგადგებათ. სხვადასხვა include ფაილი შეიცავს სხვადასხვა კოდებს. ახლა განვიხილავთ include ფაილს "fun". ეს ფაილი შეიცავს კოდებს, რომლითაც შეგიძლიათ: მისცეთ მოთამაშეს სიცოცხლე, ბრონი-бѓџილეტი, იარაღი, ფრაგი, შესაძლებლობა გავიდეს კედლებში (No Clip), გახადოთ უკვდავი, უხილავი და ასე შემდეგ.

იმისათვის რომ ეს კოდები ჩართოთ თქვენს პლუგინში, უნდა შეიტანოთ ეს ფაილი "fun". გახსენით AMXX Studio, ზემოთ იქნება წარწერა
#include amxmodx
#include amxmisc

ამას დაამატეთ ასეთი წარწერა: #include fun

ანუ უნდა გამოვიდეს ასე:

ესВ ლინკВ სურათისВ ნახეთ: http://s61.radikal.ru/i172/1201/ef/1e3d2098937f.jpg

დავუშვათ, თქვენ გინდათ ისეთი პლუგინი, რომ როდესაც ადმინი დაწერს ჩატში /sicocxle მას ქონდეს ისევ 100 HP. დავიწყოთ:
ჯერ უნდა დავარეგისტრიროთ ეს ბრძანება (say /sicocxle) კონსოლში. ამისათვის plugin_init-ში ვწერთ: register_clcmd("say /sicocxle", "cmd_sicocxle")

ესВ ლინკВ სურათისВ ნახეთ: http://s40.radikal.ru/i088/1002/ef/23070b480b7f.jpg



cmd_sicocxle вЂ" ალბათ გაინტერესებთ ეს რა არის. ახლა უნდა შევქმნათ ახალი Public Function რომელსაც დავარქმევთ ასეთ სახელს (cmd_sicocxle) და იქ ჩავწერთ თუ რა მოხდება როდესაც ვინმე ჩატში დაწერს /sicocxle-ს. ახლა ვაწვებით Public Function-ის ღილაკს








შექმნილ Public Function-ს დაარქვით სახელი cmd_sicocxle და ფრჩხილებში ჩაწერეთ id

ესВ ლინკВ სურათისВ ნახეთ: http://i076.radikal.ru/1201/8c/623b867ed73d.jpg

სიცოცხლის დაყენების კოდია: set_user_health(). ახლა ჩავწეროთ ეს კოდი ამ ფუნქციაში: set_user_health(id, 100)

ესВ ლინკВ სურათისВ ნახეთ: http://i031.radikal.ru/1201/3b/a17a80fca497.jpg

id, ანუ ის მოთამაშე ვინაც ჩატში დაწერა /sicocxle. 100-ის მაგივრად შეგიძლიათ დაწეროთ მილიონი (1000000) და ამდენი სიცოცხლე ექნება იმას ვინც ჩატში დაწერს /sicocxle-ს =))

მაგრამ მოიცადეთ! ასე რომ გავაკეთოთ სერვერზე ყველა მოთამაშეს შეეძლება სიცოცხლის აღება, ასე რომ ჯერ უნდა შევამოწმოთ არის თუ არა მოთამაშე ადმინი

ესВ ლინკВ სურათისВ ნახეთ: http://s017.radikal.ru/i443/1201/df/e7862cfc4471.jpg

is_user_admin ნიშნავს: "თუ მოთამაშე არის ადმინი", ხოლო წინ დაწერილი ძახილის ნიშანი ნიშნავს უარყოფას, ანუ ამ შემთხვევაში if (!is_user_admin(id)) რომ გადმოვთარგმნოთ იქნება: თუ მოთამაშე არ არის ადმინი. ფრჩხილებში ჩაწერილი id ამ შემთხვევაში, აღნიშნავს იმას რომ ამოწმებს იმ მოთამაშეს ვინაც ჩატში დაწერა /sicocxle, ხოლო თუ ის არ არის ადმინი მაშინ return PLUGIN_HANDLED, ანუ პლუგინი ამთავრებს მუშაობას და უბრუნდება საწყის მდგომარეობას + ჩატში დაწერილი /sicocxle არ გამოჩნდება, ასე რომ ვერავინ ვერ დაინახავს და ვერ მიხვდება რომ ეს პლუგინი გაქვთ დაყენებული სერვერზე.

მორჩა! პლუგინის კოდი მზადაა. ახლა უნდა დააკომპლიროთ.

include ფაილ "fun"-ის რამოდენიმე კოდი კოდი:

1. set_user_armor(id, 100) вЂ" ბრონის დაყენება, 100-ის მაგივრად რამდენსაც ჩაწერთ იმდენი ექნება ბრონი
2. set_user_frags(id, 100) вЂ" ფრაგის დაყენება, 100-ის მაგივრად რამდენსაც ჩაწერთ იმდენი ექნება ფრაგი
3. set_user_godmode(id, 1) вЂ" უკვდავობის ჩართვა
4. set_user_godmode(id, 0) вЂ" უკვდავობის გამორთვა
5. set_user_health(id, 100) вЂ" სიცოცხლის მომატება, 100-ის მაგივრად რამდენსაც ჩაწერთ იმდენი ექნება სიცოცხლე
6. set_user_noclip(id, 1) вЂ" კედლებში გასვლის შესაძლებლობის ჩართვა
7. set_user_noclip(id, 0) - კედლებში გასვლის შესაძლებლობის გამორთვა


ნაწილი 3:

წინა ნაწილში თქვენ დაარეგისტრირეთ ბრძანება say /sicocxle ანუ ამის ჩატში დაწერის შემდეგ სიცოცხლე გემატებოდათ. ახლა ცოტა გავართულოთ. ახლა დავარეგისტრირებთ ისეთ ბრძანებას რომ ადმინს შეეძლოს ნებისმიერ მოთამაშეს მოუმატოს სიცოცხლე. ამ ბრძანებას ექნება 1 არგუმენტი: მოთამაშის სახელი. ანუ amx_sicocxle “saxeli” და ვის სახელსაც ჩაწერთ იმას მოემატება სიცოცხლე.

დავიწყოთ

როგორც წინა ნაწილში გავაკეთეთ, ახლაც უნდა ჩავრთოთ პლუგინში fun-ის კოდები (#include fun)

ესВ ლინკВ სურათისВ ნახეთ: http://s017.radikal.ru/i414/1201/61/69cbd20ad616.jpg

როგორც სურათზე ხედავთ არის ცვლილებები რაც წინა ნაწილში არ იყო. ახლა განვმარტავ

register_clcmd ჩანაცვლდა register_concmd-თი, რა განსხვავებაა მათ შორისი

register_clcmd არის ისეთი ბრძანების დარეგისტრირება რომელსაც სერვერის კონსოლში ვერ გამოიყენებთ, ანუ მთავარმა ადმინა რომ ჩაწეროს ესეთი ბრძანება სერვერის კონსოლში (hlds.exe) არაფერი არ მოხდება

register_concmd არის ისეთი ბრძანების დარეგისტრირება რომლის გამოყენებას შეძლებთ სერვერის კონსოლშიც, ანუ მთავარი ადმინი სერვერზე რომ არ იყოს შესული მაინც შეეძლება სხვას მოუმატოს სიცოცხლე ბრძანების სერვერის კონსოლში გაშვებით (amx_sicocxle "saxeli")

როგორც ხედავთ დამატებულია ასევე ADMIN_SLAY, ეს იმას ნიშნავს რომ მხოლოდ იმ მოთამაშეებს შეეძლებათ ამ ბრძანების გამოყენება რომლებთაც აქვთ ADMIN_SLAY (ფლაგი “c”) ანუ იმ მოთამაშეებს რომლებთაც შეუძლიათ სხვა მოთამაშეს "slay" გაუკეთონ ანუ მოკლან (ჩვეულებრივ, მოთამაშეებს რომლებთაც ეს შეუძლიათ, ადმინებს უძახიან ხოლმე xD). წინა ნაწილში სხვაგვარად შევამოწმეთ მოთამაშე იყო თუ არა ადმინი (if(!is_user_admin(id)) იმიტომ რომ იმ ბრძანებას არ ქონდა არც-ერთი არგუმენტი, ამ ბრძანებას კი აქვს ერთი არგუმენტი (მოთამაშის სახელი უნდა ჩაწეროთ ამ ბრძანების გასწვრივ: amx_sicocxle saxeli)

შემდეგ არის პლუგინის აღწერა. კონსოლში რომ ჩაწეროთ amx_help იქ დაიწერება იმ ბრძანებების ჩამონათვალი რომლებიც თქვენთვის არის ხელმისაწვდომი. ჩვეულებრივ ამ ბრძანებების გასწვრივ წერია აღწერა, რომ გაიგოთ რომელი ბრძანება რას აკეთებს. ხოდა ამ ბრძანების გასწვრივ იქნება ეს აღწერა

ახლა შევქმნათ Public Function, დავარქვათ cmd_sicocxle (ფრჩხილებში ისევ id-ს ვწერთ) და ჩავწეროთ თუ რა მოხდება ამ ბრძანების კონსოლში ჩაწერის შემდეგ

ესВ ლინკВ სურათისВ ნახეთ: http://s017.radikal.ru/i400/1201/38/4d3551019450.jpg

ახლა შევქმნათ ასეთი ცვლადი: Argument[32]. ეს ცვალდი შევქმნათ ასე: new Argument[32]

შემდეგ წავიკითხოთ ეს ცვლადი როგორც არგუმენტი: read_argv(1, Argument, 31)

ესВ ლინკВ სურათისВ ნახეთ: http://s017.radikal.ru/i400/1201/38/4d3551019450.jpg

ახლა შევქმნათ კიდევ ერთი ცვლადი და დავარქვათ mizani და ამ ცვლადს მივანიбѓოთ სამიზნის მნიშვნელობა (სამიზნეში ვგულისხმობ იმ მოთმაშეს ვისაც უნდა მოემატოს სიცოცხლე)

ესВ ლინკВ სურათისВ ნახეთ: http://s54.radikal.ru/i143/1201/43/66cec00f90b9.jpg

სურათზე ხედავთ ახალ "რაღაცებს", CMDTARGET_ALLOW_SELF და CMDTARGET_ONLY_ALIVE.

CMDTARGET_ALLOW_SELF ნიშნავს რომ ნებადართულია სამიზნე იყოს თქვენი თავი, ანუ თქვენი სახელი რომ ჩაწეროთ თქვენ მოგემატებათ სიცოცხლე

CMDTARGET_ONLY_ALIVE ნიშნავს რომ მხოლოდ ცოცხალი მოთამაშეები შეიძლება იყვნენ სამიზნეები (აბა მკვდარს რად უნდა სიცოცხლის მომატება ხო აღარ გაცოცხლდებაი o.O)

შემდეგ ვწერთ if (mizani) და ვხსნით ახალ ფრჩხილებს კი არა და რა ჯანდაბაც ქვიათ ამათ вЂ"> { } და იქ ჩავწერთ რა მოხდება თუ მითითებული არგუმენტი დაემთხვა რომელიმე მოთამაშის სახელს, ანუ ამ შემთხვევაში მოვუმატებთ სიცოცხლეს

ესВ ლინკВ სურათისВ ნახეთ: http://i045.radikal.ru/1201/99/fd8f51d6d3bc.jpg

set_user_health იცით უკვე მეორე ნაწილიდან არის სიცოცხლის დაყენების კოდი, მის ინდექსად აქ წერია mizani ანუ ის მოთამაშე ვისაც მოემატება სიცოცხლე, ეს იქნება ის ვის სახელსაც ჩაწერთ, 100-ის მაგივრად რამდენსაც ჩაწერთ იმდენი სიცოცხლე ექნება.

client_print არის მესიჯის გაგზავნა, ინდექსად წერია mizani ანუ ის, თუ ვისთან გამოჩნდება ეს მესიჯი, ანუ ამ შემთხვევაში გამოჩნდება იმასთან ვის სახელსაც ჩაწერთ, print_chat ნიშნავს რომ მესიჯი დაიბეбѓდება ჩატში (რომ დაწეროთ print_console, მაშინ მესიჯი დაიბეбѓდება კონსოლში) შემდეგ ბრбѓყალებში წერია თუ რა მესიჯი დაიბეбѓდება და ბოლოს return PLUGIN_HANDLED вЂ" პლუგინი ამთავრებს მუშაობას.

მორჩა!

გილოცავთ! თქვენ კიდევ გაიგეთ რაღაც Pawn Language-ის შესახებ.

P.S
პლუგინების პროგრამირების ე


AVToRi: Error
კატეგორია: Trick's - გაკვეთილები | ნანახია: 683 | დაამატა: NOKIA | რეიტინგი: 0.0/0
სულ კომენტარები: 0
კომენტარის დამატება შეუძლიათ მხოლოდ დარეგისტრირებულ მომხმარებლებს
[ რეგისტრაცია | შესვლა ]
«  სურათის ლინკი-3 2013  »
ორსამოთხხუთპარშაბკვ
 123456
78910111213
14151617181920
21222324252627
28293031
ჩანაწერების არქივი
საიტის მეგობრები
რეკლამა
რეკლამა
რეკლამა
რეკლამა