Jump to content
  • 0

Problema conectare fara clan tag


Rayan

Question

Am incercat sa fac ca atunci cand un jucator se conecteaza cu un tag al unui clan sa ii schimbe numele in cel normal fara clan tag, insa nu stiu de ce nu merge.. imi schimba numele in 'NULL'

Banuiesc ca ar trebui sa folosesc 'strdel' insa habar nu am cum se foloseste aceasta functie...faza e ca eu incarc la onplayerlogin PlayerInfo nu la acest public...poate ma puteti ajuta ..

if(strfind(loginname,ClanInfo[clanid][cClanTag],true) != -1)
				{
					/*format(stringgg,sizeof(stringgg),"Nu poti folosi acel username. '%s' este inregistrat de un clan. Nu poti folosi acel cuvant in nickname-ul tau.",ClanInfo[clanid][cClanTag]);
					SendClientMessage(playerid, COLOR_RED, stringgg);
					format(stringgg,sizeof(stringgg),"You can't use that username! '%s' is a registered clan tag. You can't use that word in your nickname.",ClanInfo[clanid][cClanTag]);
					SendClientMessage(playerid, COLOR_RED, stringgg);
					KickEx(playerid);*/
					SetPlayerName(playerid, PlayerInfo[playerid][pNormalName]);
					SendClientMessage(playerid, COLOR_CYAN, "Trying to connect without clan tag...");
					format(stringgg, sizeof(stringgg), "Name changed in: {FFFFFF}%s", PlayerInfo[playerid][pNormalName]);
					SendClientMessage(playerid, COLOR_CYAN, stringgg);

				}

 

Edited by Rayan
Link to comment
Share on other sites

25 answers to this question

Recommended Posts

  • 0
Acum 22 minute, Rayan a spus:

Done am schimbat, insa imi schimba numele doar cand tag-ul e la inceput, ex: [RE]RedGun , daca e RedGun[RE] nu se schimba/sterge nimic, ramane intact.

for(new clanid; clanid < MAX_CLANS; clanid++)
    {
        if(strfind(playername,ClanInfo[clanid][cClanTag],true) != -1)
        {
            new startdel = strfind(playername,ClanInfo[clanid][cClanTag],true);
            new dellenght = strlen(ClanInfo[clanid][cClanTag]);
  if (startdel>0){
New end = strlen (playername);
strdel(playername, startdel, end);             SetPlayerName(playerid, playername);             withouctag[playerid] = 1;}
Else
{        
 strdel(playername, startdel, dellenght);
            SetPlayerName(playerid, playername);
            withouctag[playerid] = 1;}
        }
    }

 

Acum am vazut ca eu dadeam sa stearga gen de pe pozitia 6 pe 4 ceea ce era imposibil si cred ca acum am rezolvat

  • Upvote 1
Link to comment
Share on other sites

  • 0

Nu vad unde setezi numele cu tag, dar am incercat sa fac ceva sa nu-ti mai seteze NULL

for(new clanid; clanid < MAX_CLANS; clanid++){
	if(strcmp(ClanInfo[clanid][cClanTag], "NULL", false) == 0){
		SetPlayerName(playerid, PlayerInfo[playerid][pNormalName]);
	}
	else{
		SetPlayerName(playerid, /*Numele cu tag*/);
	}
}

Asta ar fi idea de baza , sa verifici daca ce se afla acolo e NULL si daca nu e sa-i setezi tag-ul

Edit:

if(strcmp(ClanInfo[PlayerInfo[playerid][pMember]][cClanTag], "NULL", false) == 0){
		SetPlayerName(playerid, PlayerInfo[playerid][pNormalName]);
	}
	else{
		SetPlayerName(playerid, /*Numele cu tag*/);
	}

Foloseste al doilea cod daca id-ul clanului este acelasi cu id-ul stocat in pMember. Adica mai pe scurt, daca id-urile clanurilor incep de la 1 si in pMember este stocat 1 pentru primul clan(s.a.m.d.)

