Jump to content

[Tutorial] dcmd en sscanf


Recommended Posts

Geplaatst: (bewerkt)
Ik krijg het volgende:

project.pwn(268) : warning 202: number of arguments does not match definition
project.pwn(452) : error 017: undefined symbol "dcmd_kick"
project.pwn(463) : error 017: undefined symbol "params"
project.pwn(469) : error 017: undefined symbol "getplayerid"
project.pwn(485) : error 017: undefined symbol "giveplayerid"
project.pwn(490) : warning 225: unreachable code
project.pwn(707) : warning 203: symbol is never used: "PlayerInfo"

Geen idee wat ik moet doen.. :(

Laat je hele code zien, dan zal ik proberen hem te verbeteren. :Y :Y :Y :Y :Y

Ik heb gewoon de code gecopy paste om in mijn eigen script te bekijken;

http://www.plaatscode.be/109328/ .

EDIT: Ten eerste, heb je dcmd en sscanf. zo nee, download dit en stop het bij je includes. boven aan je script onde "#include <a_samp>" doe je dit: #include <dcmd>

dcmd.rar

Als je dcmd hebt maar nog niet helemaal snapt ga dan naar HIER.

Dan als je het snapt, probeer dan je hele code opnieuw door te kijken voor fouten. Ik zag er een, en dat was:

if(!IsPlayerConnected(giveplayerid)) // Als de ingevoerde speler niet online is ...
	{
			SendClientMessage(playerid, 0xFF0000FF, "Speler niet actief!");
			return 1;
	}

het probleem hier is dat je de spelerid hebt opgeslagen in "otherplayer", en niet in "giveplayerid". dus dit moet zijn:

if(!IsPlayerConnected(otherplayer)) // Als de ingevoerde speler niet online is ...
	{
			SendClientMessage(playerid, 0xFF0000FF, "Speler niet actief!");
			return 1;
	}

Ik hoop dat je hiermee wat verder komt, zo nee stuur dan een pm en dan help ik je verder.

Bewerkt: door JoshTheBoss
  • 1 maand later...
  • 2 maanden later...
Geplaatst: (bewerkt)

update :-O Der is alweer een snellere command processor uit! zcmd.

Bron?

Edit: al gevonden :7

Bron.

ZCMD werkt hetzelfde als DCMD, met als verschil dit:

This is just a little include that uses OnPlayerCommandText() to process player commands. Each command has its own function like in dcmd, but zcmd does not pass through all of them until it finds the right one because it just calls them directly via CallLocalFunction(). Such method is much faster in most cases (see speed test results).

Verder kan je ZCMD hetzelfde gebruiken als DCMD, maar ook op de volgende manier:

COMMAND:mycommand(playerid, params[]) // or CMD:mycommand(playerid, params[]) 
{
   // Do something
   return 1; 
}

Ik denk dus dat het voor kleine scripts weinig uitmaakt wat je gebruikt, maar dat het voor (hele) grote scripts beter is ZCMD te gebruiken...

Edit #2:

Je kan ook niet meer op deze twee manieren controleren of er params ingevoerd zijn:

    if (!params[0])
   {
       // no parameters 
   }

   if (!strlen(params))
   {
       // no parameters 
   }

Maar het MOET op de volgende manier:

    if (isnull(params))
   {
       // no parameters
   }

Bewerkt: door David22
  • 1 maand later...
Geplaatst:

Als je even wat verder had gekeken dan je neus lang is, zou je gezien hebben dat dit topic ook nog uitweidt over sscanf, waarmee je multi-param commando's kan maken.

Geplaatst:

Als je even wat verder had gekeken dan je neus lang is, zou je gezien hebben dat dit topic ook nog uitweidt over sscanf, waarmee je multi-param commando's kan maken.

oeh i c.

Bedankt :D

  • 7 maanden later...
Geplaatst:

Sorry voor de bump, maar ik wil toch even wat duidelijk maken.

Ten eerste: DCMD mag misschien wel gemakkelijker zijn, het is in ieder geval trager dan strcmp! Hoe ik dat weet? Klik hier voor een snelheidstest.

Dan nu de betere methode: ZCMD. ZCMD werkt snel en gemakkelijk. Voorbeeldje:

// DCMD:

public OnPlayerCommandText(playerid, cmdtext[])
{
dcmd(test, 4, cmdtext[]);
return 1;
}

dcmd_test(playerid, params[])
{
// Command
return 1;
}

// ------------------------------------------

// ZCMD:

COMMAND:test(playerid, params[])
{
// Command
return 1;
}

Dus misschien wordt het tijd om je tutorial te updaten. :puh:

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