Help Needed. +REP
#1

I have a Dynamic Gates System which works fine when I assign the gate to a faction but it doesn't work if I assign it to a player.
Please help me, I would give him +REP.

PHP код:
//This is the command to open the gate.
CMD:gate(playeridparams[])
{
    
//  Gates
    
new donestr[265], name[MAX_PLAYER_NAME], giveplayerid;
    
GetPlayerName(playeridnamesizeof(name));
    for(new 
idx=1idx<MAX_GATESidx++)
    {
        new 
Float:cur[3];
        if(
GateInfo[idx][gModel])
        {
            
GetDynamicObjectPos(GateInfo[idx][gGate], cur[0], cur[1], cur[2]);
            if(
IsPlayerInRangeOfPoint(playerid8cur[0], cur[1], cur[2]) || IsPlayerInRangeOfPoint(playerid8GateInfo[idx][gCX], GateInfo[idx][gCY], GateInfo[idx][gCZ]) || IsPlayerInRangeOfPoint(playerid8GateInfo[idx][gOX], GateInfo[idx][gOY], GateInfo[idx][gOZ]))
            {
                if(
GetPVarInt(playerid"playerorg"))
                {
                    
format(strsizeof(str), "org%d"GetPVarInt(playerid"playerorg"));
                    new 
tmp dini_Int(AddDirFile(dir_orgfilesstr), "GateOwned");
                    if(
tmp == 0) return SendClientMessage(playeridCOLOR_RED"You cannot open this gate.");
                    {
                         if(!
GateInfo[idx][gStatus])
                        {
                            
GateInfo[idx][gStatus] = 1;
                            
MoveDynamicObject(GateInfo[idx][gGate], GateInfo[idx][gOX], GateInfo[idx][gOY], GateInfo[idx][gOZ], GateInfo[idx][gSpeed], GateInfo[idx][gORX], GateInfo[idx][gORY], GateInfo[idx][gORZ]);
                            
done=1;
                            break;
                        }
                        else
                        {
                            
GateInfo[idx][gStatus] = 0;
                            
MoveDynamicObject(GateInfo[idx][gGate], GateInfo[idx][gCX], GateInfo[idx][gCY], GateInfo[idx][gCZ], GateInfo[idx][gSpeed], GateInfo[idx][gCRX], GateInfo[idx][gCRY], GateInfo[idx][gCRZ]);
                            
done=1;
                            break;
                        }
                    }
                }
                
giveplayerid dini_Isset(AddDirFile(dir_userfilesstr), "GateID");
                if (
giveplayerid == 0) return SendClientMessage2(playeridCOLOR_RED"Error: You don't own this gate!");
                {
                    if(
giveplayerid == 1)
                    {
                        
GateInfo[idx][gStatus] = 1;
                        
MoveDynamicObject(GateInfo[idx][gGate], GateInfo[idx][gOX], GateInfo[idx][gOY], GateInfo[idx][gOZ], GateInfo[idx][gSpeed], GateInfo[idx][gORX], GateInfo[idx][gORY], GateInfo[idx][gORZ]);
                        
done=1;
                        break;
                    }
                    else
                    {
                        
GateInfo[idx][gStatus] = 0;
                        
MoveDynamicObject(GateInfo[idx][gGate], GateInfo[idx][gCX], GateInfo[idx][gCY], GateInfo[idx][gCZ], GateInfo[idx][gSpeed], GateInfo[idx][gCRX], GateInfo[idx][gCRY], GateInfo[idx][gCRZ]);
                        
done=1;
                        break;
                    }
                }
                if(
strlen(GateInfo[idx][gPassword]))
                {
                    if(
sscanf(params"s[256]"params)) return SendClientMessage(playerid0xFFFFFF00"USAGE: /gate [password]");
                    if(
strcmp(paramsGateInfo[idx][gPassword])) return SendClientMessage(playerid, -1"Invalid gate password.");
                    if(!
GateInfo[idx][gStatus])
                    {
                        
GateInfo[idx][gStatus] = 1;
                        
MoveDynamicObject(GateInfo[idx][gGate], GateInfo[idx][gOX], GateInfo[idx][gOY], GateInfo[idx][gOZ], GateInfo[idx][gSpeed], GateInfo[idx][gORX], GateInfo[idx][gORY], GateInfo[idx][gORZ]);
                        
done=1;
                        break;
                    }
                }
            }
        }
    }
    if(!
doneSendClientMessage(playerid, -1"You aren't near a gate you can open.");
    return 
1;

PHP код:
The command to assign a gate to a player.
CMD:setgateo(playeridparams[])
{
    new 
idxstr[256], idstring[256], name[MAX_PLAYER_NAME];
    if(
adlvl[playerid]<6) return 0;
    if(
sscanf(params"di",ididx)) return SendClientMessage(playerid0xFFFFFF00"USAGE: /setgateowner [playerid] [gateid]");
    if(!
IsPlayerConnected(id)) return SendClientMessage(playeridCOLOR_RED"ERROR: Invalid Player Id.");
    
GetPlayerName(idnamesizeof(name));
    if (!
dini_Exists(AddDirFile(dir_userfilesname))) return SendClientMessage2(playeridCOLOR_RED"Error: Account Doesnt Exist");
    if(!
GateInfo[idx][gModel]) return SendClientMessage(playerid, -1"Invalid gate id.");
    
dini_IntSet(AddDirFile(dir_userfilesstring), "GateID"idx);
    
format(strsizeof(str), "You have setted gate %d Owned by %s",idxname);
    
SendClientMessage(playerid0xFFFFFF00str);
    return 
1;

PHP код:
//GATE EXTRAS
enum gateInfo
{
    
gGate,
    
gModel,
    
Float:gCX,
    
Float:gCY,
    
Float:gCZ,
    
Float:gCRX,
    
Float:gCRY,
    
Float:gCRZ,
    
Float:gOX,
    
Float:gOY,
    
Float:gOZ,
    
Float:gORX,
    
Float:gORY,
    
Float:gORZ,
    
gPassword[256],
    
Float:gSpeed,
    
gStatus
}
new 
GateInfo[MAX_GATES][gateInfo]; 
and here is the command to assign the gate to a faction if you need it.
PHP код:
CMD:setogate(playeridparams[])
{
    new 
idxstr[256], idstring[256], tmp[256];
    if(
adlvl[playerid]<6) return 0;
    if(
sscanf(params"di",ididx)) return SendClientMessage(playerid0xFFFFFF00"USAGE: /setogate [orgid] [gateid]");
    
format(string10"org%d"id);
    if (!
dini_Exists(AddDirFile(dir_orgfilesstring)))
    {
        return 
SendClientMessage2(playeridCOLOR_RED"Error: Invalid organization id.");
    }
    if(!
GateInfo[idx][gModel]) return SendClientMessage(playerid, -1"Invalid gate id.");
    
dini_IntSet(AddDirFile(dir_orgfilesstring), "GateOwned"idx);
    
tmp dini_Get(AddDirFile(dir_orgfilesstring), "name");
    
format(strsizeof(str), "You have setted gate %d Owned by org %s",idxtmp);
    
SendClientMessage(playerid0xFFFFFF00str);
    return 
1;

Reply
#2

Change your tittle, you will only attract REP Hunters.
The people will not help you
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)