Jump to content
GIGN Forum

[pamaciba]kaa Uztaisiit Amxx Pluginu?


Recommended Posts

Amx Mod X

Pamācība, kā uztaisīt AMXX Pluginu

PART 1 ?Basics?

By Sh!nE*

Saturs

Ievads............................

AMXMODX Studio.............

Pamati............................

First PLUGIN....................

Kompilēšana...................

CS weapons....................

Kā pareizi Atvērt,Aizvērt..

Mazs ievadiņš:

Nu šo pamācību es izdomāju uzrakstīt tiem, kas grib uztaisīt savu AMXX Pluginu...

Nu es šo ?Mākslu? esmu apguvis 

Cerems, ka es(Sh!nE*) varēšu jums izskaidrot, kā uztaisīt vienkāršu AMXX pluginu.

1.Vispirms jums jaizdomā, kā jūs taisāties taisīt savus Pluginu. Ar AMXMODX Studio vai ar Notepad. Atsķirība ir tāda, ka ar Studio ir labāk jo tas visas funkcijas (u.c) parāda ar krāsām. Jums būs vieglāk saprast. Ar notepad arī var rakstīt. AMXMODX Studio būs jāinstalē. Ja ar NotePad jūs taisīsiet pluginus tad izlaidiet sadaļu AMXMODX.

1.1 AMXMODX

Lai sāktu taisīt pluginus ar AMX Studio jums vispirms ir jābut Amx Mod X instalētam.(Ja jums ir serveris uz PC ar AMX, tad jums jau ir instalācija) Ja jums nav, tad ejiet:

Šeit

un nokačājiet ?AMX Mod X Full Installer?, instalējiet. Kad pabeidza ieķeksējiet ?Run Installer Now?(vai kaut kā tā) un spiediet Finish. Tad instalējiet AMX uz sava Servera vai CS.

INFO!!! JA JUMS JAU IR CS ar AMX vai SERVERIS ar AMX >>> TAD ŠIS VISS NAV VAJADZĪGS!!!

Tagad jums uz desktopa vajadzētu būt ikonai ?AMX Mod X Studio?(ja nav tad ejiet C:\Program Files\Amx mod X\ amxxstudio\)(Tas ir atkarīgs kur jūs instalējāt Amx Mod X(NEJAU SERVERIM)) un uztaisiet failam ?AMXX_Studio.exe? shortcut uz desktopa -> Rename ?AMX Mod X Studio?\

Nu mēs varam sākt konfigurēt AMX Studio:

Veram viņu vaļā.

Spiežam izvēlnē -> Tools -> Settings -> Compiler

Compiler Settings:

(Compiler) amxxpc.exe ? Rakstam:

Nu man ir šādi:

C:\Program Files\ZombieMod\cstrike\addons\amxmodx\scripting\amxxpc.exe

Jums tur jānorāda:

<Disks>\<CS instalācija>\addons\amxmodx\scripting\amxxpc.exe

Default output directory

Nu man ir šādi:

C:\Program Files\ZombieMod\cstrike\addons\amxmodx\plugins\

Te jums vajag norādīt vietu, kur pēc kompilēšanas tiks ielikts plugins(.amxx)

Half-Life Directory:

Half-Life Executable:

Nu man ir šādi:

C:\Program Files\ZombieMod\hl.exe

Te jums jānorāda HL.EXE fails. Piemēram:

C:\Program Files\Valve \hl.exe

Amx Mod X Directory on listen Server:

Nu man ir šadi:

C:\Program Files\ZombieMod\cstrike\addons\amxmodx\

Te jums jānorāda AMXMODX mape

Tagad droši spiediet OK!

2.Pawn!!!

Vispirms sāksim ar pašiem ?Basics?

2.1 PAMATI

KOMENTĀRI

Daudzi pluginu taisītāji izmanto ?Komentārus?

Komentārus jāraksta šādi...

//Viss texts ko raksta pec // ir komentārs. Nu piemēram:

SKRIPTS //Šeit sākas plugins. VAI piemēram:

//Šeit sākas plugins

SKRIPTS

Amx lasot pluginu Izlaiž visas Rindiņas, kas sākās ar // -> NEVAR IZMANTOT GARUMZĪMES

//Šādi ir nepareizi SKRIPTS