Edited by Banditul
  • Upvote 1
Link to comment
Share on other sites

  • 0
Acum 5 ore, Banditul a spus:

Nu vad unde setezi numele cu tag, dar am incercat sa fac ceva sa nu-ti mai seteze NULL


for(new clanid; clanid < MAX_CLANS; clanid++){
	if(strcmp(ClanInfo[clanid][cClanTag], "NULL", false) == 0){
		SetPlayerName(playerid, PlayerInfo[playerid][pNormalName]);
	}
	else{
		SetPlayerName(playerid, /*Numele cu tag*/);
	}
}

Asta ar fi idea de baza , sa verifici daca ce se afla acolo e NULL si daca nu e sa-i setezi tag-ul

Edit:


if(strcmp(ClanInfo[PlayerInfo[playerid][pMember]][cClanTag], "NULL", false) == 0){
		SetPlayerName(playerid, PlayerInfo[playerid][pNormalName]);
	}
	else{
		SetPlayerName(playerid, /*Numele cu tag*/);
	}

Foloseste al doilea cod daca id-ul clanului este acelasi cu id-ul stocat in pMember. Adica mai pe scurt, daca id-urile clanurilor incep de la 1 si in pMember este stocat 1 pentru primul clan(s.a.m.d.)

Nu-l schimba, ramane NULL, cineva mi-a zis sa folosesc functia "strdel" sa stearga clan tag-ul, insa nu am nicio idee cum sa folosesc in acel dialog de OnPlayerRequestClass

Edited by Rayan
Link to comment
Share on other sites

  • 0
format(string,sizeof(string) , "[%s]%s", tag, name);
if(strcmp(ClanInfo[clanid][cClanTag], "NULL", false) == 0){
	strdel(string, 0, sizeof(tag)+1);
	SetPlayerName(playerid, string);
}
else{
	SetPlayerName(playerid, PlayerInfo[playerid][pNormalName]);
}

Presupunand faptul ca tag-ul e primul si cacontine paranteze

Daca nu contine paranteze, poti tsegre acel +1 de la strdel si va sterge exact tag-ul

Da e foarte interesant , pentru ca varianta de mai sus trebuiasa mearga avand in vedere ca presupun ca in ClanTag e stocat NULL

Link to comment
Share on other sites

  • 0
Acum 3 ore, Rayan a spus:

Nu-l schimba, ramane NULL, cineva mi-a zis sa folosesc functia "strdel" sa stearga clan tag-ul, insa nu am nicio idee cum sa folosesc in acel dialog de OnPlayerRequestClass

Normal ca apare null daca jucatorul nu este inregistrat deoarece nu inseri username in baza de date in coloana aferenta si acel pNormalName nu contine nimic.

Link to comment
Share on other sites

  • 0
Acum 21 minute, AddisoN a spus:

Ti.am spus ca nu o sa mearga niciodata daca te legi de variabila pNormalName

Pai si prin ce modalitate pot face sa i se stearga tag-ul la clan?

Edited by Rayan
Link to comment
Share on other sites

  • 0
Acum 6 ore, Rayan a spus:

Pai si prin ce modalitate pot face sa i se stearga tag-ul la clan?

Faci dellenght=strlen(ClanInfo[clanid][cClanTag]);

daca variabila pnormalname contine si parantezele sau cum ai tu separat clantagul faci asa strldel(loginname,0,dellenght);

Daca nu contine strldel(loginname,0,dellenght+X); unde X este nr de caractere care separa tagul de nume daca nu este continut in variabila pnormalname.Dupa setplayername si done

Link to comment
Share on other sites

  • 0
Acum 1 oră, AddisoN a spus:

Faci dellenght=strlen(ClanInfo[clanid][cClanTag]);

daca variabila pnormalname contine si parantezele sau cum ai tu separat clantagul faci asa strldel(loginname,0,dellenght);

