Jump to content
Geplaatst:
comment_1411617

Hey,

Ik zit me nu al een tijd af te vragen hoe ik factions maak, nu heb ik vele scripts ingekeken maar ik kom er niet uit, en ik denk dat het goed is voor mijn script ervaring om er zelf een faction script part shizzle te maken.

Kan iemand mij helpen? :D

Oh en het zou vet zijn als je hiermee ook cmd's alleen voor een bepaalde faction kan maken, bijv IsACop enz.

// Rutger.

Featured Replies

Geplaatst:
comment_1415374
Mhm hoe maak je dan rangen, dat als mensen /r(adio) [text] doen dat ze zien:

POLICE OFFICER I/ POLICEOFFICER II/III / SERGEANT I : [TEXT]

??

Je zou zoiets kunnen maken:

new teamnaam[128];
if(team[playerid] == 1) format(teamnaam, sizeof(teamnaam), "POLICE OFFICER I");
if(team[playerid] == 2) format(teamnaam, sizeof(teamnaam), "POLICE OFFICER II");
if(team[playerid] == 3) format(teamnaam, sizeof(teamnaam), "SERGEANT I");

// bericht ophalen en opslaan in message, code moet je zelf maar maken

new string[256];
format(string, sizeof(string), "%s: %s", teamnaam, message);
SendClientMessageToAll(KLEUR, string);

Geplaatst:
comment_1415383

Ik heb nog een andere,

ergens bovenaan of onderaan:

SendCopMessage(color, text[]) {
for(new i = 0; i < MAX_PLAYERS; i ++) {
	if(IsPlayerConnected(i)) {
		if (gTeam[i] == TEAM_COP0 || gTeam[i] == TEAM_COP1) {
			SendClientMessage(i, color, text);
		}
	}
}
}

bij tekstcommand

				if(strcmp(cmd,"/cc",true)==0)
{
if (gTeam[playerid] == TEAM_COP0)
{
if ((strlen(cmdtext) >= 1)&&(strlen(cmdtext) <= 3)) { SendClientMessage(playerid,COLOR_RED1, "Syntax: /cc <MESSAGE>"); return 1; }
GetPlayerName(playerid,name,sizeof(name));	format(string,sizeof(string),"Cop Chat(%s):%s",name,cmdtext[3]); SendCopMessage(COLOR_0, string);
}
if (gTeam[playerid] == TEAM_COP1)
{
if ((strlen(cmdtext) >= 1)&&(strlen(cmdtext) <= 3)) { SendClientMessage(playerid,COLOR_RED1, "Syntax: /cc <MESSAGE>"); return 1; }
GetPlayerName(playerid,name,sizeof(name));	format(string,sizeof(string),"Cop Chat(%s):%s",name,cmdtext[3]); SendCopMessage(COLOR_1, string);
}

nu word het verschil in rang aangegeven meet een lichter blauwe kleur

Bewerkt: door mosweg

Geplaatst:
comment_1415585

Je kan het ook nog mooier (moeilijkerer :7) aanpakken, door een enum en een variabele te gebruiken. Voorbeeldje:

enum FACTION_INFO
{
naam[128],
kleur
}

new Factions[][FACTION_INFO] = {
{"Cops 1", 0xFFFFFFAA},
{"Cops 2", 0xFFFF00AA}
// etc.
};

En dan bij je command:

new pName[MAX_PLAYER_NAME];
GetPlayerName(playerid, pName, sizeof(pName));
format(string, sizeof(string), "%s (%s): %s", pName, Factions[rank[playerid]][naam], message);
SendClientMessageToAll(Factions[rank[playerid]][kleur], string);

Iets geavanceerder, maar wel simpeler in het gebruik :puh:

Bewerkt: door David22

Geplaatst:
comment_1415754

Voornamelijk als je veel data moet opslaan. Bijvoorbeeld:

enum pInfo {
Kills,
Deaths,
Team,
Skin
};

new PlayerInfo[MAX_PLAYERS][pInfo];

public OnPlayerDeath(playerid, killerid, reason)
{
if(killerid != 255)
{
	PlayerInfo[playerid][Deaths]++;
	PlayerInfo[killerid][Kills]++;
}
return 1;
}

Een reactie plaatsen

Je kan nu een reactie plaatsen en pas achteraf registreren. Als je al lid bent, log eerst in om met je eigen account een reactie te plaatsen.

Gast
Op dit onderwerp reageren...

Recent actief 0

  • Er zijn hier geen geregistreerde gebruikers aanwezig.