Jump to content
Geplaatst:
comment_788535

Mocht je (kleine) problemen hebben met een SA:MP pawnscript, stel je vraag dan hier. Het is hier dus niet de bedoeling dat je om een script gaat vragen. Het gaat alleen om jouw eigen code.

Maar houdt met het volgende wel even rekening zodat het topic overzichtelijk blijft:

  • Toon altijd de volledige code van de functie waarin het probleem zich bevindt.
  • Gebruik om je pawnscript te tonen de BB-tags "code" of zet het even op Pastebin als het script te groot is.
  • Ga niet dubbelposten als er nog niemand op je vraag heeft gereageerd. Heb geduld.
  • En het belangrijkste gebruik eerst altijd de zoekfunctie, wellicht is jouw vraag al gesteld.

  • Reacties 838
  • Bezichtigingen 204.7k
  • Created
  • Laatste reactie

Top Posters In This Topic

Posted Images

Featured Replies

Geplaatst:
comment_893185

Hallo!

IK heb een klein probleempje met worldbounds. Zou iemand me precies willen uitwerken hoe ik goed worldbounds kan maken. Ik neem nu via Sandras Script tools de 4 coordinaten af, maar altijd is de Xmax smaller dan de Ymax? Wat moet ik doen?

@ hieronder ebdankt!

Bewerkt: door Rivel

Geplaatst:
comment_893571

hoe kan ik er voor zorgen dat als je een mannetje kiest dat je dan tekst in beeld krijgt:

bijvoorbeeld

bij mannetje 1 komt er te staan: stunter

bij mannetje 2 komt er te staan: taxi, chauffeur

moet dat dan zo

{
AddPlayerClass(166,2001.5721,1519.5436,17.0625,69.5488,0,0,26,300,29,400);
GameTextForPlayer(playerid,"stunter",5000,5);
}

ik denk het niet want er gebeurt niks. maar wat moet het dan wel wezen?

Bewerkt: door opacool6

Geplaatst:
comment_894456

Ik wil een timer zetten dus dit:

SetTimer("voorbeeld", 15000, 1);

en dit

public voorbeeld(playerid)
{
//Hier gebeurt wat
}

Maar ik wil dus hebben dat dit na 15 seconde is afgelopen, en dat er na die 15 seconde ook die ''public voorbeeld'' stop, en dat deze timer weer begind als je spawnt

Geplaatst:
comment_894473

SetTimer("NaamVanFunctie", tijd in ms, repeat);

repeat = engels voor herhalen.

Zet 'repeat' dus op '0'.

P.s Je kan niet zomaar 'playerid' toevoegen aan een functie.

Gebruik daarvoor SetTimerEx

Geplaatst:
comment_894777

Hoe kan ik tekst bij de poppetjes die je uitkiest krijgen? Bv:

Poppetje 1

Grove gangster

Kill other gangsters and cops.

Poppetje 2

Cop

Arrest criminals and gangsters.

Poppetje 3

Civilian

Life the normal life.

Hoe krijg ik dit voor mekaar?

Alvast bedankt,

F-16gek :)

Geplaatst:
comment_894908

public OnPlayerRequestClass(playerid, classid)
{
	gPlayerClass[playerid] = classid;
	SetPlayerClass(playerid,classid);
	SetPlayerPos(playerid,X,Y,Z);
	SetPlayerCameraPos(playerid,X,Y,Z);
	SetPlayerCameraLookAt(playerid,X,Y,Z);
	SetPlayerFacingAngle(playerid, A);

	 switch (classid) {
	case 0: {
		GameTextForPlayer(playerid,"~g~Grove Gangster~n~~r~Kill other gangsters and cops",2500,4);
	}
	case 1: {
		GameTextForPlayer(playerid,"~b~Cop~n~~r~Arrest criminals and gangsters",2500,4);
	}
	case 2: {
		GameTextForPlayer(playerid,"~y~Civilian~n~~r~Life the normal life",2500,4);
	}
}
	return 1;
}