Daca nu contine strldel(loginname,0,dellenght+X); unde X este nr de caractere care separa tagul de nume daca nu este continut in variabila pnormalname.Dupa setplayername si done

Bun,mi-a iesit, insa doar pentru tag-ul de la inceput, gen [Tag]Nume, sterge toate [Tag], daca e Nume[Tag], sterge de la inceput, o sa fie: e[Tag], de ce?

for(new clanid; clanid < MAX_CLANS; clanid++)
	{
		if(strfind(playername,ClanInfo[clanid][cClanTag],true) != -1)
		{
			new dellenght = strlen(ClanInfo[clanid][cClanTag]);
			strdel(playername, 0, dellenght);
			SetPlayerName(playerid, playername);
		}
	}

 

Edited by Rayan
Link to comment
Share on other sites

  • 0
Acum 10 ore, Rayan a spus:

Bun,mi-a iesit, insa doar pentru tag-ul de la inceput, gen [Tag]Nume, sterge toate [Tag], daca e Nume[Tag], sterge de la inceput, o sa fie: e[Tag], de ce?


for(new clanid; clanid < MAX_CLANS; clanid++)
	{
		if(strfind(playername,ClanInfo[clanid][cClanTag],true) != -1)
		{
			new dellenght = strlen(ClanInfo[clanid][cClanTag]);
			strdel(playername, 0, dellenght);
			SetPlayerName(playerid, playername);
		}
	}

 

for(new clanid; clanid < MAX_CLANS; clanid++) { if(new startdel = strfind(playername,ClanInfo[clanid][cClanTag],true) != -1)

{ new dellenght = strlen(ClanInfo[clanid][cClanTag]);

strdel(playername, startdel+1, dellenght); SetPlayerName(playerid, playername); } }

 

Link to comment
Share on other sites

  • 0
Acum 4 ore, AddisoN a spus:

for(new clanid; clanid < MAX_CLANS; clanid++) { if(new startdel = strfind(playername,ClanInfo[clanid][cClanTag],true) != -1)

{ new dellenght = strlen(ClanInfo[clanid][cClanTag]);

strdel(playername, startdel+1, dellenght); SetPlayerName(playerid, playername); } }

 

am incercat  insa mi se sterge doar daca am tagul in asa (ex: .tagName sau [tag]Name, daca e Name.tag sau Name[tag] se sterge aiurea totul)

new startdel;
for(new clanid; clanid < MAX_CLANS; clanid++)
	{
		if(strfind(playername,ClanInfo[clanid][cClanTag],true) != -1)
		{
			new dellenght = strlen(ClanInfo[clanid][cClanTag]);
			strdel(playername, 0, dellenght);
			SetPlayerName(playerid, playername);
			withouctag[playerid] = 1;
		}
	}
	for(new clanid; clanid < MAX_CLANS; clanid++)
	{
		if(strfind(playername,ClanInfo[clanid][cClanTag],true) != -1)
		{
			new dellenght = strlen(ClanInfo[clanid][cClanTag]);
			strdel(playername, startdel+1, dellenght);
			SetPlayerName(playerid, playername);
			withouctag[playerid] = 1;
		}
	}

