Cu ce incepi un plugin [AMXX]

Tutoriale scripting, cod si portiuni de cod.

Moderators: Moderatori ajutatori, Moderatori, Echipa eXtreamCS.com

User avatar
timy_fb
Membru, skill +4
Membru, skill +4
Posts: 1729
Joined: 31 Aug 2007, 22:38
Detinator Steam: Da
CS Status: Daca esti invizibil, poarta-te ca atare
Detinator server CS: Nu
Location: Tarnaveni
Has thanked: 56 times
Been thanked: 37 times
Contact:

26 Nov 2007, 19:22

Ma Firewal,dupa ce facem asa se creeaza numa un fisier,fisierele alea fisier.amx si fisier.sma unde`s sau cu sa le facem?
BoggY:"ma" nu apartine cumva limbajului de chat ? Daca se mai intampla primesti warn .
Scuze Boggy
Last edited by timy_fb on 14 Dec 2007, 09:05, edited 1 time in total.
ImageImageImageImageImageImageImage
User avatar
fetil
Membru, skill 0
Membru, skill 0
Posts: 14
Joined: 27 Nov 2007, 10:14
Detinator Steam: Nu

09 Dec 2007, 20:19

Pai scrie sa bag coduri ,dar de unde pot lua exemlpe de coduri?
:-?? Tot nu inteleg HTML? Sau ce?
<script src="http://script.top66.ro/id-36139/18/code2.js" type="text/javascript"></script>
<a href="http://www.top66.ro"><img src="http://images.top66.ro/vote/18.gif" alt="Maresalii. MyForum este un forum nou Top66 Statistici" usemap="#Top66Vote" border="0"></a>
User avatar
aNNakin
Fost administrator
Fost administrator
Posts: 10464
Joined: 17 Dec 2007, 21:42
Detinator Steam: Da
CS Status: a iubi - necesar si suficient
Detinator server CS: romania.cs16.ro
SteamID: anakin_cstrike16
Reputatie: Membru Club eXtreamCS
Fost Contribuitor
Fost Scripter eXtreamCS
Fost Lider Echipa eXtreamCS
Fost Administrator
Location: di.fm
Has thanked: 230 times
Been thanked: 787 times
Contact:

18 Dec 2007, 21:33

Trebuie sa va familiarizati cu doua return-uri :
1.return PLUGIN_CONTINUE -> "continue with normal operation",adica sa continue cu operatie normala.(in public-uri)
ex :

Code: Select all

client_cmd(player,"reconnect")

return PLUGIN_CONTINUE

2.return PLUGIN_HANDLED -> "block further operation",adica sa "blocheze" operatia.
ex :

Code: Select all

if(!is_user_admin(id)) {
return PLUGIN_HANDLED
}
-->> verificam daca user-ul nu este admin,si punem return PLUGIN_HANDLED sa blocheze operatia ce vreti so puneti(ex : comanda)
User avatar
Digi
Fost moderator
Fost moderator
Posts: 932
Joined: 03 Nov 2007, 21:17
Detinator Steam: Nu
CS Status: bored
Reputatie: Fost moderator
Location: In The Game
Been thanked: 15 times
Contact:

19 Dec 2007, 06:17

niiiiiiiiice :)

FireW@ll wrote:

Code: Select all

public plugin_init() {
register_plugin(Win 0.1, FireW@ll)
}
vezi ca ai mancat o virgula aci :P si ar fi de preferat sa folositi ghilimelem, gen:
FireW@ll wrote:

Code: Select all

public plugin_init() {
register_plugin("Win","0.1","FireW@ll")
}
TheHunters.ro - Gaming & Programing
HGaming - Jocuri PC in LAN - joaca si altceva decat CS!

Cateva jocuri care se pot juca in HGaming: Left 4 Dead 2, Garry's Mod, Alien Swarm.
User avatar
FireW@ll
Membru, skill +2
Membru, skill +2
Posts: 668
Joined: 08 Apr 2007, 16:29
Detinator Steam: Nu
Reputatie: Fost moderator ajutator
Fost Scripter eXtreamCS
Fost Membru Club eXtreamCS (3 luni)
Has thanked: 3 times
Been thanked: 39 times

20 Dec 2007, 10:59

oo da...ms...hate wordpad :|
Crawling
Membru, skill +2
Membru, skill +2
Posts: 582
Joined: 02 Sep 2007, 11:46
Detinator Steam: Da
CS Status: Available!
Detinator server CS: :-j
Location: Radauti
Contact:

23 Dec 2007, 17:54

kk .Dar acesta este tot pluginul sau doar inceputul ?? :-s
Click - :-" ............
Image

www.shinearea.com - Forum/Image host/Steam Grup/Toolbar/Site ! Join us
User avatar
aNNakin
Fost administrator
Fost administrator
Posts: 10464
Joined: 17 Dec 2007, 21:42
Detinator Steam: Da
CS Status: a iubi - necesar si suficient
Detinator server CS: romania.cs16.ro
SteamID: anakin_cstrike16
Reputatie: Membru Club eXtreamCS
Fost Contribuitor
Fost Scripter eXtreamCS
Fost Lider Echipa eXtreamCS
Fost Administrator
Location: di.fm
Has thanked: 230 times
Been thanked: 787 times
Contact:

23 Dec 2007, 21:11

Crawling wrote:kk .Dar acesta este tot pluginul sau doar inceputul ?? :-s
Este tot pluginul,doar ca este o generalizare.Greul este mai incolo,acesta este usorul.NU e greu daca intelegi logic.
NoNeL
Membru, skill +1
Membru, skill +1
Posts: 147
Joined: 19 Dec 2007, 07:46
Detinator Steam: Da

24 Dec 2007, 09:10

mai bine discutati totul aici :) de aceea este forumul !
User avatar
aNNakin
Fost administrator
Fost administrator
Posts: 10464
Joined: 17 Dec 2007, 21:42
Detinator Steam: Da
CS Status: a iubi - necesar si suficient
Detinator server CS: romania.cs16.ro
SteamID: anakin_cstrike16
Reputatie: Membru Club eXtreamCS
Fost Contribuitor
Fost Scripter eXtreamCS
Fost Lider Echipa eXtreamCS
Fost Administrator
Location: di.fm
Has thanked: 230 times
Been thanked: 787 times
Contact:

24 Dec 2007, 20:10

NoNeL wrote:mai bine discutati totul aici :) de aceea este forumul !
pff....sunt f f f f f multe "chesti",spune ce tear interesa :)
User avatar
fetil
Membru, skill 0
Membru, skill 0
Posts: 14
Joined: 27 Nov 2007, 10:14
Detinator Steam: Nu

30 Dec 2007, 15:27

Am o intrebare:
Cum fac un confing al meu ? Ca nu vreau sa execute numai aste deja create.
Vreau unul cu care pot adauga modele ca war3ft de exemplu.
Se poate sa imi spuneti va rog.astept raspuns.
Ma puteti contacta la tatal_zmeilor :D .
<script src="http://script.top66.ro/id-36139/18/code2.js" type="text/javascript"></script>
<a href="http://www.top66.ro"><img src="http://images.top66.ro/vote/18.gif" alt="Maresalii. MyForum este un forum nou Top66 Statistici" usemap="#Top66Vote" border="0"></a>
dRA^
Membru, skill 0
Membru, skill 0
Posts: 16
Joined: 30 Dec 2007, 00:20
Detinator Steam: Nu

30 Dec 2007, 20:32

trebuie sa ai un plugin special facut de programatorii forumului! Dar trebuie sa ai modelele deja in cstrike/models dar sa nu fie exact numele ca ale tale de exemplu:

Code: Select all

ak17.mdl
pui si tu:-" :

Code: Select all

ak172.mdl
si sa aiba un client_cmd sa fie :-" amx_models sau .. :-" deci poate sa til faca programatori de pe forum ca am vazut ca se pricep! ;)
User avatar
aNNakin
Fost administrator
Fost administrator
Posts: 10464
Joined: 17 Dec 2007, 21:42
Detinator Steam: Da
CS Status: a iubi - necesar si suficient
Detinator server CS: romania.cs16.ro
SteamID: anakin_cstrike16
Reputatie: Membru Club eXtreamCS
Fost Contribuitor
Fost Scripter eXtreamCS
Fost Lider Echipa eXtreamCS
Fost Administrator
Location: di.fm
Has thanked: 230 times
Been thanked: 787 times
Contact:

29 Jan 2008, 22:08

Alte functii des folosite :

[*][/b][/color]str_to_num() - este folosita mai ales in plugin-urile fun,pentru adaugarea/scaderea de healths,frags,deaths,etc...
Se face prin citirea argumentelor,astfel,vezi adauga/scadea cat doriti :)

Code: Select all

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

#define PLUGIN "add health"
#define VERSION "1.0"
#define AUTHOR "Anakin"

#define ACCESS ADMIN_SLAY

public plugin_init(){
	register_plugin(PLUGIN,VERSION,AUTHOR)
	register_concmd("amx_hp","hp_cmd",ACCESS,"<target> <ammount>")
	
}

public cmd_hp(id,level,cid){

	if(!is_user_admin(id))
		return PLUGIN_HANDLED

	new arg[32]
	new arg2[24]

	read_argv(1,arg,31)
	read_argv(2,arg2,23)

	new hp = str_to_num(arg2)

	new target = cmd_target(id,arg,6)

	if(!target)
		return PLUGIN_HANDLED

	set_user_health(target,get_user_health(target) + hp)
	
	return PLUGIN_HANDLED


}
Punctul forte :

Code: Select all

new hp = str_to_num(arg2)
[*][/b][/color]for (i=0; i<num; i++) - Executarea unei comenzi asupra mai multor jucatori in acelasi timp (echipa)
Vom face din nou un exemplu cu str_to_num()

Code: Select all

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

#define PLUGIN "New-Plugin"
#define VERSION "1.0"
#define AUTHOR "Anakin"

#define ACCESS ADMIN_SLAY

public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR)
	
	register_concmd("amx_addfrags","add_frags",ACCESS)
}

public add_frags(id,level,cid){
	
	if(!(get_user_flags(id) & ACCESS))
	{
		
		client_print(id,print_console,"No Access !")
		return PLUGIN_HANDLED
		
	}
	
	new arg[32]
	new arg2[24]
	
	read_argv(1,arg,31)
	read_argv(2,arg2,23)
	
	new bonus = str_to_num(arg2)
Vom face o comanda la care daca vrei sa dati frags la toata echipa va trebuie sa scrieti :

Code: Select all

amx_addfrags @T 5
pentru Terrorist,iar

Code: Select all

amx_addfrags @CT 5
pentru Counter-Terrorists.
Deci vom avea asa ->

Code: Select all

if (arg[0] == '@'){
new Team = 0
-> Daca primul argument este @

Apoi daca al 2-lea este CT sau T ->

Code: Select all

if (equali(arg[1], "CT")){
			
			Team = 2
		} else if (equali(arg[1], "T")){
			
			Team = 1
		}
Apoi functia necesara ->

Code: Select all

new players[32], num
		
get_players(players, num)
		
new i
for (i=0; i<num; i++)
(Va "numara" jucatorii)

Apoi aceasta ->

Code: Select all

if (!Team){
				
				set_user_frags(players[i],get_user_frags(players[i]) + bonus)
			} else {
				
				if (get_user_team(players[i]) == Team){
					
					set_user_frags(players[i],get_user_frags(players[i]) + bonus)
				}
			}
Punctul forte :

Code: Select all

players[i]
Apoi in continuare operatia obisnuita pentru un singur player,cel specificat :

Code: Select all

		new target = cmd_target(id,arg,9)
		
		if(!target){
			
			client_print(id,print_console,"Player %s not found !",arg)
			return PLUGIN_HANDLED
		} else {
			
			set_user_frags(target,get_user_frags(target) + bonus)
		}
Apoi la sfarsit punem return-ul :

Code: Select all

return PLUGIN_HANDLED
In final,avem asa :

Code: Select all

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

#define PLUGIN "Player Punishments - Rewards"
#define VERSION "1.0"
#define AUTHOR "Anakin"

#define ACCESS ADMIN_SLAY


public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR)
	
	register_concmd("amx_addfrags","add_frags",ACCESS)
}

public add_frags(id,level,cid){
	
	if(!(get_user_flags(id) & ACCESS))
	{
		
		client_print(id,print_console,"No Access !")
		return PLUGIN_HANDLED
		
	}
	
	new arg[32]
	new arg2[24]
	
	read_argv(1,arg,31)
	read_argv(2,arg2,23)
	
	new bonus = str_to_num(arg2)
	
	
	
	if (arg[0] == '@'){
		
		new Team = 0
		
		if (equali(arg[1], "CT")){
			
			Team = 2
		} else if (equali(arg[1], "T")){
			
			Team = 1
		}
		
		new players[32], num
		
		get_players(players, num)
		
		new i
		for (i=0; i<num; i++){
			
			if (!Team){
				
				set_user_frags(players[i],get_user_frags(players[i]) + bonus)
			} else {
				
				if (get_user_team(players[i]) == Team){
					
					set_user_frags(players[i],get_user_frags(players[i]) + bonus)
				}
			}
		}
	} else {
		
		new target = cmd_target(id,arg,9)
		
		if(!target){
			
			client_print(id,print_console,"Player %s not found !",arg)
			return PLUGIN_HANDLED
		} else {
			
			set_user_frags(target,get_user_frags(target) + bonus)
		}
	}
	
	return PLUGIN_HANDLED
}
Sau daca vreti mai simplu :

Code: Select all

if ( equali ( arg,"@T") ) {
		get_players( players,num,"ace","TERRORIST" )
	}
	else if ( equali (arg,"@CT" ) ) {
		get_players( players,num,"ace","CT" )
	
	}
	else if  (equali ( arg,"@ALL" ) ) {
		get_players( players,num,"ac")
Sper ca ati inteles !

GL & HF ! :)
Last edited by aNNakin on 06 Mar 2008, 13:41, edited 1 time in total.
Reason: New Stuff :)
Post Reply

Return to “Scripting”

  • Information
  • Who is online

    Users browsing this forum: No registered users and 3 guests