[Tutorial] Optimizare cu switch

Tutoriale scripting, cod si portiuni de cod.

Moderators: Moderatori ajutatori, Moderatori, Echipa eXtreamCS.com

Post Reply
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:

23 Oct 2013, 22:37

Salut, astazi vreau sa va invat cum sa optimizati un plugin cu switch. Dupa cum stiti, switch se foloseste cand ai mai multe valori. (cvar, variabila etc). De exemplu, sa zicem ca avem get_user_team( ). Codul normal, este ceva de genul:

Code: Select all

if( get_user_team( id ) == 1 ) // tero
{
// cod
}

else if( get_user_team( id ) == 2 ) // c-tero
{
// cod
}

else if( get_user_team( id ) == 3 ) // spec
{
// cod
}
Ei bine, astfel de solutii sunt foarte proaste. Acum vom vedea cum putem optimiza cu switch:

Code: Select all

switch( get_user_team( id ) ) // acum luam fiecare valoare a functiei get_user_team( )
{
case 1: { // cod } // tero

case 2: { // cod } // c-tero

case 3: { // cod } // spec
}
Observam ca este foarte usor sa folosesti switch. Simple and usefully.
@Varianta in engleza - click
Retras
RoyalServer
User avatar
MaimutaVirtuala
Membru, skill +2
Membru, skill +2
Posts: 535
Joined: 15 Mar 2013, 00:20
Detinator Steam: Nu
CS Status: Maimutaresc
Has thanked: 16 times
Been thanked: 52 times
Contact:

23 Oct 2013, 22:55

Ai lamurit pe toata lumea. ^:)^

Switch(`schimba` prov. engleza) aceasta functie este ca si un intrerupator(are functii multiple).Swith(id) preia id-ul cu o valoare definita deja,case 1 unde acel "1" unde este valoarea venita din `id`.In fiecare case se poate intampla o actiune diferita.

Este mai estetic ca structura sa folosesti switch in loc de if-uri, in rest nu difera cu nimic fata de IF(conditionala).
MaimutaVirtuala iti recomanda doza zilnica de...ABECEDAR.
Nu exista niciun tren in care nu m-as urca,oricare ar fi destinatia lui.(Edna St. Vincent Millay)
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:

23 Oct 2013, 22:58

MaimutaVirtuala wrote:Ai lamurit pe toata lumea. ^:)^

Switch(`schimba` prov. engleza) aceasta functie este ca si un intrerupator(are functii multiple).Swith(id) preia id-ul cu o valoare definita deja,case 1 unde acel "1" unde este valoarea venita din `id`.In fiecare case se poate intampla o actiune diferita.

Este mai estetic ca structura sa folosesti switch in loc de if-uri, in rest nu difera cu nimic fata de IF(conditionala).
E mult mai optimizat si mai aranjat sa folosesti switch. Cel putin asa fac eu. E foarte usor sa cauti pe google despre c++ sau mai stiu eu ce, dar despre amxx, nu cred ca gasesti.
@mersi de parere.
Retras
User avatar
FaTzZu
Fost moderator
Fost moderator
Posts: 1206
Joined: 22 Dec 2012, 18:37
Detinator Steam: Da
Reputatie: Fost moderator ajutator
Has thanked: 114 times
Been thanked: 168 times

23 Oct 2013, 23:28

Link
Poftim si varianta in engleza
A fool's brain digests philosophy into folly, science into superstition, and art into pedantry.

#RETIRED.
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

05 Nov 2013, 16:36

Mai exact le ia in ordine case 1 / if( get_user_team( id ) == 1 ) // t
case 2 / if( get_user_team( id ) == 2 ) // ct
case 3 / if( get_user_team( id ) == 3 ) // spec
Sincer nu stiam ca merge si asa,thanks ;)
User avatar
Hades Ownage
Membru eXtream
Membru eXtream
Posts: 3182
Joined: 22 Oct 2008, 10:12
Detinator Steam: Da
Detinator server CS: jb.clutch.ro
SteamID: hades-source
Reputatie: Fost Super Moderator
Fost Scripter eXtreamCS
Nume anterior: hadesownage
Location: Iasi
Has thanked: 324 times
Been thanked: 406 times

15 Jan 2014, 21:22

Daca aveti multe 'if-uri' care verifica aceeasi chestie de multe ori, e recomandat sa folositi 'switch'
LordOfNothing
Membru, skill +1
Membru, skill +1
Posts: 387
Joined: 19 Jul 2013, 15:51
Detinator Steam: Nu
Reputatie: Restrictie PM
Has thanked: 11 times
Been thanked: 35 times

13 May 2014, 09:00

Hades Ownage wrote:Daca aveti multe 'if-uri' care verifica aceeasi chestie de multe ori, e recomandat sa folositi 'switch'
aceiasi chestie ? :))
Post Reply

Return to “Scripting”

  • Information
  • Who is online

    Users browsing this forum: No registered users and 6 guests