am incercat sa folosesc cum mi-ai zis tu cu 'new strdel' dupa if(new startdel = ... ; insa nu merge, imi zice ca am uitat sa pun vreun ";" sau ")" insa am verificat si nu am uitat sa pun nici o paranteza sau ; , habar nu am cum ar trebui sa arate in final codul.

 

Edited by Rayan
Link to comment
Share on other sites

  • 0
1 oră în urmă, Rayan a spus:

am incercat  insa mi se sterge doar daca am tagul in asa (ex: .tagName sau [tag]Name, daca e Name.tag sau Name[tag] se sterge aiurea totul)


new startdel;
for(new clanid; clanid < MAX_CLANS; clanid++)
	{
		if(strfind(playername,ClanInfo[clanid][cClanTag],true) != -1)
		{
			new dellenght = strlen(ClanInfo[clanid][cClanTag]);
			strdel(playername, 0, dellenght);
			SetPlayerName(playerid, playername);
			withouctag[playerid] = 1;
		}
	}
	for(new clanid; clanid < MAX_CLANS; clanid++)
	{
		if(strfind(playername,ClanInfo[clanid][cClanTag],true) != -1)
		{
			new dellenght = strlen(ClanInfo[clanid][cClanTag]);
			strdel(playername, startdel+1, dellenght);
			SetPlayerName(playerid, playername);
			withouctag[playerid] = 1;
		}
	}

am incercat sa folosesc cum mi-ai zis tu cu 'new strdel' dupa if(new startdel = ... ; insa nu merge, imi zice ca am uitat sa pun vreun ";" sau ")" insa am verificat si nu am uitat sa pun nici o paranteza sau ; , habar nu am cum ar trebui sa arate in final codul.

 

for(new clanid; clanid < MAX_CLANS; clanid++)
	{
		if(strfind(playername,ClanInfo[clanid][cClanTag],true) != -1)
		{
			
new startdel = strfind(playername,ClanInfo[clanid][cClanTag],true) != -1
new dellenght = strlen(ClanInfo[clanid][cClanTag]);
			strdel(playername, startdel+1, dellenght);
			SetPlayerName(playerid, playername);
			withouctag[playerid] = 1;
		}
	}

Incearca asa

Link to comment
Share on other sites

  • 0
Acum 2 ore, AddisoN a spus:

incearca asa

habar nu am ce are, am pus ; si da erroare aia, cand nu era pusa ; tot errori dadea... 

D:\gm\gamemode\gamemodes\exgaming.pwn(47017) : error 001: expected token: ";", but found ")"
D:\gm\gamemode\gamemodes\exgaming.pwn(47017) : error 029: invalid expression, assumed zero
D:\gm\gamemode\gamemodes\exgaming.pwn(47017) : warning 215: expression has no effect

 

la  linia new startdel = strfind(playername,ClanInfo[clanid][cClanTag],true) != -1);

Edited by Rayan
Link to comment
Share on other sites

  • 0
Acum 58 minute, Rayan a spus:

habar nu am ce are, am pus ; si da erroare aia, cand nu era pusa ; tot errori dadea... 

D:\gm\gamemode\gamemodes\exgaming.pwn(47017) : error 001: expected token: ";", but found ")"
D:\gm\gamemode\gamemodes\exgaming.pwn(47017) : error 029: invalid expression, assumed zero
D:\gm\gamemode\gamemodes\exgaming.pwn(47017) : warning 215: expression has no effect

 

la  linia new startdel = strfind(playername,ClanInfo[clanid][cClanTag],true) != -1);

Mda greseala mea, asa trebuie sa fie linia new startdel = strfind(playername,ClanInfo[clanid][cClanTag],true);

Link to comment
Share on other sites

  • 0
Acum 20 minute, AddisoN a spus:

Mda greseala mea, asa trebuie sa fie linia new startdel = strfind(playername,ClanInfo[clanid][cClanTag],true);

