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

Geplaatst:
comment_1144684

Ik snap het niet, ik heb een aantal errors:

C:\Documents and Settings\Hans_2\Bureaublad\samp server\pawno\Peertje.pwn(144) : error 017: undefined symbol "SendClientMessage"
C:\Documents and Settings\Hans_2\Bureaublad\samp server\pawno\Peertje.pwn(144) : error 017: undefined symbol "Home"
C:\Documents and Settings\Hans_2\Bureaublad\samp server\pawno\Peertje.pwn(144) : error 029: invalid expression, assumed zero
C:\Documents and Settings\Hans_2\Bureaublad\samp server\pawno\Peertje.pwn(144) : 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.

En dit is het stukje tekst dat erbij hoort:

public OnPlayerCommandText(playerid, cmdtext[])
{
if (strcmp("/mycommand", cmdtext, true, 10) == 0)
{
	// Do something here
	return 1;
}
if (strcmp("/home", cmdtext, true) == 0)
{
	SetPlayerPos(playerid, -329.8421, 1536.7585, 76.6117);
	SendClientMessage(playerid, 0xFF0000AA, Welcome Home!)
	return 1;
}
return 0;
}

En dan gaat het om deze regel: (Weet ik zeker, zonder die regels heb ik die errors niet)

		SendClientMessage(playerid, 0xFF0000AA, Welcome Home!)

Wat doe ik fout met deze sendclientmessage?

------------------------------------------------------------------------------------------

@Hieronder, dat is hem! :dans: Bedankt! _O_

Bewerkt: door Bierbuikje

Geplaatst:
comment_1144712

Jij hebt:

SendClientMessage(playerid, 0xFF0000AA, Welcome Home!)

en het moet zijn:

SendClientMessage(playerid, 0xFF0000AA, "Welcome Home!");

Je bent vergeten: de " voor en na de text, en ; aan het eind van de regel.

Geplaatst:
comment_1145650

Het leek me niet nuttig genoeg om hiervoor een nieuw topic te openen, daarom doe ik het hier maar.

Hoe laad je een filter script?

En is een filter script hetzelfde als een gamemode script?

Geplaatst:
comment_1145674

Een filterscript kan een gamemode zijn, maar dat hoeft niet. Een filterscript wordt vaak gebruikt, als voor meerdere gamemodes dezelfde code (denk aan een adminscript of een level-systeem) nodig is. In feite kan je het ook gewoon bij een gamemode zetten, maar dan moet je het bij iedere gamemode doen. Vandaar dat er dan een filterscript voor wordt gebruikt.

Een ander verschil is dat een filterscript niet de callback 'OnGameModeInit' bevat, maar de callback 'OnFilterscript'.

Een filterscript laden gaat ook gewoon via de 'server.cfg'. In plaats van het bij 'gamemodes' te zetten, zet je het nu bij 'filterscripts'. Voer de naam van het .amx-bestand (nu staat het ook in de map 'filterscripts') erachter in.

Succes :)

Geplaatst:
comment_1145717

Nu ik toch bezig ben met pwn kan ik evengoed het hele topic vol spamm... posten. :engel:

Ik probeer het hier te maken dat las je naar /smgdm gaat dat je dan een smg krijgt met 9999 aan ammo als je er spawnt. Hij geeft geen errors, geen warnings, helemaal niks. Maar toch wil het ingame niet lukken. Weet iemand hoe het komt dat ik geen smg krijg ingame? Of heb ik de verkeerde code gebruikt?

Dit is het stukje:

public OnPlayerCommandText(playerid, cmdtext[])
{
if (strcmp("/smgdm", cmdtext, true) == 0)
{
	SetPlayerPos(playerid, -678.0914, 1552.1849, 83.0909);
	GivePlayerWeapon(playerid, 353, 9999);
	SendClientMessage(playerid, 0xFF0000AA, "The SMG DeathMatch!");

	return 1;
}
return 0;
}

Alvast bedankt! _O_

----------------------------------------------

@hieronder. Geweldig, bedankt! _O_:tu:_O_

Bewerkt: door Bierbuikje

Geplaatst:
comment_1146701

Weet iemand ook hoe je een /rcon command maakt? In het pawn script staat bij normale commands wel een voorbeeld, maar bij rcon commands niet. Dus ik weet niet hoe het moet. Ik heb het ook al geprobeert met het regeltje van normale commands maar dan krijg ik allemaal foutmeldingen. Weet iemand hoe ik een rcon command maak? Alvast bedankt! _O_

