Tutorial despre stockuri

Tutoriale scripting, cod si portiuni de cod.

Moderators: Moderatori ajutatori, Moderatori, Echipa eXtreamCS.com

User avatar
HamletEagle
Fost moderator
Fost moderator
Posts: 750
Joined: 21 Sep 2013, 15:05
Detinator Steam: Da
CS Status: Inactiv cateva zile.
SteamID: privat
Reputatie: Fost Scripter eXtreamCS.com
Fost Moderator ajutator
Has thanked: 19 times
Been thanked: 85 times

16 Nov 2013, 18:24

Stock-urile ne ajuta sa ne creeam propriile functii. Pentru asta le folosim in principal,insa mai exista si alte intrebuintari. Acum,de ce am alege un stock si nu un public ?

=>publicul te obliga sa il apelezi cel putin 1 data in sursa,pe cand stock-ul nu.
=>este mai flexibil,daca nu il utilizezi nu va fi vazut de compiler.

Acum,un stock arata asa:

Code: Select all

stock nume() {



}


SAU:

Code: Select all

stock nume(id) {



}


De ce am facut 2 publicuri adaugand doar 1 simplu param in al doilea ? Deoarece,vreau sa scot in evidenta ca un stock poate avea sau nu paramuri(nu zic altfel ca sare lumea,daca nu stiti ce sunt alea,soarta)

Acum sa facem un caz simplu: Vrem sa verifica mai simplu cand un user este CT si cand un user este T.

Prima data avem nevoie de modulul cstrike asa ca il includem:

Code: Select all

#include <cstrike>
Acum creeam stock-ul:

Code: Select all

stock is_user_ct(id) {

if(cs_get_user_team(id) == CS_TEAM_CT) return true //verificam daca echipa lui este CT si returnam true
	else return false //altfel returnam false
	
	return PLUGIN_CONTINUE

}
INFO:
| Afiseaza codul
cs_get_user_team(id): tine de modulul cstrike. Poate returna urmatoarele valori:
CS_TEAM_T
CS_TEAM_CT
CS_TEAM_SPECTATOR
CS_TEAM_UNASSIGNED
Acum sa incercam sa facem un stock pentru a verifica daca un user este vip:

Code: Select all

stock is_user_vip(id) {
	
	if(get_user_flags(id) & ADMIN_LEVEL_H) return true 
	else return false
	
	return PLUGIN_CONTINUE
}
Sa vedem un exemplu de utilizare pentru stock-ul de mai sus:

Code: Select all

/* Plugin generated by AMXX-Studio */

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

#define PLUGIN "New Plug-In"
#define VERSION "1.0"
#define AUTHOR "author"


public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR)
	
	// Add your code here...
}

public client_putinserver(id) set_task(3.0,"Print",id)//task de 3.0 secunde

public Print(id) {
	
	if(is_user_vip(id)) client_print(0,print_chat,"Un vip se conecteaza") //daca este vip printam acest mesaj
	
}


stock is_user_vip(id) {
	
	if(get_user_flags(id) & ADMIN_LEVEL_H) return true
	else return false
	
	return PLUGIN_CONTINUE
}
Last edited by HamletEagle on 17 Feb 2014, 21:29, edited 6 times in total.
Daca vreti ajutorul meu, nu dati bump la topic, fara intrebari de genu "cat mai dureaza/mai astept mult?".
RoyalServer
munir
Membru eXtream
Membru eXtream
Posts: 3193
Joined: 30 Aug 2012, 22:16
Detinator Steam: Da
CS Status: Fost scripter
Detinator server CS: Nu
SteamID: -
Reputatie: Fost super moderator
Restrictie schimbare nume
Nume anterior: falseq, cruyff
Location: Bucuresti
Has thanked: 342 times
Been thanked: 571 times
Contact:

16 Nov 2013, 18:31

E mai bine sa verifici asa

Code: Select all

