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

Top Posters In This Topic

Featured Replies

  • 3 weken later...
Geplaatst:
comment_1123358

    public OnPlayerCommandText(playerid, cmdtext[])
{

if(strcmp(cmdtext, "/heal", true)==0)
   {
SetPlayerHealth(playerid, 100);
       return 1;
   }

   if(strcmp(cmdtext, "/armour", true)==0)
   {
SetPlayerHealth(playerid, 100);
       return 1;
   }

   if(strcmp(cmdtext, "/tekst", true)==0)
   {
   SendClientMessage(playerid, 126, "typ hier niet je tekst");
       return 1;
   }

   return 0;
}

Maar dan krijg ik steeds deze foutmelding:

C:\Users\Sjors\Desktop\Samp server\gamemodes\Sjorszzz.pwn(232) : error 021: symbol already defined: "OnPlayerCommandText"

Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase

1 Error.

Dus er word gezegt dat die commando op die lijn/regel al geactiveerd is.

Ik dus die regel weghalen zodat ik dit krijg:

	if(strcmp(cmdtext, "/heal", true)==0)
   {
SetPlayerHealth(playerid, 100);
       return 1;
   }

   if(strcmp(cmdtext, "/armour", true)==0)
   {
SetPlayerHealth(playerid, 100);
       return 1;
   }

   if(strcmp(cmdtext, "/tekst", true)==0)
   {
   SendClientMessage(playerid, 126, "typ hier niet je tekst");
       return 1;
   }

   return 0;

Maar dan krijg ik ineens deze foutmeldingen:

C:\Users\Sjors\Desktop\Samp server\gamemodes\Sjorszzz.pwn(231) : error 010: invalid function or declaration

C:\Users\Sjors\Desktop\Samp server\gamemodes\Sjorszzz.pwn(234) : error 010: invalid function or declaration

C:\Users\Sjors\Desktop\Samp server\gamemodes\Sjorszzz.pwn(237) : error 010: invalid function or declaration

C:\Users\Sjors\Desktop\Samp server\gamemodes\Sjorszzz.pwn(240) : error 010: invalid function or declaration

C:\Users\Sjors\Desktop\Samp server\gamemodes\Sjorszzz.pwn(243) : error 010: invalid function or declaration

C:\Users\Sjors\Desktop\Samp server\gamemodes\Sjorszzz.pwn(246) : error 010: invalid function or declaration

C:\Users\Sjors\Desktop\Samp server\gamemodes\Sjorszzz.pwn(249) : error 010: invalid function or declaration

Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase

7 Errors.

Nu snap ik dr dus helemaal niks meer van. :?

Geplaatst:
comment_1123376

Wat jij had, moet je laten staan. Druk dan op CTRL + F en zoek naar 'OnPlayerCommand' Als het goed is, vindt hij nu een callback waar waarschijnlijk niets onder staat. Verwijder deze.

Geplaatst:
comment_1123416
Wat jij had, moet je laten staan. Druk dan op CTRL + F en zoek naar 'OnPlayerCommand' Als het goed is, vindt hij nu een callback waar waarschijnlijk niets onder staat. Verwijder deze.

Als ik dit doe dan vind hij nog een:

public OnPlayerCommandText(playerid, cmdtext[])

{

En als ik deze verwijder dan krijg ik ineens 26 errors :duh:

Geplaatst:
comment_1123930

Je had dus 2x een public OnPlayerCommandText staan, maar bij de 2e hoort waarschijnlijk ook nog een

"}" en een "return 0" heb je die ook verwijderd?

En als in de 2e OnPlayerCommandText nog commando's stonden, dan moet je die wel naar de andere verplaatsen.

Geplaatst:
comment_1124129
Je had dus 2x een public OnPlayerCommandText staan, maar bij de 2e hoort waarschijnlijk ook nog een

"}" en een "return 0" heb je die ook verwijderd?

En als in de 2e OnPlayerCommandText nog commando's stonden, dan moet je die wel naar de andere verplaatsen.

Nou nee want die 2e heb ik dr zelf bij gezet omdat deze bij het commando hoort.

En daar staan niet die extra komma's bij. :?

Geplaatst:
comment_1124468

Ik heb nu inmiddels dit probleem opgelost.

Het lag aan dat deze regel 2 keer in het script stond:

public OnPlayerCommandText(playerid, cmdtext[])

{

Dus nu heb ik het oude commando weggehaald en de mijne bij de ene die er al stond toegevoegd.

Nu geeft hij aan dat alles klopt en correct is. ^_^

Maar nu ik het spel aanzet en het commando wil uitproberen, komt er te staan unknow server command. :?

Dus nu snap ik dr helemaal niks meer van.

Want het is nu toch goed.

Alleen kent de server het commando niet terwijl die wel goed in het script staat :ch:

Hier kan ik nou zo kwaad om worden.

Al die moeite voor niks :@

Geplaatst:
comment_1124479

Kun je die commando's ff posten of op pastebin zetten?

Ik vermoed dat er dan iets niet klopt met je returns 1 en/of 0

ps. en die moeite is zeker niet voor niks, komt allemaal best wel goed. maar het vergt gewoon geduld en precisie ;)

Geplaatst:
comment_1124519
Kun je die commando's ff posten of op pastebin zetten?

Ik vermoed dat er dan iets niet klopt met je returns 1 en/of 0

ps. en die moeite is zeker niet voor niks, komt allemaal best wel goed. maar het vergt gewoon geduld en precisie ;)

Ik heb even mijn script geupload.

