Geplaatst: 6 augustus 200915 jaren comment_1436634 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
Geplaatst: 6 augustus 200915 jaren comment_1436662 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; }
Geplaatst: 6 augustus 200915 jaren Auteur comment_1436701 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}
Geplaatst: 6 augustus 200915 jaren comment_1437228 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
Geplaatst: 7 augustus 200915 jaren comment_1437561 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
Geplaatst: 7 augustus 200915 jaren Auteur comment_1437651 error 047: array sizes do not match, or destination array is too small krijg ik bij deze regel : return result; Bewerkt: 7 augustus 200915 jaren door propje400
Geplaatst: 7 augustus 200915 jaren comment_1437729 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 200915 jaren door Erryn
Geplaatst: 7 augustus 200915 jaren Auteur comment_1437743 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
Geplaatst: 7 augustus 200915 jaren comment_1437774 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; }
Geplaatst: 7 augustus 200915 jaren comment_1437800 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; }
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