Nepasikeičia kintamasis

Šiame forume rašomi vartotojų klausimai/problemos su kuriomis jie susidūrė kuriant pluginus.
Post Reply
equel
Parašęs kelias žinutes
Posts: 5
Joined: 2019 Mar 27 20:53

Nepasikeičia kintamasis

Post by equel »

Sveiki. Kadangi esu pradedantis šiame programavime bandžiau sukurti paprastą pluginą (komandą galima panaudoti vieną kartą per roundą, po roundo pabaigos turėtų vėl leisti panaudoti komandą bet rašo kad ji jau panaudota). Bet yra bėdelė. Pasibaigiant raundui kintamasis nepasikeičia į false. Kame gali būti problema? :/ Nežinau ar aš bukas ar kas XD Pridedu žemiau scripto greitą ,,eskizą"

Kodas: Select all

new komandaUsed[33]

public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR)
	
	register_clcmd("say /ginklas", "ginklas")
	register_logevent("roundas", 2, "1=Round_End"); 
}

public ginklas(id)
{
	if( komandaUsed[id] )
	{
		client_print(id, print_chat, "jus jau panaudojote sia komanda")
		return PLUGIN_HANDLED
	}
	else
	{
		if(is_user_alive(id))
		{
			give_item(id, "weapon_m4a1")
			komandaUsed[id] = true;
			return PLUGIN_CONTINUE
		}
	}
}

public roundas(id)
{	
	komandaUsed[id] = false;
	client_print(0, print_chat, "baigesi roundas")
	return PLUGIN_HANDLED
}

User avatar
psychical
Viršininkas
Posts: 2087
Joined: 2011 Mar 12 22:19
Skype: tautvydas11
Location: Linksmakalnis
Contact:

Re: Nepasikeičia kintamasis

Post by psychical »

RoundEnd logevent'as vykdomas tik 1 kartą - serveriui, o ne x kartų - kiekvienam žaidėjui. Tai reiškia, kad to evento metu turi naudoti ciklą kurio metu "perbėgi" per visus žaidėjus ir nustatai jiems reikšmę false PVZ.:

Kodas: Select all

for(new i=0; i < 32; i++) {
    if(is_user_connected(i)
        komandaUsed[i] = false;
}
Taip pat nepamiršk, kad žaidėjui atsijungus ir kitam prisijungus lygiai taip pat turi nustatyti false reiškę, kitu atveju ką tik prisijungęs žaidėjas gali gauti true reikšmę ir negalės pasinaudoti funkcija. Tam reiktų naudoti client_putinserver (mano pasiūlymu) daugelis rekomenduoja tai daryti atsijungiant su client_disconnect ant naujesnio client_disconnected, tačiau bent jau aš visada tai darau žaidėjui prisijungiant.

equel
Parašęs kelias žinutes
Posts: 5
Joined: 2019 Mar 27 20:53

Re: Nepasikeičia kintamasis

Post by equel »

Ačiū labai!! Viskas puikiai veikia. + karmos taškai

Post Reply

Who is online

Users browsing this forum: No registered users and 7 guests