randolph Geplaatst: 20 mei 2008 Rapport Geplaatst: 20 mei 2008 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 Reageren
Ophion Geplaatst: 20 mei 2008 Rapport Geplaatst: 20 mei 2008 (bewerkt) Dit doe je met strtok. Meer informatie vind je op de wiki samp: dat vind je hier: http://wiki.sa-mp.com/wiki/Using_strcmp%28%29 Bewerkt: 20 mei 2008 door jovu123 Reageren
Sandra Geplaatst: 20 mei 2008 Rapport Geplaatst: 20 mei 2008 (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: 22 mei 2008 door =>Sandra<= Reageren
randolph Geplaatst: 21 mei 2008 Auteur Rapport Geplaatst: 21 mei 2008 (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: 21 mei 2008 door randolph Reageren
Sandra Geplaatst: 21 mei 2008 Rapport Geplaatst: 21 mei 2008 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 Reageren
randolph Geplaatst: 21 mei 2008 Auteur Rapport Geplaatst: 21 mei 2008 ojha srry k snap hem k d8 dat je bv , moest tellen de ; en de / bijvoorbeeld srry snap hem nu tnx Reageren
randolph Geplaatst: 21 mei 2008 Auteur Rapport Geplaatst: 21 mei 2008 (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: 21 mei 2008 door randolph Reageren
Ophion Geplaatst: 21 mei 2008 Rapport Geplaatst: 21 mei 2008 (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: 21 mei 2008 door jovu123 Reageren
Sandra Geplaatst: 21 mei 2008 Rapport Geplaatst: 21 mei 2008 (bewerkt) Sorry, dat was ik inderdaad vergeten Edit: Ik heb mn bovenste post aangepast. Bewerkt: 21 mei 2008 door =>Sandra<= Reageren
nick5556 Geplaatst: 21 mei 2008 Rapport Geplaatst: 21 mei 2008 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 Reageren
Sandra Geplaatst: 21 mei 2008 Rapport Geplaatst: 21 mei 2008 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;' Reageren
randolph Geplaatst: 22 mei 2008 Auteur Rapport Geplaatst: 22 mei 2008 oke heel erg bedankt allemaal Reageren
randolph Geplaatst: 22 mei 2008 Auteur Rapport Geplaatst: 22 mei 2008 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 Reageren
Ymosky Geplaatst: 22 mei 2008 Rapport Geplaatst: 22 mei 2008 (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 ) Bewerkt: 22 mei 2008 door Ymosky Reageren
Sandra Geplaatst: 22 mei 2008 Rapport Geplaatst: 22 mei 2008 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; } Reageren
Recommended Posts
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.