Jump to content
  • 0

Problema conectare fara clan tag


Question

Posted (edited)

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

25 answers to this question

Recommended Posts

  • 0
Posted
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
  • 0
Posted (edited)

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
  • 0
Posted (edited)

Faza e ca eu la OnPlayerLogin incarac variabilele si tag-urile jucatorilor nu la login -.-, insa o sa incerc si revin

Edited by Rayan
  • 0
Posted (edited)
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
  • 0
Posted
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

  • 0
Posted
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.

  • 0
Posted (edited)
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
  • 0
Posted
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

  • 0
Posted (edited)
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
  • 0
Posted
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); } }

 

  • 0
Posted (edited)
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
  • 0
Posted
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

  • 0
Posted (edited)
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
  • 0
Posted
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);

  • 0
Posted
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)

  • 0
Posted
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

  • 0
Posted
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;
        }
    }

  • 0
Posted
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

  • 0
Posted
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

  • 0
Posted
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);
  • 0
Posted
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.

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.