pentru tag-ul la sfarsit nu functioneaza, executa doar de la cel de la inceput, insa e si mai buguit acum :)) , gen [TAG]Nume, sterge tot si ramane doar [ (paranteza)

Link to comment
Share on other sites

  • 0
Acum 16 minute, Rayan a spus:

pentru tag-ul la sfarsit nu functioneaza, executa doar de la cel de la inceput, insa e si mai buguit acum :)) , gen [TAG]Nume, sterge tot si ramane doar [ (paranteza)

Sper ca folosesti doar un for pt asta nu cum ai pis mai sus 2 for-uri unu cu o metoda si celalt cu alta. Ar trebuie sa functioneze pt ca strfind returneaza cate caractere sunt pana gaseste stringul indicat, strlen retuneaza lungimea tagului si cu strdel stergi de unde incwpe tagul X caractere in fct de nr de caractere al tagului. Din pacate nu pot acesa pc ul ca sa testez eu

Link to comment
Share on other sites

  • 0
Acum 7 minute, AddisoN a spus:

Sper ca folosesti doar un for pt asta nu cum ai pis mai sus 2 for-uri unu cu o metoda si celalt cu alta. Ar trebuie sa functioneze pt ca strfind returneaza cate caractere sunt pana gaseste stringul indicat, strlen retuneaza lungimea tagului si cu strdel stergi de unde incwpe tagul X caractere in fct de nr de caractere al tagului. Din pacate nu pot acesa pc ul ca sa testez eu

Nup, nu am doua for-uri, am doar unul. doar asta folosesc

for(new clanid; clanid < MAX_CLANS; clanid++)
    {
        if(strfind(playername,ClanInfo[clanid][cClanTag],true) != -1)
        {
            new startdel = strfind(playername,ClanInfo[clanid][cClanTag],true);
            new dellenght = strlen(ClanInfo[clanid][cClanTag]);
            strdel(playername, startdel+1, dellenght);
            SetPlayerName(playerid, playername);
            withouctag[playerid] = 1;
        }
    }

Link to comment
Share on other sites

  • 0
Acum 49 minute, Rayan a spus:

Nup, nu am doua for-uri, am doar unul. doar asta folosesc

 


for(new clanid; clanid < MAX_CLANS; clanid++)
    {
        if(strfind(playername,ClanInfo[clanid][cClanTag],true) != -1)
        {
            new startdel = strfind(playername,ClanInfo[clanid][cClanTag],true);
            new dellenght = strlen(ClanInfo[clanid][cClanTag]);
            strdel(playername, startdel+1, dellenght);
            SetPlayerName(playerid, playername);
            withouctag[playerid] = 1;
        }
    }

 

Daca ai Nume[tag] ce sterge?si la [tag]Nume iara ce sterge

Link to comment
Share on other sites

  • 0
Acum 1 minut, AddisoN a spus:

Daca ai Nume[tag] ce sterge?si la [tag]Nume iara ce sterge

Daca am ex: [RE]RedGun, imi schimba numele in [RedGun 

Daca am numele RedGun[RE], mi-l schimba in RedGun[RE] - nu mi-l schimba deloc.

Ce e in [ ] e tag-ul inclusiv parantezele patrate.

Si de ex daca fac si asa .stf e clanul, .stfRedGun - ramane .RedGun (punctul ramane, stf se sterge);

Daca e RedGun.stf - nu mi-l schimba, ramane RedGun.stf

Link to comment
Share on other sites

  • 0
Acum 51 minute, Rayan a spus:

Daca am ex: [RE]RedGun, imi schimba numele in [RedGun 

Daca am numele RedGun[RE], mi-l schimba in RedGun[RE] - nu mi-l schimba deloc.

Ce e in [ ] e tag-ul inclusiv parantezele patrate.

Si de ex daca fac si asa .stf e clanul, .stfRedGun - ramane .RedGun (punctul ramane, stf se sterge);

Daca e RedGun.stf - nu mi-l schimba, ramane RedGun.stf

Linia asta 

strdel(playername, startdel+1, dellenght);

Schimbo asa 

strdel(playername, startdel, dellenght);
Link to comment
Share on other sites

  • 0
Acum 20 minute, AddisoN a spus:

Linia asta 


strdel(playername, startdel+1, dellenght);

Schimbo asa 


strdel(playername, startdel, dellenght);

Done am schimbat, insa imi schimba numele doar cand tag-ul e la inceput, ex: [RE]RedGun , daca e RedGun[RE] nu se schimba/sterge nimic, ramane intact.

Link to comment
Share on other sites

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.