Jump to content

waarom werkt mijn /goto niet?


Recommended Posts

Geplaatst:

Hoi,

Wat is er mis met mijn /goto commando :?

if(!strcmp(cmdtext, "/goto", true, 5))
   {
       new targetPlayer = strval(cmdtext[ 6 ]); // cmdtext[ 6 ] > alles wat na "/goto " wordt getypt > daar de waarde van pakken (strval) = targetID
       new Float: PlayerPosition[ 3 ]; // float om spelers positie in op te slaan
       if(!IsPlayerConnected(targetPlayer)) return 1; // speelt targetPlayer uberhaubt wel?
       {
       GetPlayerPos(targetPlayer, PlayerPosition[ 0 ], PlayerPosition[ 1 ], PlayerPosition[ 2 ]); // krijg de positie van targetPlayer
       SetPlayerPos(playerid, PlayerPosition[ 0 ], PlayerPosition[ 1 ], PlayerPosition[ 2 ]); // zet de spelers positie naar die van targetPlayer
       }
       return 1;
   }

Hij doet het namelijk niet.

gr Steve

Geplaatst:

Hmm probeer dit eens:

if(!strcmp(cmdtext, "/goto", true, 5))
{
new targetPlayer = strval(cmdtext[ 6 ]); // cmdtext[ 6 ] > alles wat na "/goto " wordt getypt > daar de waarde van pakken (strval) = targetID
new Float:X, FLoat:Y, Float:Z;
if(IsPlayerConnected(targetPlayer))
{
 GetPlayerPos(targetPlayer, Float:X, FLoat:Y, Float:Z); // krijg de positie van targetPlayer
 SetPlayerPos(playerid,Float:X, FLoat:Y, Float:Z); // zet de spelers positie naar die van targetPlayer
}
return 1;
}

Geplaatst:

Bedankt, maar ik weet al waar het aan lag.

Om te testen heb ik gebruikt, het woord /ga

Maar in de regel: if(!strcmp(cmdtext, "/ga", true, 5)), staat een nr 5.

Op het moment dat ik test met if(!strcmp(cmdtext, "/goto", true, 5)), doet hij het wel.

Alleen wil ik niet precies, op de zelfde plek uitkomen, kan ik ook bv 2 autolengte`s,

verderop komen?

Geplaatst: (bewerkt)

Ik krijg error bij je code jovu. Volgens mij zijn jullie strtok vergeten

Hier de mijne:

Dit boven aan je script:

#define COLOR_WHITE 0xFFFFFFAA
#define COLOR_GREEN 0x00FF00AA

Dit bij OnPlayerCommandTekst-CallBack

if(strcmp(cmd,"/goto",true) == 0)
{
new tmp[256], targetplayer;
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) return SendClientMessage(playerid,COLOR_WHITE,"SERVER: /goto [id]");
targetplayer = strval(tmp);
if(!IsPlayerConnected(targetplayer)) return SendClientMessage(playerid,COLOR_WHITE,"SERVER: Invalid ID.");
new Float:X, Float:Y, Float:Z;
GetPlayerPos(targetplayer,X,Y,Z);
if(IsPlayerInAnyVehicle(playerid))
{
	SetVehiclePos(GetPlayerVehicleID(playerid),X+2,Y,Z);
	SendClientMessage(playerid,COLOR_YELLOW,"You have been teleported");
}
else
{
	SetPlayerPos(playerid,X,Y,Z+2.5);
	SendClientMessage(playerid,COLOR_YELLOW,"You have been teleported");
}
return 1;
}

Bewerkt: door Juwayri
Geplaatst:
Bedankt, maar ik weet al waar het aan lag.

Om te testen heb ik gebruikt, het woord /ga

Maar in de regel: if(!strcmp(cmdtext, "/ga", true, 5)), staat een nr 5.

Op het moment dat ik test met if(!strcmp(cmdtext, "/goto", true, 5)), doet hij het wel.

Alleen wil ik niet precies, op de zelfde plek uitkomen, kan ik ook bv 2 autolengte`s,

verderop komen?

Dat staat er bij mij al in ;)

Geplaatst:
Bedankt, maar ik weet al waar het aan lag.

Om te testen heb ik gebruikt, het woord /ga

Maar in de regel: if(!strcmp(cmdtext, "/ga", true, 5)), staat een nr 5.

Op het moment dat ik test met if(!strcmp(cmdtext, "/goto", true, 5)), doet hij het wel.

Alleen wil ik niet precies, op de zelfde plek uitkomen, kan ik ook bv 2 autolengte`s,

verderop komen?

Dat staat er bij mij al in ;)

Wat bedoel je,..

die 2 autolengte`s, of die /goto

Geplaatst:
Bedankt, maar ik weet al waar het aan lag.

Om te testen heb ik gebruikt, het woord /ga

Maar in de regel: if(!strcmp(cmdtext, "/ga", true, 5)), staat een nr 5.

Op het moment dat ik test met if(!strcmp(cmdtext, "/goto", true, 5)), doet hij het wel.

