Jump to content
  • 0

Problemă sistem clan.


S1meD.

Question

Problema intalnita (descriere):Ei bine pe GM-ul pe care mă învăț să scriptez e un bug la clanuri dacă iei lider la un clan sau iei /cinvite în baza de date ți se modifică numele de ex dacă tu ai numele bobus și iești invitat în clanul AIM în baza de date ți se modifică numele în AIMbobus. Întrebarea mea e cum pot face că dacă iei /cinvite în baza de date să nu ți se schimbe numele dar cînd te conectezi la server să-ți dea ClanTag-ul automat? 
Ero(area / rile) / warning-(ul / urile):Nu am.
Liniile de cod / sursa / script-ul(obligatoriu):Mai jos

CMD:makeclan(playerid, params[])
{
	if(gPlayerLogged[playerid] == 0) return SendClientMessage(playerid, COLOR_LIGHTRED, "Trebuie sa te loghezi  mai intai.");
	if(PlayerInfo[playerid][pAdmin] < 6) return SendClientMessage(playerid, COLOR_DS, AdminOnly);
	new id,tag[25],name[25],name2[25],string[256];
	if(sscanf(params, "us[25]",id,tag)) return SCM(playerid,COLOR_DS,"{B8DBFF}Syntax: /makeclan <Leader Name/Playerid> <Clan Tag>");
	if(PlayerInfo[id][pClan] >= 1) return SCM(playerid,COLOR_DS,"{37B9C8}This player is in a clan.");
	if(id == INVALID_PLAYER_ID) SendClientMessage(playerid, COLOR_DS, "{FFFFCC}Error: Player not connected.");
	new clane = MySQLCheckClan(tag);
	if(clane != 0) return SCM(playerid,COLOR_DS,"{37B9C8}This clan exist, please chose another.");
	GetPlayerName(id,name2,sizeof(name2));
	GetPlayerName(id,name,sizeof(name));
	strins(name,tag, 0);
	new namet = strlen(name);
	if(namet > 24) return SCM(playerid,COLOR_DS,"{37B9C8}This name is large.");
	new newname = MySQLCheckAccount(name);
	if(newname != 0) return SCM(playerid,COLOR_DS,"{37B9C8}This name exist.");
	SetPlayerName(id,name);
	strmid(PlayerInfo[id][pClanTag], tag, 0, strlen(tag), 255);
	PlayerInfo[id][pClan] = 2;
	format(string,sizeof(string),"UPDATE users SET `ClanTag`='%s',`Clan`='2' WHERE `name`='%s'",tag,name2);
	mysql_query(SQL,string);
	format(string,sizeof(string),"UPDATE users SET `name`='%s' WHERE `name`='%s'",name,name2);
	mysql_query(SQL,string);
	if(PlayerInfo[id][pPhousekey] != 999 && strcmp(name2, HouseInfo[PlayerInfo[id][pPhousekey]][hOwner], true) == 0)
	{
		new houseid = PlayerInfo[id][pPhousekey];
		strmid(HouseInfo[houseid][hOwner], name, 0, strlen(name), 255);
		format(string,sizeof(string),"UPDATE `houses` SET `Owner`='%s' WHERE `ID`='%d'",name,houseid);
		mysql_query(SQL,string);
		OnPropTextdrawUpdate(1,PlayerInfo[id][pPhousekey]);
	}
	if(PlayerInfo[id][pPbiskey] != 255)
	{
		new bizid2 = PlayerInfo[id][pPbiskey];
		if(PlayerInfo[id][pPbiskey] > 100)
		{
			strmid(SBizzInfo[bizid2-100][sbOwner], name, 0, strlen(name), 255);
			format(string,sizeof(string),"UPDATE `sbizz` SET `Owner`='%s' WHERE `ID`='%d'",name,bizid2-100);
			mysql_query(SQL,string);
			OnPropTextdrawUpdate(3,bizid2-100);
		}
		else
		{
			strmid(BizzInfo[bizid2][bOwner], name, 0, strlen(name), 255);
			format(string,sizeof(string),"UPDATE `bizz` SET `Owner`='%s' WHERE `ID`='%d'",name,bizid2);
			mysql_query(SQL,string);
			OnPropTextdrawUpdate(2,PlayerInfo[id][pPbiskey]);
		}
	}
	if(PlayerInfo[id][pPcarkey] != 0)
	{
		new carid = PlayerInfo[id][pPcarkey];
		strmid(CarInfo[carid][cOwner], name, 0, strlen(name), 255);
		vUpdate(carid,cOwnerx);
	}
	if(PlayerInfo[id][pmotokey] != 0)
	{
		new carid = PlayerInfo[id][pmotokey];
		strmid(CarInfo[carid][cOwner], name, 0, strlen(name), 255);
		vUpdate(carid,cOwnerx);
	}
	if(PlayerInfo[id][phelikey] != 0)
	{
		new carid = PlayerInfo[id][phelikey];
		strmid(CarInfo[carid][cOwner], name, 0, strlen(name), 255);
		vUpdate(carid,cOwnerx);
	}
	if(PlayerInfo[id][pprcarkey] != 0)
	{
		new carid = PlayerInfo[id][pprcarkey];
		strmid(CarInfo[carid][cOwner], name, 0, strlen(name), 255);
		vUpdate(carid,cOwnerx);
	}
	new sendername[25];
	GetPlayerName(playerid,sendername,sizeof(sendername));
	format(string,sizeof(string),"Admin %s promoted you as leader of clan %s.",sendername,tag);
	SCM(id,COLOR_LIGHTBLUE,string);
	PlayerInfo[id][pCRank] = 3;
    format(string, sizeof(string), "UPDATE users SET `CRank`='3' WHERE `name`='%s'", name);
    mysql_query(SQL,string);
	return 1;
}

 