Zoals je ziet heb ik hem alvast voor je klaargemaakt. Je plaatst dat stukje in je script bij 'OnPlayerRequestClass'. In de tekst scheidt de '~n~' de regels van elkaar zodat er een enter tussen komt. Wil je dit werkende krijgen bij de juiste classes, dan moet je de regels verwisselen of de volgorde van de spelers aanpassen, helemaal bovenin bij 'AddPlayerClass'.

Geplaatst:
comment_895041

Oké, bedankt. Hij werkt.

Nu is mijn vraag: Waar staat dit voor:

2500,4

Dat 2500 staat zeker voor ms? En waar staat die 4 dan voor?

Geplaatst:
comment_895046
Oké, bedankt. Hij werkt.

Nu is mijn vraag: Waar staat dit voor:

2500,4

Dat 2500 staat zeker voor ms? En waar staat die 4 dan voor?

Die 4 staat voor letter type.

Bewerkt: door Remcconen

Geplaatst:
comment_895186

Alweer een fout :$ :

C:\PROGRA~1\ROCKST~1\GTASAN~1\samp\GAMEMO~1\_NL_DM~1.PWN(320) : error 002: only a single statement (or expression) can follow each "case"
C:\PROGRA~1\ROCKST~1\GTASAN~1\samp\GAMEMO~1\_NL_DM~1.PWN(320) : warning 215: expression has no effect
Pawn compiler 3.2.3664	 	 	Copyright (c) 1997-2006, ITB CompuPhase


1 Error.

Ik ben bezig geweest om voor mijn gang een 'spawn back to home' teleport te maken, en dan voor elke gang een andere. Maar nu heb ik het zo :S

Geplaatst:
comment_895193
Alweer een fout :$ :

C:\PROGRA~1\ROCKST~1\GTASAN~1\samp\GAMEMO~1\_NL_DM~1.PWN(320) : error 002: only a single statement (or expression) can follow each "case"
C:\PROGRA~1\ROCKST~1\GTASAN~1\samp\GAMEMO~1\_NL_DM~1.PWN(320) : warning 215: expression has no effect
Pawn compiler 3.2.3664	 	 	Copyright (c) 1997-2006, ITB CompuPhase


1 Error.

Ik ben bezig geweest om voor mijn gang een 'spawn back to home' teleport te maken, en dan voor elke gang een andere. Maar nu heb ik het zo :S

Kun je dat commando wara die error's in zitten dan even plaatsen. (Helpt wat makkelijker ;) )

Geplaatst:
comment_895204

Hier is ie:

	if(strcmp("/ganghome",cmdtext,true) == 0)
{
	switch(gClass[playerid])
	{
		case 0:
		{
			SetPlayerPos(playerid, 2495.2266, -1689.0822, 14.2086);
			SendClientMessage(playerid, COLOR_ORANGE, "Welcome back in your hood.");
		}
		case 1:
		{
			SetPlayerPos(playerid, 1771.0966, -1895.7701, 13.5640);
			SendClientMessage(playerid, COLOR_ORANGE, "Welcome back in your hood.");
		}
		case 2:
		{
			SetPlayerPos(playerid, 340.9361, -1349.3088, 14.5078);
			SendClientMessage(playerid, COLOR_ORANGE, "Welcome back in your hood.");
		}
		case 3:
		{
			SetPlayerPos(playerid, 1580.1732, -1635.0472, 13.5611);
			SendClientMessage(playerid, COLOR_LIGHTBLUE, "Welcome back on the base.");
		}
	return 1;
}

Geplaatst:
comment_895225
Hier is ie:

[....]

Nee, dan krijgt hij juist die error, je hebt namelijk 'return 1' nog in de switch staan.

Er moet nog een } tussen '}' en 'return 1'

if(strcmp("/ganghome",cmdtext,true) == 0)
{
switch(gClass[playerid])
{
	//  (case 0, 1 en 2)
	case 3:
	{
		SetPlayerPos(playerid, 1580.1732, -1635.0472, 13.5611);
		SendClientMessage(playerid, COLOR_LIGHTBLUE, "Welcome back on the base.");
	}
} //  <<<< DEZE WAS JE VERGETEN
return 1;
}