Geplaatst:
comment_1147269
Weet iemand ook hoe je een /rcon command maakt? In het pawn script staat bij normale commands wel een voorbeeld, maar bij rcon commands niet. Dus ik weet niet hoe het moet. Ik heb het ook al geprobeert met het regeltje van normale commands maar dan krijg ik allemaal foutmeldingen. Weet iemand hoe ik een rcon command maak? Alvast bedankt! _O_

Dat doe je in ieder geval iets met dit:

if(IsPlayerAdmin(playerid))
{
    Jouw code hier...

Ik weet niet precies wat je er verder mee wilt doen ;)

EDIT: Nu heb ik zelf ook even een vraagje: als je een "if" aan meerdere criterium wil stellen doe je dat toch met "&&"?

Maar hoe doe je het als er aan 1 voorwaarde voldaan is, genoeg is? (Bijv. iets van "OR")

Bewerkt: door ysohnul

Geplaatst:
comment_1147827

Daarnaast moet je hem ook nog afsluiten, ysohnul. Ik heb hier een voorbeeldje van hoe je commando er bijvoorbeeld uit zou kunnen zien (ik heb die haakjes in dit voorbeeld er zelfs uitgelaten, door hem er gewoon bij de criteria van de eerste 'if' te zetten):

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

Deze code zet je in de OnPlayerCommandText-callback. Zoals je kunt zien moet de speler /health intypen én als RCON-administrator ingelogd zijn.

Dan had je het nog over meerdere criteria, dat doe je met && (en de volgende eigenschap) of || (of de volgende eigenschap. Als je meerdere dingen met || doet en enkele met && dan kan ik je aanraden extra haakjes te plaatsen, anders kunnen er verkeerde combinaties uitkomen (ik heb in ieder geval eens zulke dingen voor elkaar gekregen, weet niet of dat met Pawno was).

Bewerkt: door VWO-er

Geplaatst:
comment_1147831
Daarnaast moet je hem ook nog afsluiten, ysohnul. Ik heb hier een voorbeeldje van hoe je commando er bijvoorbeeld uit zou kunnen zien (ik heb die haakjes in dit voorbeeld er zelfs uitgelaten, door hem er gewoon bij de criteria van de eerste 'if' te zetten):

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

Deze code zet je in de OnPlayerCommandText-callback. Zoals je kunt zien moet de speler /health intypen én als RCON-administrator ingelogd zijn.

Dan had je het nog over meerdere criteria, dat doe je met && (en de volgende eigenschap) of || (of de volgende eigenschap. Als je meerdere dingen met || doet en enkele met && dan kan ik je aanraden extra haakjes te plaatsen, anders kunnen er verkeerde combinaties uitkomen (ik heb in ieder geval eens zulke dingen voor elkaar gekregen, weet niet of dat met Pawno was).

En moet ik die tussen de regel onrconcommand zetten of kan het ook bij onplayercommand?

Bewerkt: door Bierbuikje

Geplaatst:
comment_1147832

Bij OnRCONCommand wordt er iets uitgevoerd als de speler wat in de samp_server.exe (die opstart als je je server start) typt, dus het moet bij (zoals ik al zei....) de OnPlayerCommandText-callback.

Bewerkt: door VWO-er

Geplaatst:
comment_1151378

Ik heb weer een probleempje,

http://www.gtaforum.nl/index.php?showtopic...l=level+systeem

De tweede post daarvan heb ik in mijn script gezet en nou heb ik de volgende 2 errors:

error 033: array must be indexed (variable "LevelCosts")

error 033: array must be indexed (variable "LevelCosts")

Script deel:

if(strcmp(cmdtext, "/buylevel", true)==0)

{

if(PlayerLevel[playerid] == MAX_LEVEL)

{

SendClientMessage(playerid, 0xFF0000AA, "You already have the highest level!");

return 1;

}

if(GetPlayerMoney(playerid) <= LevelCosts[PlayerLevel[playerid]]) >>>>> Error 1

{

SendClientMessage(playerid, 0xFF0000AA, "You don't have enough money!");

return 1;

}

GivePlayerMoney(playerid, (0-LevelCosts[PlayerLevel[playerid]])); >>>>> Error 2

PlayerLevel[playerid]++;

new string[128];

format(string, 128, "Congratulations! Your level is now: %d", PlayerLevel[playerid]);

SendClientMessage(playerid, 0x00FF00AA, string);

return 1;

}

Ik heb ook Sandra's accountsysteem.

Gast
Dit onderwerp is gesloten.

Recent actief 0

  • Er zijn hier geen geregistreerde gebruikers aanwezig.