Jump to content

/test id hoemaak ik cmd met id


Recommended Posts

Geplaatst:

hallo,

ik wil graag een command maken bijvoorbeel /test id als ik dan het id van een andere speler in drukt dat er dan bij voorbeel in beeld komt te staan hallo maar ik heb geen flouw idee hoe dit moet weet iemand dat mischien.

alvast bedankt randolph

PS: miss is het heel makelijk maar nog nooit in verdiept bennog in de leer :puh:

Geplaatst: (bewerkt)

Voor commands met 1 parameter (zoals het ID) kan je ook nog met 'cmdtext[....]' doen:

if(strcmp(cmdtext, "/heal", true, 5)==0)
{
if(!strval(cmdtext[6])
{
	SendClientMessage(playerid, 0xFF0000AA, "Use: /heal [id]");
	return 1;
}
new ID = strval(cmdtext[6]);
if(IsPlayerConnected(ID))
{
	SetPlayerHealth(ID, 100.0);
}
else
{
	SendClientMessage(playerid, 0xFF0000AA, "This player is not connected!");
}
return 1;
}

Het is eigenlijk heel simpel:

- In de command-regel ( if(strcmp(cmdtext, "/heal", true, 5)==0) )

voer je na 'true' het aantal tekens in van het commando (inclusief de slash / !!!)

In het geval van /heal is dat dus '5'

- In de regel: new ID = strval(cmdtext[6]);

voer je tussen de [ ] het vorige getal in plus '1'

(In dit geval dus 5+1 = 6)

Je moet eentje verhogen in verband met de spatie die je gebruikt tussen /heal en het id

Als je wél meerdere parameters wilt gebruiken (zoals in bijvoorbeeld: /givecash [id] [bedrag] ) heb je wel 'strtok' nodig.

Bewerkt: door =>Sandra<=
Geplaatst: (bewerkt)

nog ff vraagje he welke tekens moet ik tellen dan ? wand hij doet het nog nie maar dat komt denk door

new ID = strval(cmdtext[6]);

en

true, 5

omdat ik die nog nie heb geteld hoeveel der in zitten omdat ik nie presies weet welke tekens

ik moet tellen. dit is de hele code hier onder staat maar is nog maar beta het begin

	if(strcmp(cmdtext, "/uitdagen", true, 5)==0)
{
new ID = strval(cmdtext[6]);
if(IsPlayerConnected(ID))
{
   SendClientMessage(playerid, COLOR_RED, "  you summon from for a fighting");
   SendClientMessage(playerid, COLOR_RED, " press /accept[ID] to contunues");
}
else
{
	SendClientMessage(playerid, 0xFF0000AA, "This player is not connected!");
}
return 1;
}

alvast bedankt

Bewerkt: door randolph
Geplaatst:

Dat staat toch duidelijk in mijn post:

voer je na 'true' het aantal tekens in van het commando (inclusief de slash / !!!)

In het geval van '/uitdagen' is het dus 9

Geplaatst:

ojha srry k snap hem k d8 dat je bv , moest tellen de ; en de / bijvoorbeeld srry snap hem nu

tnx

Geplaatst: (bewerkt)

ik heb nu nog een probleem wand als ik /uitdagen doe dag crash de server en dan gaat de hele server uit als ik/uitdagen id doe dan wil het wel maar ik snap nie warom dan de server uit valt als ik zonder id doe. dit is de code

if(strcmp(cmdtext, "/uitdagen", true, 9)==0)
{
new ID = strval(cmdtext[10]);
if(IsPlayerConnected(ID))
{
   SendClientMessage(playerid, COLOR_RED, "  you summon from for a fighting");
   SendClientMessage(playerid, COLOR_RED, " press /accept[ID] to contunues");
}
else
{
	SendClientMessage(playerid, 0xFF0000AA, "This player is not connected!");
}
return 1;
}

Bewerkt: door randolph
Geplaatst: (bewerkt)

if(strcmp(cmdtext, "/uitdagen", true, 9)==0)
{	
 new ID = strval(cmdtext[10]);
 if(!strlen(ID)){
 SendClientMessage(playerid, 0xD2691EAA, "USAGE: /uitdagen (id)");
 return 1;
 }


if(IsPlayerConnected(ID))
{
   SendClientMessage(playerid, COLOR_RED, "  you summon from for a fighting");
   SendClientMessage(playerid, COLOR_RED, " press /accept[ID] to contunues");
}
else
{
	SendClientMessage(playerid, 0xFF0000AA, "This player is not connected!");
}
return 1;
}

Als ik het fout heb, mag je me verbeteren.

Bewerkt: door jovu123
Geplaatst: (bewerkt)

Sorry, dat was ik inderdaad vergeten

Edit: Ik heb mn bovenste post aangepast.

Bewerkt: door =>Sandra<=
Geplaatst:
if(strcmp(cmdtext, "/uitdagen", true, 9)==0)
{	
 new ID = strval(cmdtext[10]);
 if(!strlen(ID)){
 SendClientMessage(playerid, 0xD2691EAA, "USAGE: /uitdagen (id)");
 return 1;
 }


if(IsPlayerConnected(ID))
{
   SendClientMessage(playerid, COLOR_RED, "  you summon from for a fighting");
   SendClientMessage(playerid, COLOR_RED, " press /accept[ID] to contunues");
}
else
{
	SendClientMessage(playerid, 0xFF0000AA, "This player is not connected!");
}
return 1;
}

Als ik het fout heb, mag je me verbeteren.

Ik zou het zo doen:

if(strcmp(cmdtext, "/uitdagen", true, 9)==0)
{	
 new ID = strval(cmdtext[10]);
 if(!strlen(ID)){
 SendClientMessage(playerid, 0xD2691EAA, "USAGE: /uitdagen (id)");
 return 1;
 } else {

		if(IsPlayerConnected(ID))
	{
	   SendClientMessage(ID, COLOR_RED, "  you summon from for a fighting"); // Dit moet naar ID gezonden worden en niet naar degene die /uitdagen doet...
	   SendClientMessage(ID, COLOR_RED, " press /accept [ID] to contunues");
	}
	else
	{
	SendClientMessage(playerid, 0xFF0000AA, "This player is not connected!");
	}
	}
return 1;
}

Zelf de uitlijning verbeteren ;)

