SA-MP Forums Archive
string - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: SA-MP Scripting and Plugins (https://sampforum.blast.hk/forumdisplay.php?fid=8)
+--- Forum: Scripting Help (https://sampforum.blast.hk/forumdisplay.php?fid=12)
+--- Thread: string (/showthread.php?tid=619808)



string - StR_MaRy - 22.10.2016

hey guys i have some commands with strings and every string is [256] but after i restart it works but if some people 2-3 and use the commands they crash , the commands have no problem is something to the range of string some ideas?


Re: string - Micko123 - 22.10.2016

First of all WHY THE HELL 256 Can you show us the command??


Re: string - StR_MaRy - 22.10.2016

why should be the string bigged ?500 ?


Re: string - Micko123 - 22.10.2016

Can you show that command??


Re: string - Freaksken - 22.10.2016

Only use as much space as needed. Say your string is the following: "Hello". This string has 5 characters, so use an array size of 5 + 1. The added 1 is needed for the null-terminator.

Don't use 256 or any other random number. The input is limited to 128 + 1 characters anyway. The output to 144 + 1.


Re: string - StR_MaRy - 22.10.2016

Код HTML:
CMD:factions(playerid, params[])
{
	if(gLogged[playerid] == 0) return SendClientMessage(playerid,COLOR_ERROR, "Tu nu esti logat si nu poti sa folosesti aceasta comanda!");
  	new var[2000];

  	new coordsstring[2000] = "Nume\tMembrii/Max\tLevel\tRecrutari\n";

	if(FactionRecruit[1] == 1) format(gString, sizeof(gString), "{2641FE}%s{FFFFFF}\t[%d/%d]\t%d\t{00cc00}[Aplicati deschise]{FFFFFF}\n", FactionInfo[1][fName], FactionMembers(1), FactionInfo[1][fSlots], FactionInfo[1][fMinLevel]);
	else format(gString, sizeof(gString), "{2641FE}%s{FFFFFF}\t[%d/%d]\t%d\t{FF0000}[Aplicati inchise]{FFFFFF}\n", FactionInfo[1][fName], FactionMembers(1), FactionInfo[1][fSlots], FactionInfo[1][fMinLevel]);
	strcat(var, gString);

  	if(FactionRecruit[2] == 1) format(gString, sizeof(gString), "{1E519D}%s{FFFFFF}\t[%d/%d]\t%d\t{00cc00}[Aplicati deschise]{FFFFFF}\n", FactionInfo[2][fName], FactionMembers(2), FactionInfo[2][fSlots], FactionInfo[2][fMinLevel]);
	else format(gString, sizeof(gString), "{1E519D}%s{FFFFFF}\t[%d/%d]\t%d\t{FF0000}[Aplicati inchise]{FFFFFF}\n", FactionInfo[2][fName], FactionMembers(2), FactionInfo[2][fSlots], FactionInfo[2][fMinLevel]);
	strcat(var, gString);

	if(FactionRecruit[3] == 1) format(gString, sizeof(gString), "{B3F856}%s{FFFFFF}\t[%d/%d]\t%d\t{00cc00}[Aplicati deschise]{FFFFFF}\n", FactionInfo[3][fName], FactionMembers(3), FactionInfo[3][fSlots], FactionInfo[3][fMinLevel]);
	else format(gString, sizeof(gString), "{B3F856}%s{FFFFFF}\t[%d/%d]\t%d\t{FF0000}[Aplicati inchise]{FFFFFF}\n", FactionInfo[3][fName], FactionMembers(3), FactionInfo[3][fSlots], FactionInfo[3][fMinLevel]);
    strcat(var, gString);

    if(FactionRecruit[4] == 1) format(gString, sizeof(gString), "{C2A2DA}%s{FFFFFF}\t[%d/%d]\t%d\t{00cc00}[Aplicati deschise]{FFFFFF}\n", FactionInfo[4][fName], FactionMembers(4), FactionInfo[4][fSlots], FactionInfo[4][fMinLevel]);
	else format(gString, sizeof(gString), "{C2A2DA}%s{FFFFFF}\t[%d/%d]\t%d\t{FF0000}[Aplicati inchise]{FFFFFF}\n", FactionInfo[4][fName], FactionMembers(4), FactionInfo[4][fSlots], FactionInfo[4][fMinLevel]);
    strcat(var, gString);

    if(FactionRecruit[5] == 1) format(gString, sizeof(gString), "{FFFF00}%s{FFFFFF}\t[%d/%d]\t%d\t{00cc00}[Aplicati deschise]{FFFFFF}\n", FactionInfo[5][fName], FactionMembers(5), FactionInfo[5][fSlots], FactionInfo[5][fMinLevel]);
	else format(gString, sizeof(gString), "{FFFF00}%s{FFFFFF}\t[%d/%d]\t%d\t{FF0000}[Aplicati inchise]{FFFFFF}\n", FactionInfo[5][fName], FactionMembers(5), FactionInfo[5][fSlots], FactionInfo[5][fMinLevel]);
    strcat(var, gString);

    if(FactionRecruit[6] == 1) format(gString, sizeof(gString), "{F5DEB3}%s{FFFFFF}\t[%d/%d]\t%d\t{00cc00}[Aplicati deschise]{FFFFFF}\n", FactionInfo[6][fName], FactionMembers(6), FactionInfo[6][fSlots], FactionInfo[6][fMinLevel]);
	else format(gString, sizeof(gString), "{F5DEB3}%s{FFFFFF}\t[%d/%d]\t%d\t{FF0000}[Aplicati inchise]{FFFFFF}\n", FactionInfo[6][fName], FactionMembers(6), FactionInfo[6][fSlots], FactionInfo[6][fMinLevel]);
    strcat(var, gString);

    if(FactionRecruit[7] == 1) format(gString, sizeof(gString), "{AFAFAF}%s{FFFFFF}\t[%d/%d]\t%d\t{00cc00}[Aplicati deschise]{FFFFFF}\n", FactionInfo[7][fName], FactionMembers(7), FactionInfo[7][fSlots], FactionInfo[7][fMinLevel]);
	else format(gString, sizeof(gString), "{AFAFAF}%s{FFFFFF}\t[%d/%d]\t%d\t{FF0000}[Aplicati inchise]{FFFFFF}\n", FactionInfo[7][fName], FactionMembers(7), FactionInfo[7][fSlots], FactionInfo[7][fMinLevel]);
    strcat(var, gString);

    if(FactionRecruit[8] == 1) format(gString, sizeof(gString), "{008000}%s{FFFFFF}\t[%d/%d]\t%d\t{00cc00}[Aplicati deschise]{FFFFFF}\n", FactionInfo[8][fName], FactionMembers(8), FactionInfo[8][fSlots], FactionInfo[8][fMinLevel]);
	else format(gString, sizeof(gString), "{008000}%s{FFFFFF}\t[%d/%d]\t%d\t{FF0000}[Aplicati inchise]{FFFFFF}\n", FactionInfo[8][fName], FactionMembers(8), FactionInfo[8][fSlots], FactionInfo[8][fMinLevel]);
    strcat(var, gString);

    if(FactionRecruit[9] == 1) format(gString, sizeof(gString), "{800080}%s{FFFFFF}\t[%d/%d]\t%d\t{00cc00}[Aplicati deschise]{FFFFFF}\n", FactionInfo[9][fName], FactionMembers(9), FactionInfo[9][fSlots], FactionInfo[9][fMinLevel]);
	else format(gString, sizeof(gString), "{800080}%s{FFFFFF}\t[%d/%d]\t%d\t{FF0000}[Aplicati inchise]{FFFFFF}\n", FactionInfo[9][fName], FactionMembers(9), FactionInfo[9][fSlots], FactionInfo[9][fMinLevel]);
    strcat(var, gString);

    if(FactionRecruit[10] == 1) format(gString, sizeof(gString), "{FFA500}%s{FFFFFF}\t[%d/%d]\t%d\t{00cc00}[Aplicati deschise]{FFFFFF}\n", FactionInfo[10][fName], FactionMembers(10), FactionInfo[10][fSlots], FactionInfo[10][fMinLevel]);
	else format(gString, sizeof(gString), "{FFA500}%s{FFFFFF}\t[%d/%d]\t%d\t{FF0000}[Aplicati inchise]{FFFFFF}\n", FactionInfo[10][fName], FactionMembers(10), FactionInfo[10][fSlots], FactionInfo[10][fMinLevel]);
    strcat(var, gString);

    if(FactionRecruit[11] == 1) format(gString, sizeof(gString), "{00F2FF}%s{FFFFFF}\t[%d/%d]\t%d\t{00cc00}[Aplicati deschise]{FFFFFF}\n", FactionInfo[11][fName], FactionMembers(11), FactionInfo[11][fSlots], FactionInfo[11][fMinLevel]);
	else format(gString, sizeof(gString), "{00F2FF}%s{FFFFFF}\t[%d/%d]\t%d\t{FF0000}[Aplicati inchise]{FFFFFF}\n", FactionInfo[11][fName], FactionMembers(11), FactionInfo[11][fSlots], FactionInfo[11][fMinLevel]);
    strcat(var, gString);

    if(FactionRecruit[12] == 1) format(gString, sizeof(gString), "{99FF66}%s{FFFFFF}\t[%d/%d]\t%d\t{00cc00}[Aplicati deschise]{FFFFFF}\n", FactionInfo[12][fName], FactionMembers(12), FactionInfo[12][fSlots], FactionInfo[12][fMinLevel]);
	else format(gString, sizeof(gString), "{99FF66}%s{FFFFFF}\t[%d/%d]\t%d\t{FF0000}[Aplicati inchise]{FFFFFF}\n", FactionInfo[12][fName], FactionMembers(12), FactionInfo[12][fSlots], FactionInfo[12][fMinLevel]);
    strcat(var, gString);

	strins(var, coordsstring, 0);
	ShowPlayerDialog(playerid, DIALOG_FACTIONS, DIALOG_STYLE_TABLIST_HEADERS, "Factiuni disponibile", var, "Inchide", "");
	return 1;
}
CMD:factiuni(playerid, params[]) return cmd_factions(playerid, params);



Re: string - Micko123 - 22.10.2016

Are you even declaring gString?? And i suggest defining one string for each if loop. It might be a bit of work (not to much) but it will be better for you


Re: string - Freaksken - 22.10.2016

Quote:
Originally Posted by StR_MaRy
Посмотреть сообщение
new var[2000];
new coordsstring[2000] = ...
2000 cells, seriously?


Re: string - Micko123 - 22.10.2016

Yea... I tought the same thing xD...


Re: string - StR_MaRy - 22.10.2016

so should i see how manny letters do i have and put it like if i have 50 letters should be new string[50+1];

?