Вопросы по скриптингу
Mr_Nigger Дата: Вторник, 29.04.2014, 07:33:05 | Сообщение # 1006
Группа: Пользователи
Сообщений: 101
КРОТ ,спасибо,а почему когда я кикаю игроков их кикает,но причину им не пишет?
Сообщение отредактировал Mr_Nigger - Вторник, 29.04.2014, 07:54:31
Сообщение КРОТ ,спасибо,а почему когда я кикаю игроков их кикает,но причину им не пишет?Автор - Mr_Nigger Дата добавления - 29.04.2014 в 07:33:05
007 Дата: Вторник, 29.04.2014, 08:43:24 | Сообщение # 1007
Группа: Пользователи
Сообщений: 1
Можно ли обойти рандом изнутри сервеа? Чтобы он всегда давал максимум? Например вот этот: prinesmet [playerid]= random(60); countmet [playerid]= countmet [playerid]+ prinesmet[playerid];
Сообщение Можно ли обойти рандом изнутри сервеа? Чтобы он всегда давал максимум? Например вот этот: prinesmet [playerid]= random(60); countmet [playerid]= countmet [playerid]+ prinesmet[playerid]; Автор - 007 Дата добавления - 29.04.2014 в 08:43:24
КРОТ Дата: Вторник, 29.04.2014, 19:14:34 | Сообщение # 1008
Группа: Скриптер
Сообщений: 151
Mr_Nigger , команда кик в сампе не пишет причину это тебе надо самому сделать создай проверку на текст после IDа игрока и сделай выбор, если текста нет - кикать молча либо требовать указать причину если есть то Код
new msg[254]; format(msg,254,"%s был кикнут с сервера, причина: %s",переменная которая отвечает за ник игрока, переменная которая отвечает за текст); SendClientMessageToAll(0xDD4400FF,msg);
эт набросок поэтому сам под себя настрой ибо хз как у тебя, если есть время можешь скачать Mafia Wars 1.3 там вырезать систему кика, но лучше напиши свою 007 , рандом ты никак не обойдёшь, можно просто заменить Код
prinesmet [playerid]= random(60);
на Код
prinesmet [playerid]= 60;
либо сделать примитивный диапазон: Код
prinesmet [playerid]= random(21)+9;// 9 - минимальное число, 21 - число которое будет прибавлено к 9
Господи спаси от фугаса в танк летящего, от артовода с небо глядящего, от гада в карму заходящего, и от нуба в команду входящего Аминь
Сообщение отредактировал КРОТ - Вторник, 29.04.2014, 19:24:38
Сообщение Mr_Nigger , команда кик в сампе не пишет причину это тебе надо самому сделать создай проверку на текст после IDа игрока и сделай выбор, если текста нет - кикать молча либо требовать указать причину если есть то Код
new msg[254]; format(msg,254,"%s был кикнут с сервера, причина: %s",переменная которая отвечает за ник игрока, переменная которая отвечает за текст); SendClientMessageToAll(0xDD4400FF,msg);
эт набросок поэтому сам под себя настрой ибо хз как у тебя, если есть время можешь скачать Mafia Wars 1.3 там вырезать систему кика, но лучше напиши свою 007 , рандом ты никак не обойдёшь, можно просто заменить Код
prinesmet [playerid]= random(60);
на Код
prinesmet [playerid]= 60;
либо сделать примитивный диапазон: Код
prinesmet [playerid]= random(21)+9;// 9 - минимальное число, 21 - число которое будет прибавлено к 9
Автор - КРОТ Дата добавления - 29.04.2014 в 19:14:34
Сообщение Помогите! Как создать опрос, или текст, да всё что угодно в ID1274 (Объект)? Типо подходишь к этой фигне а там опрос или текст написан помогииите Автор - Blootys Дата добавления - 30.04.2014 в 18:46:01
КРОТ Дата: Четверг, 01.05.2014, 04:22:46 | Сообщение # 1010
Группа: Скриптер
Сообщений: 151
Blootys , ээмм, ну ты загнул конечно но кажись понял твою мысль, скорее всего ты имел ввиду не объект а пикап а именно: подходишь к пикапу, подбираешь его и тебе создаётся что нужно попробуй это, может быть это оно и есть к глобальным new добавляешь в public OnGameModeInit() Код
oprospickup = CreatePickup(1274,2,-1331.279,495.054,11.195);// пикап будет находиться на авианосце в СФ
в public OnPlayerPickUpPickup(playerid, pickupid) Код
if(pickupid == oprospickup) { // тут вставляешь что тебе нужно когда берется пикап, например даст 1000$ GivePlayerMoney(playerid,1000); }
если нету паблика OnPlayerPickUpPickup то вставляй после любого паблика это: Код
public OnPlayerPickUpPickup(playerid, pickupid) { if(pickupid == oprospickup) { // тут вставляешь что тебе нужно когда берется пикап, например даст 1000$ GivePlayerMoney(playerid,1000); } return 1; }
это тебе пример как будет работать пикап, мне кажется именно это тебе нужно поскольку ID который ты написал это доллар, его для пикапов чаще всего используют нежели как обычный объект
Господи спаси от фугаса в танк летящего, от артовода с небо глядящего, от гада в карму заходящего, и от нуба в команду входящего Аминь
Сообщение Blootys , ээмм, ну ты загнул конечно но кажись понял твою мысль, скорее всего ты имел ввиду не объект а пикап а именно: подходишь к пикапу, подбираешь его и тебе создаётся что нужно попробуй это, может быть это оно и есть к глобальным new добавляешь в public OnGameModeInit() Код
oprospickup = CreatePickup(1274,2,-1331.279,495.054,11.195);// пикап будет находиться на авианосце в СФ
в public OnPlayerPickUpPickup(playerid, pickupid) Код
if(pickupid == oprospickup) { // тут вставляешь что тебе нужно когда берется пикап, например даст 1000$ GivePlayerMoney(playerid,1000); }
если нету паблика OnPlayerPickUpPickup то вставляй после любого паблика это: Код
public OnPlayerPickUpPickup(playerid, pickupid) { if(pickupid == oprospickup) { // тут вставляешь что тебе нужно когда берется пикап, например даст 1000$ GivePlayerMoney(playerid,1000); } return 1; }
это тебе пример как будет работать пикап, мне кажется именно это тебе нужно поскольку ID который ты написал это доллар, его для пикапов чаще всего используют нежели как обычный объектАвтор - КРОТ Дата добавления - 01.05.2014 в 04:22:46
Mr_Nigger Дата: Суббота, 03.05.2014, 11:40:47 | Сообщение # 1011
Группа: Пользователи
Сообщений: 101
КРОТ ,это есть такой баг на 0.3х,на 0.3х не доходит чето и у многих причину не показывает,можно это как то исправить?(а так с самим киком все норм)
Сообщение отредактировал Mr_Nigger - Воскресенье, 04.05.2014, 00:07:37
Сообщение КРОТ ,это есть такой баг на 0.3х,на 0.3х не доходит чето и у многих причину не показывает,можно это как то исправить?(а так с самим киком все норм)Автор - Mr_Nigger Дата добавления - 03.05.2014 в 11:40:47
КРОТ Дата: Воскресенье, 04.05.2014, 17:37:09 | Сообщение # 1012
Группа: Скриптер
Сообщений: 151
Mr_Nigger , скинь-ка свою команду, потому что я с таким багом никогда не встречался если честно
Господи спаси от фугаса в танк летящего, от артовода с небо глядящего, от гада в карму заходящего, и от нуба в команду входящего Аминь
Сообщение Mr_Nigger , скинь-ка свою команду, потому что я с таким багом никогда не встречался если честноАвтор - КРОТ Дата добавления - 04.05.2014 в 17:37:09
Mr_Nigger Дата: Воскресенье, 04.05.2014, 19:21:16 | Сообщение # 1013
Группа: Пользователи
Сообщений: 101
КРОТ ,на других версиях причину показывает и все работает,искал решение в интернете говорят что пакеты не доходят какие-то,и ещё на серваке на одном на котором я играл,такая же тема. Вот код Код
if(strcmp(cmd, "/kick", true) == 0) { if (PlayerInfo[playerid] [pAdmin]>= 1) { tmp = strtok(cmdtext, idx); if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_WHITE, "::: Ââåäèòå: /kick [id][ïðè÷èíà]"); if (dostup [playerid]!= 1) return ShowPlayerDialog(playerid,2934,DIALOG_STYLE_INPUT,"Äîñòóï àäìèíèñòðàòîðà","Ââåäèòå ïàðîëü îò àäìèíèñòðàòèâíîé ïàíåëè","Îê","Îòìåíà"); giveplayerid = ReturnUser(tmp); if (PlayerInfo[playerid] [pLevel]>= 2 && PlayerInfo[playerid] [pAdmin]>= 1) { if(IsPlayerConnected(giveplayerid)) { if(giveplayerid != INVALID_PLAYER_ID) { if(PlayerInfo[giveplayerid] [pAdmin]> 0) return SendClientMessage(playerid, COLOR_GRAD2, "Àäìèíèñòðàòîð íå ìîæåò áûòü êèêíóò!"); GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer)); GetPlayerName(playerid, sendername, sizeof(sendername)); new length = strlen(cmdtext); while ((idx < length) && (cmdtext [idx]<= ' ')) { idx++; } new offset = idx; new result[64]; while ((idx < length) && ((idx - offset) < (sizeof(result) - 1))) { result[idx - offset] = cmdtext[idx]; idx++; } result[idx - offset] = EOS; if(!strlen(result)) return SendClientMessage(playerid, COLOR_WHITE, "::: Ââåäèòå: /kick [id][reason]"); new year, month,day; getdate(year, month, day); PlayerInfo[giveplayerid] [pRp]-=5; new msg[254]; format(msg,254,"%s %s êèêíóë %s. Ïðè÷èíà: %s",BossRank, sendername,giveplayer, (result)); SendClientMessageToAll(COLOR_LIGHTRED,msg); return 1; } } } else { SendClientMessage(playerid, COLOR_GREY, "[Îøèáêà] Èãðîê íå íàéäåí!"); } } Kick(playerid); }
Переводить не стал,думаю все понятно будет в коде и без этого
Сообщение КРОТ ,на других версиях причину показывает и все работает,искал решение в интернете говорят что пакеты не доходят какие-то,и ещё на серваке на одном на котором я играл,такая же тема. Вот код Код
if(strcmp(cmd, "/kick", true) == 0) { if (PlayerInfo[playerid] [pAdmin]>= 1) { tmp = strtok(cmdtext, idx); if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_WHITE, "::: Ââåäèòå: /kick [id][ïðè÷èíà]"); if (dostup [playerid]!= 1) return ShowPlayerDialog(playerid,2934,DIALOG_STYLE_INPUT,"Äîñòóï àäìèíèñòðàòîðà","Ââåäèòå ïàðîëü îò àäìèíèñòðàòèâíîé ïàíåëè","Îê","Îòìåíà"); giveplayerid = ReturnUser(tmp); if (PlayerInfo[playerid] [pLevel]>= 2 && PlayerInfo[playerid] [pAdmin]>= 1) { if(IsPlayerConnected(giveplayerid)) { if(giveplayerid != INVALID_PLAYER_ID) { if(PlayerInfo[giveplayerid] [pAdmin]> 0) return SendClientMessage(playerid, COLOR_GRAD2, "Àäìèíèñòðàòîð íå ìîæåò áûòü êèêíóò!"); GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer)); GetPlayerName(playerid, sendername, sizeof(sendername)); new length = strlen(cmdtext); while ((idx < length) && (cmdtext [idx]<= ' ')) { idx++; } new offset = idx; new result[64]; while ((idx < length) && ((idx - offset) < (sizeof(result) - 1))) { result[idx - offset] = cmdtext[idx]; idx++; } result[idx - offset] = EOS; if(!strlen(result)) return SendClientMessage(playerid, COLOR_WHITE, "::: Ââåäèòå: /kick [id][reason]"); new year, month,day; getdate(year, month, day); PlayerInfo[giveplayerid] [pRp]-=5; new msg[254]; format(msg,254,"%s %s êèêíóë %s. Ïðè÷èíà: %s",BossRank, sendername,giveplayer, (result)); SendClientMessageToAll(COLOR_LIGHTRED,msg); return 1; } } } else { SendClientMessage(playerid, COLOR_GREY, "[Îøèáêà] Èãðîê íå íàéäåí!"); } } Kick(playerid); }
Переводить не стал,думаю все понятно будет в коде и без этогоАвтор - Mr_Nigger Дата добавления - 04.05.2014 в 19:21:16
КРОТ Дата: Воскресенье, 04.05.2014, 20:12:17 | Сообщение # 1014
Группа: Скриптер
Сообщений: 151
Mr_Nigger , ну если верить команде то у тебя вообще она кикает того игрока который её вводит:) ща попробую посмотреть в чём опа)) ------------------------------------------------------------- немного переделал, но она относительно запутанная сама по себе. много лишнего в ней, ща скину свою с твоими данными Код
if(strcmp(cmd, "/kick", true) == 0) { if (PlayerInfo [playerid][pAdmin]>= 1) { tmp = strtok(cmdtext, idx); if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_WHITE, "::: Ââåäèòå: /kick [id][ïðè÷èíà]"); if (dostup [playerid]!= 1) return ShowPlayerDialog(playerid,2934,DIALOG_STYLE_INPUT,"Äîñòóï àäìèíèñòðàòîðà","Ââåäèòå ïàðîëü îò àäìèíèñòðàòèâíîé ïàíåëè","Îê","Îòìåíà"); giveplayerid = ReturnUser(tmp); if(IsPlayerConnected(giveplayerid) && giveplayerid != INVALID_PLAYER_ID) { if(PlayerInfo [playerid][pLevel]>= 2) { if(PlayerInfo [giveplayerid][pAdmin]> 0) return SendClientMessage(playerid, COLOR_GRAD2, "Àäìèíèñòðàòîð íå ìîæåò áûòü êèêíóò!"); GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer)); GetPlayerName(playerid, sendername, sizeof(sendername)); new length = strlen(cmdtext); while ((idx < length) && (cmdtext [idx]<= ' ')) { idx++; } new offset = idx; new result[64]; while ((idx < length) && ((idx - offset) < (sizeof(result) - 1))) { result[idx - offset] = cmdtext[idx]; idx++; } result[idx - offset] = EOS; if(!strlen(result)) return SendClientMessage(playerid, COLOR_WHITE, "::: Ââåäèòå: /kick [id][reason]"); new year, month,day; getdate(year, month, day); PlayerInfo [giveplayerid][pRp]-=5; new msg[254]; format(msg,254,"%s %s êèêíóë %s. Ïðè÷èíà: %s",BossRank, sendername,giveplayer, (result)); SendClientMessageToAll(COLOR_LIGHTRED,msg); Kick(giveplayerid); } else { SendClientMessage(playerid, COLOR_GREY, "[Îøèáêà] Èãðîê íå íàéäåí!"); Kick(giveplayerid); } } } return 1; }
-------------------------------------------------------------------------------------------------------------------------------------------- ----------------------------------------------- Лично я такую использую: к глобальным дефайнам: Код
#define checkplayer(%1); \ if(!IsPlayerConnected(%1)){\ SendClientMessage(playerid,COLOR_GREY,"Нет такого игрока");\ return 1;\ } #define getTgt(%2); tmp = strtok(cmdtext,idx); \ if(!strlen(tmp)){ \ SendClientMessage(playerid,COLOR_WHITE,%2); \ return 1;\ } \ tgt = ReturnUser(tmp);\ checkplayer(tgt);
к глобальным new в паблик с командами: Код
if(iscmd(cmd,"/kick")) { if(!PlayerInfo[giveplayerid][pAdmin]) { SendClientMessage(playerid,COLOR_GREY,"Вы не админ"); return 1; } getTgt("Использование: /kick [игрок] {причина}"); strmid(tmp,cmdtext,idx,strlen(cmdtext)); KickEx(tgt,tmp,1); return 1; }
После дефайнов и глобальных new: Код
KickEx(playerid,reason[],force=0) { new msg[256]; new pname[32]; GetPlayerName(playerid,pname,32); if(strlen(reason)>0 && PlayerInfo[giveplayerid][pLevel]>=2) { format(msg,256,"%s был кикнут с сервера, причина: %s",pname,reason); SendClientMessageToAllCOLOR_GREY,msg); } Kick(playerid); }
я её с МВ вытаскивал для себя, но скоко использую ниразу не пожалел. наверн один из немногочисленных плюсов мода МВ Если будешь использовать мою версию то в моде можно будет упростить код: checkplayer(ID); // проверяет в сети игрок или нет. если нет то вернет сообщение что игрок не в сети getTgt("Текст"); // возвращает tgt с ID нужного тебе игрока, если такого нет то напишет текст который в скобках
Господи спаси от фугаса в танк летящего, от артовода с небо глядящего, от гада в карму заходящего, и от нуба в команду входящего Аминь
Сообщение отредактировал КРОТ - Воскресенье, 04.05.2014, 20:42:27
Сообщение Mr_Nigger , ну если верить команде то у тебя вообще она кикает того игрока который её вводит:) ща попробую посмотреть в чём опа)) ------------------------------------------------------------- немного переделал, но она относительно запутанная сама по себе. много лишнего в ней, ща скину свою с твоими данными Код
if(strcmp(cmd, "/kick", true) == 0) { if (PlayerInfo [playerid][pAdmin]>= 1) { tmp = strtok(cmdtext, idx); if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_WHITE, "::: Ââåäèòå: /kick [id][ïðè÷èíà]"); if (dostup [playerid]!= 1) return ShowPlayerDialog(playerid,2934,DIALOG_STYLE_INPUT,"Äîñòóï àäìèíèñòðàòîðà","Ââåäèòå ïàðîëü îò àäìèíèñòðàòèâíîé ïàíåëè","Îê","Îòìåíà"); giveplayerid = ReturnUser(tmp); if(IsPlayerConnected(giveplayerid) && giveplayerid != INVALID_PLAYER_ID) { if(PlayerInfo [playerid][pLevel]>= 2) { if(PlayerInfo [giveplayerid][pAdmin]> 0) return SendClientMessage(playerid, COLOR_GRAD2, "Àäìèíèñòðàòîð íå ìîæåò áûòü êèêíóò!"); GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer)); GetPlayerName(playerid, sendername, sizeof(sendername)); new length = strlen(cmdtext); while ((idx < length) && (cmdtext [idx]<= ' ')) { idx++; } new offset = idx; new result[64]; while ((idx < length) && ((idx - offset) < (sizeof(result) - 1))) { result[idx - offset] = cmdtext[idx]; idx++; } result[idx - offset] = EOS; if(!strlen(result)) return SendClientMessage(playerid, COLOR_WHITE, "::: Ââåäèòå: /kick [id][reason]"); new year, month,day; getdate(year, month, day); PlayerInfo [giveplayerid][pRp]-=5; new msg[254]; format(msg,254,"%s %s êèêíóë %s. Ïðè÷èíà: %s",BossRank, sendername,giveplayer, (result)); SendClientMessageToAll(COLOR_LIGHTRED,msg); Kick(giveplayerid); } else { SendClientMessage(playerid, COLOR_GREY, "[Îøèáêà] Èãðîê íå íàéäåí!"); Kick(giveplayerid); } } } return 1; }
-------------------------------------------------------------------------------------------------------------------------------------------- ----------------------------------------------- Лично я такую использую: к глобальным дефайнам: Код
#define checkplayer(%1); \ if(!IsPlayerConnected(%1)){\ SendClientMessage(playerid,COLOR_GREY,"Нет такого игрока");\ return 1;\ } #define getTgt(%2); tmp = strtok(cmdtext,idx); \ if(!strlen(tmp)){ \ SendClientMessage(playerid,COLOR_WHITE,%2); \ return 1;\ } \ tgt = ReturnUser(tmp);\ checkplayer(tgt);
к глобальным new в паблик с командами: Код
if(iscmd(cmd,"/kick")) { if(!PlayerInfo[giveplayerid][pAdmin]) { SendClientMessage(playerid,COLOR_GREY,"Вы не админ"); return 1; } getTgt("Использование: /kick [игрок] {причина}"); strmid(tmp,cmdtext,idx,strlen(cmdtext)); KickEx(tgt,tmp,1); return 1; }
После дефайнов и глобальных new: Код
KickEx(playerid,reason[],force=0) { new msg[256]; new pname[32]; GetPlayerName(playerid,pname,32); if(strlen(reason)>0 && PlayerInfo[giveplayerid][pLevel]>=2) { format(msg,256,"%s был кикнут с сервера, причина: %s",pname,reason); SendClientMessageToAllCOLOR_GREY,msg); } Kick(playerid); }
я её с МВ вытаскивал для себя, но скоко использую ниразу не пожалел. наверн один из немногочисленных плюсов мода МВ Если будешь использовать мою версию то в моде можно будет упростить код: checkplayer(ID); // проверяет в сети игрок или нет. если нет то вернет сообщение что игрок не в сети getTgt("Текст"); // возвращает tgt с ID нужного тебе игрока, если такого нет то напишет текст который в скобкахАвтор - КРОТ Дата добавления - 04.05.2014 в 20:12:17
Mr_Nigger Дата: Воскресенье, 04.05.2014, 22:51:03 | Сообщение # 1015
Группа: Пользователи
Сообщений: 101
КРОТ ,помогло,слушай в команде /admins и там например два админа,у одного хелпер,и ему показывает там что они оба хелперы,а другой администратор,и ему показывает что они оба администраторы,когда изменяю playerid на targetid мне пишет:error 017: undefined symbol "targetid"
Сообщение отредактировал Mr_Nigger - Воскресенье, 04.05.2014, 22:54:14
Сообщение КРОТ ,помогло,слушай в команде /admins и там например два админа,у одного хелпер,и ему показывает там что они оба хелперы,а другой администратор,и ему показывает что они оба администраторы,когда изменяю playerid на targetid мне пишет:error 017: undefined symbol "targetid"Автор - Mr_Nigger Дата добавления - 04.05.2014 в 22:51:03
КРОТ Дата: Воскресенье, 04.05.2014, 23:15:05 | Сообщение # 1016
Группа: Скриптер
Сообщений: 151
Mr_Nigger , скинька команду, я чёт нифига не понял хаха
Господи спаси от фугаса в танк летящего, от артовода с небо глядящего, от гада в карму заходящего, и от нуба в команду входящего Аминь
Сообщение Mr_Nigger , скинька команду, я чёт нифига не понял хахаАвтор - КРОТ Дата добавления - 04.05.2014 в 23:15:05
Mr_Nigger Дата: Воскресенье, 04.05.2014, 23:24:54 | Сообщение # 1017
Группа: Пользователи
Сообщений: 101
КРОТ ,вотКод
else if (strcmp(cmd, "/admins", true) == 0) { if(IsPlayerAdmin(playerid)|| PlayerInfo [playerid][pAdmin]>= 1 || PlayerInfo [playerid][pDonateRank]>= 2) { SendClientMessage(playerid, COLOR_YELLOW, "Àäìèíû Online:"); for(new i = 0; i < MAX_PLAYERS; i++) { if(IsPlayerConnected(i)) { if(PlayerInfo [i][pAdmin]>= 1) { new drank[20]; if(PlayerInfo [i][pAdmin]== 1) { drank = "1"; } else if(PlayerInfo [i][pAdmin]== 2) { drank = "2"; } else if(PlayerInfo [i][pAdmin]== 3) { drank = "3"; } else if(PlayerInfo [i][pAdmin]== 4) { drank = "4"; } else if(PlayerInfo [i][pAdmin]== 5) { drank = "5"; } else if(PlayerInfo [i][pAdmin]== 6) { drank = "6"; } else if(PlayerInfo [i][pAdmin]== 7) { drank = "7"; } else if(PlayerInfo [i][pAdmin]== 8) { drank = "8"; } new arank[64]; if(PlayerInfo [playerid][pAdmin]== 1) { arank = "Õåëïåð"; } else if(PlayerInfo [playerid][pAdmin]== 2) { arank = "Ìëàäøèé Àäìèí"; } else if(PlayerInfo [playerid][pAdmin]== 3) { arank = "Àäìèíèñòðàòîð"; } else if(PlayerInfo [playerid][pAdmin]== 4) { arank = "Ñòàðøèé Àäìèí"; } else if(PlayerInfo [playerid][pAdmin]== 5) { arank = "Ïîìîùíèê Ðóêîâîäèòåëÿ"; } else if(PlayerInfo [playerid][pAdmin]== 6) { arank = "Ðóêîâîäèòåëü"; } else if(PlayerInfo [playerid][pAdmin]== 7) { arank = "Ñìîòðÿùèé"; } else if(PlayerInfo [playerid][pAdmin]== 8) { arank = "Ñêðèïòåð"; } else { arank = "<ADM-CHAT>"; } GetPlayerName(playerid, sendername, sizeof(sendername)); format(string, 256, "%s | %s | ID:%d | lvl %s" arank,sendername,i,drank); SendClientMessage(playerid, COLOR_WHITE, string); } } } } return 1; }
когда заменяю playerid на targetid выдает error 17
Сообщение отредактировал Mr_Nigger - Воскресенье, 04.05.2014, 23:27:44
Сообщение КРОТ ,вотКод
else if (strcmp(cmd, "/admins", true) == 0) { if(IsPlayerAdmin(playerid)|| PlayerInfo [playerid][pAdmin]>= 1 || PlayerInfo [playerid][pDonateRank]>= 2) { SendClientMessage(playerid, COLOR_YELLOW, "Àäìèíû Online:"); for(new i = 0; i < MAX_PLAYERS; i++) { if(IsPlayerConnected(i)) { if(PlayerInfo [i][pAdmin]>= 1) { new drank[20]; if(PlayerInfo [i][pAdmin]== 1) { drank = "1"; } else if(PlayerInfo [i][pAdmin]== 2) { drank = "2"; } else if(PlayerInfo [i][pAdmin]== 3) { drank = "3"; } else if(PlayerInfo [i][pAdmin]== 4) { drank = "4"; } else if(PlayerInfo [i][pAdmin]== 5) { drank = "5"; } else if(PlayerInfo [i][pAdmin]== 6) { drank = "6"; } else if(PlayerInfo [i][pAdmin]== 7) { drank = "7"; } else if(PlayerInfo [i][pAdmin]== 8) { drank = "8"; } new arank[64]; if(PlayerInfo [playerid][pAdmin]== 1) { arank = "Õåëïåð"; } else if(PlayerInfo [playerid][pAdmin]== 2) { arank = "Ìëàäøèé Àäìèí"; } else if(PlayerInfo [playerid][pAdmin]== 3) { arank = "Àäìèíèñòðàòîð"; } else if(PlayerInfo [playerid][pAdmin]== 4) { arank = "Ñòàðøèé Àäìèí"; } else if(PlayerInfo [playerid][pAdmin]== 5) { arank = "Ïîìîùíèê Ðóêîâîäèòåëÿ"; } else if(PlayerInfo [playerid][pAdmin]== 6) { arank = "Ðóêîâîäèòåëü"; } else if(PlayerInfo [playerid][pAdmin]== 7) { arank = "Ñìîòðÿùèé"; } else if(PlayerInfo [playerid][pAdmin]== 8) { arank = "Ñêðèïòåð"; } else { arank = "<ADM-CHAT>"; } GetPlayerName(playerid, sendername, sizeof(sendername)); format(string, 256, "%s | %s | ID:%d | lvl %s" arank,sendername,i,drank); SendClientMessage(playerid, COLOR_WHITE, string); } } } } return 1; }
когда заменяю playerid на targetid выдает error 17Автор - Mr_Nigger Дата добавления - 04.05.2014 в 23:24:54
КРОТ Дата: Понедельник, 05.05.2014, 00:31:09 | Сообщение # 1018
Группа: Скриптер
Сообщений: 151
Mr_Nigger , символа значит такого нету. а кмд: Код
if (strcmp(cmd, "/admins", true) == 0) { if(IsPlayerAdmin(playerid)|| PlayerInfo [playerid][pAdmin]>= 1 || PlayerInfo [playerid][pDonateRank]>= 2) { new admmsg[1024]; new namelvl[32]; for(new i=1; i<MAX_PLAYERS; i++) { if(!IsPlayerConnected(i)) continue; if(!IsPlayerNPC(i)) continue; if(!PlayerInfo[i][pAdmin]) continue; new lvl = PlayerInfo[i][pAdmin]; namelvl = "Имя уровня"; switch(lvl) { case 1: namelvl = "Õåëïåð"; case 2: namelvl = "Ìëàäøèé Àäìèí"; case 3: namelvl = "Àäìèíèñòðàòîð"; case 4: namelvl = "Ñòàðøèé Àäìèí"; case 5: namelvl = "Ïîìîùíèê Ðóêîâîäèòåëÿ"; case 6: namelvl = "Ðóêîâîäèòåëü"; case 7: namelvl = "Ñìîòðÿùèé"; case 8: namelvl = "Ñêðèïòåð"; } GetPlayerName(playerid, sendername, sizeof(sendername)); format(admmsg,sizeof(admmsg),"%s\n%s(lvl: %i) %s(ID: %i)",admmsg,namelvl,lvl,sendername,i); } ShowPlayerDialog(playerid,1111,DIALOG_STYLE_MSGBOX,"Администраторы в сети:",admmsg,"Закрыть"); } return 1; }
Куда проще и не без лишнего т.к. у тебя есть места где дублируются значения. "непонятно как" написанные названия уровней это я твоё скопировал что бы не мучатся Главное проверь что бы у тебя не было диалога с IDом "1111" если есть, то в /admins замени ID диалога на любой свободный --------------------------- Если надо именно в чат что бы писало, скажи переделаю под чат. ибо хз где твоя кмд используется и поэтому подставил диалог, т.к. он игрокам половчее))
Господи спаси от фугаса в танк летящего, от артовода с небо глядящего, от гада в карму заходящего, и от нуба в команду входящего Аминь
Сообщение отредактировал КРОТ - Понедельник, 05.05.2014, 00:35:01
Сообщение Mr_Nigger , символа значит такого нету. а кмд: Код
if (strcmp(cmd, "/admins", true) == 0) { if(IsPlayerAdmin(playerid)|| PlayerInfo [playerid][pAdmin]>= 1 || PlayerInfo [playerid][pDonateRank]>= 2) { new admmsg[1024]; new namelvl[32]; for(new i=1; i<MAX_PLAYERS; i++) { if(!IsPlayerConnected(i)) continue; if(!IsPlayerNPC(i)) continue; if(!PlayerInfo[i][pAdmin]) continue; new lvl = PlayerInfo[i][pAdmin]; namelvl = "Имя уровня"; switch(lvl) { case 1: namelvl = "Õåëïåð"; case 2: namelvl = "Ìëàäøèé Àäìèí"; case 3: namelvl = "Àäìèíèñòðàòîð"; case 4: namelvl = "Ñòàðøèé Àäìèí"; case 5: namelvl = "Ïîìîùíèê Ðóêîâîäèòåëÿ"; case 6: namelvl = "Ðóêîâîäèòåëü"; case 7: namelvl = "Ñìîòðÿùèé"; case 8: namelvl = "Ñêðèïòåð"; } GetPlayerName(playerid, sendername, sizeof(sendername)); format(admmsg,sizeof(admmsg),"%s\n%s(lvl: %i) %s(ID: %i)",admmsg,namelvl,lvl,sendername,i); } ShowPlayerDialog(playerid,1111,DIALOG_STYLE_MSGBOX,"Администраторы в сети:",admmsg,"Закрыть"); } return 1; }
Куда проще и не без лишнего т.к. у тебя есть места где дублируются значения. "непонятно как" написанные названия уровней это я твоё скопировал что бы не мучатся Главное проверь что бы у тебя не было диалога с IDом "1111" если есть, то в /admins замени ID диалога на любой свободный --------------------------- Если надо именно в чат что бы писало, скажи переделаю под чат. ибо хз где твоя кмд используется и поэтому подставил диалог, т.к. он игрокам половчее))Автор - КРОТ Дата добавления - 05.05.2014 в 00:31:09
Mr_Nigger Дата: Понедельник, 05.05.2014, 16:54:40 | Сообщение # 1019
Группа: Пользователи
Сообщений: 101
КРОТ ,сделай командой если не сложно)Добавлено (05.05.2014, 16:54:40) ---------------------------------------------КРОТ ,и ещё почему у меня когда прописан 1 лвл при старте у меня ничего не дает что я поставил при старте,а когда выше 1 то все работает?
Сообщение КРОТ ,сделай командой если не сложно)Добавлено (05.05.2014, 16:54:40) ---------------------------------------------КРОТ ,и ещё почему у меня когда прописан 1 лвл при старте у меня ничего не дает что я поставил при старте,а когда выше 1 то все работает?
Автор - Mr_Nigger Дата добавления - 05.05.2014 в 16:54:40
КРОТ Дата: Понедельник, 05.05.2014, 22:19:03 | Сообщение # 1020
Группа: Скриптер
Сообщений: 151
Mr_Nigger , командой это ты имеешь ввиду что бы в чат писало? как вариант неправильная проверка стоит, скинь все строки связанные с этим. гляну, ток отдели чтоб не запутатьсяДобавлено (05.05.2014, 22:19:03) ---------------------------------------------
Код
if (strcmp(cmd, "/admins", true) == 0) { if(IsPlayerAdmin(playerid)|| PlayerInfo [playerid][pAdmin]>= 1 || PlayerInfo [playerid][pDonateRank]>= 2) { new admmsg[1024]; new namelvl[32]; for(new i=1; i<MAX_PLAYERS; i++) { if(!IsPlayerConnected(i)) continue; if(!IsPlayerNPC(i)) continue; if(!PlayerInfo[i][pAdmin]) continue; new lvl = PlayerInfo[i][pAdmin]; namelvl = "Имя уровня"; switch(lvl) { case 1: namelvl = "Õåëïåð"; case 2: namelvl = "Ìëàäøèé Àäìèí"; case 3: namelvl = "Àäìèíèñòðàòîð"; case 4: namelvl = "Ñòàðøèé Àäìèí"; case 5: namelvl = "Ïîìîùíèê Ðóêîâîäèòåëÿ"; case 6: namelvl = "Ðóêîâîäèòåëü"; case 7: namelvl = "Ñìîòðÿùèé"; case 8: namelvl = "Ñêðèïòåð"; } GetPlayerName(playerid, sendername, sizeof(sendername)); format(admmsg,sizeof(admmsg),"%s(lvl: %i) %s(ID: %i)",namelvl,lvl,sendername,i); SendClientMessage(playerid,COLOR_WHITE,admmsg); } } return 1; }
Команда в чат
Господи спаси от фугаса в танк летящего, от артовода с небо глядящего, от гада в карму заходящего, и от нуба в команду входящего Аминь
Сообщение Mr_Nigger , командой это ты имеешь ввиду что бы в чат писало? как вариант неправильная проверка стоит, скинь все строки связанные с этим. гляну, ток отдели чтоб не запутатьсяДобавлено (05.05.2014, 22:19:03) ---------------------------------------------
Код
if (strcmp(cmd, "/admins", true) == 0) { if(IsPlayerAdmin(playerid)|| PlayerInfo [playerid][pAdmin]>= 1 || PlayerInfo [playerid][pDonateRank]>= 2) { new admmsg[1024]; new namelvl[32]; for(new i=1; i<MAX_PLAYERS; i++) { if(!IsPlayerConnected(i)) continue; if(!IsPlayerNPC(i)) continue; if(!PlayerInfo[i][pAdmin]) continue; new lvl = PlayerInfo[i][pAdmin]; namelvl = "Имя уровня"; switch(lvl) { case 1: namelvl = "Õåëïåð"; case 2: namelvl = "Ìëàäøèé Àäìèí"; case 3: namelvl = "Àäìèíèñòðàòîð"; case 4: namelvl = "Ñòàðøèé Àäìèí"; case 5: namelvl = "Ïîìîùíèê Ðóêîâîäèòåëÿ"; case 6: namelvl = "Ðóêîâîäèòåëü"; case 7: namelvl = "Ñìîòðÿùèé"; case 8: namelvl = "Ñêðèïòåð"; } GetPlayerName(playerid, sendername, sizeof(sendername)); format(admmsg,sizeof(admmsg),"%s(lvl: %i) %s(ID: %i)",namelvl,lvl,sendername,i); SendClientMessage(playerid,COLOR_WHITE,admmsg); } } return 1; }
Команда в чатАвтор - КРОТ Дата добавления - 05.05.2014 в 22:19:03
Загрузка страницы, займет меньше минуты...
Статистика Форума
Последнии темы
Читаемые темы
Лучшие пользователи
Новые пользователи