propje400 Geplaatst: 6 augustus 2009 Rapport Geplaatst: 6 augustus 2009 Hoi, waar kan ik een script vinden van team chat, bv /t ... en hoe kan ik een SendClientMessageToAll verandere naar alleen een team bv TEAM_RED. bedankt alvast Reageren
mosweg Geplaatst: 6 augustus 2009 Rapport Geplaatst: 6 augustus 2009 Er is een gewone team chat optie maar dit is een andere waar je meer mee kant veranderen: Ergens bovenaan zoner public of return: SendRedMessage(color, text[]) { for(new i = 0; i < MAX_PLAYERS; i ++) { if(IsPlayerConnected(i)) { admin = dini_Int(userfile, "adminlevel"); if(gTeam[i] == Red) { SendClientMessage(i, color, text); } } } } SendBlueMessage(color, text[]) { for(new i = 0; i < MAX_PLAYERS; i ++) { if(IsPlayerConnected(i)) { admin = dini_Int(userfile, "adminlevel"); if(gTeam[i] == Blue) { SendClientMessage(i, color, text); } } } } Bij chat: if(strcmp(cmd,"/tc",true)==0) { if (gTeam[playerid] == Red) { if ((strlen(cmdtext) >= 1)&&(strlen(cmdtext) <= 2)) { SendClientMessage(playerid,COLOR_RED, "Syntax: /tc <MESSAGE>"); return 1; } GetPlayerName(playerid,name,sizeof(name)); format(string,sizeof(string),"Team 1 Chat(%s):%s",name,cmdtext[2]); SendRedMessage(COLOR_GREEN, string); } if (gTeam[playerid] == Blue) { if ((strlen(cmdtext) >= 1)&&(strlen(cmdtext) <= 2)) { SendClientMessage(playerid,COLOR_RED, "Syntax: /tc <MESSAGE>"); return 1; } GetPlayerName(playerid,name,sizeof(name)); format(string,sizeof(string),"Team 2 Chat(%s):%s",name,cmdtext[2]); SendBlueMessage(COLOR_PURPLE, string); } return 1; } Reageren
propje400 Geplaatst: 6 augustus 2009 Auteur Rapport Geplaatst: 6 augustus 2009 bedankt maar nog een vraagje, hoe kan ik het zo instellen dat je bij een class of als command, dat je je skin kunt verandere bv, /skin {ID} Reageren
Erryn Geplaatst: 6 augustus 2009 Rapport Geplaatst: 6 augustus 2009 bedankt maar nog een vraagje, hoe kan ik het zo instellen dat je bij een class of als command, dat je je skin kunt verandere bv, /skin {ID} Ik heb het nog niet getest maar het zou zo ongeveer moeten zet dit bij onplayertextcommand new cmd[256],tmp[256], tmp2[256], string[256]; new idx; new giveplayerid; new skinid; cmd = strtok(cmdtext, idx); if(strcmp("/skin", cmdtext, true)) { tmp = strtok(cmdtext, idx); if(!strlen(tmp)) { SendClientMessage(playerid, 0xFF0000AA, "GEBRUIK: /skin [SPELER ID] [skin id]"); return 1; } giveplayerid = strval(tmp); tmp2 = strtok(cmdtext, idx); if(!strlen(tmp2)) { SendClientMessage(playerid, 0xFF0000AA, "GEBRUIK: /skin [speler id] [SKIN ID]"); return 1; } if(IsPlayerConnected(giveplayerid)) { skinid = strval(tmp2); SetPlayerSkin(giveplayerid, skinid); format(string, sizeof(string), "je hebt id %d skin naar skin id %d gezet", giveplayerid, skinid); SendClientMessage(playerid, 0xFF0000AA, string); return 1; } else { SendClientMessage(playerid, 0xFF00000AA, "Die speler id is niet in gebruik"); return 1; } } En zet dit onder aan je script strtok(const string[], &index) { new length = strlen(string); while ((index < length) && (string[index] <= ' ')) { index++; } new offset = index; new result[20]; while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1))) { result[index - offset] = string[index]; index++; } result[index - offset] = EOS; return result; } ik hoop dat het werkt Reageren
Remcconen Geplaatst: 7 augustus 2009 Rapport Geplaatst: 7 augustus 2009 Wat nou als het een niet bestaande skin is? Dan crashed je server. Dat zal er nog bij moeten. Deze skins crashen je server: 3, 4, 5, 6, 7, 8, 42, 65, 74, 86, 119, 149, 208, 268, 273, 289 Reageren
propje400 Geplaatst: 7 augustus 2009 Auteur Rapport Geplaatst: 7 augustus 2009 (bewerkt) error 047: array sizes do not match, or destination array is too small krijg ik bij deze regel : return result; Bewerkt: 7 augustus 2009 door propje400 Reageren
Erryn Geplaatst: 7 augustus 2009 Rapport Geplaatst: 7 augustus 2009 (bewerkt) Wat nou als het een niet bestaande skin is? Dan crashed je server. Dat zal er nog bij moeten.Deze skins crashen je server: 3, 4, 5, 6, 7, 8, 42, 65, 74, 86, 119, 149, 208, 268, 273, 289 Ja hmmm, dat zou zo kunnen. Plaats dit onder "skinid = strval(tmp2);" ( niet uit gestest ) if( skinid = 3 || skinid = 4 || skinid = 5 || skinid = 6 || skinid = 7 || skinid = 8 || skinid = 42 || skinid = 65 || skinid = 74 || skinid = 86 || skinid = 119 || skinid = 149 || skinid = 208 || skinid = 268 || skinid = 273 || skinid = 289 ) { // SendClientMessage(playerid, 0xFF0000AA, "*Je hebt een niet bestaand skin id ingevoerd!!*"); return 1; } Bewerkt: 7 augustus 2009 door Erryn Reageren
propje400 Geplaatst: 7 augustus 2009 Auteur Rapport Geplaatst: 7 augustus 2009 Wat nou als het een niet bestaande skin is? Dan crashed je server. Dat zal er nog bij moeten.Deze skins crashen je server: 3, 4, 5, 6, 7, 8, 42, 65, 74, 86, 119, 149, 208, 268, 273, 289 Ja hmmm, dat zou zo kunnen. Plaats dit onder "skinid = strval(tmp2);" ( niet uit gestest ) if( skinid = 3 || skinid = 4 || skinid = 5 || skinid = 6 || skinid = 7 || skinid = 8 || skinid = 42 || skinid = 65 || skinid = 74 || skinid = 86 || skinid = 119 || skinid = 149 || skinid = 208 || skinid = 268 || skinid = 273 || skinid = 289 ) { // SendClientMessage(playerid, 0xFF0000AA, "*Je hebt een niet bestaand skin id ingevoerd!!*"); return 1; } thanks allemaal maar een ander vraagje, je hebt bv if(IsPlayerAdmin(playerid)) maar wat moet ik hieraan verandere als ik wil dat alle mensen die lvl 3 admin zijn die dingen kunnen?? want ik kan mensen admin lvls geven en ik weet dat dit kan maar ik kon niet meer terug vinden waar het stond :S Reageren
Erryn Geplaatst: 7 augustus 2009 Rapport Geplaatst: 7 augustus 2009 thanks allemaal maar een ander vraagje, je hebt bv if(IsPlayerAdmin(playerid)) maar wat moet ik hieraan verandere als ik wil dat alle mensen die lvl 3 admin zijn die dingen kunnen?? want ik kan mensen admin lvls geven en ik weet dat dit kan maar ik kon niet meer terug vinden waar het stond :S Hmmm, je hebt dan bv ( met sandra's account systeem ) adminlevel[playerid] == 3 Dat moet je zo plaatsen in een script zo kan alleen een level 3 admin dit zien if(strcmp("/skin", cmdtext, true) ) { if( adminlevel[playerid] == 3) { Je command moet hier } else { SendClientMessage(playerid, 0xFF0000AA, "*Je bent geen admin of je hebt geen level 3 admin rechten"); return 1; } return 1; } Reageren
Big Boss Geplaatst: 7 augustus 2009 Rapport Geplaatst: 7 augustus 2009 Wanneer gaat iedereen nou eens een keertje beginnen met dcmd gebruiken? Die bovenstaande code kan ik in dcmd veel keer korter maken. Wat hier staat kan eigenlijk nog korter, maar dan gaat het de forum layout vern**ken. dcmd_skin(playerid, params[]) { new targetid, targetskin, string[128]; if(!IsPlayerAdmin(playerid)) { SendClientMessage(playerid, COLOR_RED, "You are not authorized to use this command!"); return 1; } if(sscanf(params, "ui", targetid, targetskin)) { SendClientMessage(playerid, COLOR_RED, "USAGE: /skin [Playerid/PartOfName] [Skinid]"); return 1; } if(!IsPlayerConnected(targetid)) { SendClientMessage(playerid, COLOR_RED, "ERROR: Target player not connected!"); return 1; } if(IsInvalidSkin(targetskin)) { SendClientMessage(playerid, COLOR_RED, "ERROR: Invalid skin"); return 1; } SetPlayerSkin(targetid, targetskin); format(string, sizeof(string), "* You have been switched to skin %d by an Admin!", targetskin); SendClientMessage(targetid, COLOR_BLUE, string); format(string, sizeof(string), "* You have switched id %d to skin %d", targetid, targetskin); SendClientMessage(playerid, COLOR_BLUE, string); return 1; } stock IsInvalidSkin(skinid) { // Created by Simon // Checks whether the skinid parsed is crashable or not. #define MAX_BAD_SKINS 14 new badSkins[MAX_BAD_SKINS] = { 3, 4, 5, 6, 8, 42, 65, 74, 86, 119, 149, 208, 273, 289 }; for (new i = 0; i < MAX_BAD_SKINS; i++) { if (skinid == badSkins[i]) return true; } return false; } 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.