stock is_user_ct( id )
{
if( get_user_team( id ) == 2 )
	return true;
	
return false;
}
Anyway.. nu cred ca va merge codul tau. Trebuie sa pui o conditie. btw, verifica daca playerul este conectat, pentru ca pot aparea erori.
In rest, good job.
Retras
User avatar
HamletEagle
Fost moderator
Fost moderator
Posts: 750
Joined: 21 Sep 2013, 15:05
Detinator Steam: Da
CS Status: Inactiv cateva zile.
SteamID: privat
Reputatie: Fost Scripter eXtreamCS.com
Fost Moderator ajutator
Has thanked: 19 times
Been thanked: 85 times

16 Nov 2013, 18:34

falseq wrote:E mai bine sa verifica asa

Code: Select all

stock is_user_ct( id )
{
if( get_user_team( id ) == 2 )
	return true;
	
return false;
}
Anyway.. nu cred ca va merge codul tau. Trebuie sa pui o conditie. btw, verifica daca playerul este conectat, pentru ca pot aparea erori.
In rest, good job.
Scopul aici nu e functionalitatea codului,ci intelegerea modului in care se face un stock si ce este acela.Deci,nu am de ce sa verific daca este conectat,etc.

Edit:ms de sugestie,dar nu are sens sa editez....
Daca vreti ajutorul meu, nu dati bump la topic, fara intrebari de genu "cat mai dureaza/mai astept mult?".
User avatar
KronoS eXtream
Fost administrator
Fost administrator
Posts: 4378
Joined: 02 Apr 2009, 19:18
Detinator Steam: Da
Reputatie: Fost administrator
Fost detinator Zombie-Land.eXtream.Ro
Contribuitor
Fost Scripter eXtreamCS
Dezvoltator al listei de seriozitate eXtreamCS
Location: Bucharest
Has thanked: 551 times
Been thanked: 820 times
Contact:

16 Nov 2013, 18:39

Code: Select all

Un stock este un fisier care contine diverse functii
->

Code: Select all

Un stock este o functie care contine diverse instructiuni
Nu efectuez tranzactii pe mess, skype etc. Aveti grija la indivizii care se dau drept mine!
Nu mai ofer suport asa ca nu imi mai trimiteti mesaje in legatura cu asta!


Zombie Plague Shade 1.2-debug1 [with Item Limiter] (12 September 2015) - Bombardier Branch
Cosmin
Fost moderator
Fost moderator
Posts: 9362
Joined: 06 Jul 2013, 22:08
Detinator Steam: Da
Detinator server CS: Nu
Reputatie: Fost eXtream Mod
Fost Scripter eXtreamCS
Nume anterior: scosmynnnn
Has thanked: 492 times
Been thanked: 547 times

16 Nov 2013, 18:53

Deci sa inteleg ca un stock este un fel de public,acel plugin facut de tine se poate face si intr-un public oarecare nu?
User avatar
HamletEagle
Fost moderator
Fost moderator
Posts: 750
Joined: 21 Sep 2013, 15:05
Detinator Steam: Da
CS Status: Inactiv cateva zile.
SteamID: privat
Reputatie: Fost Scripter eXtreamCS.com
Fost Moderator ajutator
Has thanked: 19 times
Been thanked: 85 times

16 Nov 2013, 18:56

scosmynnnn wrote:Deci sa inteleg ca un stock este un fel de public,acel plugin facut de tine se poate face si intr-un public oarecare nu?
Nu e public,doar arata ca unul.Tu poti numi stock-ul cum vrei dar trebuie sa schimbi si functia,de exemplu:

Code: Select all

stock tractor(id) {

ceva
}
Functia pe care o vei folosi este tractor(id)
Daca vreti ajutorul meu, nu dati bump la topic, fara intrebari de genu "cat mai dureaza/mai astept mult?".
Cosmin
Fost moderator
Fost moderator
Posts: 9362
Joined: 06 Jul 2013, 22:08
Detinator Steam: Da
Detinator server CS: Nu
Reputatie: Fost eXtream Mod
Fost Scripter eXtreamCS
Nume anterior: scosmynnnn
Has thanked: 492 times
Been thanked: 547 times

16 Nov 2013, 18:58

