Jump to content

Salut ! Cine ma poate ajuta cu o comanda ?


GamerulFOX

Recommended Posts

Salut ! Cine ma poate ajuta cu o comanda care contorizeaza timp-ul player-ului ca atunci cand da /timecollect sa primeasca 25 000 money ! Timp-ul este de 15 minute ! Tin sa mentionez ca nu am o baza de date !
#include <a_samp>
#include <sscanf2>
#include <fly>
#include <streamer>
#include <zcmd>
#include <foreach>

Link to comment
Share on other sites

new CollectTime[MAX_PLAYERS];

CMD:collect(playerid, params[])
{
	if (CollectTime[playerid] > gettime())
	{
		new message[30];
		format(message, sizeof message, "Timp ramas %i minute.", (CollectTime[playerid] - gettime()) / 60 );
		SendClientMessage(playerid, message);
	}
	GivePlayerMoney(playerid, 25000);
	CollectTime[playerid] = gettime() + 15 * 60; 
}

O idee de baza. Singura problema fara a avea o stocare persistenta pentru acea valoare (fara baza de date/ etc) playerul poate pur si simplu sa se reconecteze si sa foloseasca comanda la infinit

Link to comment
Share on other sites

26 minutes ago, Banditul said:
new CollectTime[MAX_PLAYERS];

CMD:collect(playerid, params[])
{
	if (CollectTime[playerid] > gettime())
	{
		new message[30];
		format(message, sizeof message, "Timp ramas %i minute.", (CollectTime[playerid] - gettime()) / 60 );
		SendClientMessage(playerid, message);
	}
	GivePlayerMoney(playerid, 25000);
	CollectTime[playerid] = gettime() + 15 * 60; 
}

O idee de baza. Singura problema fara a avea o stocare persistenta pentru acea valoare (fara baza de date/ etc) playerul poate pur si simplu sa se reconecteze si sa foloseasca comanda la infinit

bro deci in primul rand, ai uitat de return 1; la un sendclientmessage ai uitat de culoare si nu merge cum am spus eu ! Deci un player a intrat pe server si da /collect da eroare "Poti folosi aceasta comanda in %i  minute!" si dupa ce face acel timp poate sa de-a ! Adica daca da reconnect sa ia din nou "Timer-ul" de la inceput!

Link to comment
Share on other sites

25 minutes ago, GamerulFOX said:

bro deci in primul rand, ai uitat de return 1; la un sendclientmessage ai uitat de culoare si nu merge cum am spus eu ! Deci un player a intrat pe server si da /collect da eroare "Poti folosi aceasta comanda in %i  minute!" si dupa ce face acel timp poate sa de-a ! Adica daca da reconnect sa ia din nou "Timer-ul" de la inceput!

Presupun ca daca mergi pe idea de "faceti voi pentru mine, eu doar o sa dau copy-paste si nu invat nimic" nu o sa ajungi prea departe si judecand dupa topicurile tale din trecut care erau pe teme similare legate de "comanda delay" etc ma asteptam ca ai invatat ceva pana acum. Felicitari totusi pentru ca ai observat acele greseli.

Cum am specificat, este o idee de baza pe care esti liber sa o adaptezi si sa o extinzi cum doresti.

Poti pune CollectTime[playerid] = 0 la OnPlayerConnect/OnPlayerDisconnect ca sa fie resetata variabila pentru playerul care se va conecta cu acelasi playerid doar ca cum am explicat o sa crezei un 'bug' pe care il poti rezolva doar cu stocare persistenta a datelor.

Daca consideri ca logica comenzi este gresita, poti face debug cu printf sa iti arate valoarea gettime si CollectTime si sa modifici acel if cu conditia dorita conform acelor valori. Eventual poti incerca sa cauti pe google informati despre timestamp si cum functioneaza.

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.