Geplaatst:
comment_896447

Ik heb nu een fout in een /stun command.

Hij is nu voor iedereen beschikbaar die geregistreerd is. Maar dat ga ik nog veranderen na ik alle errors er uit heb.

iig. Ik heb nu die command en er zitten 4 errors in. (Eerst waren het er 15 maar dat heb ik verholpen):

C:\PROGRA~1\ROCKST~1\GTASAN~1\samp\GAMEMO~1\_NL_DM~1.PWN(315) : error 012: invalid function call, not a valid address
C:\PROGRA~1\ROCKST~1\GTASAN~1\samp\GAMEMO~1\_NL_DM~1.PWN(315) : warning 215: expression has no effect
C:\PROGRA~1\ROCKST~1\GTASAN~1\samp\GAMEMO~1\_NL_DM~1.PWN(315) : warning 215: expression has no effect
C:\PROGRA~1\ROCKST~1\GTASAN~1\samp\GAMEMO~1\_NL_DM~1.PWN(315) : error 001: expected token: ";", but found ")"
C:\PROGRA~1\ROCKST~1\GTASAN~1\samp\GAMEMO~1\_NL_DM~1.PWN(315) : error 029: invalid expression, assumed zero
C:\PROGRA~1\ROCKST~1\GTASAN~1\samp\GAMEMO~1\_NL_DM~1.PWN(315) : fatal error 107: too many error messages on one line

Compilation aborted.Pawn compiler 3.2.3664	 	 	Copyright (c) 1997-2006, ITB CompuPhase


4 Errors.

Hier de /stun command:

	if(strcmp("/stun",cmdtext, true) == 0)
{
new reason[64];
if (AccountInfo[playerid][AdminLevel] >= 0 || IsPlayerAdmin(playerid))
	{
	tmp = strtok(cmdtext, idx);
		if(!strlen(tmp))
		{
			SendClientMessage(playerid, COLOR_ORANGE, "USAGE: /stun [playerid] [reason]");
			SendClientMessage(playerid, COLOR_ORANGE, "FUNCTION: Will stun the specified player. ");
		}

		giveplayerid = ReturnUser(tmp);
		if(giveplayerid != INVALID_PLAYER_ID)
		{
			GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
			GetPlayerName(playerid, sendername, sizeof(sendername));
			new length = strlen(cmdtext);
			while ((idx < length) && (cmdtext[idx] <= ' '))
			{
				idx++;
			}
			else
			{
			SendClientMessage(playerid, COLOR_FUSCHIA, "You have stunned %s.", pName)
			TogglePlayerControllable(giveplayerid,0);
			}
		}

		else if(giveplayerid == INVALID_PLAYER_ID)
		{
			format(string, sizeof(string), "%d is not an active player.", giveplayerid);
			SendClientMessage(playerid, COLOR_RED, string);
		}
	}
	else
		{
		SendClientMessage(playerid, COLOR_RED, "You are not an admin with the required level.");
	  }
	return 1;
}

En hier waar de error naar verwijst:

	cmd = strtok(cmdtext,idx);

Ik hoop dat jullie (nog) zin hebben om mij te helpen.

Alvast bedankt,

F-16gek :)

Bewerkt: door f-16gek

Geplaatst:
comment_896451

Je hebt er waarschijnlijk een 'return 1;' te veel in staan. In het midden zie ik er zo ééntje. Een return 1; geeft aan dat een command is afgelopen, in dit geval. Bij jou komt er óf geen nieuwe command, óf je hebt een code zomaar afgebroken. Je kunt dit probleem oplossing door een nieuw commando aan te maken, of door de overbodige return weg te halen. :)

Gast
Dit onderwerp is gesloten.

Recent actief 0

  • Er zijn hier geen geregistreerde gebruikers aanwezig.