O sa va arat cativa algoritmi care dau batai de cap incepatorilor.
1. Parcurgerea playerilor in eventuri globale:
new iPlayers[ 32 ], iNum, id get_players( iPlayers, iNum ) for( new i = 0; i < iNum; i ++ ) { id = iPlayers[ i ] }
- iPlayers[ 32 ] stocheaza idul fiecarui player de pe server, in celulele de la 0 la 31.
- iNum va retine numarul playerilor.
- id este o variabila pe care o vom folosi mai tarziu, pentru a nu reindexa un array.
- get_players ia playerii de pe server.
- pentru a parcurge toti playerii, facem un for si executam codul necesar pentru fiecare in parte.
- iPlayers[ i ] este arrayul ce retine indexul playerului i( de la 0 la 31 )
2. Ultimul player dintr-o echipa:
new iPlayers[ 32 ], iNum, id get_players( iPlayers, iNum, "e", "TERRORIST" ) //ia toti playerii din echipa T //get_players( iPlayers, iNum, "e", "CT" )//ia toti playerii din echipa CT if( iNum == 1 ) { id = iPlayers[ 0 ] //cod }
- get_players poate sa fie restrictionata la un anumit set de playeri, cu ajutorul flagurilor.
- flagul e verifica echipa
- daca iNum == 1, inseamna ca avem doar un player in echipa respectiva.
- el o sa fie stocat in celula 0 din arrayul iPlayers
3. Player random:
new iPlayers[ 32 ], iNum, id get_players( iPlayers, iNum ) id = iPlayers[ random( iNum ) ]
- random va alege un numar random de la 0 la iNum.
4. Playerul cu cei mai multi money de pe server.
new iPlayers[ 32 ], iNum, id, iMax get_players( iPlayers, iNum ) for( new i = 0; i < iNum; i ++ ) { id = iPlayers[ i ] if( !iMax ) { iMax = cs_get_user_money( id ) } else if( cs_get_user_money( id ) > iMax ) { iMax = cs_get_user_money( id ) } }
- Variabila iMax va retine maximul. La prima executare iMax este 0, verificam daca !iMax( daca este 0 ). Orice este mai mare decat 0, deci atunci iMax devine prima valoare gasita.
- Daca iMax nu este 0, atunci contine o valoare. Verificam daca valoarea actuala este mai mare decat iMax, atunci iMax devine egal cu valoarea curenta.
Edited by Artick ;, 21 August 2014 - 01:44 PM.