Jump to content

Eerste commands maar wat is er fout?


Recommended Posts

Geplaatst:

Ik ben begonnen aan mijn eerst commands maar ik doe iets fout, ik weet zelf niet wat(anders zou ik het niet vragen).

Ik heb dit:

public OnPlayerCommandText(playerid, cmdtext[])
{
if (strcmp("/help", cmdtext, true) == 0)
{//“”
	SendClientMessage(playerid, COLOR_YELLOW, “/respawn om te respawnen(-50% healt)”);
	SendClientMessage(playerid, COLOR_YELLOW, “/suicide om dood te gaan(Kan ik met niet voorstellen)”);
	return 1;
}
if (strcmp("/respawn", cmdtext, true) == 0)
{
	SetPlayerPos(playerid, -777.4282, 2745.6680, 45.6989);
	SetPlayerHealth(playerid, -50%);
	SendClientMessage(playerid, COLOR_RED, “Succesvol gerespawned”);

	return 1;
}
if (strcmp("/suicide",cmdtext, true) == 0)
{
	SetPlayerHealth(playerid, 0%);
	SendClientMessageToAll(COLOR_RED, “Iemand heeft zelfmoord gepleegt!”);
	return 1;
}
if (strcmp("/killall",cmdtext, true) == 0)
{
	SetPlayerHealthToAll(0%);
	SendClientMessageToAll(COLOR_RED, “Iemand heeft iedereen gekilled!”);
	return 1;
}
return 0;
}

Ik weet niet of SetPlayerHealthToAll werkt dat is een test

En ik krijg deze foutmeldingen:

D:\GTA SA\GTA San Andreas\samp\gamemodes\mijnserver.pwn(152) : error 017: undefined symbol "COLOR_YELLOW"
D:\GTA SA\GTA San Andreas\samp\gamemodes\mijnserver.pwn(152) : error 017: undefined symbol "om"
D:\GTA SA\GTA San Andreas\samp\gamemodes\mijnserver.pwn(152) : error 017: undefined symbol "te"
D:\GTA SA\GTA San Andreas\samp\gamemodes\mijnserver.pwn(152) : 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.

Geplaatst: (bewerkt)

Hoi,

Als eerste even vooraf: Scripten is consequent en heel precies werken, anders gaat het gegarandeerd fout.

Zeker als je op den duur langere scripts krijgt zijn zulke kleine foutjes lastig te vinden

- Je hebt op verschillende plaatsen een of andere rare " gebruikt. Deze moeten eruit.

- % begrijpt pawno niet, bij SetPlayerHealth hoort achter het getal geen waarde in %

- SetPlayerHealthToAll bestaat niet. Dit kan dus ook zo niet, het kan wel dat je alle spelers in je server killt, maar script daarvoor krijg ik niet zogauw voor elkaar.

Als je dit er allemaal uit haalt krijg je de volgende code:

public OnPlayerCommandText(playerid, cmdtext[])
{
if (strcmp("/help", cmdtext, true) == 0)
{
	SendClientMessage(playerid, COLOR_YELLOW, "/respawn om te respawnen(-50% healt)");
	SendClientMessage(playerid, COLOR_YELLOW, "/suicide om dood te gaan(Kan ik met niet voorstellen)");
	return 1;
}
if (strcmp("/respawn", cmdtext, true) == 0)
{
	SetPlayerPos(playerid, -777.4282, 2745.6680, 45.6989);
	SetPlayerHealth(playerid, 50);
	SendClientMessage(playerid, COLOR_RED, "Succesvol gerespawned");

	return 1;
}
if (strcmp("/suicide",cmdtext, true) == 0)
{
	SetPlayerHealth(playerid, 0);
	SendClientMessageToAll(COLOR_RED, "Iemand heeft zelfmoord gepleegt!");
	return 1;
}
return 0;
}

De rest zou ik zo gauw even niet weten, maar hier kun je waarschijnlijk alvast wel mee verder.

EDIT: shit,,, khad ff gauw in mn eigen game-mode zitten testen, die is nu vernaggeld xD, kan ikzelf gaan zoeken

Bewerkt: door Ymosky
Geplaatst: (bewerkt)
thx, maar hoe zorg ik dan dat iemand 50% van zijn healt verliest als hij/zij teleporteerd?

Ik heb even wat geprobeerd, en het geeft enkel warnings van loose indentation, maar je moet het eens ingame uitproberen, want dit is maar een probeersel;

	  if (strcmp("/teleport", cmdtext, true)) //Standaard begin van een command.
 {
  new Float:health; //Berekenen hoeveel de health bedraagt.
	GetPlayerHealth(playerid, health ); //Hoort bij vorige lijn.
	 SetPlayerPos(playerid,coordinaten); //Hier teleporteert de player(coordinaten aanpassen!)
	 SetPlayerHealth(playerid, health*0.5 ); //De health gedeeld door 1/2 (oftewel * 0.5)

	 return 1;
}