SKRIPTS //Šādi ir pareizi

//Šādi ir pareizi

//

//

//Šādi ir pareizi

Komentārus izmanto, ja tev kaut kas skriptā jālabo. Pierakstot komentāru tu to vietu ātri varēsi atrast.

NEDAUDZ PAR PAWN VALODU

Rakstot AMX Mod X pluginu tev ir jāzin vismaz pamati No PAWN valodas. Jo visus pluginus būs jāraksta PAWN valodā.

//Šis ir komentārs

new a            //Izveido jaunu mainīgo ?A?.

new b=5          //Izveido jaunu mainīgo ?B? un piešķir tam 5.

new c=5.0        //PILNĪGI NEPAREIZI!!! 5.0 nav vesels skaitlis.

new d="lol"      //?lol? nav skaitlis, tas ir pilnīgi nepareizi!

new e,f,g,h      //Var arī izveidot vairākus mainīgos uz vienas //līnijas.

new x=7, y=3    //Šādi arī var.

//FLOATS ? DECIMĀLDAĻAS.

new Float:a      //Izveido jaunu Float ?A?

new Float:b=5.3  //Float ir paredzēts saturēt decimāl-daļas.

new Float:c=5    //Var šādi rakstīt, bet kompilers izmetīs ?Warning?

new Float:d=?lol? //?lol? nav skaitlis, tas ir pilnīgi nepareizi!

new Float:var2 = 5.0 

new Float:var3 = 1.0*5 //var3 tagad ir 5.0

//Bool ? Jā vai Nē(True or False).

new bool:tests        //Izveidos jaunu bool ? tests, kas automātiski //būs NĒ(false)

new bool:tests2=true  //Izveidos jaunu bool ? tests2, kas ir //JĀ(true)

//Arrays ? Vairāki skaitļi vienā mainīgajā.

//Šis izveidos jaunu mainīgo ?Players? ar 32 brīvām vietām

new Players[32]

//Tu vari ievietot jebkādu veselu skaitli, jebkurā no ?Players? //vietām.

//Vietas = 0-[n-1], tas nozīme, ka skaitļi tiks salikti vietās no

//0-31

//Tas ir svarīgi, lai skaitļi būtu no 0 līdz n-1

new Skaitli[4] = {0,1,2,3}

//Šādi arī var.

new Float:Numbers[4] = {0.0, 1.2, 2.4, 3.8}

//STRINGS(nejau tas, ko jūs domājiet biggrin.gif)

//STRING ? BURTI UN SIMBOLI

new Stringi[] = "lol" //Šis piešķirs ?Stringi? ? ?lol?

//

new ManiStringi[4]

ManiStringi[0] = ?L?

ManiStringi[1] = ?O?

ManiStringi[2] = ?L?

ManiStringi[3] = 0

//?ManiStringi[3] = 0? Šādi ir jāraksta, lai AMX atpazītu, ka tas ir //Strings

__________________________

/////////////////////////||

//  Bišku matemātika  //||

/////////////////////////||

//-----------------

new a = 5

a++        //A būs 6

//-----------------

new b = 5

b--        //B būs 4

//-----------------

new a = 5

new b = 6

new c

c = a+b    //C būs 11

//-----------------

//IF, ESLE =

//Ja ...

{  //Ar šo atver IF

kautkas

}  //Ar šo aizver IF

citaadi

{

kautkas

}

//Nu piemērs

if(a == 6)

{

a=9

}

else

{

a=5

}

//Ja A ir vienāds 6, tad A=9. Ja A nav vienāds ar 6, tad A=5.

Nu šie ir tikai pamati par PAWN, IR VĒL ĻOTI DAUDZ... ĻOTI, ĻOTI daudz...

3.Nu tad varam sākt taisīt Pluginus!!!

Zinu, ka bija jālasa diezgan daudz... Un mani nepārsteigtu, ja puse neko no tā nesaprastu. Sāksim ar AMX Mod X plugina Pamatiem...

//Include ? iekļaut.. Par Modules varēsiet izlasīt zemāk

#include <amxmodx> //Šim ir jābūt obligāti ? iekļauj visas pamat-komandas

#define PLUGIN "New Plugin"  //Plugina nosaukums

