PDA

Просмотр полной версии : [Вопрос] Не работает скрипт



Andrik851
03.02.2019, 22:52
У меня скрипт магнитофон на сервере когда ставлю магнитофон происходит анимация что типо магнитофон ставит но нечего не ставится и при выборе радиостанции код античита #0811(ТЕСТ) или #811(ТЕСТ) точно не помню но итог таков что он не работает



вот сам скрипт



//==============================================================================
#define Filterscript
#include <a_samp>
#include <zcmd>
#include <sscanf2>
#include <streamer>
#include <foreach>
//==============================================================================
#define HGC_MAFON 500
#define HGC_MAFON1 501
#define HGC_MAFON2 502
#define HGC_MAFON3 503
#define HGC_MAFON4 504
#define HGC_MAFON5 505
//==============================================================================
new gPlayerLoggin[MAX_PLAYERS char];
//==============================================================================
#define COLOR_LIGHTBLUE 0x00C3FFFF
#define COLOR_WHITE 0xFFFFFFFF
#define COLOR_RED 0xFF0000FF
#define COLOR_LIME 0x00FF33FF
#define COLOR_GREY 0xAFAFAFFF
#define COL_WHITE "{FFFFFF}"
#define COL_LBLUE "{00C3FF}"
#define COL_RED "{FF0000}"
#define COL_LIME "{00FF33}"
#define COLOR_PURPLE 0xC2A2DAAA
//==============================================================================
public OnFilterScriptInit()
{
print("FS Магнитофон v2 - by Vlad_Dredd");
return true;
}
//==============================================================================
//==============================================================================
public OnPlayerConnect(playerid)
{
gPlayerLoggin{playerid} = 1;
SendClientMessage(playerid, -1, "На сервере установлен скрипт Магнитофон.");
SendClientMessage(playerid, -1, "Команды для магнитофона: /mafonhelp");
return true;
}
//==============================================================================
public OnPlayerDisconnect(playerid)
{
if(GetPVarType(playerid, "PlacedBB"))
{
DestroyDynamicObject(GetPVarInt(playerid, "PlacedBB"));
DestroyDynamic3DTextLabel(Text3D:GetPVarInt(playerid, "BBLabel"));
if(GetPVarType(playerid, "BBArea"))
{
foreach(Player,i)
{
if(IsPlayerInDynamicArea(i, GetPVarInt(playerid, "BBArea")))
{
StopAudioStreamForPlayer(i);
SendClientMessage(i, COLOR_LIGHTBLUE, "[Сервер]: Тот кто поставил магнитофон вышел. Музыка автоматически выключилась.");
}
}
}
}
return true;
}
//==============================================================================
CMD:mafonhelp(playerid, params[])//Все команды
{
SendClientMessage(playerid, -1, "=================================");
SendClientMessage(playerid, -1, "/postmafon - поставить магнитофон");
SendClientMessage(playerid, -1, "/setmafon - выбор радиостанции");
SendClientMessage(playerid, -1, "/podnmafon - убрать магнитофон");
SendClientMessage(playerid, -1, "/dance - танцевать");
SendClientMessage(playerid, -1, "=================================");
return true;
}
//==============================================================================
CMD:dance(playerid, params[])//Танцевать
{
new animid;
if(sscanf(params, "i", animid)) return SendClientMessage(playerid, COLOR_WHITE, "[Подсказка]: /dance [1-4]");
if(animid < 1 || animid > 4) return SendClientMessage(playerid, COLOR_WHITE, "[Подсказка]: /dance [1-4]");
switch(animid)
{
case 1: SetPlayerSpecialAction(playerid, SPECIAL_ACTION_DANCE1);
case 2: SetPlayerSpecialAction(playerid, SPECIAL_ACTION_DANCE2);
case 3: SetPlayerSpecialAction(playerid, SPECIAL_ACTION_DANCE3);
case 4: SetPlayerSpecialAction(playerid, SPECIAL_ACTION_DANCE4);
}
return true;
}
//==============================================================================
CMD:postmafon(playerid, params[])//Поставить магнитофон
{
new string[128], Float:BBCoord[4], pName[MAX_PLAYER_NAME];
GetPlayerPos(playerid, BBCoord[0], BBCoord[1], BBCoord[2]);
GetPlayerFacingAngle(playerid, BBCoord[3]);
SetPVarFloat(playerid, "BBX", BBCoord[0]);
SetPVarFloat(playerid, "BBY", BBCoord[1]);
SetPVarFloat(playerid, "BBZ", BBCoord[2]);
GetPlayerName(playerid, pName, sizeof(pName));
BBCoord[0] += (2 * floatsin(-BBCoord[3], degrees));
BBCoord[1] += (2 * floatcos(-BBCoord[3], degrees));
BBCoord[2] -= 1.0;
if(GetPVarInt(playerid, "PlacedBB")) return SendClientMessage(playerid, -1, "[Сервер]: Вы уже поставили магнитофон!");
foreach(Player, i)
{
if(GetPVarType(i, "PlacedBB"))
{
if(IsPlayerInRangeOfPoint(playerid, 30.0, GetPVarFloat(i, "BBX"), GetPVarFloat(i, "BBY"), GetPVarFloat(i, "BBZ")))
{
SendClientMessage(playerid, COLOR_WHITE, "[Сервер]: Вы не можете поставить магнитофон, т.к. кто-то его уже поставил рядом с вами!");
return true;
}
}
}
new string2[128];
format(string2, sizeof(string2), "%s поставил магнитофон и ищет станцию", pName);
SendNearbyMessage(playerid, 15, string2, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE);
SetPVarInt(playerid, "PlacedBB", CreateDynamicObject(1747, BBCoord[0], BBCoord[1], BBCoord[2], 0.0, 0.0, 0.0, .worldid = GetPlayerVirtualWorld(playerid), .interiorid = GetPlayerInterior(playerid)));
format(string, sizeof(string), "Поставил: %s\nВведите /setmafon, чтобы выбрать станцию.\nВведите /podnmafon, чтобы убрать магнитофон", pName);
SetPVarInt(playerid, "BBLabel", _:CreateDynamic3DTextLabel(string, -1, BBCoord[0], BBCoord[1], BBCoord[2]+0.6, 5, .worldid = GetPlayerVirtualWorld(playerid), .interiorid = GetPlayerInterior(playerid)));
SetPVarInt(playerid, "BBArea", CreateDynamicSphere(BBCoord[0], BBCoord[1], BBCoord[2], 30.0, GetPlayerVirtualWorld(playerid), GetPlayerInterior(playerid)));
SetPVarInt(playerid, "BBInt", GetPlayerInterior(playerid));
SetPVarInt(playerid, "BBVW", GetPlayerVirtualWorld(playerid));
ApplyAnimation(playerid,"BOMBER","BOM_Plant",4.0,0,0,0,0,0);
ApplyAnimation(playerid,"BOMBER","BOM_Plant",4.0,0,0,0,0,0);
return true;
}
//==============================================================================
CMD:setmafon(playerid, params[])//Выбрать радиостанцию
{
if(GetPVarType(playerid, "PlacedBB"))
{
if(IsPlayerInRangeOfPoint(playerid, 3.0, GetPVarFloat(playerid, "BBX"), GetPVarFloat(playerid, "BBY"), GetPVarFloat(playerid, "BBZ")))
{
ShowPlayerDialog(playerid,HGC_MAFON,DIALOG_STYLE_LIST,"Радиостанции [Типы]","Зайцев FM\nРетро\nХип-Хоп\nРусское\nURL на радиостанцию\nВыключить магнитофон","Выбор", "Отмена");
}
else
{
return SendClientMessage(playerid, -1, "[Сервер]: Вы не около магнитофона!");
}
}
else
{
SendClientMessage(playerid, -1, "[Сервер]: Вы не поставили магнитофон!");
}
return true;
}
//==============================================================================
CMD:podnmafon(playerid, params [])//Убрать магнитофон
{
if(!GetPVarInt(playerid, "PlacedBB"))
{
SendClientMessage(playerid, -1, "[Сервер]: А вы и не ставили магнитофон!");
}
if(IsPlayerInRangeOfPoint(playerid, 3.0, GetPVarFloat(playerid, "BBX"), GetPVarFloat(playerid, "BBY"), GetPVarFloat(playerid, "BBZ")))
{
PickUpBoombox(playerid);
SendClientMessage(playerid, -1, "[Сервер]: Магнитофон убран!");
}
return true;
}
//==============================================================================
public OnPlayerEnterDynamicArea(playerid, areaid)
{
foreach(Player, i)
{
if(GetPVarType(i, "BBArea"))
{
if(areaid == GetPVarInt(i, "BBArea"))
{
new station[256];
GetPVarString(i, "BBStation", station, sizeof(station));
if(!isnull(station))
{
PlayStream(playerid, station, GetPVarFloat(i, "BBX"), GetPVarFloat(i, "BBY"), GetPVarFloat(i, "BBZ"), 30.0, 1);
//Можете раскоментить, если вам нужно, будет оповещать когда вы будете заходить в зону действия магнитофона.
SendClientMessage(playerid, -1, "[Сервер]: Вы вошли в зону действия магнитофона.");
}
return true;
}
}
}
return true;
}
//==============================================================================
public OnPlayerLeaveDynamicArea(playerid, areaid)
{
foreach(Player, i)
{
if(GetPVarType(i, "BBArea"))
{
if(areaid == GetPVarInt(i, "BBArea"))
{
StopStream(playerid);
//Можете раскоментить, если вам нужно, будет оповещать когда вы будете покидать зону действия магнитофона.
SendClientMessage(playerid, -1, "[Сервер]: Вы вышли из зоны действия магнитофона.");
return true;
}
}
}
return true;
}
//==============================================================================
stock StopStream(playerid)
{
DeletePVar(playerid, "pAudioStream");
StopAudioStreamForPlayer(playerid);
}
//==============================================================================
stock PlayStream(playerid, url[], Float:posX = 0.0, Float:posY = 0.0, Float:posZ = 0.0, Float:distance = 50.0, usepos = 0)
{
if(GetPVarType(playerid, "pAudioStream")) StopAudioStreamForPlayer(playerid);
else SetPVarInt(playerid, "pAudioStream", 1);
PlayAudioStreamForPlayer(playerid, url, posX, posY, posZ, distance, usepos);
}
//==============================================================================
stock PickUpBoombox(playerid)
{
foreach(Player, i)
{
if(IsPlayerInDynamicArea(i, GetPVarInt(playerid, "BBArea")))
{
StopStream(i);
}
}
DeletePVar(playerid, "BBArea");
DestroyDynamicObject(GetPVarInt(playerid, "PlacedBB"));
DestroyDynamic3DTextLabel(Text3D:GetPVarInt(playerid, "BBLabel"));
DeletePVar(playerid, "PlacedBB"); DeletePVar(playerid, "BBLabel");
DeletePVar(playerid, "BBX"); DeletePVar(playerid, "BBY"); DeletePVar(playerid, "BBZ");
DeletePVar(playerid, "BBInt");
DeletePVar(playerid, "BBVW");
DeletePVar(playerid, "BBStation");
return true;
}
//==============================================================================
stock SendNearbyMessage(playerid, Float:radius, string[], col1, col2, col3, col4, col5)
{
new Float:x, Float:y, Float:z;
GetPlayerPos(playerid, x, y, z);
new Float:ix, Float:iy, Float:iz;
new Float:cx, Float:cy, Float:cz;
foreach(Player, i)
{
if(gPlayerLoggin{i})
{
if(GetPlayerInterior(playerid) == GetPlayerInterior(i) && GetPlayerVirtualWorld(playerid) == GetPlayerVirtualWorld(i))
{
GetPlayerPos(i, ix, iy, iz);
cx = (x - ix);
cy = (y - iy);
cz = (z - iz);
if(((cx < radius/16) && (cx > -radius/16)) && ((cy < radius/16) && (cy > -radius/16)) && ((cz < radius/16) && (cz > -radius/16)))
{
SendClientMessage(i, col1, string);
}
else if(((cx < radius/8) && (cx > -radius/8)) && ((cy < radius/8) && (cy > -radius/8)) && ((cz < radius/8) && (cz > -radius/8)))
{
SendClientMessage(i, col2, string);
}
else if(((cx < radius/4) && (cx > -radius/4)) && ((cy < radius/4) && (cy > -radius/4)) && ((cz < radius/4) && (cz > -radius/4)))
{
SendClientMessage(i, col3, string);
}
else if(((cx < radius/2) && (cx > -radius/2)) && ((cy < radius/2) && (cy > -radius/2)) && ((cz < radius/2) && (cz > -radius/2)))
{
SendClientMessage(i, col4, string);
}
else if(((cx < radius) && (cx > -radius)) && ((cy < radius) && (cy > -radius)) && ((cz < radius) && (cz > -radius)))
{
SendClientMessage(i, col5, string);
}
}
}
}
return true;
}
//==============================================================================
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == HGC_MAFON)
{
if(!response)
{
SendClientMessage(playerid, COLOR_WHITE, "[Сервер]: Вы закончили выбор радиостанции.");
return 1;
}
switch(listitem)
{
case 0:
{
ShowPlayerDialog(playerid,HGC_MAFON1,DIALOG_STYLE_LIST,"Зайцев FM","Зайцев FM\nТрансмиссия","Выбор","Отмена");
}
case 1:
{
ShowPlayerDialog(playerid,HGC_MAFON2,DIALOG_STYLE_LIST,"Ретро","Супердискотека 90х\nРетро ФМ","Выбор","Отмена");
}
case 2:
{
ShowPlayerDialog(playerid,HGC_MAFON3,DIALOG_STYLE_LIST,"Хип-Хоп","YO! FM\nBeat FM","Выбор","Отмена");
}
case 3:
{
ShowPlayerDialog(playerid,HGC_MAFON4,DIALOG_STYLE_LIST,"Русское","Russian Mix\nРусское радио Украина","Выбор","Отмена");
}
case 4:
{
ShowPlayerDialog(playerid,HGC_MAFON5,DIALOG_STYLE_INPUT,"URL", "Тут вставьте ссылку на радиостанцию:", "Пуск", "Отмена");
}
case 5:
{
if(GetPVarType(playerid, "BBArea"))
{
new string[128], pName[MAX_PLAYER_NAME];
GetPlayerName(playerid, pName, sizeof(pName));
format(string, sizeof(string), "* %s выключил магнитофон", pName);
SendNearbyMessage(playerid, 15, string, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE);
foreach(Player, i)
{
if(IsPlayerInDynamicArea(i, GetPVarInt(playerid, "BBArea")))
{
StopStream(i);
}
}
DeletePVar(playerid, "BBStation");
}
SendClientMessage(playerid, COLOR_WHITE, "[Сервер]: Вы выключили магнитофон.");
}
}
return true;
}
//------------------------------------------------------------------------------
if(dialogid == HGC_MAFON1)//Рекорд
{
if(!response)
{
ShowPlayerDialog(playerid,HGC_MAFON,DIALOG_STYLE_LIST,"Радиостанции [Типы]","Зайцев FM\nРетро\nХип-Хоп\nРусское\nURL на радиостанцию\nВыключить магнитофон","Выбор", "Отмена");
}
if(response)
{
if(listitem == 0)//Радио рекорд
{
if(GetPVarType(playerid, "PlacedBB"))
{
foreach(Player, i)
{
if(IsPlayerInDynamicArea(i, GetPVarInt(playerid, "BBArea")))
{
PlayStream(i, "http://air.radiorecord.ru:8102/rus_320", GetPVarFloat(playerid, "BBX"), GetPVarFloat(playerid, "BBY"), GetPVarFloat(playerid, "BBZ"), 30.0, 1);
}
}
SetPVarString(playerid, "BBStation", "http://air.radiorecord.ru:8102/rus_320");
}
}
if(listitem == 1)//Трансмиссия
{
if(GetPVarType(playerid, "PlacedBB"))
{
foreach(Player, i)
{
if(IsPlayerInDynamicArea(i, GetPVarInt(playerid, "BBArea")))
{
PlayStream(i, "http://air.radiorecord.ru:8102/rus_320", GetPVarFloat(playerid, "BBX"), GetPVarFloat(playerid, "BBY"), GetPVarFloat(playerid, "BBZ"), 30.0, 1);
}
}
SetPVarString(playerid, "BBStation", "http://air.radiorecord.ru:8102/rus_320");
}
}
}
return true;
}
//------------------------------------------------------------------------------
if(dialogid == HGC_MAFON2)//Pетро
{
if(!response)
{
ShowPlayerDialog(playerid,HGC_MAFON,DIALOG_STYLE_LIST,"Радиостанции [Типы]","Рекорд\nРетро\nХип-Хоп\nРусское\nURL на радиостанцию\nВыключить магнитофон","Выбор", "Отмена");
}
if(response)
{
if(listitem == 0)//Супердискотека 90
{
if(GetPVarType(playerid, "PlacedBB"))
{
foreach(Player, i)
{
if(IsPlayerInDynamicArea(i, GetPVarInt(playerid, "BBArea")))
{
PlayStream(i, "http://air.radiorecord.ru:8102/rus_320", GetPVarFloat(playerid, "BBX"), GetPVarFloat(playerid, "BBY"), GetPVarFloat(playerid, "BBZ"), 30.0, 1);
}
}
SetPVarString(playerid, "BBStation", "http://air.radiorecord.ru:8102/rus_320");
}
}
if(listitem == 1)//Ретро ФМ Россия
{
if(GetPVarType(playerid, "PlacedBB"))
{
foreach(Player, i)
{
if(IsPlayerInDynamicArea(i, GetPVarInt(playerid, "BBArea")))
{
PlayStream(i, "http://air.radiorecord.ru:8102/rus_320", GetPVarFloat(playerid, "BBX"), GetPVarFloat(playerid, "BBY"), GetPVarFloat(playerid, "BBZ"), 30.0, 1);
}
}
SetPVarString(playerid, "BBStation", "http://air.radiorecord.ru:8102/rus_320");
}
}
}
return true;
}
//------------------------------------------------------------------------------
if(dialogid == HGC_MAFON3)//Хип-Хоп
{
if(!response)
{
ShowPlayerDialog(playerid,HGC_MAFON,DIALOG_STYLE_LIST,"Радиостанции [Типы]","Рекорд\nРетро\nХип-Хоп\nРусское\nURL на радиостанцию\nВыключить магнитофон","Выбор", "Отмена");
}
if(response)
{
if(listitem == 0)//YO! ФМ
{
if(GetPVarType(playerid, "PlacedBB"))
{
foreach(Player, i)
{
if(IsPlayerInDynamicArea(i, GetPVarInt(playerid, "BBArea")))
{
PlayStream(i, "http://online.radiorecord.ru:8102/yo_128", GetPVarFloat(playerid, "BBX"), GetPVarFloat(playerid, "BBY"), GetPVarFloat(playerid, "BBZ"), 30.0, 1);
}
}
SetPVarString(playerid, "BBStation", "http://online.radiorecord.ru:8102/yo_128");
}
}
if(listitem == 1)//Beat FM
{
if(GetPVarType(playerid, "PlacedBB"))
{
foreach(Player, i)
{
if(IsPlayerInDynamicArea(i, GetPVarInt(playerid, "BBArea")))
{
PlayStream(i, "http://91.201.231.12:8000/beat.fm", GetPVarFloat(playerid, "BBX"), GetPVarFloat(playerid, "BBY"), GetPVarFloat(playerid, "BBZ"), 30.0, 1);
}
}
SetPVarString(playerid, "BBStation", "http://91.201.231.12:8000/beat.fm");
}
}
}
return true;
}
//------------------------------------------------------------------------------
if(dialogid == HGC_MAFON4)//Русское
{
if(!response)
{
ShowPlayerDialog(playerid,HGC_MAFON,DIALOG_STYLE_LIST,"Радиостанции [Типы]","Рекорд\nРетро\nХип-Хоп\nРусское\nURL на радиостанцию\nВыключить магнитофон","Выбор", "Отмена");
}
if(response)
{
if(listitem == 0)//Russian Mix
{
if(GetPVarType(playerid, "PlacedBB"))
{
foreach(Player, i)
{
if(IsPlayerInDynamicArea(i, GetPVarInt(playerid, "BBArea")))
{
PlayStream(i, "http://online.radiorecord.ru:8102/rus_128", GetPVarFloat(playerid, "BBX"), GetPVarFloat(playerid, "BBY"), GetPVarFloat(playerid, "BBZ"), 30.0, 1);
}
}
SetPVarString(playerid, "BBStation", "http://online.radiorecord.ru:8102/rus_128");
}
}
if(listitem == 1)//Русское радио Украина
{
if(GetPVarType(playerid, "PlacedBB"))
{
foreach(Player, i)
{
if(IsPlayerInDynamicArea(i, GetPVarInt(playerid, "BBArea")))
{
PlayStream(i, "http://online-rusradio.tavrmedia.ua:8000/RusRadio", GetPVarFloat(playerid, "BBX"), GetPVarFloat(playerid, "BBY"), GetPVarFloat(playerid, "BBZ"), 30.0, 1);
}
}
SetPVarString(playerid, "BBStation", "http://online-rusradio.tavrmedia.ua:8000/RusRadio");
}
}
}
return true;
}
//------------------------------------------------------------------------------
if(dialogid == HGC_MAFON5)//Ссылка на радио станцию
{
if(response == 1)
{
if(isnull(inputtext))
{
SendClientMessage(playerid, COLOR_WHITE, "[Сервер]: Вы ничего не ввели!");
return true;
}
if(strlen(inputtext))
{
if(GetPVarType(playerid, "PlacedBB"))
{
foreach(Player, i)
{
if(IsPlayerInDynamicArea(i, GetPVarInt(playerid, "BBArea")))
{
PlayStream(i, inputtext, GetPVarFloat(playerid, "BBX"), GetPVarFloat(playerid, "BBY"), GetPVarFloat(playerid, "BBZ"), 30.0, 1);
}
}
SetPVarString(playerid, "BBStation", inputtext);
}
}
}
else
{
return true;
}
}
return true;
}
//==============================================================================

Andrik851
07.02.2019, 21:47
Куча просмотров и не одного совета

x86
07.02.2019, 22:00
В чем заключается ваш вопрос?

Andrik851
11.02.2019, 13:22
У меня скрипт магнитофон на сервере когда ставлю магнитофон происходит анимация что типо магнитофон ставит но нечего не ставится и при выборе радиостанции код античита #0811(ТЕСТ) или #811(ТЕСТ) точно не помню но итог таков что он не работает

DeimoS
11.02.2019, 13:52
Ну так а мы чем можем помочь? Для начала хотя бы запусти скрипт на пустом сервере (new.pwn без объектов) и посмотри как он будет работать там.

Не создаётся, скорее всего, потому что в радиусе от игрока уже превышен лимит на объекты (по крайней мере в коде есть создание объекта, но не видно, чтоб объекты в зоне стрима вручную перезагружадись как раз на случай переполнения).

Ну а уж об античите мы и подавно ничего знать не можем. Вероятнее всего, ругается античит на Dialog Hider, если этот скрипт у тебя подключается как FS.

В любом случае, тут вряд ли кто-то согласится за тебя переписать скрипт под твой мод. Лучше обратись в стол заказов сразу

Andrik851
11.02.2019, 23:35
на пустом моде точно также не работает