Jump to content

- Advertisement -
Photo

[CS16-Scripting] Algoritmi


  • Please log in to reply
No replies to this topic

#1
Andrei;

Andrei;

    Administrator

  • Administrator
  • 3201 posts
  • 398 topics
  • Joined 16-December 12
  • Country: Country Flag

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.

  • Allyn and sinnoptic like this




1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users