#define VERSION "1.0"        //Plugina versija, piem. Ja jūs ko izlabojat. Rakstat 1.1

#define AUTHOR "Author"      //Plugina autors ? INFO - jāmaina ir texts, kas atrodās pēdiņās

public plugin_init()        //Ar šo funkciju iesāk skriptus. Tā ir publiskā funkcija. Šeit vajadzētu visus izsaucamos un pārējos sākuma skriptus, kas sākās ar ?register_?

{ //Atver

register_plugin(PLUGIN, VERSION, AUTHOR) //skripti

} //Aizver

//BEZ KOMENTĀRIEM TAS IZSKATĪTOS ŠĀDI

#include <amxmodx>

#define PLUGIN "New Plugin"

#define VERSION "1.0"

#define AUTHOR "Author"

public plugin_init()

{

register_plugin(PLUGIN, VERSION, AUTHOR)

}

Nu pieņemsim mums vaig uztaisīt pluginu... Kad cilvēks spēles laikā uzrakstot ?/grav? viņš kļūst viegls kā spalviņa biggrin.gif

//Atcerieties PIE KOMENTĀRIEM NEDRĪKST IZMANTOT GARUMZĪMES! UN ja gribat nokompilēt šo pluginu izmantojiet versiju bez komentāriem var gadiities errori.. par tiem stāstīšu vēlak - P.S. es šeit izmantoju garumzīmes - tāpec izmantojiet versiju bez komentāriem!

#include <amxmodx>

#include <amxmisc> //Papildus amxx funkcijas

#include <fun>  //Dazas reālas funkcijas, (gravity,health...u.c)

#include <cstrike> //CS Pamatfunkcijas(iedot naudu, noņemt...u.c)

#define PLUGIN "Gravity"

#define VERSION "1.0"

#define AUTHOR "ShInE"

public plugin_init() {

register_plugin(PLUGIN, VERSION, AUTHOR)

register_clcmd("say /grav","cmd_gravity")

//Register_callcommand(izsaucamā komanda)

//Pirmais parametrs ? kas izsauks funkciju

//Otrais parametrs ? funkcija

}

public cmd_gravity(id)  //Funkcija, ko izsauc ?/grav?(id

{

if(!is_user_alive(id)) //Ja cilvēks ir miris(id = kas izsauc)

{

  client_print(id,print_chat,"Mirushie nevar pirkt!") //Čatā parādīs ?Mirušie nevar pirkt!?(id = tikai tavā čatā)

}

else if(cs_get_user_money(id)<10000) //Ja tev nauda ir mazāk

//par 10000, tad čatā parādīsies ?Tev nepietiek NAUDA!!!?

{

  client_print(id,print_chat,"Tev nepietiek NAUDA!!!")

}

else

{

 

//Ja nauda ir bijusi vairāk par 10000, tad no tavas naudas atņems 10000

cs_set_user_money(id,cs_get_user_money(id) - 10000)

set_user_gravity(id,0.5)  //Mainīt spēlētāja gravitāciju.

//1.0 ir defultā gravitācija ? 0.5 ir 2x mazāka ? 1.5 2x lielāka

}

return PLUGIN_HANDLED  //Ir 2 atgriezeniskās //funkcijas ?  pirmā  PLUGIN_CONTINUE = turpināt tālāk ? otrā //PLUGIN_HANDLED ? bloķēt turpmākās operācijas nu PIEMĒRAM:

//if (Team == CS_TEAM_T)

//{

// PLUGIN_HANDLED

//}

//Ja komanda = Terroristi ? tālāk neturpināt..

//Tas noder ja jums piemēram ir speciāls MENU tieši Counter-//Terroristiem

}

Versija BEZ Komentāriem

#include <amxmodx>

#include <amxmisc>

#include <fun>

#include <cstrike>

#define PLUGIN "New Plugin"

#define VERSION "1.0"

#define AUTHOR "Author"

public plugin_init() {

register_plugin(PLUGIN, VERSION, AUTHOR)

register_clcmd("say /grav","cmd_gravity")

}

public cmd_gravity(id)

{

if(!is_user_alive(id))

{

  client_print(id,print_chat,"Mirushie nevar pirkt!")

}

else if(cs_get_user_money(id)<10000)

{

  client_print(id,print_chat,"Tev nepietiek NAUDA!!!")

}

else

{

  cs_set_user_money(id,cs_get_user_money(id) - 10000)

  set_user_gravity(id,0.5)

}

return PLUGIN_HANDLED

}