Alleen wil ik niet precies, op de zelfde plek uitkomen, kan ik ook bv 2 autolengte`s,

verderop komen?

Dat staat er bij mij al in ;)

Wat bedoel je,..

die 2 autolengte`s, of die /goto

beide

Geplaatst: (bewerkt)

Als je zijn script eventjes doorleest, kun je het antwoord al snel vinden.

if(IsPlayerInAnyVehicle(playerid))
{
	SetVehiclePos(GetPlayerVehicleID(playerid),X+2,Y,Z);
	SendClientMessage(playerid,COLOR_YELLOW,"You have been teleported");

}

Bij de X komt er 2 bij op.

EDIT: Jaja, Juwayri is snel tegenwoordig :Y

Bewerkt: door jovu123
Geplaatst:

klopt het dat op het moment dat ik alleen /goto, gebruik ( dus zonder id ),

dat de server crasht, dat gebeurt namelijk.

Geplaatst: (bewerkt)
	if(!strlen(tmp)){
SendClientMessage(playerid, 0xD2691EAA, "USAGE: /goto (id)");
return 1;
}

Bewerkt: door jovu123
Geplaatst:
 	if(!strcmp(cmdtext, "/goto", true, 5))
{
		if(!strlen(tmp)){
	SendClientMessage(playerid, 0xD2691EAA, "USAGE: /goto (id)");
	return 1;
	}
	new targetPlayer = strval(cmdtext[ 6 ]); // cmdtext[ 6 ] > alles wat na "/goto " wordt getypt > daar de waarde van pakken (strval) = targetID
	new Float:X, FLoat:Y, Float:Z; // float om spelers positie in op te slaan
	if(!IsPlayerConnected(targetPlayer)) return 1; // speelt targetPlayer uberhaubt wel?
	{
		GetPlayerPos(targetPlayer, X, X, X); // krijg de positie van targetPlayer
		SetPlayerPos(playerid,X, Y, Z+2.5); // zet de spelers positie naar die van targetPlayer
	}
	return 1;
}

Geplaatst:

C:\PROGRA~1\ROCKST~1\GTASAN~1\TESTSE~1\ORIGIN~1\samp\FILTER~1\PROJEC~1.PWN(40) : warning 213: tag mismatch

C:\PROGRA~1\ROCKST~1\GTASAN~1\TESTSE~1\ORIGIN~1\samp\FILTER~1\PROJEC~1.PWN(41) : warning 213: tag mismatch

C:\PROGRA~1\ROCKST~1\GTASAN~1\TESTSE~1\ORIGIN~1\samp\FILTER~1\PROJEC~1.PWN(50) : warning 209: function "OnPlayerCommandText" should return a value

Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase

3 Warnings.

public OnPlayerCommandText(playerid, cmdtext[])
if(!strcmp(cmdtext, "/goto", true, 5))
   {

       new targetPlayer = strval(cmdtext[ 6 ]); // cmdtext[ 6 ] > alles wat na "/goto " wordt getypt > daar de waarde van pakken (strval) = targetID
       new Float:X, FLoat:Y, Float:Z; // float om spelers positie in op te slaan
       if(!IsPlayerConnected(targetPlayer)) return 1; // speelt targetPlayer uberhaubt wel?
       {
       GetPlayerPos(targetPlayer, X, Y, Z); // krijg de positie van targetPlayer
       SetPlayerPos(playerid,X, Y, Z+2.5); // zet de spelers positie naar die van targetPlayer
       }
       return 1;
   }

Dit krijg ik te zien, wat gaat er nu fout??

Geplaatst:
C:\PROGRA~1\ROCKST~1\GTASAN~1\TESTSE~1\ORIGIN~1\samp\FILTER~1\PROJEC~1.PWN(40) : warning 213: tag mismatch

C:\PROGRA~1\ROCKST~1\GTASAN~1\TESTSE~1\ORIGIN~1\samp\FILTER~1\PROJEC~1.PWN(41) : warning 213: tag mismatch

C:\PROGRA~1\ROCKST~1\GTASAN~1\TESTSE~1\ORIGIN~1\samp\FILTER~1\PROJEC~1.PWN(50) : warning 209: function "OnPlayerCommandText" should return a value

Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase

3 Warnings.

public OnPlayerCommandText(playerid, cmdtext[])
if(!strcmp(cmdtext, "/goto", true, 5))
   {

       new targetPlayer = strval(cmdtext[ 6 ]); // cmdtext[ 6 ] > alles wat na "/goto " wordt getypt > daar de waarde van pakken (strval) = targetID
       new Float:X, FLoat:Y, Float:Z; // float om spelers positie in op te slaan
       if(!IsPlayerConnected(targetPlayer)) return 1; // speelt targetPlayer uberhaubt wel?
       {
       GetPlayerPos(targetPlayer, X, Y, Z); // krijg de positie van targetPlayer
       SetPlayerPos(playerid,X, Y, Z+2.5); // zet de spelers positie naar die van targetPlayer
       }
       return 1;
   }

Dit krijg ik te zien, wat gaat er nu fout??

De derde heb ik opgelost, met het commando af te sluiten, met return 0

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...