Jump to content

Question

Posted

Salut. Am o problema la comanda /attack. Cand nu sunt pe turf si dau /attack imi spune ca e comanda invalida, comanda merge doar pe turf, si eu as vrea ca, comanda sa functioneze doar in intervalul orelor 20:00 - 22:00, acum pot da attack cand vreau. Ma puteti ajuta? Vreau sa mentionez ca, chiar daca sunt sub 3 membrii online merge sa dau /attack. Rog seriozitate, chiar sunt pe la inceput si n-am idee. Gamemode Burned ( Last-Time ). Cod:

YCMD:attack(playerid, params[], help) {
	if(!IsAMember(playerid)) return SCM(playerid,COLOR_GREY, "Nu faci parte dintr-o mafie.");
	if(PlayerInfo[playerid][pRank] < 3) return SCM(playerid,COLOR_LIGHTBLUE,"You do not have rank 3.");
	new turf,string[100];
	for(new i = 1; i <= sizeof(TurfInfo); i++) {
		if(IsPlayerInTurf(playerid, i) == 1) {
			turf = i;
			break;
		}
    }
	new hour,minute,second, year, month, day;
	gettime(hour,minute,second);
	getdate(year, month, day);
	new days[180];
	format(days, sizeof(days), GetWeekDay(day, month, year));
	if(PlayerInfo[playerid][pAdmin] < 7) {
		if(strcmp(days,"Saturday",true) == 0 || strcmp(days,"Sunday",true) == 0) return SCM(playerid, COLOR_LIGHTRED, "Nu se dau war-uri in weekend!");	
		if(hour == 20 || hour == 23) {}
		else return SCM(playerid, COLOR_LIGHTRED, "War-uri se pot da doar in intervalul 20:00 - 22:00!");
		if(GetFactionMembersOn2(PlayerInfo[playerid][pMember]) < 2) return SCM(playerid, COLOR_LGREEN, "Nu poti folosi aceasta comanda deoarece nu sunt minim 3 membri conectati din factiunea ta!");
		if(GetFactionMembersOn2(TurfInfo[turf][zOwned]) < 2) return SCM(playerid, COLOR_LGREEN, "Nu poti folosi aceasta comanda deoarece nu sunt minim 3 membri conectati din factiunea care detine teritoriul!");			
	}	
    if(turf == 0) return SCM(playerid, COLOR_WHITE, "Nu esti pe un teritoriu!");
    new faction = PlayerInfo[playerid][pMember];
    if(TurfInfo[turf][zOwned] == faction) return SCM(playerid, COLOR_GREY, "Nu poti ataca turful mafiei tale.");
	if(WarInfo[turf][wAttacker] != 0) return SCM(playerid, COLOR_WHITE, "Acest turf este deja atacat.");
	if(InWar[faction] == 1) return SCM(playerid, COLOR_WHITE, "Este deja un war activ.");
	if(InWar[TurfInfo[turf][zOwned]] == 1) return SCM(playerid, COLOR_WHITE, "Aceasta mafie are deja un war activ.");
	if(FactionDeelay[PlayerInfo[playerid][pMember]] != 0) {
		format(string, sizeof(string), "Poti folosi aceasta comanda peste %d minute (%d secunde).", FactionDeelay[PlayerInfo[playerid][pMember]]/60, FactionDeelay[PlayerInfo[playerid][pMember]]);
		SCM(playerid, COLOR_LGREEN, string);
		return 1;
	}
	format(string, sizeof(string), "[WAR] started a war with %s.",FactionName(WarInfo[turf][wAttacker]), FactionName(TurfInfo[turf][zOwned]));
	SendAdminMessage(COLOR_LOGS, string, 1);
	format(string, sizeof(string), "[WAR] %s a atacat teritoriul %d detinut de factiunea %s.",GetName(playerid),turf,FactionName(TurfInfo[turf][zOwned]));
	SendFactionMessage(faction,COLOR_MONEY,string);
	format(string, sizeof(string), "[WAR] %s (%s) a atacat teritoriul %d detinut de factiunea ta.",FactionName(WarInfo[turf][wAttacker]),GetName(playerid),turf);
	SendFactionMessage(TurfInfo[turf][zOwned],COLOR_MONEY,string);
	new query[128];
	format(query,sizeof(query),"UPDATE `turfs` SET `Time`='24' WHERE `ID`='%d'",turf);
	mysql_query(SQL,query);
	
	TurfInfo[turf][zTime] = 24;
	if(PlayerInfo[playerid][pAdmin] == 7) WarInfo[turf][wTime] = 120;
	else WarInfo[turf][wTime] = 1200;
	WarInfo[turf][wAttacker] = faction;
	WarInfo[turf][wFaction] = TurfInfo[turf][zOwned];
	worstscoreat[turf] = 0;
	worstmemberat[turf] = 999;
	bestscoreat[turf] = 0;
	bestmemberat[turf] = 999;
	worstscoredf[turf] = 0;
	worstmemberdf[turf] = 999;
	bestscoredf[turf] = 0;
	bestmemberdf[turf] = 999;
	InWar[TurfInfo[turf][zOwned]] = 1;
	InWar[faction] = 1;
	
	InWarTurf[faction] = turf;
	InWarTurf[TurfInfo[turf][zOwned]] = turf;
	
	foreach(Player, i) {
		if(IsPlayerLogged[i] == 1) {
			if(PlayerInfo[i][pMember] == faction || PlayerInfo[i][pMember] == TurfInfo[turf][zOwned]) UpdateVar(i, "WarTurf", turf);
		}
	}
	
	SetVehicle(faction, turf);
	SetVehicle(TurfInfo[turf][zOwned], turf);
	return 1; }

