| Make | Дата: Пятница, 05.08.2011, 08:46 | Сообщение # 1 |
|
Уверенный в себе
Группа:
Пользователи
Сообщений: 229
Награды: 5
Город: Новосибирск
Репутация: 16
Замечания: 40%
Статус: 
| help у меня такая идея,если игрока с банды не просто кикают,а он кикается предупреждениями 3/3=кик,то я хочу сделать,что-бы после кика варнами,с какой-либо организации/банды,игрока не могли принять ни в 1 банду/орг. в течении 2х дней,переменные я создаю,а как сделать что-бы таймер сохранялся по дням,тоесть эти 2 дня шли,только тогда,когда ты в игре,и по истечению срока анулировались,помогите плз!;d
И ещё у меня возникла такая проблема с маской,когда игрок Логинется и в этот момент есть игрок в маске,то при заходе,он не видит ник,у этого хитмана,а когда он умерает,то видит,даже если хит его не убил,что сделать помогите,вот в ЛОгине Code for(new i = 0; i < MAX_PLAYERS; i++) { if(IsPlayerConnected(i)) { if(skrit[i] >= 1) { ShowPlayerNameTagForPlayer(playerid, i, 0); } } } ,а когда это вставляю в спавн,то при смерти,ник хитмана становится виден. Что сделать?
И ещё у меня возник такой баг: Если ты заправляешься на заправке,(там диалог-окно),то когда ты вибираешь кол-во литров,то потом появляется другое диалоговое окно,а точнее не окно,а listitem из другово Диалога,что делать?(не только при заправке,и при других бывает появляется 1 и тот же Диалог с этой листитемой...),что сделать,может кто знает? ,а поменял уже номер диалога,и всё равно...
B ещё у меня в спеке показывает мои данные,а не данные игрока,за которым спекаю,помогите ;D
вот команда спека: Code if(strcmp(cmd, "/spec", true) == 0) { if(IsPlayerConnected(playerid)) { //new tmp[256]; new specid; tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) { SendClientMessage(playerid, COLOR_RED, "Unlimited Space: /spec [id_игрока/ЧастьИмени]"); return 1; } TextDrawHideForPlayer(playerid,Specsid[playerid]); specid = ReturnUser(tmp); if(specid == playerid) { SendClientMessage(playerid, COLOR_RED, "Ошибка: Нельзя наблюдать за самим собой!"); return 1; } if (PlayerInfo[playerid][pAdmin] >= 1) { if(IsPlayerConnected(specid)) { KillTimer(SpecTimer[playerid]); TextDrawHideForPlayer(playerid,Specsid[playerid]); if(GetPlayerState(specid) == PLAYER_STATE_SPECTATING && gSpectateID[specid] != INVALID_PLAYER_ID) { GetPlayerName(gSpectateID[specid], sendername, sizeof(sendername)); format(string, sizeof(string), "Ошибка: Этот игрок наблюдает за [%d]%s!",gSpectateID[specid], sendername); SendClientMessage(playerid, COLOR_RED, string); return 1; } giveplayerid = ReturnUser(tmp); if(GetPlayerState(giveplayerid) == 1) { SetPlayerInterior(playerid,GetPlayerInterior(giveplayerid)); SetPlayerVirtualWorld(playerid,GetPlayerVirtualWorld(giveplayerid)); SpecTimer[playerid]=SetTimerEx("Specrefresh",1000,true,"ii",playerid,giveplayerid); TextDrawShowForPlayer(playerid, Specsid[playerid]); } else if(GetPlayerState(giveplayerid) == 2) { SetPlayerInterior(playerid,GetPlayerInterior(giveplayerid)); SetPlayerVirtualWorld(playerid,GetPlayerVirtualWorld(giveplayerid)); SpecTimer[playerid]=SetTimerEx("Specrefresh",1000,true,"ii",playerid,giveplayerid); TextDrawShowForPlayer(playerid, Specsid[playerid]); } else if(GetPlayerState(giveplayerid) == 3) { SetPlayerInterior(playerid,GetPlayerInterior(giveplayerid)); SetPlayerVirtualWorld(playerid,GetPlayerVirtualWorld(giveplayerid)); SpecTimer[playerid]=SetTimerEx("Specrefresh",1000,true,"ii",playerid,giveplayerid); TextDrawShowForPlayer(playerid, Specsid[playerid]); } for(new i=0; i<GetMaxPlayers(); i++) { if(IsPlayerConnected(i)) { if(GainAdmin[i] == 1) { new admin[MAX_PLAYER_NAME]; new player[MAX_PLAYER_NAME]; GetPlayerName(playerid, admin,sizeof(admin)); GetPlayerName(specid, player,sizeof(player)); format(string,sizeof(string),"Gain Admin: {FFFFFF}%s начал слежку за %s.",admin,player); SendClientMessage(i, COLOR_LIGHTRED, string); } } } StartSpectate(playerid, specid);
// AdminLog(playerid," Использованно: /spec"); } } else { SendClientMessage(playerid, COLOR_GRAD1, "Ошибка: Вы не администратор"); } } return 1; } Старт спека Code stock StartSpectate(playerid, specid) { for(new x=0; x<GetMaxPlayers(); x++) { if(GetPlayerState(x) == PLAYER_STATE_SPECTATING && gSpectateID[x] == playerid) { AdvanceSpectate(x); } } if(IsPlayerInAnyVehicle(specid)) { SetPlayerInterior(playerid,GetPlayerInterior(specid)); TogglePlayerSpectating(playerid, 1); PlayerSpectateVehicle(playerid, GetPlayerVehicleID(specid)); gSpectateID[playerid] = specid; gSpectateType[playerid] = ADMIN_SPEC_TYPE_VEHICLE; } else { SetPlayerInterior(playerid,GetPlayerInterior(specid)); TogglePlayerSpectating(playerid, 1); PlayerSpectatePlayer(playerid, specid); gSpectateID[playerid] = specid; gSpectateType[playerid] = ADMIN_SPEC_TYPE_PLAYER; } return 1; } вот что показывает в SetTimerEx("Specrefresh",1000,true,"ii",playerid,giveplayerid);(паблике) Code forward Specrefresh(playerid, giveplayerid); public Specrefresh(playerid, giveplayerid) { new string[100], name[24]; //new gun; //new ammo; new specid; new Float:health; GetPlayerHealth(specid, health); GetPlayerName(specid,name,sizeof(name)); format(string,sizeof(string),"~n~~n~~n~~n~~n~~n~~n~~n~~w~%s - ID:%d~n~Hp:%.0f"/*~n~Gun: %s~n~Patrons: %d*/, name,specid,health/*,WeaponNames[gun],ammo*/); GameTextForPlayer(playerid,string,999999999999,3); return 1; } Дам +,и наградку
http://killerjo.net/ <= зайди Разработка сервера: Unlimited Space (0.3e) [RPG] [RUS/UA] Ip: 176.32.36.23:7777
Сообщение отредактировал Make - Пятница, 05.08.2011, 08:58 |
| |
|
|
| Дикий_Билл | Дата: Пятница, 05.08.2011, 11:49 | Сообщение # 2 |
|
Освоившийся
Группа:
Пользователи
Сообщений: 76
Награды: 1
Город: ...
Репутация: -46
Замечания: 100%
Статус: 
| Quote (Make) у меня такая идея,если игрока с банды не просто кикают,а он кикается предупреждениями 3/3=кик,то я хочу сделать,что-бы после кика варнами,с какой-либо организации/банды,игрока не могли принять ни в 1 банду/орг. в течении 2х дней,переменные я создаю,а как сделать что-бы таймер сохранялся по дням,тоесть эти 2 дня шли,только тогда,когда ты в игре,и по истечению срока анулировались,помогите плз!;d Добавляешь в конструкцию enum pInfo значение, когда выкидываем из банды ровняем его 1. И в ежесекундный таймер: Code if(PlayerInfo[id игрока][название переменной] > 0) { PlayerInfo[id игрока][название переменной]++; //60*60*24*2 = 172800 if(PlayerInfo[id игрока][название переменной] >= 172800) { PlayerInfo[id игрока][название переменной] = 0; //Тут сообщение что снова можно в банду } } В команду где принимают во фракцию, условие: if(PlayerInfo[id игрока][название переменной] > 0) return //сообщение
|
| |
|
|