CAR Geplaatst: 25 maart 2009 Rapport Geplaatst: 25 maart 2009 (bewerkt) Server doet raar Net deed hij het nog perfect. Ik snapte 1 ding niet wat maar niet lukte: Ik maakte meerdere commands; public OnPlayerCommandText(playerid, cmdtext[]) { if (strcmp("/admincommands 1", cmdtext, true, 10) == 1) { SendClientMessage(playerid, 0xAA3333AA,"Level 1 commands:"); SendClientMessage(playerid, 0xAA3333AA,"getinfo, weaps, vr, repair, ltune, lhy, lnos, lp,"); SendClientMessage(playerid, 0xAA3333AA,"asay, ping, lslowmo, ltc, morning, adminarea, reports, richlist,"); SendClientMessage(playerid, 0xAA3333AA,"miniguns, saveplacae, gotoplace, saveskin, useskin, dontuseskin."); return 1; if (strcmp("/admincommands 2", cmdtext, true, 10) == 1) { /////////////////precies hetzelfde met commands level 2, 3 enz.\\\\\\\\\\\\\\\\\ } return 0; } Je begrijpt natuurlijk dat die het niet deden, alleen de eerste deed het, als je de 2e intypte kwamen de resultaten van de 1e Ik heb ze dus in verschillende filterscripts gedaan. In server.cfg erbij gedaan, wat gebeurd er nu. De laatste 7 kan hij niet laden, (unable to load filter script.....) Wat me wel opviel was dat ik hiervoor 16 filterscripts had en nu kan hij er maar 16 laden Wat moet ik doen?? Bewerkt: 25 maart 2009 door CAR Reageren
David22 Geplaatst: 26 maart 2009 Rapport Geplaatst: 26 maart 2009 Dat de commands het niet doen komt door dit regeltje code: (strcmp("/admincommands 1", cmdtext, true, 10) == 1) Ten eerste moet '== 1' vervangen worden door == 0 of een ! aan het begin: (!strcmp("/admincommands 1", cmdtext, true, 10)) Ten tweede zorgt de vierde parameter, de 10, ervoor dat hij alleen naar de eerste 10 letters kijkt. Omdat /admincommands al langer is als 10 letters, let hij niet op het cijfer en laat hij simpelweg de code van de eerste command zien. Verander dit in (!strcmp("/admincommands 1", cmdtext, true)) En het zou moeten werken. Wat me wel opviel was dat ik hiervoor 16 filterscripts had en nu kan hij er maar 16 laden Sinds SA-MP 0.2X is er een filterscript-limiet van 16 Reageren
jorD1 Geplaatst: 27 maart 2009 Rapport Geplaatst: 27 maart 2009 het moet toch zo zijn: if(strcmp(cmdtext, "/admincommands 1", true, 16)==0) tip 1 waarom zet je niet al die admin commands in één filterscript tip 2 ik heb gewoon dat als een admin /adminhelp typed hij automatisch de commands van zijn eige level krijgt Reageren
Big Boss Geplaatst: 27 maart 2009 Rapport Geplaatst: 27 maart 2009 Lengte is een optionele parameter, en laat ik dus ook altijd weg om problemen te vermijden. Zie ook hier voor meer info over strcmp: http://wiki.sa-mp.com/wiki/Strcmp Reageren
CAR Geplaatst: 28 maart 2009 Auteur Rapport Geplaatst: 28 maart 2009 (bewerkt) het moet toch zo zijn: if(strcmp(cmdtext, "/admincommands 1", true, 16)==0) tip 1 waarom zet je niet al die admin commands in één filterscript tip 2 ik heb gewoon dat als een admin /adminhelp typed hij automatisch de commands van zijn eige level krijgt public OnPlayerCommandText(playerid, cmdtext[]) { if (strcmp("/admincommands 1", cmdtext, true, 10) == 1) { SendClientMessage(playerid, 0xAA3333AA,"Level 1 commands:"); SendClientMessage(playerid, 0xAA3333AA,"getinfo, weaps, vr, repair, ltune, lhy, lnos, lp,"); SendClientMessage(playerid, 0xAA3333AA,"asay, ping, lslowmo, ltc, morning, adminarea, reports, richlist,"); SendClientMessage(playerid, 0xAA3333AA,"miniguns, saveplacae, gotoplace, saveskin, useskin, dontuseskin."); return 1; if (strcmp("/admincommands 2", cmdtext, true, 10) == 1) { /////////////////precies hetzelfde met commands level 2, 3 enz.\\\\\\\\\\\\\\\\\ } return 0; } Je begrijpt natuurlijk dat die het niet deden, alleen de eerste deed het, als je de 2e intypte kwamen de resultaten van de 1e Lees ff goed. Hoe kan ik dus 2 of meer commands in 1 Filterscript stoppen?? Het lukt me dus niet met return 1; moet ik 'else' toevoegen ofzoiets, en hoe dan? Bewerkt: 28 maart 2009 door CAR Reageren
jorD1 Geplaatst: 29 maart 2009 Rapport Geplaatst: 29 maart 2009 het moet toch zo zijn: if(strcmp(cmdtext, "/admincommands 1", true, 16)==0) tip 1 waarom zet je niet al die admin commands in één filterscript tip 2 ik heb gewoon dat als een admin /adminhelp typed hij automatisch de commands van zijn eige level krijgt public OnPlayerCommandText(playerid, cmdtext[]) { if (strcmp("/admincommands 1", cmdtext, true, 10) == 1) { SendClientMessage(playerid, 0xAA3333AA,"Level 1 commands:"); SendClientMessage(playerid, 0xAA3333AA,"getinfo, weaps, vr, repair, ltune, lhy, lnos, lp,"); SendClientMessage(playerid, 0xAA3333AA,"asay, ping, lslowmo, ltc, morning, adminarea, reports, richlist,"); SendClientMessage(playerid, 0xAA3333AA,"miniguns, saveplacae, gotoplace, saveskin, useskin, dontuseskin."); return 1; if (strcmp("/admincommands 2", cmdtext, true, 10) == 1) { /////////////////precies hetzelfde met commands level 2, 3 enz.\\\\\\\\\\\\\\\\\ } return 0; } Je begrijpt natuurlijk dat die het niet deden, alleen de eerste deed het, als je de 2e intypte kwamen de resultaten van de 1e Lees ff goed. Hoe kan ik dus 2 of meer commands in 1 Filterscript stoppen?? Het lukt me dus niet met return 1; moet ik 'else' toevoegen ofzoiets, en hoe dan? je moet het gewoon het zelfde toevoegen als in een normaal gamemode script 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.