Geplaatst:

Je hoeft die 'else { ' niet toe te voegen hoor ;)

Als er geen id word ingevuld, word het commando automatisch afgebroken door middel van 'return 1;'

Geplaatst:

als ik deze toevoeg dan kijg ik een fout

if(strcmp(cmdtext, "/uitdagen", true, 9)==0)
{
 new ID = strval(cmdtext[10]);
 if(!strlen(ID)){
 SendClientMessage(playerid, 0xD2691EAA, "USAGE: /uitdagen (id)");
 return 1;
 }
if(IsPlayerConnected(ID))
{
   SendClientMessage(playerid, COLOR_RED, "  you summon from for a fighting");
   SendClientMessage(playerid, COLOR_RED, " press /accept[ID] to contunues");
}
else
{
	SendClientMessage(playerid, 0xFF0000AA, "This player is not connected!");
}
return 1;
}

dit is de fout

C:\DOCUME~1\COMPAQ~1\BUREAU~1\PenLV\PenLV\GAMEMO~1\penlv.pwn(10970) : error 035: argument type mismatch (argument 1)
Pawn compiler 3.0.3367			Copyright (c) 1997-2005, ITB CompuPhase


1 Error.

deze regel is fout zegt ie

 if(!strlen(ID)){

kan iemand mij helpen ?? alvast bedankt

Geplaatst: (bewerkt)

Ik vermoed dat er een fout in deze regel zit:

SendClientMessage(playerid, 0xD2691EAA, "USAGE: /uitdagen (id)");

Hierbij zal het misgaan op (id),

Vervang het bijvoorbeeld door [id] en het probleem zal waarschijnlijk opgelost zijn.

EDIT: die andere regel weet ik zogauw niet wat er fout aan is, had je post niet goed gelezen. (het onderste stukje had ik nie gezien :puh: )

Bewerkt: door Ymosky
Geplaatst:
if(strcmp(cmdtext, "/uitdagen", true, 9)==0)
{
if(!strlen(cmdtext[10])){
	SendClientMessage(playerid, 0xD2691EAA, "USAGE: /uitdagen (id)");
	return 1;
}
new ID = strval(cmdtext[10]);
if(IsPlayerConnected(ID))
{
	SendClientMessage(playerid, COLOR_RED, "  you summon from for a fighting");
	SendClientMessage(playerid, COLOR_RED, " press /accept[ID] to contunues");
}
else
{
	SendClientMessage(playerid, 0xFF0000AA, "This player is not connected!");
}
return 1;
}

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