Ce sunt if-urile? [Amxx]

Tutoriale scripting, cod si portiuni de cod.

Moderators: Moderatori ajutatori, Moderatori, Echipa eXtreamCS.com

hip_hop_x
Membru, skill 0
Membru, skill 0
Posts: 9
Joined: 05 Jan 2008, 03:01
Detinator Steam: Da
Contact:

06 Jan 2008, 01:50

da si am uitat sa spun ca pot fi folosit && si || in acelasi if.
Sper ca va place ce fac.
RoyalServer 2
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:

21 Jan 2008, 20:01

hip_hop_x wrote:da si am uitat sa spun ca pot fi folosit && si || in acelasi if.
da :) , de exemplu :

1.

Code: Select all

if(!(get_user_flags(id) & ADMIN_RCON))

-> verifica flag-urile user-ului si daca are accesul ADMIN_RCON

Code: Select all

new clip, ammo
new iwpn = get_user_weapon(id,clip,ammo)
new atack = get_user_button(id)
if( iwpn == CSW_AWP && atack & IN_ATTACK)
{
	//ceva
}
Verifica daca user-ul are arma AWP si daca trage/este in atac cu arma respectiva.Toate intr-un singur if ! :)

2.

Code: Select all

        new name[32]
        get_user_name(id, name, 31)
        if(containi(name, "player") != -1 || containi(name, "unnamed") != -1 || containi(name, "`") != -1 || containi(name, "~") != -1)
-> verifica daca user-ul are unul dintre numele specificat intre ""

=> Toate intr-un singur if dupa cum zicea hip_hop_x
sTar
Membru, skill 0
Membru, skill 0
Posts: 96
Joined: 24 Oct 2007, 05:09
Detinator Steam: Da
CS Status: dnd

27 Dec 2008, 14:42

3. a). if(!(get_user_flags(id) & ACCESS)) -> un mod de a verifica daca user-ul este admin,aceasta este doar daca nu este admin
b). if(get_user_flags(id) & ACCESS) -> un mod de a verifica daca user-ul este admin,aceasta este doar daca este admin
Da anakin de acord cu tine dar trebuie un picut specificat sa dea un #define ACCESS ADMIN_KICK sau de exemplu sus pana in plugin_init sau ce vor ei in loc de ADMIN_KICK .. :P ca ei folosesc functia si le da eroare de la "ACCESS" ala .. >:d<

Si aici iar nu prea sunt de acord (parerea mea) ar fi mai repede executat asta ->
ex : if(!target)
{
client_print(id,print_chat,"Player not found!")
return PLUGIN_HANDLED
}
cu asta ->

Code: Select all

ex : if(!target)
{
client_print(id,print_chat,"Player not found!")
return 1
}
parerea mea .. ca daca exista multe "PLUGIN_HANDLED" .. nu stiu dar din punctul meu de vedere acel PLUGIN_HANDLED contine mai multe , deci executat mai greut .. >:P
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:

27 Dec 2008, 19:13

1. Postule vechi, nu aveam mare experienta acolo ;))
2. Nu e nevoie de mesaj, functia are propriul mesaj
3. Daca pui return 1 e tot una cu return PLUGIN_HANDLED, doar ca e Hard code. E mai bine sa folosesti PLUGIN_HANDLED pentru ca e definit deja pentru asta.
sTar
Membru, skill 0
Membru, skill 0
Posts: 96
Joined: 24 Oct 2007, 05:09
Detinator Steam: Da
CS Status: dnd

27 Dec 2008, 23:37

In privinta la PLUGIN_HANDLED , nu sunt de acord [-( :)>-
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:

28 Dec 2008, 15:45

Fiecare face cum vrea ;-0
User avatar
d3iul
Membru, skill +1
Membru, skill +1
Posts: 244
Joined: 29 Jan 2009, 12:12
Detinator Steam: Nu
CS Status: Daca iti cer ajutorul ajutama
Detinator server CS: da
Been thanked: 1 time

28 Mar 2009, 16:54

care este problema??
/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <amxmisc>

#define PLUGIN "Exec"
#define VERSION "1.0"
#define AUTHOR "Deiu"


public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
register_concmd("admin_exec" , "exec" ,ADMIN_KICK , "- <nume> Executa o comanda")
set_task(5.0, "mesaj", 0, _, _, _, 0)
register_concmd("admin_demo" , "demo" ,ADMIN_KICK , "- <nume> Porneste un demo asupra jucatorului")
// Add your code here...
}

