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_902809

hij werkt niet goed

ik heb jou systeem gebruikt en aan gepast en dit is er uit gekomen

dit staat ergens boven aan:

new playerCheckpoint[MAX_PLAYERS];

#define MAX_POINTS 3

new Float:checkCoords[MAX_POINTS][4] = {
{-36.5483,-57.9948, -17.2655,-49.2967},
{-1435.6682, 900.3287, 70.1875, 1637.8186},
{1925.1511,968.2358, 2019.0715,1067.4276}
};

new Float:checkpoints[MAX_POINTS][3] = {
{-23.5969,-55.2872,1003.5469},
{-1495.6682,920.3287,7.1875},
{1989.0619,1005.5241,994.4688}
};

new checkpointType[MAX_POINTS] = {
CP_BANK,
CP_PIRATE,
CP_DRAGON
};

en dit bij public onplayercommandtext:

  if (strcmp("/enter bank", cmdtext, true, 10) == 0)
{
	if(IsPlayerInCheckpoint(playerid) && getCheckpointType(playerid) == CP_PIRATE)
	{
		SetPlayerPos(playerid, -27.9898,-55.4541,1003.5469);
		SendClientMessage(playerid, 0x00FF00, "Je bent in de bank!");
	}
	else
	{
		SendClientMessage(playerid, 0xFF0000AA, "Je moet in de ingang van De Bank gaan staan!, om de bank in te kunnen");
	}
	return 1;
}
if (strcmp("/exit bank", cmdtext, true, 10) == 0)
{
	if(IsPlayerInCheckpoint(playerid) && getCheckpointType(playerid) == CP_BANK)
	{
		SetPlayerPos(playerid, -1495.6682,920.3287,7.1875);
		SendClientMessage(playerid, 0x00FF00, "Je bent uit de bank!");
	}
	else
	{
		SendClientMessage(playerid, 0xFF0000AA, "Je moet in de checkpoint in De Bank gaan staan!, om de bank in te kunnen");
	}
	return 1;
}

maar als ik nu in de checkpoint ga staan en typ /enter bank staat er aldoor:

Je moet in de checkpoint in De Bank gaan staan!, om de bank in te kunnen

Bewerkt: door opacool6

Geplaatst:
comment_903157
hij werkt niet goed

ik heb jou systeem gebruikt en aan gepast en dit is er uit gekomen

dit staat ergens boven aan:

Code

en dit bij public onplayercommandtext:

Code

maar als ik nu in de checkpoint ga staan en typ /enter bank staat er aldoor:

Je moet in de checkpoint in De Bank gaan staan!, om de bank in te kunnen

Je moet, desondanks dat het in één command staat, ook vóór de 'else' een return gebruiken. Jouw code moet er dus zo uit zien:

 if (strcmp("/enter bank", cmdtext, true, 10) == 0)
 {
	 if(IsPlayerInCheckpoint(playerid) && getCheckpointType(playerid) == CP_PIRATE)
	 {
		 SetPlayerPos(playerid, -27.9898,-55.4541,1003.5469);
		 SendClientMessage(playerid, 0x00FF00, "Je bent in de bank!");
		 return 1;
	 }
	 else
	 {
		 SendClientMessage(playerid, 0xFF0000AA, "Je moet in de ingang van De Bank gaan staan!, om de bank in te kunnen");
	 }
	 return 1;
 }
 if (strcmp("/exit bank", cmdtext, true, 10) == 0)
 {
	 if(IsPlayerInCheckpoint(playerid) && getCheckpointType(playerid) == CP_BANK)
	 {
		 SetPlayerPos(playerid, -1495.6682,920.3287,7.1875);
		 SendClientMessage(playerid, 0x00FF00, "Je bent uit de bank!");
		 return 1;
	 }
	 else
	 {
		 SendClientMessage(playerid, 0xFF0000AA, "Je moet in de checkpoint in De Bank gaan staan!, om de bank in te kunnen");
	 }
	 return 1;
 }

Bewerkt: door Donwell

Geplaatst:
comment_903390

Ok, ik heb weer een probleempje. Ik wil dat een speler dood gaat, zodra hij buiten een bepaald gebied gaat. Als x kleiner is als 1000 of groter is als 2000 EN als y kleiner is als 1000 of y groter is als 2000.

forward IsPlayerInArea(playerid);
public IsPlayerInArea(playerid)
{
new float: x, y, z;
GetPlayerPos(playerid, x, y, z);
if(x =< 1000.0 || x => 2000.0 && y =< 1000.0 || y => 2000.0)
{
	SetPlayerHealth(playerid, 0.0);
}
return 1;
}

Ik heb dit stukje code nodig voor de timer die dat om de 3 seconden gaat checken.

Bewerkt: door Big Boss

Geplaatst:
comment_903414
....

In plaats van een timer voor iedere speler aan te maken, kan je beter in jouw IsPlayerInArea-functie een loop maken door alle spelers.

//Bij OnGameModeInit:

SetTimer("IsPlayerInArea", 3000, 1);

//De functie:

