Filehost.ro - gazduire fisiere
FLACARICA.3XFORUM.RO
Forum powered by elem3nt WWW.flacarica.3XFORUM.RO
Nou pe simpatie:
ramonaa86
Femeie
25 ani
Brasov
cauta Barbat
31 - 46 ani
FLACARICA.3XFORUM.ROReguliInregistrareLoginPozeNu sunteti logat. Lista Forumurilor Pe Tematici
FLACARICA.3XFORUM.RO / Counter Strike /

[ Tutorial ] User Team - Amxx, Gaseste echipa jucatorului/Seteaza ech

Pagini: 1  
#1
elem3nt
Administrator
Postari: 717
User Team Tutorial [AMXMODX ONLY]

Pentru inceput tind sa va zic ca tutorialul acesta este format din 2 mari categorii:

   1. cs_get_user_team
   2. cs_set_user_team



Diferenta dintre cele 2 este ca una afla in ce echipa este un player si a doua transfera jucatorul la o echipa.

1. cs_get_user_team

Vom incepe cu declararea unor include-uri.

CODE
#include <amxmodx>

comenzile de baza la amxmodx.fara aceasta nu putem face nimic.

CODE
#include <cstrike>

folosit la comenzi precum cs_get_user_team/cs_set_user_team/cs_get_user_armor etc , definit doar pentru ca folosim o comanda din el.

CODE
public plugin_init()
{
    register_plugin("Nume Plugin","1.0","Autor"
    register_event("ResetHUD","first","be"
}


Al doilea rand (register_event("ResetHUD","first_pub","be") este tot una cu

CODE
register_event("HLTV", "first", "a", "1=0", "2=0"


si ambele se executa de fiecare data publicul "first" la inceperea fiecarei runde,
dar eu mam obisnuit cu primul fel :P

Dupa ce am terminat si cu inclusul si cu public_init mergem la primul public si anume public first(id)

Aici vom introduce un loop(for / while care trece prin toate ident-urile playerilor , luand pe fiecare in parte) luand ca numar maxim, numarul de jucatori
de pe server.Dupa aia vom face un test sa vedem daca playerul a ramas pe server pana s-a ajuns la el cu for-ul.
Dupa aia
Deci o sa arate cam asa:

CODE
public first(id)
{
    static players[32], inum, i; /*declararea variabilelor ce vor fi folosite ca altfel da eroare la compilare*/
    get_players(players,inum)  /*uam nr maxim de playeri*/
    for( i = 0; i < inum; i++)  /*loop-ul propriuzis*/
    {
        if(!is_user_connected(players[i]))  /*daca playerul nu este conectat (a iesit intre timp) */
            return PLUGIN_HANDLED;  /*sa nu se faca nimic*/
}


Eu m-am hotarat sa fac playerii sa aiba un invelis colorat dupa echipe
Adica daca eu sunt CT sa fie in jurul meu un invelis albastru , daca sunt T sa fie rosu.

Odata ce am decis ce vreau sa fac imi dau seama ca comanda pentru a face un player sa fie 'colorat' este
CODE
set_user_rendering(id_jucator,mod,culoare_rosie,culoare_verde,culoare_albastra,stralucire_norma
la,factor);
set_user_rendering(players[i],kRenderFxGlowShell,255,0,0,kRenderNormal,25);

si imi mai dau seama ca la inceput cand am facut include-urile nu stiam ca am sa folosesc si o comanda din fun.inc asa ca revin sus si trec linia
CODE
#include <fun>



CODE
public first(id)
{
    static players[32], inum, i; /*declararea variabilelor ce vor fi folosite ca altfel da eroare la compilare*/
    get_players(players,inum)  /*luam nr maxim de playeri*/
    for( i = 0; i < inum; i++)  /*loop-ul propriuzis*/
    {
        if(!is_user_connected(players[i]))  /*daca playerul nu este conectat (a iesit intre timp) */
            return PLUGIN_HANDLED;  /*sa nu se faca nimic*/
        if(cs_get_user_team(players[i]) == CS_TEAM_T) /*daca playerul se afla la Terro atunci
        {
            set_user_rendering(players[i],kRenderFxGlowShell,255,0,0,kRenderNormal,25);  /*sa aiba un invelis de culoarea ros*/
        }
        if(cs_get_user_team(players[i]) == CS_TEAM_CT)  /*daca playerul se afla la Couter-Terro atunci*/
        {
            set_user_rendering(players[i],kRenderFxGlowShell,0,0,255,kRenderNormal,25);  /*sa aiba un invelis de culoare albastra*/
        }
    }
   
    return PLUGIN_CONTINUE;  /*se anunta sfarsitul publicului*/
}


cs_get_user_team(ident) - poate sa 'aduca' 4 valori:

   1. CS_TEAM_T => playerul este la terro
   2. CS_TEAM_CT => playerul este la ct
   3. CS_TEAM_SPECTATOR => playerul este spectator
   4. CS_TEAM_UNASSIGNED => playerul este la meniul unde isi selecteaza echipa cand se conecteaza




Deci la final arata asa:
CODE
#include <amxmodx>
#include <cstrike>
#include <fun>

public plugin_init()
{
    register_plugin("Team Glowing","1.0","Hack"
    register_event("ResetHUD","first","be"
}

public first(id)
{
    static players[32], inum, i;
    get_players(players,inum)
    for( i = 0; i < inum; i++)
    {
        if(!is_user_connected(players[i]))
            return PLUGIN_HANDLED;
        if(cs_get_user_team(players[i]) == CS_TEAM_T)
        {
            set_user_rendering(players[i],kRenderFxGlowShell,255,0,0,kRenderNormal,25);
        }
        if(cs_get_user_team(players[i]) == CS_TEAM_CT)
        {
            set_user_rendering(players[i],kRenderFxGlowShell,0,0,255,kRenderNormal,25);
        }
    }
   
    return PLUGIN_CONTINUE;
}



2. cs_set_user_team
Pune jucatorul intr-o echipa.
Vom folosi tot codul de mai sus dar nu ii vom face sa straluceasca ci terro se amesteca in baza ct si invers deci cine trage primu bine castiga )
CODE
#include <amxmodx>
#include <cstrike>

new variabila = 0;

public plugin_init()
{
    register_plugin("Team Switching","1.0","Hack"
    register_event("ResetHUD","first","be"
}

public first(id)
{
    if(variabila == 5)
    {
        static players[32], inum, i;
        get_players(players,inum)
        for( i = 0; i < inum; i++)
        {
            new ok
            ok = 0
            if(!is_user_connected(players[i]))
                return PLUGIN_HANDLED;
            if(cs_get_user_team(players[i]) == CS_TEAM_T)
            {
                cs_set_user_team(players[i],CS_TEAM_CT)
                ok = 1
            }
            if(cs_get_user_team(players[i]) == CS_TEAM_CT && ok != 1)
            {
                cs_set_user_team(players[i],CS_TEAM_T)
            }
            ok = 0
        }
    }
    else
    {
        variabila++;
    }
    return PLUGIN_CONTINUE;
}


Sper sa fie folosito


 
   

Topicuri similare

Pagini: 1  
Mergi la