CMD:cinvite(playerid, params[])
{
	if(gPlayerLogged[playerid] == 0) return SendClientMessage(playerid, COLOR_LIGHTRED, "Trebuie sa te loghezi  mai intai.");
	if(IsPlayerConnected(playerid))
 	{
		if(PlayerInfo[playerid][pClan] < 2) return SendClientMessage(playerid, COLOR_DS,"{5CAD5C}Error: Your are not clan leader.");
		new id,string[184],sendername[25],giveplayer[25];
		if(sscanf(params, "u",id)) return SCM(playerid,COLOR_DS,"{B8DBFF}Syntax: /cinvite <Name/Playerid>");
		if(PlayerInfo[id][pClan] != 0) return SCM(playerid,COLOR_DS,"{37B9C8}This player is in a clan.");
		if(id != INVALID_PLAYER_ID)
		{
			Clanidoff[id] = playerid;
			GetPlayerName(playerid,sendername,sizeof(sendername));
			GetPlayerName(id,giveplayer,sizeof(giveplayer));
			format(string, sizeof(string), "{B8FFDB}* You invited %s in your clan.",giveplayer);
			SendClientMessage(playerid, COLOR_DS, string);
			format(string, sizeof(string), "{B8FFDB}* %s has invited in clan %s, (Type /accept invite %d) to accept.",sendername,PlayerInfo[playerid][pClanTag],playerid);
			SendClientMessage(id, COLOR_DS, string);
		}
		else return SendClientMessage(playerid, COLOR_DS, "{FFFFCC}Error: Player not connected.");
	}
	return 1;
}


Imagini / Video (optional):-
Ati incercat sa rezolvati singur?:Da

Link to comment
Share on other sites

7 answers to this question

Recommended Posts

  • 0

Nu o sa-ti dau tot script-ul dar o sa-ti dau idei cum sa-l faci.

 

Pentru a nu-i mai seta numele stergi urmatoarele

strins(name,tag, 0);

new namet = strlen(name);
if(namet > 24) return SCM(playerid,COLOR_DS,"{37B9C8}This name is large.");

new newname = MySQLCheckAccount(name);
if(newname != 0) return SCM(playerid,COLOR_DS,"{37B9C8}This name exist.");
SetPlayerName(id,name);

SetPlayerName(id,name);

format(string,sizeof(string),"UPDATE users SET `name`='%s' WHERE `name`='%s'",name,name2);
mysql_query(SQL,string);

Daca am ratat ceva scuze.

 

Acum despre autentificare.

Daca vrei sa ii adaugi tag-ul clanului trebuie sa ii modifici numele. Atunci cand un jucator se autentifica trebuie sa cauti in baza de date tag-ul clanului si sa ii setezi numele cu tag-ul clanului folosindu-te de functia SetPlayerName.

 

Link to comment
Share on other sites

  • 0
  • 0
Guest
This topic is now closed to further replies.
×
×
  • 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.