Zodat jullie hem kunnen downloaden.

En zo kunnen zien wat ik fout heb gedaan. ^_^

download link

http://rapidshare.com/files/148917393/Sjorszzz.pwn.html

Oja en voor de zekerheid hier mijn commando.

public OnPlayerCommandText(playerid, cmdtext[])
{
new string[256];
new playermoney;
new sendername[MAX_PLAYER_NAME];
new giveplayer[MAX_PLAYER_NAME];
new cmd[256];
new giveplayerid, moneys, idx;

cmd = strtok(cmdtext, idx);

if(strcmp(cmd, "/help", true) == 0) {
	SendPlayerFormattedText(playerid,"Las Venturas Deathmatch: Money Grub Coded By Jax and the SA-MP Team.",0);
	SendPlayerFormattedText(playerid,"Type: /objective : to find out what to do in this gamemode.",0);
	SendPlayerFormattedText(playerid,"Type: /givecash [playerid] [money-amount] to send money to other players.",0);
	SendPlayerFormattedText(playerid,"Type: /tips : to see some tips from the creator of the gamemode.", 0);
   return 1;
}
if(strcmp(cmd, "/objective", true) == 0) {
	SendPlayerFormattedText(playerid,"This gamemode is faily open, there's no specific win / endgame conditions to meet.",0);
	SendPlayerFormattedText(playerid,"In LVDM:Money Grub, when you kill a player, you will receive whatever money they have.",0);
	SendPlayerFormattedText(playerid,"Consequently, if you have lots of money, and you die, your killer gets your cash.",0);
	SendPlayerFormattedText(playerid,"However, you're not forced to kill players for money, you can always gamble in the", 0);
	SendPlayerFormattedText(playerid,"Casino's.", 0);
   return 1;
}
if(strcmp(cmd, "/tips", true) == 0) {
	SendPlayerFormattedText(playerid,"Spawning with just a desert eagle might sound lame, however the idea of this",0);
	SendPlayerFormattedText(playerid,"gamemode is to get some cash, get better guns, then go after whoever has the",0);
	SendPlayerFormattedText(playerid,"most cash. Once you've got the most cash, the idea is to stay alive(with the",0);
	SendPlayerFormattedText(playerid,"cash intact)until the game ends, simple right ?", 0);
   return 1;
}

	if(strcmp(cmd, "/givecash", true) == 0) {
    new tmp[256];
	tmp = strtok(cmdtext, idx);

	if(!strlen(tmp)) {
		SendClientMessage(playerid, COLOR_WHITE, "USAGE: /givecash [playerid] [amount]");
		return 1;
	}
	giveplayerid = strval(tmp);

	tmp = strtok(cmdtext, idx);
	if(!strlen(tmp)) {
		SendClientMessage(playerid, COLOR_WHITE, "USAGE: /givecash [playerid] [amount]");
		return 1;
	}
		moneys = strval(tmp);

	//printf("givecash_command: %d %d",giveplayerid,moneys);


	if (IsPlayerConnected(giveplayerid)) {
		GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
		GetPlayerName(playerid, sendername, sizeof(sendername));
		playermoney = GetPlayerMoney(playerid);
		if (moneys > 0 && playermoney >= moneys) {
			GivePlayerMoney(playerid, (0 - moneys));
			GivePlayerMoney(giveplayerid, moneys);
			format(string, sizeof(string), "You have sent %s(player: %d), $%d.", giveplayer,giveplayerid, moneys);
			SendClientMessage(playerid, COLOR_YELLOW, string);
			format(string, sizeof(string), "You have recieved $%d from %s(player: %d).", moneys, sendername, playerid);
			SendClientMessage(giveplayerid, COLOR_YELLOW, string);
			printf("%s(playerid:%d) has transfered %d to %s(playerid:%d)",sendername, playerid, moneys, giveplayer, giveplayerid);
		}
		else {
			SendClientMessage(playerid, COLOR_YELLOW, "Invalid transaction amount.");
		}
	}
	else {
			format(string, sizeof(string), "%d is not an active player.", giveplayerid);
			SendClientMessage(playerid, COLOR_YELLOW, string);
		}
	return 1;
}

if(strcmp(cmd,"/Los Santos",true)==0)
{
   SetPlayerPos(playerid, 2485.812, -1667.308, 13.343);
   SendClientMessage(playerid, COLOR_GREEN, "Je bent nu naar Los Santos geteleporteerd");
SetPlayerFacingAngle(playerid, 182.93);
   return 1;
}

if(strcmp(cmdtext, "/heal", true)==0)
{
   SetPlayerHealth(playerid, 100);
return 1;
}
   if(strcmp(cmdtext, "/armour", true)==0)
{
   SetPlayerHealth(playerid, 100);
return 1;
}    if(strcmp(cmdtext, "/tekst", true)==0)

{
   SendClientMessage(playerid, 126, "typ hier niet je tekst");
return 1;
}
return 0;
}

Geplaatst:
comment_1124543
	return 1;
}	if(strcmp(cmdtext, "/tekst", true)==0)

Het moet dit zijn

	   return 1;
}
if(strcmp(cmdtext, "/tekst", true)==0)

Nu heb ik dit gedaan.

Maar het gekke is dat nu alleen het /heal commando werkt.

En het /armour commando werkt niet maar hij geeft ook niet unknow server command aan.

En bij de rest van de commando's die ook niet werken geeft hij dit wel aan. :duh:

Gast
Dit onderwerp is gesloten.

Recent actief 0

  • Er zijn hier geen geregistreerde gebruikers aanwezig.