bugging Krace script.
#1

hello, i creating my server, and i have KRace filterscript, indexed in my server. and its bugging:

pawn Код:
new RaceID = -1;
new RaceI[MAX_RACES][RaceInfo];
new CurrentRace = -1;
//new InRace[MAX_PLAYERS] = -1;
new bool:InRace[MAX_PLAYERS];
new RaceCPS[MAX_PLAYERS];
new RaceJoinable;
new CoUnTDown, CDTIME;
new LastCP[MAX_PLAYERS];
new RaceTime[MAX_PLAYERS];
new RacePos;
new Racee;
#define     IsAnywhere(%0)      \
                ( InRace [ %0 ] , InStunt [ %0 ] )
new bool:InStunt[MAX_PLAYERS];
/join command:
pawn Код:
if(!strcmp(cmdtext, "/join", true))
    {
        if(CurrentRace == -1) return SendClientMessage(playerid, 0x00D300AA, "Lenktynлs рiuo metu nevyksta!");
        if(RaceJoinable == 0) return  SendClientMessage(playerid, 0x00D300AA, "Lenktynлs jau pradлtos.");
        if(InRace[playerid] == true) return SendClientMessage(playerid, 0x00D300AA, "Jыs jau lenktynлse.");
        if(IsPlayerInAnyVehicle(playerid))
        {
            new Veh = GetPlayerVehicleID(playerid);
            SetPlayerVirtualWorld(playerid, 1333337);
            SetVehicleVirtualWorld(Veh, 1333337);
            PutPlayerInVehicle(playerid, Veh, 0);
            SetPlayerPos(playerid, RaceI[CurrentRace][X][0], RaceI[CurrentRace][Y][0], RaceI[CurrentRace][Z][0]);
            SetVehiclePos(Veh, RaceI[CurrentRace][X][0], RaceI[CurrentRace][Y][0], RaceI[CurrentRace][Z][0]);
            RaceTime[playerid] = 0;
            //RaceIn[playerid] = true;
        }
        CPTD[playerid] = TextDrawCreate(506.000000, 113.000000, "Checkpoint: 45/100");
        TextDrawBackgroundColor(CPTD[playerid], 65535);
        TextDrawFont(CPTD[playerid], 1);
        TextDrawLetterSize(CPTD[playerid], 0.270000, 1.100000);
        TextDrawColor(CPTD[playerid], 16777215);
        TextDrawSetOutline(CPTD[playerid], 1);
        TextDrawSetProportional(CPTD[playerid], 1);
        new str[56];
        format(str, 56, "%d/%d", RaceCPS[playerid], RaceI[CurrentRace][CPNUM]);
        TextDrawSetString(CPTD[playerid], str);
        TextDrawShowForPlayer(playerid, CPTD[playerid]);
        TextDrawShowForPlayer(playerid, RaceTD);
        SetPlayerPos(playerid, RaceI[CurrentRace][X][0], RaceI[CurrentRace][Y][0], RaceI[CurrentRace][Z][0]);
        SetPlayerRaceCheckpoint(playerid, 0, RaceI[CurrentRace][X][0], RaceI[CurrentRace][Y][0], RaceI[CurrentRace][Z][0], RaceI[CurrentRace][X][1], RaceI[CurrentRace][Y][1], RaceI[CurrentRace][Z][1], 11);
        InRace[playerid] = true;
        //RaceIn[playerid] = true;
        return 1;
    }
and I am created a cmd with which I check i am inrace or instunt (IsAnywhere):

pawn Код:
dcmd_tikrinu(playerid, params[])
{
    #pragma unused params
    if(IsAnywhere(playerid)) return SendClientMessage(playerid,GREEN," yes");
    if(!IsAnywhere(playerid)) return SendClientMessage(playerid,GREEN," no");
    return 1;
}
p.s. when i am InStunt zone, and type /tikrinu server sends a message "yes" that means i am instunt, and when i type /join cmd to join in race, server setting my pos, well its working, but when i type /tikrinu , server say's "no" that i am not in zone ( inrace) whats problem?
Reply
#2

show the "IsAnywhere" function
Quote:

This forum requires that you wait 120 seconds between posts.

Not liking this ;X
Reply
#3

pawn Код:
#define     IsAnywhere(%0)      \
                ( InRace [ %0 ] , InStunt [ %0 ] )
it just two functions are packed into a one that does not take up space
Reply
#4

not sure about the define but make it into a stock
pawn Код:
stock IsAnywhere(playerid)
{
     if(InRace[playerid]==true) return 1;
     else if(InStunt [playerid]==true) return 1;
     return 0;
}
edit need to look into the directives of the #define
Reply
#5

but the problem it's not about isanywhere, in previous server i dont have race script, and isanywere worked 100 %. i think the bug is in the race script. ://

edit:
C:\Users\Karolis\Desktop\GTA-MP.LT Free-Roam\gamemodes\FR.pwn(1102) : warning 213: tag mismatch
C:\Users\Karolis\Desktop\GTA-MP.LT Free-Roam\gamemodes\FR.pwn(1103) : warning 213: tag mismatch
Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase


2 Warnings.
Reply
#6

i edited it, forgot is a Boolean
Reply
#7

thanks, you are god! it's really didn't worket isanywhre..
Reply
#8

one more question:

pawn Код:
dcmd_player(playerid, params[])
{
    #pragma unused params
    if(!IsAnywhere(playerid)) return SendClientMessage(playerid,GREEN,"Serveris: Jыs niekur nesate prisijungжs.");
//------------------------------------------------------------------------------
    DisablePlayerRaceCheckpoint(playerid);
    InRace[playerid] = false;
    RaceCPS[playerid] = 0;
    SetVehicleVirtualWorld(GetPlayerVehicleID(playerid), 0);
    SetPlayerVirtualWorld(playerid, 0);
    //RaceIn[playerid] = false;
    TextDrawDestroy(CPTD[playerid]);
    TextDrawHideForPlayer(playerid, RaceTD);
    InStunt[playerid] = false;
    SpawnPlayer(playerid);
//-----------there is a script of race
    if(CurrentRace == 1)
    {
        new Yesss;
        for(new i; i<MAX_PLAYERS; i++)
        {
            if(InRace[i] == true && RaceCPS[i] != 0) Yesss = 1;
        }
        if(Yesss == 0)
        {
            CurrentRace = -1;
            KillTimer(Time53);
            KillTimer(Racee);
        }
    }
    return 1;
}
there is a script of race, can you correct the script, if player type /player cmd, the server check if in race members is 0, then the race end, is the correct script?
Reply
#9

thanks, fixed. now i ned a help with my previous post. :/
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)