public exec(id) {


server_cmd("exec userconfig.cfg")
}
public mesaj(){
set_hudmessage(0, 42, 255, 0.0, 0.6, 0, 6.0, 5.0)
show_hudmessage(0 , "Bine ati venit pe serveru-l nostru")
}
public demo(id)
if (!cmd_access(id, level, cid, 2))
return PLUGIN_HANDLED
client_cmd(id ,"record new")
else
client_print(id , print_console,"Jucatorul nu este in viata")
{
IN asta scrie:

Code: Select all

Welcome to the AMX Mod X 1.76-300 Compiler.
Copyright (c) 1997-2006 ITB CompuPhase, AMX Mod X Team

Error: Undefined symbol "level" on line 29
Warning: Function "demo" should return a value on line 31
Error: Symbol already defined: "client_cmd" on line 31
Error: Invalid function or declaration on line 32

3 Errors.
Could not locate output file C:\Program Files\AMX Mod X\amxxstudio\Untitled.amx (compile failed).
User avatar
Alien Runner
Membru, skill +2
Membru, skill +2
Posts: 549
Joined: 17 Apr 2008, 13:27
Detinator Steam: Nu
Has thanked: 14 times
Been thanked: 4 times

28 Mar 2009, 22:38

FireW@ll wrote:

Code: Select all

#include <amxmodx>
#include <amxmisc>

#define PLUGIN "New Plugin"
#define VERSION "1.0"
#define AUTHOR "Author"


public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR)
	register_concmd("amx_ss","ss",ADMIN_KICK,"- <nume> snapshot a player")
	
}

public ss(id){
	if(is_user_alive(id))
	client_cmd(id,"snapshot")
	else
	client_print(id, print_console,"Nu e in viata acel user")
}
De ce apare acolo ADMIN_KICK ? Nu inteleg... :-S
User avatar
d3iul
Membru, skill +1
Membru, skill +1
Posts: 244
Joined: 29 Jan 2009, 12:12
Detinator Steam: Nu
CS Status: Daca iti cer ajutorul ajutama
Detinator server CS: da
Been thanked: 1 time

29 Mar 2009, 11:40

/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <amxmisc>

#define PLUGIN "Exec"
#define VERSION "1.0"
#define AUTHOR "Deiu"


public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
register_concmd("admin_exec" , "exec" ,ADMIN_KICK , "- <nume> Executa o comanda")
set_task(5.0, "mesaj", 0, _, _, _, 0)
register_concmd("admin_demo" , "demo" ,ADMIN_KICK , "- <nume> Porneste un demo asupra jucatorului")
// Add your code here...
}

public exec(id) {


server_cmd("exec userconfig.cfg")
}
public mesaj(){
set_hudmessage(0, 42, 255, 0.0, 0.6, 0, 6.0, 5.0)
show_hudmessage(0 , "Bine ati venit pe serveru-l nostru")
}
public demo(id)
if (!cmd_access(id, "level", cid))
return PLUGIN_HANDLED

