Top.Mail.Ru
Ответы

Конфликт filterscripts в Pawn (SAMP)

Я пишу сервер на Pawn у меня 2 filterscripts абсолютно разных, но в зависимости от того какой первый загружается, первый работает, а 2 нет! Там используются диалоги и команды в чате

Такое решение не помогло:

Уберите из кода #if defined FILTERSCRIPT и #endif, а перед подключением инклудов добавьте #define FILTERSCRIPT, таким образом Pawn.Raknet поймет что он работает именно в FS



Коды не могу подкрепить не хватает места

P. S. Решил переставив в server.cfg местами скрипты

По дате
По Рейтингу
Аватар пользователя
Новичок
14ч
Изменено
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
#define SSCANF_NO_NICE_FEATURES
#include <a_samp>
#include <zcmd>
#include <sscanf2>
#include <streamer>

// Äèàëîãè
#define DIALOG_THIEF_MAIN 5000
#define DIALOG_THIEF_OFFER 5001
#define DIALOG_THIEF_NOJOBS 5002

// Öâåòà
#define COLOR_RED 0xFF0000AA
#define COLOR_GREEN 0x00FF00AA
#define COLOR_YELLOW 0xFFFF00AA
#define COLOR_WHITE 0xFFFFFFFF

// Êîîðäèíàòû ñäà÷è àâòî
#define RISH_X 2503.84
#define RISH_Y -1682.64
#define RISH_Z 13.54

enum E_CAR_THIEF {
    ctModel,
    ctName[32],
    ctPrice
};

new const gCarData[][E_CAR_THIEF] = {
    {400, "Landstalker", 2375},
    {404, "Perennial", 942},
    {410, "Manana", 1872},
    {411, "Infernus", 7263},
    {418, "Moonbeam", 625},
    {422, "Bobcat", 827},
    {426, "Premier", 1264},
    {419, "Banshee", 2439},
    {455, "Admiral", 3827},
    {451, "Turismo", 9628},
    {458, "Solair", 728},
    {579, "Huntley", 2765}
};

// Êîîðäèíàòû ñïàâíà àâòî (òîëüêî îäèí âàðèàíò)
new const Float:gSpawnPoint[3] = {2186.04, -1343.45, 23.98};
new const Float:gSpawnAngle = 90.0; // Óãîë ïîâîðîòà àâòî

// Ãëîáàëüíûå ïåðåìåííûå
new
    NPC_Risha,
    bool:gPlayerMission[MAX_PLAYERS],
    gPlayerCar[MAX_PLAYERS],
    gPlayerCarModel[MAX_PLAYERS],
    gPlayerCarPrice[MAX_PLAYERS],
    gPlayerTimeLeft[MAX_PLAYERS],
    gPlayerCooldown[MAX_PLAYERS],
    gMissionTimer[MAX_PLAYERS],
    gPlayerCheckpoint[MAX_PLAYERS],
    gPlayerHacking[MAX_PLAYERS],
    gPlayerMarker[MAX_PLAYERS];

public OnFilterScriptInit()
{
    NPC_Risha = CreateActor(33, 2514.43, -1691.02, 14.04, 180.0);
    SetActorInvulnerable(NPC_Risha, true);
    CreateDynamic3DTextLabel("Àâòîóãîíùèê: Ðèøà\nÍàæìè ALT ÷òîáû ïîãîâîðèòü", COLOR_YELLOW, 2514.43, -1691.02, 14.04, 10.0);

    // Ñîçäàåì ìàðêåð ó òî÷êè ñäà÷è àâòî
    CreateDynamicMapIcon(RISH_X, RISH_Y, RISH_Z, 55, 0, -1, -1, -1, 100.0);

    print("[CarThief] Ôèëüòðñêðèïò óñïåøíî çàãðóæåí");
    return 1;
}

public OnPlayerConnect(playerid)
{
    gPlayerMission[playerid] = false;
    gPlayerCooldown[playerid] = 0;
    gPlayerHacking[playerid] = 0;
    gPlayerMarker[playerid] = -1;
    gPlayerCheckpoint[playerid] = -1;
    return 1;
}

public OnPlayerDisconnect(playerid, reason)
{
    if(gPlayerMission[playerid]) {
        EndCarThiefMission(playerid, false);
    }
    return 1;
}

public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
    if((newkeys & KEY_WALK) && !(oldkeys & KEY_WALK))
    {
        if(IsPlayerInRangeOfPoint(playerid, 3.0, 2514.43, -1691.02, 14.04))
        {
            if(gPlayerCooldown[playerid] > 0)
            {
                new str[128];
                format(str, sizeof(str), "Ðèøà íà âàñ îáèäåëñÿ, âîçâðàùàéòåñü ÷åðåç %d ñåê.", gPlayerCooldown[playerid]);
                SendClientMessage(playerid, COLOR_RED, str);
                return 1;
            }

            if(gPlayerMission[playerid])
            {
                SendClientMessage(playerid, COLOR_WHITE, "Ðèøà: Òû óæå âûïîëíÿåøü ìîå çàäàíèå!");
                return 1;
            }

            ShowPlayerDialog(playerid, DIALOG_THIEF_MAIN, DIALOG_STYLE_MSGBOX,
                "Âçàèìîäåéñòâèå ñ Ðèøåé",
                "Ðèøà: Ïðèâåò, ÿ ìåñòíûé ñïåöèàëèñò ïî 'ãîðÿ÷èì' ìàøèíàì.\nÕî÷åøü çàðàáîòàòü?",
                "Äàëåå", "Îòìåíà");
        }
    }
    return 1;
}