forward IsPlayerInArea();
public IsPlayerInArea()
{
for(new i; i<MAX_PLAYERS; i++)
{
	if(IsPlayerConnected(i))
	{
		new Float:x, Float:y, Float:z;
		GetPlayerPos(i, x, y, z);
		if(x =< 1000.0 || x => 2000.0 && y =< 1000.0 || y => 2000.0)
		{
			SetPlayerHealth(i, 0.0);
		}
	}
}
return 1;
}

P.s. Waarom gebruik je geen WorldBounds?

Bij OnPlayerConnect:

SetPlayerWorldBounds(playerid, 2000, 1000, 2000, 1000);

Bewerkt: door =>Sandra<=

Geplaatst:
comment_905384

Kheb nog een vraagje ( Omg, Ja, Alweer :puh: )

Het gaat over het maken van objects.

Ik dacht van, Laat ik de uitleg van Donwell even gebruiken en er wat leuks bij doen.

Maar nee. Het heeft weer iets fouts. Als ik het object oppak, dan gaat het object wel weg, Maar ik krijg niet wat er in het script staat. Foutje in het script?

public OnPlayerPickUpPickup(playerid, pickupid) {
{
if(pickupid == Briefcase) {
	   GivePlayerMoney(playerid, 10000);
	   SendClientMessage(playerid, COLOR_GREEN, "You've picked up a briefcase!");
	   SendClientMessage(playerid, COLOR_GREEN, "Now get away! Fire in the hole in 3 seconds!");
	   SetTimer("boom" , 3000, 1);
	   return 1;
	}
return 0;
}
}
public boom(playerid)
{
CreateExplosion(2486.0,-1667.0,13.0,5,2000);
CreateExplosion(2486.0,-1667.0,13.0,5,2000);
CreateExplosion(2486.0,-1667.0,13.0,5,2000);
SendClientMessageToAll(COLOR_RED, "An bomb gone off! The exploded object was an briefcase!");
}

new Briefcase;

forward boom(playerid);

Briefcase = AddStaticPickup(1210,2, 2486.0,-1667.0,13.0);

Ik zou het niet weten ;p. Groetjes Jeroen

PS. het is een beetje door elkaar heen maar als het goed is staat alles er wat je moet hebben.

Geplaatst:
comment_905402

AddStaticPickup 'returnt' geen id.

Dus daarom werkt OnPlayerPickupPickup niet.

Verander

Briefcase = AddStaticPickup(1210,2, 2486.0,-1667.0,13.0);

naar:

Briefcase = CreatePickup(1210,2, 2486.0,-1667.0,13.0);

Geplaatst:
comment_905806
hoe kan het zijn dat je aldoor crasht

als je buiten de grens van san fierro gaat

Ik heb geen idee hoe het kan maar ik denk dat dit aan gta ligt of aan je aan je eigen pc,

Ikzelf kan overal probleemloos naartoegaan, maar zogauw ik op bepaalde plaatsen in LV kom gaat het ook mis (beeld knipperen, spel heel traag enz, soms crash)

Geplaatst:
comment_909238

ik heb dit gemaakt:

	if(strcmp(cmd, "/admins", true) == 0)
{
	new admin;
	new online;
	new lColour;
	SendClientMessage(playerid, COLOR_GREEN, "Current Admins Online");
	for (new i = 0; i < MAX_PLAYERS; i++)
	{
		online = 0;
		GetPlayerName(i, sendername, sizeof(sendername));
			admin = dini_Int(udb_encode(sendername),"level");
		if (IsPlayerConnected(i))
		{
	 		if (admin != 0 && logged[i] == 1)
			{
	   			GetPlayerName(i, sendername, sizeof(sendername));
	   			admin = dini_Int(udb_encode(sendername),"level");
				  if (admin == 1)
				{
					format(string, sizeof(string), "%s - Server Moderator", sendername);
					  lColour = COLOR_BLAUW;
				}
				else if (admin == 2)
				{
					format(string, sizeof(string), "%s - Server Admin", sendername);
				 	lColour = COLOR_BLAUW;
				}
				online++;
			}
			if (online == 1)
			{
				SendClientMessage(playerid, lColour, string);
			}
			if (online == 0)
			{
				SendClientMessage(playerid, COLOR_RED, "There are currently no admins online!");
			}
			return 1;
		}
	}
}

alleen als ik nu in de server /rcon login <passwoord> doe en ik dan /admins indruk staat er aldoor:

There are currently no admins online!

maar hoe kan dat als ik ben ingelogd als admin met /rcon login <passwoord>

Bewerkt: door opacool6

Geplaatst:
comment_909271

Hallo, ik heb even een vraagje,

Ik ben bezig met maken van huizen, lukt allemaal opzich wel, alleen ik kan nergens coordinaten vinden + id's van de interiors om erin te zetten.

Misschien dat iemand dat weet?

bvd, groetjes Ymosky

Gast
Dit onderwerp is gesloten.

Recent actief 0

  • Er zijn hier geen geregistreerde gebruikers aanwezig.