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.8k
  • Created
  • Laatste reactie

Top Posters In This Topic

Posted Images

Featured Replies

Geplaatst:
comment_845790

public OnPlayerCommandText(playerid, cmdtext[])
{
if(strcmp(cmdtext, "/buildingjump", true) == 0)
{
	if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
	{
		if(GetVehicleModel(GetPlayerVehicleID(playerid)) == 461)
		{
			SetVehiclePos(GetPlayerVehicleID(playerid),-2882.8174,-3074.8611,79.6127);
SetVehicleZAngle(GetPlayerVehicleID(playerid),270.0000);
			SetCameraBehindPlayer(playerid);
			SendClientMessage(playerid, 0xAA3333AA, "You have been teleportated to -BuildingJump-");
		}	
		else
		{
			SendClientMessage(playerid, 0xAA3333AA, "You can only teleport with a pcj600 or on foot.");
		}
	}
	else
	{
		SetPlayerPos(playerid,-2882.8174,-3074.8611,79.6127);
		SetPlayerFacingAngle(playerid,270.0000);
		SetCameraBehindPlayer(playerid);
		SendClientMessage(playerid, 0xFF6600AA, "You have been teleportated to -BuildingJump-");
	}
	return 1;
}

klik >>hier<< voor een beter uitgelijnde versie

Bewerkt: door Sandra18[NL]

Geplaatst:
comment_846295

als ik /bigjump typ, dan blokkeert de server :{

maar in pawno geeft hij geen fouten.

    if(strcmp(cmdtext, "/bigjump", true) == 0) // Tele 2 BigJump
   {
       if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
       {
           SetVehiclePos(GetPlayerVehicleID(playerid),-594.1223,904.4135,427.5000);
           SetVehicleZAngle(GetPlayerVehicleID(playerid),135.0000);
           SetCameraBehindPlayer(playerid);
           SendClientMessage(playerid, 0xFF6600AA, "You have been teleportated to -BigJump-");
           SendClientMessageToAll(0xAFAFAFAA,"%s has teleported to -BigJump.");
       }
       else
       {
           SetPlayerPos(playerid,-594.1223,904.4135,427.0000);
           SetPlayerFacingAngle(playerid,135.0000);
           SetCameraBehindPlayer(playerid);
           SendClientMessage(playerid, 0xFF6600AA, "You have been teleportated to -BigJump-");
           SendClientMessage(playerid, 0xAA3333AA, "(You need a vehicle for this stunt)");
           SendClientMessageToAll(0xAFAFAFAA,"%s has teleported to -BigJump.");
       }
       return 1;
}

zonder die "%s has teleported to -BigJump." werkt het wel, maar hoe moet ik dat dan wel typen

zodat het werkt? :?

Geplaatst:
comment_846300

als ik /bigjump typ, dan blokkeert de server :{

maar in pawno geeft hij geen fouten.

    if(strcmp(cmdtext, "/bigjump", true) == 0) // Tele 2 BigJump
   {
       if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
       {
           SetVehiclePos(GetPlayerVehicleID(playerid),-594.1223,904.4135,427.5000);
           SetVehicleZAngle(GetPlayerVehicleID(playerid),135.0000);
           SetCameraBehindPlayer(playerid);
           SendClientMessage(playerid, 0xFF6600AA, "You have been teleportated to -BigJump-");
           SendClientMessageToAll(0xAFAFAFAA,"%s has teleported to -BigJump.");
       }
       else
       {
           SetPlayerPos(playerid,-594.1223,904.4135,427.0000);
           SetPlayerFacingAngle(playerid,135.0000);
           SetCameraBehindPlayer(playerid);
           SendClientMessage(playerid, 0xFF6600AA, "You have been teleportated to -BigJump-");
           SendClientMessage(playerid, 0xAA3333AA, "(You need a vehicle for this stunt)");
           SendClientMessageToAll(0xAFAFAFAA,"%s has teleported to -BigJump.");
       }
       return 1;
}

zonder die "%s has teleported to -BigJump." werkt het wel, maar hoe moet ik dat dan wel typen

zodat het werkt? :?

MIsschien mag je die % niet gebruiken. Probeer die eens weg te laten en gewoon ''Has'' te zetten.

Geplaatst:
comment_846311

%s moet gebruikt worden in de functie format. Je moet dit dus doen onder de vorm:

new text[], playerName[MAX_PLAYER_NAME];
GetPlayerName(playerid, playerName, MAX_PLAYER_NAME);
format(text, sizeof(text), "%s blablabla...", playerName);

Dat moet je dus erbij zetten voor de regel:

SendClientMessageToAll(0xAFAFAFAA,"%s has teleported to -BigJump.");

En die regel moet je dan ook nog even wijzigen zodat er staat:

SendClientMessageToAll(0xAFAFAFAA, text);

Geplaatst:
comment_846319

werkt niet :cry: xD

dus nu heb ik dit:

    if(strcmp(cmdtext, "/bigjump", true) == 0)
   {
       if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
       {
       	new text[], playerName[MAX_PLAYER_NAME];
		GetPlayerName(playerid, playerName, MAX_PLAYER_NAME);
		format(text, sizeof(text), "%s has teleported to -BigJump-", playerName);
           SetVehiclePos(GetPlayerVehicleID(playerid),-594.1223,904.4135,427.5000);
           SetVehicleZAngle(GetPlayerVehicleID(playerid),135.0000);
           SetCameraBehindPlayer(playerid);
           SendClientMessage(playerid, 0xFF6600AA, "You have been teleportated to -BigJump-");
           SendClientMessageToAll(0xAFAFAFAA, text);
       }
       else
       {
           SetPlayerPos(playerid,-594.1223,904.4135,427.0000);
           SetPlayerFacingAngle(playerid,135.0000);
           SetCameraBehindPlayer(playerid);
           SendClientMessage(playerid, 0xFF6600AA, "You have been teleportated to -BigJump-");
           SendClientMessage(playerid, 0xAA3333AA, "(You need a vehicle for this stunt)");
       }
       return 1;
}

en ik krijg deze errors:

C:\Games\GTA San Andreas\GTA San Andreas\server\gamemodes\WWG.pwn(802) : error 009: invalid array size (negative, zero or out of bounds)
C:\Games\GTA San Andreas\GTA San Andreas\server\gamemodes\WWG.pwn(802) : error 029: invalid expression, assumed zero
C:\Games\GTA San Andreas\GTA San Andreas\server\gamemodes\WWG.pwn(802) : error 017: undefined symbol "playerName"
C:\Games\GTA San Andreas\GTA San Andreas\server\gamemodes\WWG.pwn(802) : fatal error 107: too many error messages on one line

Compilation aborted.Pawn compiler 3.2.3664	 	 	Copyright © 1997-2006, ITB CompuPhase


4 Errors.

wat doe ik dan mis?

Bewerkt: door [wwg] Pulverizer_Be [ldr]

Geplaatst:
comment_846409

en hoe weet je dan dat dat 128 moet zijn?

128 was maar een voorbeeld.

het kan net zo goed 256 of 1542434 zijn.

Maar dat getal geeft het aantal tekens (letters) aan dat in die regel (een string word dat ook wel genoemd) komen.

Het maximaal aantal tekens dat je per regel naar de chat kan sturen, is 128.

Het script houdt dan dus 128 bytes (of bits) vrij voor die regel.

Bewerkt: door Sandra18[NL]

Geplaatst:
comment_846425

dus het makkelijkste is dat ik altijd 128 gebruik? (als ik nog meerdere strings toevoeg)

of mag ik geen 2x hetzelfde gebruiken?

Bewerkt: door [wwg] Pulverizer_Be [ldr]

Geplaatst:
comment_846432
dus het makkelijkste is dat ik altijd 128 gebruik? (als ik nog meerdere strings toevoeg)

of mag ik geen 2x hetzelfde gebruiken?

Jawel hoor, je mag wel twee keer 128 gebruiken, daar is niks mis mee. Het is alleen verkeerd als je twee keer dezelfde string definiëert, dat kan niet. Je kan dus wel dit hebben...

new test[128];
new nogeen[128];

...maar niet dit..

new test[128];
new test[128];

...omdat 'test' al bestaat.

Geplaatst:
comment_846435

oh, maar dat mag dan wel als ik bij de ene hoofdletters gebruik, en bij de andere geen hoofdletters?

dat is dan ook zogezegd verschillend?

Geplaatst:
comment_846444

Pawno is niet hoofdlettergevoelig, ik heb het net getest, dus je kan 'test', 'Test', 'TEST' of iets anders gewoon tegelijk gebruiken. Let wel dat je code dan een stuk minder overzichtelijk wordt, dan dat je ze twee verschillende namen geeft. Als je dit niet doet dan zit je gauw te twijfelen waar je nu wel/niet hoofdletters gebruikte.

Geplaatst:
comment_846446
Pawno is niet hoofdlettergevoelig, ik heb het net getest, dus je kan 'test', 'Test', 'TEST' of iets anders gewoon tegelijk gebruiken. Let wel dat je code dan een stuk minder overzichtelijk wordt, dan dat je ze twee verschillende namen geeft. Als je dit niet doet dan zit je gauw te twijfelen waar je nu wel/niet hoofdletters gebruikte.

oh, bij mij is die wel hoofdlettergevoelig, want als ik een normale letter verander in een hoofdletter, dan

geeft hij een error

maar bedankt he ^_^

Bewerkt: door [wwg] Pulverizer_Be [ldr]

Geplaatst:
comment_846456
Pawno is niet hoofdlettergevoelig

Niet mee eens!

Pawno is dan wel hoofdletter gevoelig.

Je kan inderdaad meerdere varabelen gebruiken met dezelfe naam, maar dan met andere hoofdletters enzo.

Maar:

if(strcmp(cmdtext, "/testdehoofdlettergevoeligheid", true) == 0)	
{
new test[128];
format(tEsT, sizeof(tEst), "Nu krijg je %d errors over dit stukje script", 4);
SendClientMessage(playerid, 0xFF6600AA, tEsT);
return 1;
}

SandraRL.pwn(3901) : error 017: undefined symbol "tEsT"

SandraRL.pwn(3901) : error 017: undefined symbol "tEsT"

SandraRL.pwn(3901) : error 029: invalid expression, assumed zero

SandraRL.pwn(3901) : fatal error 107: too many error messages on one line

dus het makkelijkste is dat ik altijd 128 gebruik? (als ik nog meerdere strings toevoeg)

of mag ik geen 2x hetzelfde gebruiken?

Als je bijvoorbeeld 3 strings moet maken die tegelijkertijd naar bijvoorbeeld de chat moet worden gestuurd, kan je dat best met 1 variabele doen:

if(strcmp(cmdtext, "/commando", true) == 0)	
{
new string[128];

format(string, sizeof(string), "Hello %s", playername);
SendClientMessage(playerid, 0xFF6600AA, string);

format(string, sizeof(string), "You are jailed for %d minutes", jailtime[playerid]);
SendClientMessage(playerid, 0xFF6600AA, string);

format(string, sizeof(string), "You recieved $%d dollar", money);
SendClientMessage(playerid, 0xFF6600AA, string);
return 1;
}

Gast
Dit onderwerp is gesloten.

Recent actief 0

  • Er zijn hier geen geregistreerde gebruikers aanwezig.