PDA

View Full Version : [WarGods Tutorials Nr.7] ResetScore simplu



lAsuStarl
25-10-2015, 10:06 AM
Salutare,acesta este al 7-lea WarGods Tutorial,si astazi vom vorbi despre 2 functii,care apartin unor biblioteci diferite precum:cstrike si
fun
1)Aceste functii,arata cam asa:

cs_set_user_deaths(parametru,parametru)
set_user_frags(parametru,parametru)
.Prima functie are posibilitatea de a seta dead-urile unui jucator,iar a 2-a poate seta fragurile unui jucator.cs_set_user_deaths(),apartine de biblioteca cstrike,iar set_user_frags(),apartine de biblioteca fun.

2)Parametrii functiilor sunt aceleasi,"Cu-i sa i setez dead-urile/fragurile?",si "In ce valoare sa o setez?".In plugin-ul nostru noi dorim sa resetam dead-urile si frag-urile,asadar valoarea va fi 0 la ambele functii.

3)Acum creem un plugin nou,iar cod-ul va arata cam asa:

#include <amxmodx>
#include <cstrike>
#include <fun>

#define PLUGIN "Simple ResetScore"
#define VERSION "0.1"
#define AUTHOR "AsuStar"

public plugin_init()
{
register_plugin(PLUGIN,VERSION,AUTHOR)

register_clcmd("say /resetscore","cmd_reset")
register_clcmd("say /rs","cmd_reset")
register_clcmd("say_team /resetscore","cmd_reset")
register_clcmd("say_team /rs","cmd_reset")
}

public cmd_reset(id)
{
cs_set_user_deaths(id,0)
set_user_frags(id,0)
cs_set_user_deaths(id,0)
set_user_frags(id,0)
ColorChat(id,"!v[ResetScore]!n:Scorul tau a fost resetat cu succes!")
}

stock ColorChat( const id, const input[ ], any:... )
{
new count = 1, players[ 32 ]

static msg[ 191 ]
vformat( msg, 190, input, 3 )

replace_all( msg, 190, "!v", "^4" ) //- verde
replace_all( msg, 190, "!g", "^1" ) //- galben
replace_all( msg, 190, "!e", "^3" ) //- echipa
replace_all( msg, 190, "!n", "^0" ) //- normal

if( id ) players[ 0 ] = id; else get_players( players, count, "ch" )
{
for( new i = 0; i < count; i++ )
{
if( is_user_connected( players[ i ] ) )
{
message_begin( MSG_ONE_UNRELIABLE, get_user_msgid( "SayText" ), _, players[ i ] )
write_byte( players[ i ] );
write_string( msg );
message_end( );
}
}
}
}


4)Daca bine a-ti observat in plugin_init(),la inregistrarea comenziilor,am utilizat acel say_team,este exact ca si say,doar ca,este atunci cand apesi pe tasta u.Explicatia o gasiti in tutorialul anterior.Am inregistrat 4 comenzi :

register_clcmd("say /resetscore","cmd_reset") -> in cazul in care jucatorul doreste sa scrie /resetscore
register_clcmd("say /rs","cmd_reset") -> in cazul in care jucatorul doreste sa scrie prescurtat /rs
register_clcmd("say_team /resetscore","cmd_reset") -> in cazul in care jucatorul doreste sa scrie pe chatul echipei /resetscore
register_clcmd("say_team /rs","cmd_reset") -> in cazul in care jucatorul doreste sa scrie pe chatul echipei prescurtat /rs
,aceasta e explicatia simpla pe care o pot da,pentru voi,sa intelegeti mai bine.

5)In codul nostru apare de 2 ori fiecare functie invatata acum :

cs_set_user_deaths(id,0)
set_user_frags(id,0)
cs_set_user_deaths(id,0)
set_user_frags(id,0)
,intrebarea voastra este "De ce ?",motivul este urmatorul:
-Exista un bug,in toata treaba asta si daca scriu doar odata aceste 2 functii,nu i se va reseta scorul,si de acea trebuie scrise de 2 ori,pentru a functiona,aceasta este singura explicatie pe care eu,pot so va dau voua.

6)Acum daca ati observat,am folosit stock-ul din tutorialul anterior,pentru o nuanta de culoare,cel putin mie unul,asa imi place,iar mesajul pe care-l ve-ti primi va fi urmatorul : "[ResetScore]:Scorul tau a fost resetat cu succes!".Este destul de simplu daca ai explicatia in fata,sa intelegi fiecare ce face.

Acesta a fost al 7-lea WarGods Tutorial,daca nu a-ti inteles ceva,sau am omis va rog postati,pana data viitoare numai bine :P.