4.Kompilēšana:

Ja jūs izmantojat AMX Mod X Studio, jums nav vērts čakarēties

Vnk saglabājiet pluginu

Un izvēlnē spiediet Compile -> Compile

Pluginam ko es uztaisīju errori nebija...

Ja jums plugins neparādās amxmodx\plugins\ vai ir kas tamlīdzīgs, tad PĀRLASI TO, KO ES RAKSTĪJU!

Bet ja jūs taisat savu var gadīties, ka ir viens, otrs errors...

Ja jums ir errori PM ME (skype = shine771 vai te pat Forumā) vai meklējiet FORUMA:

Forum

Bet ja jūs rakstāt caur notepad(vai kādu citu texta apstrādes programmu, tad saglabājiet failu kā .sma. Ieejiet web adresē:

Compiler

un uplaudojiet savu pluginu(.sma) un Spiediet COMPILE

Lūk plugins gatavs!!!

Cerems, ka mākat viņu uzlikt uz servera laugh.gif

Restartējiet serveri, vai nomainiet mapi un jūs varat testēt savu pluginu.

Uz beigām:

Es zinu ka šo visu garo textu nav viegli saprast...

Bet es centos ~4,5h no vietas rakstīju... centieties saprast, ko es rakstu =/ Un lūdzu nedirsiet virsū, ka kaut ko nesaprotat.

P.S Drīzumā būs pamācības, kas izskaidro daudz vairāk func, un vēl visaadus prikolus!!!

CS IEROČI

weapon_p228  B-1-3

weapon_shield  B-8-8(CT)

weapon_scout  B-4-2(CT),B-4-3(T)

weapon_hegrenade B-8-4

weapon_xm1014  B-2-2

weapon_c4  C4

weapon_mac10  B-3-1(T)

weapon_aug  B-4-4(CT)

weapon_smokegrenade B-8-5

weapon_elite  B-1-5(T)

weapon_fiveseven B-1-5(CT)

weapon_ump45  B-3-3

weapon_sg550  B-4-5(CT)

weapon_galil  B-4-1(T)

weapon_famas  B-4-1(CT)

weapon_usp  B-1-2

weapon_glock18  B-1-1

weapon_awp  B-4-5(T), B-4-6(CT)

weapon_mp5navy  B-3-2

weapon_m249  B-5-1

weapon_m3  B-2-1

weapon_m4a1  B-4-3(CT)

weapon_tmp  B-3-1(CT)(ps - es teisham nezinu sho biggrin.gif)

weapon_g3sg1  B-4-6(T)(ps - sho ar es iisti nezinu, bet vaajdzeetu buut biggrin.gif)

weapon_flashbang B-8-3

weapon_deagle  B-1-4

weapon_sg552  B-4-4(T)

weapon_ak47  B-4-2

weapon_knife  KNIFE

weapon_p90  B-3-4

nav kopēts!

Kā izmantot šos ieroču nosaukumus???

Pavisam vienkārši:

INFO - jābūt iekļauts <cstrike> modulis un <fun>(iekļauj give_item funkciju)

#include <cstrike>

#include <fun>

Lai iedotu kādam ieroci vajag izmantot give_item

give_item(id,"<ierocis>")

Piemēram:

give_item(id,"weapon_m4a1") //Iedos M4A1. Diezgan vienkārši ne?

Nu izmēģināsim viņu skriptā!

#include <amxmodx>

#include <amxmisc>

#include <fun>

#include <cstrike>

#define PLUGIN "IEROCI"

#define VERSION "1.0"

#define AUTHOR "ShInE"

public plugin_init() {

register_plugin(PLUGIN, VERSION, AUTHOR)

register_clcmd( "say /dod","cmd_m4a1")

}

public cmd_m4a1(id)

{

give_item(id,"weapon_m4a1")

return PLUGIN_HANDLED

}

Šis pavisam vienkāršais plugins, jums rakstot čatā /dod, iedos m4a1.

Kā pareizi ATVĒRT un AIZVĒRT???(IF, PUBLIC...(u.c)

Dadziem no jums, kā redzu jūk ar Atvēršanu un Aizvēršanu...

Nu paņemsim par piemēru šadu skriptu.

INFO: Tās func. kas šeit izmantotas tiks aprakstītas zemāk...

#include <amxmodx>

#include <amxmisc>

#include <fun>

#include <cstrike>

#define PLUGIN "Atver_Aizvert?"

#define VERSION "1.0"

#define AUTHOR "ShInE"

public plugin_init() {

register_plugin(PLUGIN, VERSION, AUTHOR)

register_clcmd( "say /test","test")

}

public test(id)

{                    //ATVER 1

if(get_user_health(id)<50)

{            //ATVER 2

  client_print(id,print_chat,"Driiz tu mirsi!!!")

}          //AIZVER 2

else if(get_user_health(id)>50)

{          //ATVER 3

  client_print(id,print_chat,"Tu veel ilgi dziivosi =/")

}        //AIZVER 3

return PLUGIN_HANDLED

}                //AIZVER 1

Vēlviens piemērs:

INFO: ATGĀDINU - Par visiem šiem skriptiem aprakstīšu vēlāk

public menu_handler(id, menu, item)

{                                    //ATVER 1

if (item == MENU_EXIT)

{                          //ATVER 2

  menu_destroy(menu)

  return PLUGIN_HANDLED

}                          //AIZVER 2

new data[6], iName[64]

new access, callback

menu_item_getinfo(menu, item, access, data,5, iName, 63, callback)

new key = str_to_num(data)

switch(key)

{                        //ATVER 3

  case 1:{      //ATVER 4

  buy_nvg(id)

  menu_destroy(menu)

  return PLUGIN_HANDLED

  }                //AIZVER 4

  case 2:{    //ATVER 5

  buy_spoks(id)

  }              //AIZVER 5

  case 3:{    //ATVER 5

  buy_demo(id)

  menu_destroy(menu)

  return PLUGIN_HANDLED

  }              //AIZVER 6

  case 4:{  //ATVER 7

  buy_health(id)

  menu_destroy(menu)

  return PLUGIN_HANDLED

  }            //AIZVER 7

  case 5:{  //ATVER 8

  buy_nates(id)

  menu_destroy(menu)

  return PLUGIN_HANDLED

  }            //AIZVER 8

  case 6:{ //ATVER 9

  buy_regen(id)

  menu_destroy(menu)

  return PLUGIN_HANDLED

  }          //AIZVER 9

}                  //AIZVER 3

menu_destroy(menu)

return PLUGIN_HANDLED

}                        //AIZVER 1

Izkatās sarežģīti, bet ja kārtīgi pāris reizes izskata - uzreiz var saprast wink.gif

Edited by shine
Link to comment
Share on other sites

Nu es esmu pabeidzis

Kā uztaisīt AMXX Pluginu?

PART 1 "Basics"

Lūdzu neslinkojiet un izlasiet visu textu, bet ja jūs vēl neko nesajēdzat... Nedirsiet man virsū ka es nemāku skaidrot laugh.gif

Es esmu centies -> 8 Lapas

Rakstiiju 4,5h no vietas...

Ievērtējiet...

tnx veciit...

kaa reiz gribeejaas pameegjinaat...

nu tik varees studeet..

smile.gif

Link to comment
Share on other sites

Es gribeeju tikai jautaat: mo6 vajadzeetu kaut kaadu sub-forumu sheit -> kur tikai skriptoshana, jo redzu ka ljoti daudzi grib iemaaciities taisiit AMXX pluginus =] - taapat kaa maposhanu.

varu pateikt ka tas tavs gravity plugins kas tur ir man vinjsh neiet!! nevar izkompileet!!

hmm es vinju neiztesteeju uz servera, bet nokompileeju. Man neizmeta errorus.

p.s kuru tu iekopeeji??? to kur // vai kur bez??? Un kaads erroru izmeta??

Luuk skriins

Šeit

Edited by shine
Link to comment
Share on other sites

Njaa shits ir kaut kas.. Man gan nebuutu apnjeemiiba uzraxtiit kko tik garu! enyway paldies par pamaaciibu! jaameegjina kko uzmeikot.. ^^

Link to comment
Share on other sites

nju tagad ir 100 reizes labaak..

p.s. gaidu naakamo pamaaciibu.. biggrin.gif

Link to comment
Share on other sites

Ietiektu katru dienu paskatiities pirmajaa posta... ja interesee kaut kas jauns par amxx pluginiem...

p.s. netaisos spamot katru reizi kad kaut ko uzrakstu biggrin.gif

p.s.2 par to gravity plugin... Nu es iisti nez vai vinjsh uz servera darbojas jo es vinju uzrakstiiju pa 1min(tas domaats kaa paraugs biggrin.gif) bet vajadzeetu darboties

Bet buus taa -> ja nopirks gravity tad tas gravity paliks lidz mapu mainjai(vai kamer speeletaajs izies no servera) laugh.gif Tas plugins tikai paraada pamatus... Ieteiktu mekleet

Šeit

Pluginus, kas juus interesee un panjem (Source) failu (.sma) un izpeeti. Piemeeram ir taada lieta vairaakos pluginos(tos skaita PUNISH) "Make Him Glow" effektu. Kad turpinaashu Pamaaciibu par visiem prikoliem pastaastiishu un arii par erroriem. Tie kas grib uzzinaat vairaak par AMXX Skriptoshanu Lasiet pirmo postu...(katru dienu) Domaaju likt "Kaa uztaisiit menu", bet tas jau bi6ku gruutaak... Jaasaak ar to vieglaako.

Ja kaadas neskaidriibas saistiiba ar pluginu (Skype = shine771)

Edited by shine
Link to comment
Share on other sites

kaa lai uztaisa taadu textu ( nju takaa amx_csay) , kas paraadaas katru reizi, kad kaut ko nopeerk no menu?

palidz kaads

Link to comment
Share on other sites

itka shis gravity darbojas, bet vins NENONEM NAUDU!!! Ja nav 5000$ gravity nedod, ja ir 5000$ gravity dod, bet 5000$ nenonem.. biggrin.gif ko darit?

/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <amxmisc>
#include <fun>
#include <cstrike>

#define PLUGIN "gravity"
#define VERSION "1.0"
#define AUTHOR "remix.cc"


public plugin_init() {
register_plugin("gravity","1.0","remix.cc")
register_clcmd("say grav","cmd_grav")
}
public cmd_grav(id)
{
if(!is_user_alive(id))
 {
 	client_print(id,print_chat,"Can buy only when alive!")
 	return PLUGIN_HANDLED
 }
else if(cs_get_user_money(id)<5000)
 {
 	client_print(id,print_chat,"You dont have enough money!")
 	return PLUGIN_HANDLED
 }
else if(cs_get_user_money(id) - 5000)
 {
 	set_user_gravity(id, 0.5)
 }
return PLUGIN_HANDLED
}

Link to comment
Share on other sites

Thanx... Izmeginashu!

Cepuri nost chibu galva! biggrin.gif

Link to comment
Share on other sites

nu ja tikko sapratu, ka ari var nonemt naudu smile.gif

public cmd_grav(id) 
{
if(!is_user_alive(id))   //ja vecis ir miris...
 {
 	client_print(id,print_chat,"Can buy only when alive!")   //pasaki vinam, ka "nafig tev pirkt, ja tu esi //miris!"
 	return PLUGIN_HANDLED  //jegas nav, tatad pluginu talak neturpinat
 }
else if(cs_get_user_money(id)<5000)  //bet ja vecim ir mazak par $5000...
 {
 	client_print(id,print_chat,"You dont have enough money!")  //pasaki vinam, ka "tev nav naudas"
 	return PLUGIN_HANDLED  //jegas nav, taad pluginu talak neturpinat
 }
else if(cs_get_user_money(id) - 5000) //bet ja vecim ir shie 5000....
 {
 	set_user_gravity(id, 0.5) && cs_set_user_money(id, cs_get_user_money(id) - 5000)  //uztaisi vinam //gravitaciju UN cs_set_user_money(pieliec vinam naudu)(id, cs_get_user_money(cik vinam ir naudas?) - //500) (atnem 500) diezgan logiski manuprat...
 }
return PLUGIN_HANDLED  //nezinu prieks kam shito vajag, bet ja shito nepieliek plugins //nekompilejas..izmet warningu!
}

Edited by remix.cc
Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
 Share

×
×
  • Create New...