00:13
ОбновитьСмайлыУправление мини-чатом
МИНИ-ЧАТ
Главная страница!

 



 
          





Рекомендуем:





Последние Файлы GTA 4 Последние Файлы GTA-MP Реклама
Скрипт GTA 4 элементы Watch... 07.09.2014
Ferrari 360 Spider [EPM con... 13.12.2013
Porsche Cayenne Turbo 2012 ... 13.12.2013
Shelby Terlingua Mustang v1... 13.12.2013
Hamann Lamborghini Gallardo... 27.10.2013
[GM] The Big PEN1:LS v2.00 ... 04.12.2017
Dgun (AvnanceRP,SampRP,Dimo... 19.03.2016
SAMP скрипт SX Events (MySQ... 03.03.2016
Карта ASL мэрия для SAMP се... 03.03.2016
AIM для SA-MP 0.3.7 22.02.2016
  • Страница 1 из 1
  • 1
Модератор форума: AXE, Weddew  
Помогите со скриптом
Ghost-XДата: Суббота, 20.06.2009, 09:52 | Сообщение # 1
Мастер джэдай
Группа: Продвинутые
Сообщений: 3548
Награды: 36
Город: Наб. Челны
Репутация: 856
Замечания: 40%
Статус:
[pwn]#include <a_samp>

#define COLOR_WHITE 0xFFFFFFAA
#define COLOR_GOLD 0xFF9900AA
#define COLOR_RED 0xFF0000FF
#define COLOR_GRAD5 0xE3E3E3FF
#define COLOR_GRAD1 0xB4B5B7FF
#define COLOR_GREY 0xBEBEBEAA
#define COLOUR_GREEN 0x33AA33AA
#define COLOUR_LIME 0x10F441AA
#define COLOUR_GREY 0xAFAFAFAA
#define COLOR_BLUE 0x0000BBAA
#define COLOR_BLACK 0x00000000

forward JailTimer(playerid);
new jail[MAX_PLAYERS];
new jailtimer;

public OnPlayerCommandText(playerid,cmdtext[])
{
new cmd[256];
new idx;
cmd = strtok(cmdtext, idx);
new tmp[256];
new playername[MAX_PLAYER_NAME];
new Adminname[MAX_PLAYER_NAME];
new string[256];
if(strcmp(cmd,"/jail",true) == 0)
{
new tmpp[256];
tmp = strtok(cmdtext, idx);
if(!IsPlayerAdmin(playerid))
{
SendClientMessage(playerid,COLOR_RED,"ХраП: ТЫ НЕ АДМИН МАТЬ ТВОЯ ЖЕНЩИНА!");
return 1;
}
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GREY, " Ошибка: /jail ID секунд");
return 1;
}
tmpp = strtok(cmdtext, idx);
if(!strlen(tmpp))
{
SendClientMessage(playerid, COLOR_GREY, " Ошибка: /jail ID время");
return 1;
}
new giveID, JailTime;
giveID = strval(tmp);
JailTime = strval(tmpp);
jailtimer = SetTimer("JailTimer",JailTime*1000,0);
jail[giveID] = 1;
GetPlayerName(giveID,playername,sizeof(playername));
GetPlayerName(playerid,Adminname,sizeof(Adminname));
format(string,sizeof(string)," %s был посажен в тюрьму админом %s",playername,Adminname);
for(new i=0; i<MAX_PLAYERS; i++)
{
if(i != playerid && i != giveID)
{
SendClientMessage(i,COLOR_BLUE,string);
}
}
format(string,sizeof(string)," Вы посадили в тюрьму игрока %s на %d секунд",playername,JailTime);
SendClientMessage(playerid,COLOR_BLUE,string);
format(string,sizeof(string)," Админ %s посадил вас в тюрьму на %d секунд",playername,JailTime);
SendClientMessage(giveID,COLOR_BLUE,string);

SetPlayerInterior(giveID,6);
SetPlayerPos(giveID,265.1273,77.6823,1001.0391);
SetPlayerFacingAngle(giveID,0);
SetPlayerWantedLevel(giveID, 6);
SetPlayerArmour(giveID, 0);
SetPlayerHealth(giveID, 10);
ResetPlayerMoney(giveID);
ResetPlayerWeapons(giveID);
PlayerPlaySound(giveID,1082,198.3797,160.8905,1003.0300);
}
if(strcmp(cmd,"/unjail",true) == 0)
{
tmp = strtok(cmdtext, idx);
if(!IsPlayerAdmin(playerid))
{
SendClientMessage(playerid,COLOR_RED," Ты не админ МАТЬ ТВОЮ!.");
return 1;
}
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GREY, " Ошибка: /unjail ID");
return 1;
}
new giveID = strval(tmp);
if(jail[playerid] != 1)
{
SendClientMessage(playerid,COLOR_RED," Админ ты кусок, этот игрок итак на воле");
return 1;
}
else
{
jail[playerid] = 0;
KillTimer(jailtimer);
SetPlayerInterior(giveID,0);
SetPlayerWantedLevel(giveID,2);
SetPlayerHealth(giveID,99);
format(string,sizeof(string)," Вы вызвалили игрока %s из тюрьмы",playername);
SendClientMessage(playerid,COLOR_BLUE,string);
format(string,sizeof(string)," Админ %s высвободил вас из тюрьмы",playername);
SendClientMessage(giveID,COLOR_BLUE,string);
}
}
return 0;
}

