Jump to content

[Tutorial]Rainbow Baza


ASGOOD

Recommended Posts

new TimerRainbow[MAX_PLAYERS];//definim timer-ul

forward RainbowTimer(playerid);//cream forward-ul pentru viitorul timer
public RainbowTimer(playerid) { // public-ul
    new carcol[2];//Definim 2 variabile (scurtaturi)
	new carid = GetPlayerVehicleID(playerid);//inca o scurtatura
	carcol[0] = randomEx(165, 255), carcol[1] = randomEx(165, 255);//Conferim valorile scurtaturilor
	ChangeVehicleColor(carid, carcol[0], carcol[1]);//Schimbam culoarea vehiculului
	return 1;
}
CMD:rainbowon(playerid, params[]){//Cream comanda
	new ptime;//definim o variabila pe care sa o cautam cu sscanf cand tasteaza comanda
	if(TimerRainbow[playerid] != -1)return SendClientMessage(playerid, 0xFFFFFF77, "Ai pornit deja rainbow-ul");//Verificam daca are pornit rainbow-ul
	if(sscanf(params, "i", ptime))return SendClientMessage(playerid, 0xFFFFFF77, "Use: /rainbowon <time in seconds>");//verificam daca scrie comanda corect
	if(ptime < 1 || ptime > 10)return SendClientMessage(playerid, 0xFFFFFF77, "Poti pune doar intre 1 si 10 secunde.");//o interogatie sa nu puna mai putin de 1s si nici mai mult de 10s
	if(!IsPlayerInAnyVehicle(playerid))return SendClientMessage(playerid, 0xFFFFFF77, "Nu esti intr-un vehicul.");//Verificam daca este intr-un vehicul
	TimerRainbow[playerid] = SetTimerEx("RainbowTimer", ptime*1000, true, "i", playerid);//Setam timer-ul
	SendClientMessage(playerid, 0xFFFF00FF, "Ai pornit rainbow-ul.");//Ii trimitem un mesaj
	return 1;//finish
}
CMD:rainbowoff(playerid, params[]){//creem comanda
	if(TimerRainbow[playerid] == -1)return SendClientMessage(playerid, 0xFFFFFF77, "Nu ai pornit rainbow-ul"); //Verificam daca-l are pornit
	KillTimer(TimerRainbow[playerid]);//Oprim timer-ul
	SendClientMessage(playerid, 0xFFFF00FF, "Ai oprit rainbow-ul.");//trimitem mesaj-ul
	return 1;//finish
}
public OnPlayerExitVehicle(playerid, vehicleid) {//Cand player-ul iese din vehicul
	if(TimerRainbow[playerid] != -1){//Verificam daca are rainbow-ul pornit
    	KillTimer(TimerRainbow[playerid]); //Daca il are, il oprim
    }
	return 1; 
}

Scz @AlexxAdv, multi nu au y_timers sau nu stiu sa-l foloseasca :))

Edited by ASGOOD
  • Like 1

maxresdefault.jpg

 

 

 

Link to comment
Share on other sites

  • 1 month later...

Variabilele locale nu se numeste scurtaturi, iar in cazul tau nu era necesar sa le creezi, pentru ca apelezi o singura data functia aia si o puteai apela direct in a doua functie, astfel n-ai mai ocupa degeaba memoria cu acele "scurtaturi".
Ca sa fiu mai exact:

public RainbowTimer(playerid) { // public-ul
    new carcol[2];//Definim 2 variabile (scurtaturi)
	new carid = GetPlayerVehicleID(playerid);//inca o scurtatura
	carcol[0] = randomEx(165, 255), carcol[1] = randomEx(165, 255);//Conferim valorile scurtaturilor
	ChangeVehicleColor(carid, carcol[0], carcol[1]);//Schimbam culoarea vehiculului
	return 1;
}

->>

public RainbowTimer(playerid) return ChangeVehicleColor(GetPlayerVehicleID(playerid), randomEx(165, 255), randomEx(165, 255));//Schimbam culoarea vehiculului

 

Si a doua mentiune, randomEx nu este o functie "predefinita" in librariile sampului, lumea o sa primeasca eroare si n-o sa stie de ce.
Daca nu te-ai suparat deja, ai mai putea arunca o privire la modul in care "verifici daca are sistemul pornit", ai locuri in care folosesti KillTimer, dar functia aia nu o sa-ti seteze variabila pe -1, iar tu faci mai incolo verificari cu TimerRainbow[playerid] == -1 / != 1 / etc, de aici o sa iti apara buguri din cauza ca odata ce ai setat un timer, acea variabila nu va mai avea valoarea -1 pana cand n-o setezi tu, dar tu nu o setezi nicaieri.

Sper sa citesti asta si sa-ti dai seama ca e o critica constructiva, succes! :)

Edited by Lunoxx
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. For more details you can also review our Terms of Use and Privacy Policy.