|
|
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
|
|