function SetVehicle(fid, turf) {
	for(new i; i < MAX_SVEHICLES; i++) {
		if(ServerVehicles[i][vFaction] == fid) SetVehicleVirtualWorld(i, turf);
	}					
	return 1; }

function RespawnVehicle(fid) {
	for(new i; i < MAX_SVEHICLES; i++) {
		if(ServerVehicles[i][vFaction] == fid) {
			SetVehicleVirtualWorld(i, 0);
			SetVehicleToRespawn(i);
		}	
	}					
	return 1; }

Va doresc o zi buna. Sper sa ma puteti ajuta.

3 answers to this question

Recommended Posts

  • 0
Posted (edited)

faci 3 variabile la inceputul comenzii (hour, minute, second). folosesti functia "gettime" pentru a afla ora, minutul si secunda curenta, iar dupa pui o conditie simpla intre orele cutare sa nu se poata da atac.

 

new ore, minute, secunde;
gettime(ore, minute, secunde);
if(ore < 20 || ore > 21) {
	SendClientMessage(playerid, -1, "Error: Nu poti ataca in acest interval.");
  	return 1;

}

 

Edited by AdytZZa
  • 0
Posted (edited)

Poti sa dai attack fiindca esti admin 7, seteaza-ti adminul 1 si vezi atunci .

	if(PlayerInfo[playerid][pAdmin] < 7) {
		if(strcmp(days,"Saturday",true) == 0 || strcmp(days,"Sunday",true) == 0) return SCM(playerid, COLOR_LIGHTRED, "Nu se dau war-uri in weekend!");	
		if(hour == 20 || hour == 23) {}
		else return SCM(playerid, COLOR_LIGHTRED, "War-uri se pot da doar in intervalul 20:00 - 22:00!");
		if(GetFactionMembersOn2(PlayerInfo[playerid][pMember]) < 2) return SCM(playerid, COLOR_LGREEN, "Nu poti folosi aceasta comanda deoarece nu sunt minim 3 membri conectati din factiunea ta!");
		if(GetFactionMembersOn2(TurfInfo[turf][zOwned]) < 2) return SCM(playerid, COLOR_LGREEN, "Nu poti folosi aceasta comanda deoarece nu sunt minim 3 membri conectati din factiunea care detine teritoriul!");			
	}

Comanda e facuta la admin 7 + pentru teste.

Edited by didacticro

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • 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.