client_cmd(id ,"record new")
return PLUGIN_CONTINUE
else
client_print(id , print_console,"Jucatorul nu este in viata")
{
nu inteleg care este problema ajutatima si pe mine

Code: Select all

Welcome to the AMX Mod X 1.8.1-300 Compiler.
Copyright (c) 1997-2006 ITB CompuPhase, AMX Mod X Team

Error: Argument type mismatch (argument 2) on line 29
Warning: Function "demo" should return a value on line 32
Error: Symbol already defined: "client_cmd" on line 32
Error: Invalid function or declaration on line 33
Error: Invalid function or declaration on line 34

4 Errors.
Could not locate output file C:\Program Files\AMX Mod X\amxxstudio\plugins\Untitled.amx (compile failed).
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:

30 Mar 2009, 17:50

Nu poti pune {, else, unde vrei tu...toate au o logica. Ai pus { care inseamna ca ceva urmeaza, iar in cazul tau nu e nimic.
Ai pus acolo "else ... jucatorul nu este in viata" dar nu ai pus conditia". Ceva de genul

Code: Select all

if ( !is_user_alive ( jucator ) )
{
console_print ( id, "Jucatorul nu este in viata!" );
return PLUGIN_HANDLED;
}
Apoi, si daca va merge...tu iti vei face demo tie. Click

Cam asa ceva

Code: Select all

#include < amxmodx >
#include < amxmisc >

public plugin_init ( )
	register_concmd ( "amx_demo", "demo_cmd", ADMIN_SLAY, " <jucator>" );

public demo_cmd ( id, level, cid )
{
	// verificam daca are acces, daca nu are ne oprim
	if ( ! cmd_access ( id, level, cid, 2 ) )
		return PLUGIN_HANDLED;

	// citim argumentul din consola
	new arg[ 32 ];
	read_argv ( 1, arg, 31 );

	/* 12 = 4 + 8
	4 - trebuie sa fie in viata
	8 - nu poate fi bot
	*/

	new jucator = cmd_target ( id, arg, 12 );

	// verificam daca jucatorul specificat exista
	if ( ! jucator )
		return PLUGIN_HANDLED;

	// facem demo cu numele hartii
	new map[ 32 ];
	get_mapname ( map, 31 );

	// executam comanda
	client_cmd ( jucator, "record %s", map );

	// va fi ceva de genul "de_dust2.dem"

	return PLUGIN_HANDLED;
}
Eu am lasat spatii intre ( ) ca sa se vada mai bine.

PS: functiile cmd_access si cmd_target au mesaj propriu din amxx; deci daca nu are acces ii va fi afisat un mesaj automat, la fel si la cmd_target.
User avatar
sadrzaj
Fost moderator
Fost moderator
Posts: 536
Joined: 11 Mar 2009, 17:19
Detinator Steam: Da
CS Status: OWNING
Detinator server CS: NORD.INDUNGI.RO
SteamID: george185
Reputatie: Fost detinator DM.eXtreamCS.com
Fost Moderator
Nume anterior : ScreaM
Location: Botosani
Has thanked: 78 times
Been thanked: 41 times
Contact:

10 Apr 2009, 17:44

Alien Runner wrote:
FireW@ll wrote:

Code: Select all

#include <amxmodx>
#include <amxmisc>

#define PLUGIN "New Plugin"
#define VERSION "1.0"
#define AUTHOR "Author"


public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR)
	register_concmd("amx_ss","ss",ADMIN_KICK,"- <nume> snapshot a player")
	
}

public ss(id){
	if(is_user_alive(id))
	client_cmd(id,"snapshot")
	else
	client_print(id, print_console,"Nu e in viata acel user")
}
De ce apare acolo ADMIN_KICK ? Nu inteleg... :-S
ala e accesul . adica adminul care are acces la comanda admin_kick are acces si la pluginul asta
User avatar
pigmy
Membru, skill +2
Membru, skill +2
Posts: 594
Joined: 14 Dec 2007, 17:49
Detinator Steam: Da
CS Status: PEACE!
Has thanked: 2 times
Been thanked: 23 times

09 Jul 2009, 16:02

Imi zice si mie cineva... ^:)^
Am:

Code: Select all

if(is_user_alive(id))
sa mearga comanda doar daca e viu jucatorul.
Vreau sa pun un mesaj sa ii apara:

Code: Select all

client_print(id,"Nu esti viu, nu iti poti face poza decat cand esti viu.")
Pana acuma arata cam asa:

Code: Select all

   if(is_user_alive(id))
   {
      client_print(id,"Nu esti viu, nu iti poti face poza decat daca esti viu.")
      return PLUGIN_HANDLED
   }
Cand vreau sa-l fac imi zice ceva de argument...
Am asa la public:

Code: Select all

public sscmd(id)
Cum ar trebui, imi ziceti si mie va rog, un exemplu daca se poate, simplu doar care sa caute jucatorul daca e in viata. Multumesc.
Post Reply

Return to “Scripting”

  • Information
  • Who is online

    Users browsing this forum: No registered users and 4 guests