Aha multumesc,dar acel plugin facut de tine ca exemplu se poate face si intr-un public normal,dar tu l-ai dat ca exemplu :)
User avatar
HamletEagle
Fost moderator
Fost moderator
Posts: 750
Joined: 21 Sep 2013, 15:05
Detinator Steam: Da
CS Status: Inactiv cateva zile.
SteamID: privat
Reputatie: Fost Scripter eXtreamCS.com
Fost Moderator ajutator
Has thanked: 19 times
Been thanked: 85 times

16 Nov 2013, 18:59

scosmynnnn wrote:Aha multumesc,dar acel plugin facut de tine ca exemplu se poate face si intr-un public normal,dar tu l-ai dat ca exemplu :)
Cum adica public normal ?La ce te referi?
Daca vreti ajutorul meu, nu dati bump la topic, fara intrebari de genu "cat mai dureaza/mai astept mult?".
Cosmin
Fost moderator
Fost moderator
Posts: 9362
Joined: 06 Jul 2013, 22:08
Detinator Steam: Da
Detinator server CS: Nu
Reputatie: Fost eXtream Mod
Fost Scripter eXtreamCS
Nume anterior: scosmynnnn
Has thanked: 492 times
Been thanked: 547 times

16 Nov 2013, 19:07

Ma refer ca merge sa il faci si cu public si numele ex:

Code: Select all

public name
dar tu ai facut doar un exemplu :P
User avatar
KronoS eXtream
Fost administrator
Fost administrator
Posts: 4378
Joined: 02 Apr 2009, 19:18
Detinator Steam: Da
Reputatie: Fost administrator
Fost detinator Zombie-Land.eXtream.Ro
Contribuitor
Fost Scripter eXtreamCS
Dezvoltator al listei de seriozitate eXtreamCS
Location: Bucharest
Has thanked: 551 times
Been thanked: 820 times
Contact:

16 Nov 2013, 19:12

Se poate face si in public.

Diferenta dintre public si stock este ca la primul tip de functie o sa primesti avertisment in timpul compilarii daca functia respectiva nu este folosita.La stock, daca acesta nu este apelat in plugin, nu va fi compilat (e ca si cum ar fi un comentariu, nu este vazut de catre compilator).

Practic, functiile de tip public te forteaza sa le apelezi cel putin o data.
Nu efectuez tranzactii pe mess, skype etc. Aveti grija la indivizii care se dau drept mine!
Nu mai ofer suport asa ca nu imi mai trimiteti mesaje in legatura cu asta!


Zombie Plague Shade 1.2-debug1 [with Item Limiter] (12 September 2015) - Bombardier Branch
Cosmin
Fost moderator
Fost moderator
Posts: 9362
Joined: 06 Jul 2013, 22:08
Detinator Steam: Da
Detinator server CS: Nu
Reputatie: Fost eXtream Mod
Fost Scripter eXtreamCS
Nume anterior: scosmynnnn
Has thanked: 492 times
Been thanked: 547 times

16 Nov 2013, 19:16

Am inteles,stock-ul este mai folositor decat public-ul.....Thanks :)
User avatar
KronoS eXtream
Fost administrator
Fost administrator
Posts: 4378
Joined: 02 Apr 2009, 19:18
Detinator Steam: Da
Reputatie: Fost administrator
Fost detinator Zombie-Land.eXtream.Ro
Contribuitor
Fost Scripter eXtreamCS
Dezvoltator al listei de seriozitate eXtreamCS
Location: Bucharest
Has thanked: 551 times
Been thanked: 820 times
Contact:

16 Nov 2013, 19:18

scosmynnnn wrote:Am inteles,stock-ul este mai folositor decat public-ul.....Thanks :)
Ambele sunt la fel de folositoare.

Stock-ul se recomanda sa fie folosit atunci cand ne scriem propriile biblioteci.
Public-ul este folositor pentru comunicarea dintre pluginuri (pluginuri ce executa functii din alte pluginuri).
Nu efectuez tranzactii pe mess, skype etc. Aveti grija la indivizii care se dau drept mine!
Nu mai ofer suport asa ca nu imi mai trimiteti mesaje in legatura cu asta!


Zombie Plague Shade 1.2-debug1 [with Item Limiter] (12 September 2015) - Bombardier Branch
Post Reply

Return to “Scripting”

  • Information
  • Who is online

    Users browsing this forum: No registered users and 7 guests