PS: Ik weet niet of dit werkt.

Bewerkt: door Jack-IV
Geplaatst:
	  if (strcmp("/teleport", cmdtext, true)) //Standaard begin van een command.
 {
  new Float:health; //Berekenen hoeveel de health bedraagt.
	GetPlayerHealth(playerid, health ); //Hoort bij vorige lijn.
	 SetPlayerPos(playerid,coordinaten) //Hier teleporteert de player(coordinaten aanpassen!)
	 SetPlayerHealth(playerid, health*0.5 ); //De health gedeeld door 1/2 (oftewel * 0.5)

	 return 1;
}

PS: Ik weet niet of dit werkt.

Als je het niet zeker weet dan moet je het altijd uittesten, want de fout die ik al met mijn blote oog zie is dat de SetPlayerPos-tag niet wordt afgesloten met een puntkomma ( ; ). Daarnaast is je uitlijning gigantisch verkeerd, je moet 4 spaties gebruiken na een { namelijk.

Om iedereen te laten healen/killen zou je eens dit stukje kunnen proberen:

	if (strcmp(cmdtext, "/heal", true) == 0)
{
	for(new i = 0; i < MAX_PLAYERS; i++)
	{
		if(IsPlayerConnected(i))
		{
			SetPlayerHealth(i,100);
			return 1;
		}
	}
	return 1;
}

Wil je iedereen doden moet je 100 in 0 veranderen, en het commando /healall in /killall veranderen. Succes :)

Geplaatst:
	  if (strcmp("/teleport", cmdtext, true)) //Standaard begin van een command.
 {
  new Float:health; //Berekenen hoeveel de health bedraagt.
	GetPlayerHealth(playerid, health ); //Hoort bij vorige lijn.
	 SetPlayerPos(playerid,coordinaten) //Hier teleporteert de player(coordinaten aanpassen!)
	 SetPlayerHealth(playerid, health*0.5 ); //De health gedeeld door 1/2 (oftewel * 0.5)

	 return 1;
}

Daarnaast is je uitlijning gigantisch verkeerd, je moet 4 spaties gebruiken na een { namelijk.

Die uitlijning komt door het forum. :tu:

Geplaatst:

er gebeurd helemaal niks als ik /rcon pass doe ook niet als ik gewoon /rcon doe of /rcon verkeerd pass..

Als ik ingame een van die admin commands doe dan zegt hij server unknown command

Hoe los ik dit op :duh:

Geplaatst:
er gebeurd helemaal niks als ik /rcon pass doe ook niet als ik gewoon /rcon doe of /rcon verkeerd pass..

Als ik ingame een van die admin commands doe dan zegt hij server unknown command

Hoe los ik dit op :duh:

Je moet dan ook dit typen: /rcon login paswoord Jij bent dus het woordje 'login' vergeten.

Geplaatst:
je hebt 0 ,1 ,2 en 3

level 0 = geen admin

level 1 = beginner-admin

level 2 = gevorderde-admin

level 3 = hoofd-admin.

dus als je dit hebt staan bij je command : if(adminlevel[playerid] >= 2

dan kan die commando gebruikt worden door level 2 en 3

hier nog wat info

== gelijk aan ...

< kleiner dan ...

> groter dan ...

<= kleiner of gelijk aan ...

>= groter of gelijk aan ...

!= niet gelijk aan ...

Grtzzz

Je hebt dit toch uit de Tutorial van Sandra? Niet iedereen heeft die tutorial. Elk admin systeem gebruikt andere levels. In Sandra's Tutorial ben je bij level 3 Hoofd-Admin maar bij XtremeAdmin2 ben je bij 10 pas het hoogste Admin level.

Een reactie plaatsen

Je kan nu een reactie plaatsen en pas achteraf registreren. Als je al lid bent, log eerst in om met je eigen account een reactie te plaatsen.

Gast
Op dit onderwerp reageren...

×   Je hebt text geplaatst met opmaak.   Opmaak verwijderen

  Only 75 emoji are allowed.

×   Je link is automatisch ingevoegd.   In plaats daarvan weergeven als link

×   Je vorige bewerkingen zijn hersteld.   Alles verwijderen

×   You cannot paste images directly. Upload or insert images from URL.

  • Recent actief   0 leden

    • Er zijn hier geen geregistreerde gebruikers aanwezig.
×
×
  • Create New...