public OnPlayerDisconnect(playerid,reason)
{
jail[playerid] = 0;
}

public OnPlayerUpdate(playerid)
{
if(jail[playerid] == 1)
{
if(!PlayerToPoint(20,playerid,265.1273,77.6823,1001.0391))
{
SetPlayerInterior(playerid,6);
SetPlayerPos(playerid,265.1273,77.6823,1001.0391);
SetPlayerFacingAngle(playerid,0);
SetPlayerWantedLevel(playerid, 6);
SetPlayerArmour(playerid, 0);
SetPlayerHealth(playerid, 10);
ResetPlayerMoney(playerid);
ResetPlayerWeapons(playerid);
PlayerPlaySound(playerid,1082,198.3797,160.8905,1003.0300);
SendClientMessage(playerid,COLOR_WHITE,"ХраП: Ты еще не отсидел свое!");
}
}
return 1;
}

public JailTimer(playerid)
{
if(jail[playerid] == 1)
{
new name1[20],string[256];
jail[playerid] = 0;
SpawnPlayer(playerid);
SetPlayerInterior(playerid,0);
SendClientMessage(playerid,COLOR_WHITE,"ХраП: ты отсидел свое");
GetPlayerName(playerid,name1,sizeof(name1));
format(string,sizeof(string)," %s вышел с зоны",name1);
SendClientMessageToAll(COLOR_WHITE,string);
}
return 1;
}

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;
}

stock PlayerToPoint(Float:radi, playerid, Float:x, Float:y, Float:z)
{
new Float:oldposx, Float:oldposy, Float:oldposz;
new Float:tempposx, Float:tempposy, Float:tempposz;
GetPlayerPos(playerid, oldposx, oldposy, oldposz);
tempposx = (oldposx -x);
tempposy = (oldposy -y);
tempposz = (oldposz -z);
if (((tempposx < radi) && (tempposx > -radi)) && ((tempposy < radi) && (tempposy > -radi)) && ((tempposz < radi) && (tempposz > -radi)))
{
return 1;
}
return 0;
}[/pwn]

Сажает игрока в тюрягу нормально. Но почему то, когда время истекает игрок остается в тюрьме. Освободить его можно только командой. mda Что делать?


Спор на форуме, все равно что олимпиада среди умственно отсталых: даже если ты победил, ты все равно гермофродит.
Хочешь остаться при своем мнении - держи его при себе.


Сообщение отредактировал GhostTT - Суббота, 20.06.2009, 10:40
stepmexДата: Суббота, 20.06.2009, 11:12 | Сообщение # 2
Мастер джэдай
Группа: Продвинутые
Сообщений: 2914
Награды: 35
Город: Е-бург
Репутация: 1032
Замечания: 0%
Статус:
new jailtimer;
jailtimer = SetTimer("JailTimer",JailTime*1000,0);

исправь на
new jailtimer[MAX_PLAYERS];
jailtimer[playerid] = SetTimerEx("JailTimer",JailTime*1000,0,"d",playerid);

Добавлено (20.06.2009, 11:12)
---------------------------------------------
Ты ID игрока не передавал в паблик выпускающий из тюрьмы!


И создал Бог женщину!.. Существо получилось злобное, но симпатичное...

Сообщение отредактировал stepmex - Суббота, 20.06.2009, 11:12
Ghost-XДата: Суббота, 20.06.2009, 11:18 | Сообщение # 3
Мастер джэдай
Группа: Продвинутые
Сообщений: 3548
Награды: 36
Город: Наб. Челны
Репутация: 856
Замечания: 40%
Статус:
stepmex, благодарю за помощь ;)


Спор на форуме, все равно что олимпиада среди умственно отсталых: даже если ты победил, ты все равно гермофродит.
Хочешь остаться при своем мнении - держи его при себе.
  • Страница 1 из 1
  • 1
Поиск:





 


 


 
Хостинг от uCoz samp.at.ua