SERVER:Unknown command.
#1

hi guys
have some problems
PHP код:
SERVER:Unknown command
i download many FS there this problem too
i dont know why but trust me
i have all inc and plugin updated
and i load it in server.cfg i dont know why i get this error
PHP код:
SERVER:Unknown command
Reply
#2

Hello!

Which command processor do you use?
Do you use this in the filterscripts too?
Reply
#3

It may be a simple case of a filterscript returning first, because well.. they're loaded/processed first.

Check your filterscripts for 'OnPlayerCommandText' and change the 'return 1;' right at the very bottom to 'return 0;'
Reply
#4

Quote:
Originally Posted by Mencent
Посмотреть сообщение
Hello!

Which command processor do you use?
Do you use this in the filterscripts too?
i use this fs
PHP код:
/*
++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++######+++++++++########++++########+++++##++++##+++
+++########++++++##########+++#########++++##+++##++++
+++##+++++##++++##++++++++##++##++++++##+++##++##+++++
+++##++++++##+++##++++++++##++##+++++++##++##+##++++++
+++##+++++++##++##++++++++##++##########+++####+++++++
+++##++++++##+++############++##++##+++++++##+##++++++
+++##+++++##++++##++++++++##++##+++##++++++##++##+++++
+++########+++++##++++++++##++##++++##+++++##+++##++++
+++######+++++++##++++++++##++##+++++##++++##++++#++++
++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++++++
*/
#define FILTERSCRIPT
#include <a_samp>
#include <streamer>
#include <Dini>
#include <sscanf2>
#define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, "")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1
#define COLOR_ROSSO          0xFF0000FF
#define COLOR_FUCSIA        0x9900FFFF
#define COLOR_BLU            0x0000FFFF
#define COLOR_CELESTE        0x00BFFFFF
#define COLOR_VERDE          0x00FF00FF
#define COLOR_VERDEACQUA     0x00FF99FF
#define COLOR_GIALLO         0xFFFF00FF
#define COLOR_ARANCIONE      0xFF9900FF
#define COLOR_MARRONE        0x663300FF
#define COLOR_ROSA           0xFF6666FF
#define COLOR_SALMONE        0xFF9966FF
#define COLOR_NERO           0x000000FF
#define COLOR_GRIGIO        0x4F5152FF
#define COLOR_BIANCO         0xFFFFFFFF
#define GCOLOR_ROSSO          0xFF0000BB
#define GCOLOR_FUCSIA        0x9900FFBB
#define GCOLOR_BLU            0x0000FFBB
#define GCOLOR_CELESTE        0x00BFFFBB
#define GCOLOR_VERDE          0x00FF00BB
#define GCOLOR_VERDEACQUA     0x00FF99BB
#define GCOLOR_GIALLO         0xFFFF00BB
#define GCOLOR_ARANCIONE      0xFF9900BB
#define GCOLOR_MARRONE        0x663300BB
#define GCOLOR_ROSA           0xFF6666BB
#define GCOLOR_SALMONE        0xFF9966BB
#define GCOLOR_NERO           0x000000BB
#define GCOLOR_GRIGIO        0x4F5152BB
#define GCOLOR_BIANCO         0xFFFFFFBB
#define DIALOG_GANGCREATE     73
#define DIALOG_GANGCOLOUR     74
#define DIALOG_GANGINVITE     75
#define DIALOG_GANGKICK     76
#define DIALOG_GANGPICKUP     77
#define DIALOG_GANGTAG         78
#define DIALOG_PAYMENT      79
#define MAX_ZONES 64            //Max zones
#define MAX_GANGS 20            //Max gangs
#define MAX_MEMBERS 15          //Max Gang's members
#define MAX_GVEHICLES 3         //Max Vehicle for a zone
#define GANG_CASH_ICON_ID 0
#define AllowDecreaseTotKills true //If it is true, when a player in a gang death, the player's gang TotKills will decrease
#define MembersForConq 3        //Members needed to conquer a gangzone
#define TimeForConq 60000       //Time in milliseconds to conquire a gangzone
#define MoneyAfterConq 2500     //Will give this value at all members who conquired a zone
#define TimerAddCash 60000      //Every this time, the gangzone will receve the value AddCash
#define AddCash 25              //influeced by TimerAddCash: Every that time, the cash of gang zones will increased with this value
#define mapiconid 0
#define GangPayDay 12           //Expressed in hour (Will give gang money on this hour of the day at the members, default: 12:00)
#define GangCFGFile      "M3_Server/GangFS/Gang.cfg"         //Create a little Info about Gang and Zones created
#define GangIDFile      "M3_Server/GangFS/Gangs/%d.cfg"     //Storage the gang file
#define GangZoneFile    "M3_Server/GangFS/Zones/%d.cfg"     //Storage the zone file
#define GangUserFile    "M3_Server/GangFS/Users/%s.ini"     //Storage User file (Of gang system)
#define UserBankFile    "M3_Server/GangFS/Users/%s.ini"     //Storage the cash of the payday's Player (Important to change it if you have an another folder for your Bank System)
new TotGang,
    
TotZone,
    
TotVeh;
new 
FloatZonePos[2][3],
    
boolCreatingZone;
new 
Invaders[MAX_GANGS][MAX_ZONES];
new 
GangTimer[MAX_GANGS][MAX_ZONES];
new 
TimerCash;
enum ZONE_INFO_MAIN
{
    
ID,
    
GZID,
    
CKID,
    
OfGangID,
    
FloatPosX1,
    
FloatPosY1,
    
FloatPosX2,
    
FloatPosY2,
    
Color,
    
FloatPickX,
    
FloatPickY,
    
FloatPickZ,
    
PickUp,
    
PickUpCash,
    
Text3DLabel
}
new 
ZoneInfo[MAX_ZONES][ZONE_INFO_MAIN];
enum GANG_INFO_MAIN
{
    
GangID,
    
GangName[255],
    
Tag[255],
    
Color,
    
Owner[255],
    
Bank,
    
Members,
    
TotConqZ,
    
TotKills,
    
VehModel,
    
VehCol1,
    
VehCol2
}
new 
GangInfo[MAX_GANGS][GANG_INFO_MAIN];
enum MEMBER_INFO_MAIN
{
    
Name[255],
    
Percentage
}
new 
MemberInfo[MAX_GANGS][MAX_MEMBERS][MEMBER_INFO_MAIN];
enum gVehicle
{
    
VehID,
    
FloatPosX,
    
FloatPosY,
    
FloatPosZ,
    
FloatAngle
}
new 
GangVehicle[MAX_ZONES][MAX_GVEHICLES][gVehicle];
enum PLAYER_INFO_MAIN
{
    
GangID,
    
bool:GangOwner,
    
InvitedByGang,
    
bool:Invader,
    
idarea0,
    
idarea1
}
new 
PlayerInfo[MAX_PLAYERS][PLAYER_INFO_MAIN];
new 
VehicleNames[][] =
{
    
"Landstalker""Bravura""Buffalo""Linerunner""Perrenial""Sentinel",
    
"Dumper""Firetruck""Trashmaster""Stretch""Manana""Infernus",
    
"Voodoo""Pony""Mule""Cheetah""Ambulance""Leviathan""Moonbeam",
    
"Esperanto""Taxi""Washington""Bobcat""Whoopee""BF Injection",
    
"Hunter""Premier""Enforcer""Securicar""Banshee""Predator""Bus",
    
"Rhino""Barracks""Hotknife""Trailer""Previon""Coach""Cabbie",
    
"Stallion""Rumpo""RC Bandit""Romero""Packer""Monster A""Admiral",
    
"Squalo""Seasparrow""Pizzaboy""Tram""Trailer""Turismo""Speeder",
    
"Reefer""Tropic""Flatbed""Yankee""Caddy""Solair""Berkley's RC Van",
    
"Skimmer""PCJ-600""Faggio""Freeway""RC Baron""RC Raider""Glendale",
    
"Oceanic","Sanchez""Sparrow""Patriot""Quad""Coastguard""Dinghy",
    
"Hermes""Sabre""Rustler""ZR-350""Walton""Regina""Comet""BMX",
    
"Burrito""Camper""Marquis""Baggage""Dozer""Maverick""News Chopper",
    
"Rancher""FBI Rancher""Virgo""Greenwood""Jetmax""Hotring A""Sandking",
    
"Blista Compact""Police Maverick""Boxville""Benson""Mesa""RC Goblin",
    
"Hotring B""Hotring C""Bloodring Banger""Rancher""Super GT",
    
"Elegant""Journey""Bike""Mountain Bike""Beagle""Cropduster""Stunt",
    
"Tanker""Roadtrain""Nebula""Majestic""Buccaneer""Shamal""Hydra",
    
"FCR-900""NRG-500""HPV1000""Cement Truck""Tow Truck""Fortune",
    
"Cadrona""FBI Truck""Willard""Forklift""Tractor""Combine""Feltzer",
    
"Remington""Slamvan""Blade""Freight""Streak""Vortex""Vincent",
    
"Bullet""Clover""Sadler""Firetruck""Hustler""Intruder""Primo",
    
"Cargobob""Tampa""Sunrise""Merit""Utility""Nevada""Yosemite",
    
"Windsor""Monster B""Monster C""Uranus""Jester""Sultan""Stratium",
    
"Elegy""Raindance""RC Tiger""Flash""Tahoma""Savanna""Bandito",
    
"Freight Flat""Streak Carriage""Kart""Mower""Dune""Sweeper",
    
"Broadway""Tornado""AT-400""DFT-30""Huntley""Stafford""BF-400",
    
"News Van""Tug""Trailer""Emperor""Wayfarer""Euros""Hotdog""Club",
    
"Freight Box""Trailer""Andromada""Dodo""RC Cam""Launch""Police LS",
    
"Police SF""Police LV""Police Ranger""Picador""SWAT""Alpha",
    
"Phoenix""Glendale""Sadler""Luggage""Luggage""Stairs""Boxville",
    
"Tiller""Utility Trailer"
};
#if defined FILTERSCRIPT
public OnFilterScriptInit()
{
    
//Carica le gang
    
SetTimer("CheckGangPayDayTime"1000true);
    new 
GangFile[255], SlotFile[255];
    for(new 
gangid 0gangid MAX_GANGSgangid++)
    {
        
format(GangFilesizeof(GangFile), GangIDFilegangid);
        if(
dini_Exists(GangFile))
        {
               
GangInfo[gangid][GangID] = dini_Int(GangFile"GangID");
            
GangInfo[gangid][GangName] = dini_Get(GangFile"Name");
            
GangInfo[gangid][Tag] = dini_Get(GangFile"Tag");
            
GangInfo[gangid][Owner] = dini_Get(GangFile"Owner");
            
GangInfo[gangid][Color] = dini_Int(GangFile"Color");
            
GangInfo[gangid][Members] = dini_Int(GangFile"Members");
            
GangInfo[gangid][TotConqZ] = dini_Int(GangFile"TotConqZ");
            
GangInfo[gangid][TotKills] = dini_Int(GangFile"TotKills");
            
GangInfo[gangid][VehModel] = dini_Int(GangFile"VehModel");
            
GangInfo[gangid][VehCol1] = dini_Int(GangFile"VehCol1");
            
GangInfo[gangid][VehCol2] = dini_Int(GangFile"VehCol2");
            
            for(new 
slotidslotid MAX_PLAYERSslotid++)
            {
                
format(SlotFilesizeof(SlotFile), "Member_%d"slotid);
                
MemberInfo[gangid][slotid][Name] = dini_Get(GangFileSlotFile);
                
                
format(SlotFilesizeof(SlotFile), "MemberCash_%d"slotid);
                
MemberInfo[gangid][slotid][Percentage] = dini_Int(GangFileSlotFile);
            }
            
            
TotGang ++;
        }
    }
    
//Carica le GangZone
    
new ZoneFile[255];
    for(new 
zoneid 1zoneid MAX_ZONESzoneid++)
    {
        
format(ZoneFile,sizeof(ZoneFile),GangZoneFilezoneid);
        if(
dini_Exists(ZoneFile))
        {
            
ZoneInfo[zoneid][ID] = dini_Int(ZoneFile,"ZoneID");
            
ZoneInfo[zoneid][OfGangID] = dini_Int(ZoneFile,"OfGangID");
            
ZoneInfo[zoneid][PosX1] = dini_Float(ZoneFile,"X1");
            
ZoneInfo[zoneid][PosY1] = dini_Float(ZoneFile,"Y1");
            
ZoneInfo[zoneid][PosX2] = dini_Float(ZoneFile,"X2");
            
ZoneInfo[zoneid][PosY2] = dini_Float(ZoneFile,"Y2");
            
ZoneInfo[zoneid][ID] = zoneid;
               
ZoneInfo[zoneid][GZID] = GangZoneCreate(ZoneInfo[zoneid][PosX1], ZoneInfo[zoneid][PosY1], ZoneInfo[zoneid][PosX2], ZoneInfo[zoneid][PosY2]);
               if(
ZoneInfo[zoneid][OfGangID] == -1)
               {
                   for(new 
playerid 0playerid MAX_PLAYERSplayerid++)
                   {
                       if(
IsPlayerConnected(playerid)) GangZoneShowForPlayer(playeridZoneInfo[zoneid][GZID], GCOLOR_GRIGIO);
                }
            }
            else
            {
                
format(GangFilesizeof(GangFile), GangIDFileZoneInfo[zoneid][OfGangID]);
                if(
dini_Exists(GangFile))
                {
                    for(new 
playerid 0playerid MAX_PLAYERSplayerid++)
                       {
                           if(
IsPlayerConnected(playerid)) GangZoneShowForPlayer(playeridZoneInfo[zoneid][GZID], GangInfo[ZoneInfo[zoneid][OfGangID]][Color]);
                    }
                }
                else
                {
                    for(new 
playerid 0playerid MAX_PLAYERSplayerid++)
                       {
                           if(
IsPlayerConnected(playerid)) GangZoneShowForPlayer(playeridZoneInfo[zoneid][GZID], GCOLOR_GRIGIO);
                    }
                    
dini_IntSet(ZoneFile,"OfGangID", -1);
                    
ZoneInfo[zoneid][OfGangID] = -1;
                }
            }
            
ZoneInfo[zoneid][CKID] = CreateDynamicRectangle(ZoneInfo[zoneid][PosX1], ZoneInfo[zoneid][PosY1], ZoneInfo[zoneid][PosX2], ZoneInfo[zoneid][PosY2]);
            
TotZone ++;
            
ZoneInfo[zoneid][PickX] = dini_Float(ZoneFile,"PickX");
            
ZoneInfo[zoneid][PickY] = dini_Float(ZoneFile,"PickY");
            
ZoneInfo[zoneid][PickZ] = dini_Float(ZoneFile,"PickZ");
            
ZoneInfo[zoneid][PickUpCash] = dini_Int(ZoneFile,"Cash");
            
ZoneInfo[zoneid][PickUp] = CreatePickup(12741ZoneInfo[zoneid][PickX], ZoneInfo[zoneid][PickY], ZoneInfo[zoneid][PickZ]);
            new 
txt[50];
            
format(txtsizeof(txt), "Money\n%d$"ZoneInfo[zoneid][PickUpCash]);
            
ZoneInfo[zoneid][Label] = Create3DTextLabel(txtCOLOR_VERDEZoneInfo[zoneid][PickX], ZoneInfo[zoneid][PickY], ZoneInfo[zoneid][PickZ]+0.51000);
            for(new 
gvehicleidgvehicleid MAX_GVEHICLESgvehicleid++)
            {
                new 
strX[16], strY[16], strZ[16], strAngle[16];
                
format(strXsizeof(strX), "Veh%d_X"gvehicleid);
                
format(strYsizeof(strY), "Veh%d_Y"gvehicleid);
                
format(strZsizeof(strZ), "Veh%d_Z"gvehicleid);
                
format(strAnglesizeof(strAngle), "Veh%d_Ang"gvehicleid);
                
GangVehicle[zoneid][gvehicleid][PosX] = dini_Float(ZoneFilestrX);
                
GangVehicle[zoneid][gvehicleid][PosY] = dini_Float(ZoneFilestrY);
                
GangVehicle[zoneid][gvehicleid][PosZ] = dini_Float(ZoneFilestrZ);
                
GangVehicle[zoneid][gvehicleid][Angle] = dini_Float(ZoneFilestrAngle);
                if(
ZoneInfo[zoneid][OfGangID] != -1)
                {
                    new 
gangid ZoneInfo[zoneid][OfGangID], gPlate[8];
                    if(
GangInfo[gangid][VehModel] >= 400 && GangInfo[gangid][VehModel] <= 609 && GangVehicle[zoneid][gvehicleid][PosX] != 0)
                    {
                        new 
vehiclemodel GangInfo[gangid][VehModel], col1 GangInfo[gangid][VehCol1], col2 GangInfo[gangid][VehCol2];
                        
GangVehicle[zoneid][gvehicleid][VehID] = CreateVehicle(vehiclemodelGangVehicle[zoneid][gvehicleid][PosX], GangVehicle[zoneid][gvehicleid][PosY], GangVehicle[zoneid][gvehicleid][PosZ], GangVehicle[zoneid][gvehicleid][Angle], col1col21800000);
                        
format(gPlatesizeof(gPlate), "[%s]-%d"GangInfo[gangid][Tag], gvehicleid);
                        
SetVehicleNumberPlate(GangVehicle[zoneid][gvehicleid][VehID], gPlate);
                        
                        
TotVeh++;
                    }
                }
            }
        }
    }
    
    
TimerCash SetTimer("AddCashInPickUp"TimerAddCashtrue);
    for(new 
gangid 0gangid MAX_GANGSgangid++)
    {
        for(new 
zoneid 0zoneid MAX_ZONESzoneid++)
        {
            
Invaders[gangid][zoneid] = 0;
        }
    }
     
//Carica l'UserFile se il giocatore и connesso
     
new UserFile[255], pName[MAX_PLAYER_NAME];
     for(new 
playerid 0playerid MAX_PLAYERSplayerid++)
     {
         if(
IsPlayerConnected(playerid) && !IsPlayerNPC(playerid))
         {
             
PlayerInfo[playerid][InvitedByGang] = -1;
            
GetPlayerName(playeridpNamesizeof(pName));
            
format(UserFile,sizeof(UserFile),GangUserFilepName);
            if(!
dini_Exists(UserFile))
            {
                
dini_Create(UserFile);
                
dini_IntSet(UserFile,"GangID", -1);
                
dini_BoolSet(UserFile,"GangOwner"false);
               }
               
PlayerInfo[playerid][GangID] = dini_Int(UserFile,"GangID");
               
PlayerInfo[playerid][GangOwner] = dini_Bool(UserFile,"GangOwner");
               
//controlla se la gang del player esiste
               
format(GangFilesizeof(GangFile), GangIDFilePlayerInfo[playerid][GangID]);
            if(!
dini_Exists(GangFile))
            {
                
PlayerInfo[playerid][GangID] = -1;
                   
PlayerInfo[playerid][GangOwner] = false;
            }
        }
    }
    
//visualizza nel log/console quante GangZone e Gang sono state caricate
    
print("\n--------------------------------------");
    print(
"Gang system By DarK_FeneR Loaded");
    
printf("Zones loaded: %d"TotZone);
    
printf("Gangs loaded: %d"TotGang);
    
printf("Vehicles loaded: %d"TotVeh);
    print(
"--------------------------------------\n");
    return 
1;
}
public 
OnFilterScriptExit()
{
    
//Distrugge GangZone
    
for(new zoneid 1zoneid MAX_ZONESzoneid++)
    {
        
GangZoneDestroy(ZoneInfo[zoneid][GZID]);
        
DestroyDynamicArea(ZoneInfo[zoneid][CKID]);
        
DestroyPickup(ZoneInfo[zoneid][PickUp]);
        
Delete3DTextLabel(ZoneInfo[zoneid][Label]);
    }
    
KillTimer(TimerCash);
    
//salva gli userfile se il giocatore и connesso
    
for(new playerid 0playerid MAX_PLAYERSplayerid++)
    {
        new 
GangFile[255], pName[MAX_PLAYER_NAME];
        
GetPlayerName(playeridpNamesizeof(pName));
        
format(GangFile,sizeof(GangFile),GangUserFilepName);
        if(
dini_Exists(GangFile))
        {
            
dini_Create(GangFile);
            
dini_IntSet(GangFile,"GangID"PlayerInfo[playerid][GangID]);
            
dini_BoolSet(GangFile,"GangOwner"PlayerInfo[playerid][GangOwner]);
           }
    }
    return 
1;
}
#else
main()
{
    print(
"\n----------------------------------");
    print(
" Blank Gamemode by your name here");
    print(
"----------------------------------\n");
}
#endif
public OnPlayerRequestClass(playeridclassid)
{
    return 
1;
}
public 
OnPlayerConnect(playerid)
{
    
//carica l'UserFile
    
new UserFile[255], pName[MAX_PLAYER_NAME];
    
GetPlayerName(playeridpNamesizeof(pName));
    
format(UserFile,sizeof(UserFile),GangUserFilepName);
    if(!
dini_Exists(UserFile))
    {
        
dini_Create(UserFile);
        
dini_IntSet(UserFile,"GangID", -1);
        
dini_BoolSet(UserFile,"GangOwner"false);
       }
       
PlayerInfo[playerid][GangID] = dini_Int(UserFile,"GangID");
       
PlayerInfo[playerid][GangOwner] = dini_Bool(UserFile,"GangOwner");
    return 
1;
}
public 
OnPlayerDisconnect(playeridreason)
{
    
//salva l'UserFile
    
new GangFile[255], pName[MAX_PLAYER_NAME];
    
GetPlayerName(playeridpNamesizeof(pName));
    
format(GangFile,sizeof(GangFile),GangUserFilepName);
    if(
dini_Exists(GangFile))
    {
        
dini_Create(GangFile);
        
dini_IntSet(GangFile,"GangID"PlayerInfo[playerid][GangID]);
        
dini_BoolSet(GangFile,"GangOwner"PlayerInfo[playerid][GangOwner]);
       }
    return 
1;
}
public 
OnPlayerSpawn(playerid)
{
    if(
PlayerInfo[playerid][GangID] != -1SetPlayerColor(playeridGangInfo[PlayerInfo[playerid][GangID]][Color]); //setta il colore della gang al player se и in qualche gang
    //fa visualizzare le GangZone al player che si и connesso
       
new ZoneFile[255];
       for(new 
zoneid 1zoneid MAX_ZONESzoneid++)
    {
        
format(ZoneFile,sizeof(ZoneFile),GangZoneFilezoneid);
        if(
dini_Exists(ZoneFile))
        {
               if(
ZoneInfo[zoneid][OfGangID] == -1)
               {
                
GangZoneShowForPlayer(playeridZoneInfo[zoneid][GZID], GCOLOR_GRIGIO);
            }
            else
            {
                
GangZoneShowForPlayer(playeridZoneInfo[zoneid][GZID], GangInfo[ZoneInfo[zoneid][OfGangID]][Color]);
            }
           }
    }
    return 
1;
}
public 
OnPlayerDeath(playeridkilleridreason)
{
    if(
PlayerInfo[killerid][GangID] != -&& PlayerInfo[playerid][GangID] != -1)
    {
        
//increase TotKills to killer's gang
        
new gangid PlayerInfo[killerid][GangID], GangFile[255];
        
format(GangFilesizeof(GangFile), GangIDFilegangid);
        
dini_IntSet(GangFile"TotKills"GangInfo[gangid][TotKills]++);
        
GangInfo[gangid][TotKills] = dini_Int(GangFile"TotKills");
        
        
#if AllowDecreaseTotKills == true
        //decrease TotKills to killed's gang
        
gangid PlayerInfo[playerid][GangID];
        
format(GangFilesizeof(GangFile), GangIDFilegangid);
        
dini_IntSet(GangFile"TotKills"GangInfo[gangid][TotKills]++);
        
GangInfo[gangid][TotKills] = dini_Int(GangFile"TotKills");
        
#endif
    
}
    return 
1;
}
public 
OnVehicleSpawn(vehicleid)
{
    return 
1;
}
public 
OnVehicleDeath(vehicleidkillerid)
{
    return 
1;
}
public 
OnPlayerText(playeridtext[])
{
    if(
text[0] == '!' && PlayerInfo[playerid][GangID] != -1)
    {
        if(
strlen(text) < 2) return 1;
        new 
string[128];
        new 
name[MAX_PLAYER_NAME];
        new 
gangid PlayerInfo[playerid][GangID];
        
GetPlayerName(playeridnamesizeof(name));
        
format(stringsizeof(string), "[GANG][%s: %s]"nametext[1]);
        for(new 
0MAX_PLAYERSp++)
        {
            if(
IsPlayerConnected(p) && PlayerInfo[p][GangID] == gangidSendClientMessage(pGangInfo[gangid][Color], string);
        }
        return 
0;
    }
    return 
1;
}
public 
OnPlayerCommandText(playeridcmdtext[])
{
    
dcmd(g1cmdtext);
    
dcmd(gang4cmdtext);
    return 
0;
}
//gang inizio
dcmd_g(playeridparams[]) return dcmd_gang(playeridparams);
dcmd_gang(playeridparams[])
{
    new 
gcmd[32];
    if(
sscanf(params"s[32]"gcmd))
    {
        
SendClientMessage(playeridCOLOR_ARANCIONE"Use: /g(ang) <Type>");
        
SendClientMessage(playeridCOLOR_GIALLO"_________________Gang System Commands_________________");
        
SendClientMessage(playeridCOLOR_VERDE"/g(ang) info - Help the gang system");
        
SendClientMessage(playeridCOLOR_VERDE"/g(ang) stats - Look at the details of the gang");
        
SendClientMessage(playeridCOLOR_VERDE"/g(ang) top - See the score of the gangs");
        
SendClientMessage(playeridCOLOR_VERDE"/g(ang) list - Generate a list of gang created along with the gang info");
        
SendClientMessage(playeridCOLOR_VERDE"/g(ang) create - Create a new gang");
        if(
PlayerInfo[playerid][GangOwner] == true)
        {
            
SendClientMessage(playeridCOLOR_VERDE"/g(ang) tag - Set tag for the gang");
            
SendClientMessage(playeridCOLOR_VERDE"/g(ang) color - Select the color of the gang");
            
SendClientMessage(playeridCOLOR_VERDE"/g(ang) kick - Kick a member of the gang");
            
SendClientMessage(playeridCOLOR_VERDE"/g(ang) PaymentSet - Set the payday's percentage of a Member");
        }
        
SendClientMessage(playeridCOLOR_VERDE"/g(ang) invite - Invites a player to enter the gang");
        
SendClientMessage(playeridCOLOR_VERDE"/g(ang) join - Get into the gang to which you have been invited");
        
SendClientMessage(playeridCOLOR_VERDE"/g(ang) leave - Leave the gang");
        
SendClientMessage(playeridCOLOR_VERDE"/g(ang) PaymentList - See percentage of all member's payday");
        
SendClientMessage(playeridCOLOR_GIALLO"______________________________________________________");
        return 
1;
    }
    if(
strcmp("info"gcmdtruesizeof(gcmd)) == 0)
    {
        
SendClientMessage(playeridCOLOR_GIALLO"_________________Tutorial Gang System_________________");
        
SendClientMessage(playeridCOLOR_VERDE"Conquest: In order to win GangZone must be at least 2");
        
SendClientMessage(playeridCOLOR_VERDE"Conquest: If the GangZone is not nobody takes 30 seconds if you are already conquered two minutes");
        
SendClientMessage(playeridCOLOR_VERDE"Earnings: Every conquest of GangZone receive Money");
        
SendClientMessage(playeridCOLOR_VERDE"Earnings: The founder may collect the revenues of the zones (money) and can spartirli, HE WANTS");
        
SendClientMessage(playeridCOLOR_VERDE"Earnings: Most areas have and the more money you'll get");
        
SendClientMessage(playeridCOLOR_VERDE"Withdrawal revenues: The founder may withdraw the revenues going into a Pickup ($ symbol)");
        
SendClientMessage(playeridCOLOR_VERDE"Withdrawal revenues: The Pickup can be found in all gangzone (PS: you can find inside interior sometimes");
        
SendClientMessage(playeridCOLOR_VERDE"Gang Chat: Each gang has its own chat, to use it just type '!' + Text (eg '! Let's win?')");
          
SendClientMessage(playeridCOLOR_GIALLO"______________________________________________________");
        return 
1;
    }
     if(
strcmp(gcmd"create"truesizeof(gcmd)) == 0)
    {
        if(
PlayerInfo[playerid][GangID] != -1) return SendClientMessage(playeridCOLOR_VERDE"You're already in a gang, use /g(ang) leave to leave the gang");
        
ShowPlayerDialog(playeridDIALOG_GANGCREATEDIALOG_STYLE_INPUT"Gang Create""Input the nome of your new gang""Ok""Cancel");
        return 
1;
    }
     if(
strcmp("tag"gcmdtruesizeof(gcmd)) == 0)
    {
        if(
PlayerInfo[playerid][GangID] == -1) return SendClientMessage(playeridCOLOR_ROSSO"You aren't in any gang!");
        if(
PlayerInfo[playerid][GangOwner] == false) return SendClientMessage(playeridCOLOR_ROSSO"You need to be founder of the gang!");
        
ShowPlayerDialog(playeridDIALOG_GANGTAGDIALOG_STYLE_INPUT"Gang Tag""Input the tag for your gang""Ok""Cancel");
        return 
1;
    }
    if(
strcmp("color"gcmdtruesizeof(gcmd)) == 0)
    {
        if(
PlayerInfo[playerid][GangID] == -1) return SendClientMessage(playeridCOLOR_ROSSO"You aren't in any gang!");
        if(
PlayerInfo[playerid][GangOwner] == false) return SendClientMessage(playeridCOLOR_ROSSO"You need to be founder of the gang!");
        
ShowPlayerDialog(playeridDIALOG_GANGCOLOURDIALOG_STYLE_LIST"Change Gang Color""{FF0000}Red\n{9900FF}Fuchsia\n{0000FF}Blue\n{0066FF}Light Blue\n{00FF00}Green\n{00FF99}Water Green\n{FFFF00}Yellow\n{FF9900}Orange\n{663300}Brown\n{FF6666}Pink\n{9900FF}Salmon""Ok""Cancel");
        return 
1;
    }
     if(
strcmp("zone"gcmdtruesizeof(gcmd)) == 0)
    {
        if(!
IsPlayerAdmin(playerid)) return SendClientMessage(playeridCOLOR_VERDE"You need to be admin RCon to use this command!");
         if(
CreatingZone == false)
         {
            
GetPlayerPos(playeridZonePos[0][0], ZonePos[0][1], ZonePos[0][2]);
            
CreatingZone true;
            
SendClientMessage(playeridCOLOR_GIALLO"Redo the command in the other side to terminate the creation");
        }
        else
        {
            
CreatingZone false;
            
GetPlayerPos(playeridZonePos[1][0], ZonePos[1][1], ZonePos[1][2]);
            for(new 
zoneid 1zoneid <= MAX_ZONESzoneid++) //inizio controllo degli ID liberi
             
{
                new 
ZoneFile[255];
                 
format(ZoneFile,sizeof(ZoneFile),GangZoneFilezoneid);
                 if(!
dini_Exists(ZoneFile))
                 {
                     
//salvataggio CFG
                     
new cfgFile[255];
                     
TotZone ++;
                    
format(cfgFile,sizeof(cfgFile),GangCFGFile);
                    
dini_Create(cfgFile);
                    
dini_IntSet(cfgFile,"TotZone"TotZone);
                    
//creazione zona
                    
format(ZoneFile,sizeof(ZoneFile),GangZoneFilezoneid);
                    
dini_Create(ZoneFile);
                    
dini_IntSet(ZoneFile,"ZoneID"zoneid);
                     
dini_IntSet(ZoneFile,"OfGangID", -1);
                     if(
ZonePos[0][0] < ZonePos[1][0])
                    {
                        
dini_FloatSet(ZoneFile,"X1"ZonePos[0][0]);
                        
dini_FloatSet(ZoneFile,"X2"ZonePos[1][0]);
                    }
                    else
                    {
                        
dini_FloatSet(ZoneFile,"X1"ZonePos[1][0]);
                        
dini_FloatSet(ZoneFile,"X2"ZonePos[0][0]);
                    }
                    if(
ZonePos[0][1] < ZonePos[1][1])
                    {
                        
dini_FloatSet(ZoneFile,"Y1"ZonePos[0][1]);
                        
dini_FloatSet(ZoneFile,"Y2"ZonePos[1][1]);
                    }
                    else
                    {
                        
dini_FloatSet(ZoneFile,"Y1"ZonePos[1][1]);
                        
dini_FloatSet(ZoneFile,"Y2"ZonePos[0][1]);
                    }
                    
ZoneInfo[zoneid][ID] = dini_Int(ZoneFile,"ZoneID");
                    
ZoneInfo[zoneid][OfGangID] = dini_Int(ZoneFile,"OfGangID");
                    
ZoneInfo[zoneid][PosX1] = dini_Float(ZoneFile,"X1");
                    
ZoneInfo[zoneid][PosY1] = dini_Float(ZoneFile,"Y1");
                    
ZoneInfo[zoneid][PosX2] = dini_Float(ZoneFile,"X2");
                    
ZoneInfo[zoneid][PosY2] = dini_Float(ZoneFile,"Y2");
                    
ZoneInfo[zoneid][GZID] = GangZoneCreate(ZoneInfo[zoneid][PosX1], ZoneInfo[zoneid][PosY1], ZoneInfo[zoneid][PosX2], ZoneInfo[zoneid][PosY2]);
                    if(
ZoneInfo[zoneid][OfGangID] == -1)
                       {
                        
GangZoneShowForAll(ZoneInfo[zoneid][GZID], GCOLOR_GRIGIO);
                    }
                    else
                    {
                        
GangZoneShowForAll(ZoneInfo[zoneid][GZID], GangInfo[ZoneInfo[zoneid][OfGangID]][Color]);
                    }
                    
ZoneInfo[zoneid][CKID] = CreateDynamicRectangle(ZoneInfo[zoneid][PosX1], ZoneInfo[zoneid][PosY1], ZoneInfo[zoneid][PosX2], ZoneInfo[zoneid][PosY2]);
                    
//ferma il ciclo dopo la creazione gang
                    
zoneid MAX_ZONES;
                }
            }
        }
        return 
1;
    }
    if(
strcmp("pickup"gcmdtruesizeof(gcmd)) == 0)
    {
        if(!
IsPlayerAdmin(playerid)) return SendClientMessage(playeridCOLOR_VERDE"You need to be admin RCon to use this command!");
        
ShowPlayerDialog(playeridDIALOG_GANGPICKUPDIALOG_STYLE_INPUT"PickUp Zone Create""Input the ID of the zone to assign the Pickup""Ok""Cancel");
        return 
1;
    }
    if(
strcmp("stats"gcmdtruesizeof(gcmd)) == 0)
    {
        new 
gangid PlayerInfo[playerid][GangID];
        if(
gangid == -1) return SendClientMessage(playeridCOLOR_ROSSO"You aren't in any gang!");
        new 
GangFile[255];
        
format(GangFilesizeof(GangFile), GangIDFilegangid);
        if(!
dini_Exists(GangFile)) return SendClientMessage(playeridCOLOR_ROSSO"Gang doesn't exist! Il founder will abandoned the gang...");
        new 
MembriOn 0;
        for(new 
0MAX_PLAYERSl++)
        {
            if(
IsPlayerConnected(l) && PlayerInfo[l][GangID] == gangidMembriOn ++;
        }
        new 
ZoneDellaGang 0;
        new 
ZoneFile[255];
        for(new 
0MAX_ZONESz++)
        {
            
format(ZoneFilesizeof(ZoneFile), GangZoneFilez);
            if(
dini_Exists(ZoneFile)) if(ZoneInfo[z][OfGangID] == gangidZoneDellaGang ++;
        }
        new 
strENG[255];
        
format(strENGsizeof(strENG), "ID: %d | Name: %s | Founder: %s | Conquired zones: %d | Online Members: %d"GangInfo[gangid][GangID], GangInfo[gangid][GangName], GangInfo[gangid][Owner], ZoneDellaGangMembriOn);
        
SendClientMessage(playeridGangInfo[gangid][Color], strENG);
        return 
1;
    }
    if(
strcmp("invite"gcmdtruesizeof(gcmd)) == 0)
    {
        if(
PlayerInfo[playerid][GangID] == -1) return SendClientMessage(playeridCOLOR_ROSSO"You aren't in any gang!");
        new 
gangid PlayerInfo[playerid][GangID];
        if(
GangInfo[gangid][Members] >= MAX_MEMBERS) return SendClientMessage(playeridCOLOR_ROSSO"Gang reached maximum members");
        
ShowPlayerDialog(playeridDIALOG_GANGINVITEDIALOG_STYLE_INPUT"Gang Invite""Insert the ID of the Player to invite""Ok""Cancel");
        return 
1;
    }
    if(
strcmp("join"gcmdtruesizeof(gcmd)) == 0)
    {
        if(
PlayerInfo[playerid][GangID] != -1) return SendClientMessage(playeridCOLOR_ROSSO"Are you already part of a gang! Use / gang leave to leave the gang present");
        if(
PlayerInfo[playerid][InvitedByGang] == -1) return SendClientMessage(playeridCOLOR_ROSSO"You have no invitation gang");
        new 
gangid PlayerInfo[playerid][InvitedByGang];
        if(
GangInfo[gangid][Members] >= MAX_MEMBERS) return SendClientMessage(playeridCOLOR_ROSSO"Gang reached maximum members");
        new 
GangFile[255], pName[MAX_PLAYER_NAME], strENG[255], SlotFile[255], slotid CheckFreeGangSeat(gangid);
        
GetPlayerName(playeridpNamesizeof(pName));
        
        
format(GangFilesizeof(GangFile), GangIDFilegangid);
        
format(SlotFilesizeof(SlotFile), "Member_%d"slotid);
        
        
dini_Set(GangFileSlotFilepName);
        
MemberInfo[gangid][slotid][Name] = dini_Get(GangFileSlotFile);
        
        if(
IsPlayerInAnyDynamicArea(playerid))
        {
            new 
zoneid GetPlayerNumberDynamicAreas(playerid);
            
Invaders[gangid][zoneid] ++;
            if(
Invaders[gangid][zoneid] == MembersForConq)
            {
                for(new 
0MAX_PLAYERSl++)
                {
                    if(
IsPlayerConnected(l) && PlayerInfo[l][GangID] == gangid)
                    {
                        
SendClientMessage(lGangInfo[gangid][Color], "You are conquiring the zone");
                    }
                }
                
GangZoneFlashForAll(ZoneInfo[zoneid][GZID], GangInfo[gangid][Color]);
                if(
ZoneInfo[zoneid][OfGangID] != -1)
                {
                    
GangTimer[gangid][zoneid] = SetTimerEx("ConquistaGZ"TimeForConqfalse"ii"zoneidgangid);
                }
                else
                {
                    
GangTimer[gangid][zoneid] = SetTimerEx("ConquistaGZ"TimeForConq/2false"ii"zoneidgangid);
                }
                for(new 
lMAX_PLAYERSl++)
                {
                    if(
IsPlayerConnected(l) && PlayerInfo[l][GangID] == ZoneInfo[zoneid][OfGangID] && PlayerInfo[playerid][GangID] != ZoneInfo[zoneid][OfGangID] && PlayerInfo[l][GangID] != -1)
                    {
                        
SendClientMessage(lGangInfo[ZoneInfo[zoneid][OfGangID]][Color], "Your zone is under attack!");
                    }
                }
            }
        }
          
        
GangInfo[gangid][Members] ++;
        
dini_IntSet(GangFile,"Members"GangInfo[gangid][Members]);
        
format(strENGsizeof(strENG), "%s (ID:%d) has joined the gang %s"pNameplayeridGangInfo[PlayerInfo[playerid][InvitedByGang]][GangName]);
        
SendClientMessageToAll(GangInfo[gangid][Color], strENG);
        
format(strENGsizeof(strENG), "%s (ID:%d) has joined your gang"pNameplayerid);
        for(new 
0MAX_PLAYERSp++)
        {
            if(
IsPlayerConnected(p) && PlayerInfo[p][GangID] == gangidSendClientMessage(pGangInfo[gangid][Color], strENG);
        }
        
SetPlayerColor(playeridGangInfo[gangid][Color]);
        
PlayerInfo[playerid][GangID] = PlayerInfo[playerid][InvitedByGang];
        
PlayerInfo[playerid][InvitedByGang] = -1;
        return 
1;
    }
    if(
strcmp("leave"gcmdtruesizeof(gcmd)) == 0)
    {
        if(
PlayerInfo[playerid][GangID] == -1) return SendClientMessage(playeridCOLOR_ROSSO"You aren't in any gang!");
        new 
GangFile[255], SlotFile[255], NomeGang[255];
        new 
gangid PlayerInfo[playerid][GangID];
        new 
strENG[255];
        if(
IsPlayerInAnyDynamicArea(playerid))
        {
            new 
zoneid GetPlayerNumberDynamicAreas(playerid);
            
Invaders[gangid][zoneid] --;
            if(
Invaders[gangid][zoneid] < MembersForConq)
            {
                
KillTimer(GangTimer[gangid][zoneid]);
                
GangZoneStopFlashForAll(ZoneInfo[zoneid][GZID]);
            }
        }
        if(
PlayerInfo[playerid][GangOwner] == true)
        {
            
format(strENGsizeof(strENG), "The founder of the gang {FFFF00}'%s' {00FF00}has abandoned the gang. The gang has dissolved"GangInfo[gangid][GangName]);
            for(new 
0MAX_PLAYERSp++)
            {
                if(
IsPlayerConnected(p) && PlayerInfo[p][GangID] == gangid)
                {
                    
SendClientMessage(pCOLOR_VERDEstrENG);
                }
            }
            for(new 
1MAX_ZONESz++)
            {
                new 
ZoneFile[255];
                
format(ZoneFilesizeof(ZoneFile), GangZoneFilez);
                if(
dini_Exists(ZoneFile))
                {
                    if(
ZoneInfo[z][OfGangID] == gangid)
                    {
                        for(new 
gvehicleidgvehicleid MAX_GVEHICLESgvehicleid++) DestroyVehicle(GangVehicle[z][gvehicleid][VehID]);
                         
dini_IntSet(ZoneFile,"OfGangID",-1);
                        
ZoneInfo[z][OfGangID] = dini_Int(ZoneFile,"OfGangID");
                        
GangZoneShowForAll(ZoneInfo[z][GZID], GCOLOR_GRIGIO);
                    }
                }
            }
            
format(GangFilesizeof(GangFile), GangIDFilePlayerInfo[playerid][GangID]);
            if(
dini_Exists(GangFile))
            {
                
dini_Remove(GangFile);
            }
            
PlayerInfo[playerid][GangOwner] = false;
        }
        else
        {
            new 
slotid CheckGangPlayerSlot(gangidplayerid);
            
format(GangFilesizeof(GangFile), GangIDFilegangid);
            
format(SlotFilesizeof(GangFile), "Member_%d"slotid);
            
GangInfo[gangid][Members] --;
            
            
dini_IntSet(GangFile,"Members"GangInfo[gangid][Members]);
            
dini_Set(GangFileSlotFile"");
            
            
MemberInfo[gangid][slotid][Name] = dini_Get(GangFileSlotFile);
            
format(GangFilesizeof(GangFile), GangIDFilePlayerInfo[playerid][GangID]);
            if(
dini_Exists(GangFile))
            {
                
NomeGang dini_Get(GangFile,"Name");
            }
            
format(strENGsizeof(strENG), "You left the gang %s (ID:%d)"GangInfo[gangid][GangName], gangid);
            
SendClientMessage(playeridCOLOR_VERDEstrENG);
        }
        
        
PlayerInfo[playerid][GangID] = -1;
        
PlayerInfo[playerid][GangOwner] = false;
        return 
1;
    }
    if(
strcmp("kick"gcmdtruesizeof(gcmd)) == 0)
    {
        if(
PlayerInfo[playerid][GangOwner] == false) return SendClientMessage(playeridCOLOR_ROSSO"You need to be founder of the gang!");
         
ShowPlayerDialog(playeridDIALOG_GANGKICKDIALOG_STYLE_INPUT"Kick Player from Gang""Input the ID of the player to kick by the Gang""Ok""Cancel");
        return 
1;
    }
     if(
strcmp("list"gcmdtruesizeof(gcmd)) == 0)
    {
        
SendClientMessage(playeridCOLOR_VERDE"________________Gang List________________");
        for(new 
0MAX_GANGSg++)
        {
            new 
GangFile[255], strENG[255];
            
format(GangFilesizeof(GangFile), GangIDFileg);
            if(
dini_Exists(GangFile))
            {
                new 
MembriOn 0;
                for(new 
0MAX_PLAYERSl++)
                {
                    if(
IsPlayerConnected(l) && PlayerInfo[l][GangID] == gMembriOn ++;
                }
                new 
ZoneDellaGang 0;
                new 
ZoneFile[255];
                for(new 
0MAX_ZONESz++)
                {
                    
format(ZoneFilesizeof(ZoneFile), GangZoneFilez);
                    if(
dini_Exists(ZoneFile)) if(ZoneInfo[z][OfGangID] == gZoneDellaGang ++;
                }
                
format(strENGsizeof(strENG), "ID: %d | Name: %s | Founder: %s | Conquired zones: %d | Members: %d | Online Members: %d"GangInfo[g][GangID], GangInfo[g][GangName], GangInfo[g][Owner], ZoneDellaGangGangInfo[g][Members], MembriOn);
                
SendClientMessage(playeridGangInfo[g][Color], strENG);
            }
        }
        return 
1;
    }
    if(
strcmp("top"gcmdtruesizeof(gcmd)) == 0)
    {
        
SendClientMessage(playeridCOLOR_VERDE"________________Gang List________________");
        for(new 
0MAX_GANGSg++)
        {
            new 
GangFile[255], strENG[255];
            
format(GangFilesizeof(GangFile), GangIDFileg);
            if(
dini_Exists(GangFile))
            {
                new 
GangScore GangInfo[g][TotConqZ] + (GangInfo[g][TotKills]/10);
                
format(strENGsizeof(strENG), "ID: %d | Name: %s | Score: %d | Tot Conquired Zones: %d | Tot kills: %d"GangInfo[g][GangID], GangInfo[g][GangName], GangScoreGangInfo[g][TotConqZ], GangInfo[g][TotKills]);
                
SendClientMessage(playeridGangInfo[g][Color], strENG);
            }
        }
        return 
1;
    }
    if(
strcmp("resetcash"gcmdtruesizeof(gcmd)) == 0)
    {
        if(!
IsPlayerAdmin(playerid)) return SendClientMessage(playeridCOLOR_VERDE"You must be RCon Admin to use this command!");
        new 
ZoneFile[255];
        for(new 
zoneid 1zoneid <= MAX_ZONESzoneid++)
        {
            
format(ZoneFilesizeof(ZoneFile), GangZoneFilezoneid);
            if(
dini_Exists(ZoneFile))
            {
                
dini_IntSet(ZoneFile,"Cash"0);
                
ZoneInfo[zoneid][PickUpCash] = 0;
                new 
txt[50];
                  
format(txtsizeof(txt), "Money\n%d$"ZoneInfo[zoneid][PickUpCash]);
                
Update3DTextLabelText(ZoneInfo[zoneid][Label], COLOR_VERDEtxt);
            }
        }
        
SendClientMessage(playeridCOLOR_VERDE"Zones' zone resetted!");
        return 
1;
    }
    if(
strcmp("vehzone"gcmdtrue7) == 0)
    {
        if(!
IsPlayerAdmin(playerid)) return SendClientMessage(playeridCOLOR_ROSSO"You need to be admin RCon to use this command!");
        new 
zoneidgvehicleid;
        if(
sscanf(params"s[16]dd"gcmdzoneidgvehicleid)) return SendClientMessage(playeridCOLOR_ARANCIONE"Use: /g(ang) Vehicle <zoneid> <slotvehicleid>");
        if(
zoneid MAX_ZONES || zoneid 1) return SendClientMessage(playeridCOLOR_ROSSO"Zone ID too large or small");
        if(
gvehicleid >= MAX_GVEHICLES || gvehicleid 0) return SendClientMessage(playeridCOLOR_ROSSO"Vehicle slot too large or small");
        new 
FloatgvPos[3], FloatgvAngle;
        if(
IsPlayerInAnyVehicle(playerid))
        {
            new 
vehicleid GetPlayerVehicleID(playerid);
            
GetVehiclePos(vehicleidgvPos[0], gvPos[1], gvPos[2]);
            
GetVehicleZAngle(vehicleidgvAngle);
        }
        else
        {
            
GetPlayerPos(playeridgvPos[0], gvPos[1], gvPos[2]);
            
GetPlayerFacingAngle(playeridgvAngle);
        }
        new 
ZoneFile[255], strX[16], strY[16], strZ[16], strAngle[16];
        
format(ZoneFilesizeof(ZoneFile), GangZoneFilezoneid);
        
format(strXsizeof(strX), "Veh%d_X"gvehicleid);
        
format(strYsizeof(strY), "Veh%d_Y"gvehicleid);
        
format(strZsizeof(strZ), "Veh%d_Z"gvehicleid);
        
format(strAnglesizeof(strAngle), "Veh%d_Ang"gvehicleid);
        
dini_FloatSet(ZoneFilestrXgvPos[0]);
        
dini_FloatSet(ZoneFilestrYgvPos[1]);
        
dini_FloatSet(ZoneFilestrZgvPos[2]);
        
dini_FloatSet(ZoneFilestrAnglegvAngle);
        
GangVehicle[zoneid][gvehicleid][PosX] = dini_Float(ZoneFilestrX);
        
GangVehicle[zoneid][gvehicleid][PosY] = dini_Float(ZoneFilestrY);
        
GangVehicle[zoneid][gvehicleid][PosZ] = dini_Float(ZoneFilestrZ);
        
GangVehicle[zoneid][gvehicleid][Angle] = dini_Float(ZoneFilestrAngle);
        
        new 
strENG[128];
        
format(strENGsizeof(strENG), "vPosX: %0.02f | vPosY: %0.02f | vPosZ: %0.02f | vAng: %0.02f"GangVehicle[zoneid][gvehicleid][PosX], GangVehicle[zoneid][gvehicleid][PosY], GangVehicle[zoneid][gvehicleid][PosZ], GangVehicle[zoneid][gvehicleid][Angle]);
        
SendClientMessage(playeridCOLOR_VERDEstrENG);
        
DestroyVehicle(GangVehicle[zoneid][gvehicleid][VehID]);
        if(
ZoneInfo[zoneid][OfGangID] != -1)
        {
            new 
gangid ZoneInfo[zoneid][OfGangID], gPlate[8];
            if(
GangInfo[gangid][VehModel] >= 400 && GangInfo[gangid][VehModel] <= 611)
            {
                new 
vehiclemodel GangInfo[gangid][VehModel], col1 GangInfo[gangid][VehCol1], col2 GangInfo[gangid][VehCol2];
                
GangVehicle[zoneid][gvehicleid][VehID] = CreateVehicle(vehiclemodelGangVehicle[zoneid][gvehicleid][PosX], GangVehicle[zoneid][gvehicleid][PosY], GangVehicle[zoneid][gvehicleid][PosZ], GangVehicle[zoneid][gvehicleid][Angle], col1col21800000);
                
format(gPlatesizeof(gPlate), "[%s]-%d"GangInfo[gangid][Tag], gvehicleid);
                
SetVehicleNumberPlate(GangVehicle[zoneid][gvehicleid][VehID], gPlate);
            }
        }
        
format(strENGsizeof(strENG), "Zone ID: %d | Vehicle Slot: %d"zoneidgvehicleid);
        
SendClientMessage(playeridCOLOR_VERDEstrENG);
        return 
1;
    }
    
    if(
strcmp("paymentlist"gcmdtrue11) == 0)
    {
        if(
PlayerInfo[playerid][GangID] == -1) return SendClientMessage(playeridCOLOR_ROSSO"You aren't in any gang!");
        if(
PlayerInfo[playerid][GangOwner] == false) return SendClientMessage(playeridCOLOR_ROSSO"You need to be founder of the gang!");
        new 
strENG[512], gangid PlayerInfo[playerid][GangID], PerCentRemainstrTitle[128];
        
format(strENGsizeof(strENG), "Member Name\tPercentage\n");
        for(new 
slotidslotid MAX_MEMBERSslotid++)
        {
            if(
strlen(MemberInfo[gangid][slotid][Name]) > 1format(strENGsizeof(strENG), "%s{00FF00}%s\t%d/100\n"strENGMemberInfo[gangid][slotid][Name], MemberInfo[gangid][slotid][Percentage]);
            else 
format(strENGsizeof(strENG), "%s{FF0000}<Empty>\t%d/100\n"strENGMemberInfo[gangid][slotid][Name], MemberInfo[gangid][slotid][Percentage]);
            
PerCentRemain += MemberInfo[gangid][slotid][Percentage];
        }
        
        
PerCentRemain 100 PerCentRemain;
        
format(strTitlesizeof(strTitle), "Payment (%d/100 percentage Remains) Gang's Bank: $%d"PerCentRemainGangInfo[gangid][Bank]);
        
ShowPlayerDialog(playeridDIALOG_PAYMENTDIALOG_STYLE_TABLIST_HEADERSstrTitlestrENG"Select""Exit");
        return 
1;
    }
    
    if(
strcmp("paymentset"gcmdtrue10) == 0)
    {
        if(
PlayerInfo[playerid][GangID] == -1) return SendClientMessage(playeridCOLOR_ROSSO"You aren't in any gang!");
        if(
PlayerInfo[playerid][GangOwner] == false) return SendClientMessage(playeridCOLOR_ROSSO"You need to be founder of the gang!");
        new 
pName[MAX_PLAYER_NAME], UserPaystrENG[128];
        if(
sscanf(params"s[32]s[16]d"gcmdpNameUserPay)) return SendClientMessage(playeridCOLOR_ARANCIONE"Use: /g(ang) PaymentSet <NickName> <Percentage>");
        new 
GangFile[255], gangid PlayerInfo[playerid][GangID], SlotFile[255], slotid;
        
format(GangFilesizeof(GangFile), GangIDFilegangid);
        if(
IsNumeric(pName))
        {
            new 
UserID strval(pName);
            if(!
IsPlayerConnected(UserID)) return SendClientMessage(playeridCOLOR_ROSSO"The player is not connected");
            
slotid CheckGangPlayerSlot(gangidUserID);
            
        }
        else 
slotid CheckGangPlayerNameSlot(gangidpName);
        
        new 
PercentageRem;
        for(new 
sidsid MAX_MEMBERSsid++)
        {
            if(
sid == slotidPercentageRem += UserPay;
            else 
PercentageRem += MemberInfo[gangid][sid][Percentage];
        }
        
PercentageRem 100 PercentageRem;
        if(
PercentageRem 0) return SendClientMessage(playeridCOLOR_ROSSO"Percentage you wrote is too high");
        
format(SlotFilesizeof(SlotFile), "MemberCash_%d"slotid);
        
dini_IntSet(GangFileSlotFileUserPay);
        
MemberInfo[gangid][slotid][Percentage] = dini_Int(GangFileSlotFile);
        
        
format(strENGsizeof(strENG), "[GANG]You change %s's payment percentage to %d/100. %d/100 will give to the owner"pNameMemberInfo[gangid][slotid][Percentage], PercentageRem);
        
SendClientMessage(playeridCOLOR_VERDEstrENG);
        return 
1;
    }
    if(
strcmp("vehicle"gcmdtrue7) == 0)
    {
        if(
PlayerInfo[playerid][GangID] == -1) return SendClientMessage(playeridCOLOR_ROSSO"You aren't in any gang!");
        if(
PlayerInfo[playerid][GangOwner] == false) return SendClientMessage(playeridCOLOR_ROSSO"You need to be founder of the gang!");
        new 
modelidcol1col2;
        if(
sscanf(params"s[16]ddd"gcmdmodelidcol1col2)) return SendClientMessage(playeridCOLOR_ARANCIONE"Use: /g(ang) vehicle <modelid> <Color1> <Color2>");
        if(
modelid 400 || modelid 611) return SendClientMessage(playeridCOLOR_ROSSO"Use numbers from 400 to 611");
        new 
GangFile[255], gangid PlayerInfo[playerid][GangID];
        
format(GangFilesizeof(GangFile), GangIDFilegangid);
        
dini_IntSet(GangFile"VehModel"modelid);
        
dini_IntSet(GangFile"VehCol1"col1);
        
dini_IntSet(GangFile"VehCol2"col2);
        
GangInfo[gangid][VehModel] = dini_Int(GangFile"VehModel");
        
GangInfo[gangid][VehCol1] = dini_Int(GangFile"VehCol1");
        
GangInfo[gangid][VehCol2] = dini_Int(GangFile"VehCol2");
        
        new 
strENG[128];
        
format(strENGsizeof(strENG), "You setted %s (Model: %d) (Color 1: %d | Color 2: %d) as gang vehicle"VehicleNames[GangInfo[gangid][VehModel]-400], GangInfo[gangid][VehModel], GangInfo[gangid][VehCol1], GangInfo[gangid][VehCol2]);
        
SendClientMessage(playeridGangInfo[gangid][Color], strENG);
        for(new 
zoneid 1zoneid MAX_ZONESzoneid++)
        {
            if(
ZoneInfo[zoneid][PosX1] != && ZoneInfo[zoneid][OfGangID] == gangid)
            {
                new 
gPlate[8];
                for(new 
gvehicleidgvehicleid MAX_GVEHICLESgvehicleid++)
                {
                    
DestroyVehicle(GangVehicle[zoneid][gvehicleid][VehID]);
                       if(
GangVehicle[zoneid][gvehicleid][PosX] != 0)
                    {
                        
GangVehicle[zoneid][gvehicleid][VehID] = CreateVehicle(GangInfo[gangid][VehModel], GangVehicle[zoneid][gvehicleid][PosX], GangVehicle[zoneid][gvehicleid][PosY], GangVehicle[zoneid][gvehicleid][PosZ], GangVehicle[zoneid][gvehicleid][Angle], GangInfo[gangid][VehCol1], GangInfo[gangid][VehCol2], 1800000);
                        
format(gPlatesizeof(gPlate), "[%s]-%d"GangInfo[gangid][Tag], gvehicleid);
                        
SetVehicleNumberPlate(GangVehicle[zoneid][gvehicleid][VehID], gPlate);
                    }
                }
            }
        }
        return 
1;
    }
    return 
SendClientMessage(playeridCOLOR_ROSSO"[Gang]Unknown gang command: type /g(ang) to see all gang's commands");
}
//gang fine
public OnPlayerEnterVehicle(playeridvehicleidispassenger)
{
    return 
1;
}
public 
OnPlayerExitVehicle(playeridvehicleid)
{
    return 
1;
}
public 
OnPlayerStateChange(playeridnewstateoldstate)
{
    return 
1;
}
public 
OnPlayerEnterCheckpoint(playerid)
{
    return 
1;
}
public 
OnPlayerLeaveCheckpoint(playerid)
{
    return 
1;
}
public 
OnPlayerEnterRaceCheckpoint(playerid)
{
    return 
1;
}
public 
OnPlayerLeaveRaceCheckpoint(playerid)
{
    return 
1;
}
public 
OnRconCommand(cmd[])
{
    return 
1;
}
public 
OnPlayerRequestSpawn(playerid)
{
    return 
1;
}
public 
OnObjectMoved(objectid)
{
    return 
1;
}
public 
OnPlayerObjectMoved(playeridobjectid)
{
    return 
1;
}
public 
OnPlayerPickUpPickup(playeridpickupid)
{
    new 
ZoneFile[255], area[MAX_ZONES], zonaid;
    
GetPlayerDynamicAreas(playeridareasizeof(area));
    
zonaid area[0];
    
format(ZoneFilesizeof(ZoneFile), GangZoneFilezonaid);
    if(
pickupid == ZoneInfo[zonaid][PickUp])
    {
        if(
ZoneInfo[zonaid][OfGangID] == -1) return SendClientMessage(playeridCOLOR_ROSSO"To withdraw the cash of the zone, the zone must be of your gang");
        if(
PlayerInfo[playerid][GangID] != ZoneInfo[zonaid][OfGangID]) return SendClientMessage(playeridCOLOR_ROSSO"To withdraw the cash of the zone, the zone must be of your gang");
        if(
PlayerInfo[playerid][GangOwner] == false) return SendClientMessage(playeridCOLOR_ROSSO"Per ritirare i soldi della zona devi essere il Founder della gang To withdraw the cash of the zone you must be Founder of the gang");
        if(
ZoneInfo[zonaid][PickUpCash] == 0) return SendClientMessage(playeridCOLOR_ROSSO"There are no money... What do you want to withdraw?");
        
GangZoneStopFlashForPlayer(playeridZoneInfo[zonaid][GZID]);
          new 
String[255], GangFile[255], gangid PlayerInfo[playerid][GangID];
          
format(GangFilesizeof(GangFile), GangIDFilegangid);
        
format(Stringsizeof(String), "You dropped the gain of the zone: %d$"ZoneInfo[zonaid][PickUpCash]);
        
SendClientMessage(playeridGangInfo[PlayerInfo[playerid][GangID]][Color], String);
        
dini_IntSet(GangFile"Bank"GangInfo[gangid][Bank] + ZoneInfo[zonaid][PickUpCash]);
        
GangInfo[gangid][Bank] = dini_Int(GangFile"Bank");
        
         
ZoneInfo[zonaid][PickUpCash] = 0;
        
dini_IntSet(ZoneFile"Cash"0);
        new 
txt[50];
          
format(txtsizeof(txt), "Money\n%d$"ZoneInfo[zonaid][PickUpCash]);
        
Update3DTextLabelText(ZoneInfo[zonaid][Label], COLOR_VERDEtxt);
    }
    return 
1;
}
public 
OnVehicleMod(playeridvehicleidcomponentid)
{
    return 
1;
}
public 
OnVehiclePaintjob(playeridvehicleidpaintjobid)
{
    return 
1;
}
public 
OnVehicleRespray(playeridvehicleidcolor1color2)
{
    return 
1;
}
public 
OnPlayerSelectedMenuRow(playeridrow)
{
    return 
1;
}
public 
OnPlayerExitedMenu(playerid)
{
    return 
1;
}
public 
OnPlayerInteriorChange(playeridnewinterioridoldinteriorid)
{
    return 
1;
}
public 
OnPlayerKeyStateChange(playeridnewkeysoldkeys)
{
    return 
1;
}
public 
OnRconLoginAttempt(ip[], password[], success)
{
    return 
1;
}
public 
OnPlayerUpdate(playerid)
{
    return 
1;
}
public 
OnPlayerStreamIn(playeridforplayerid)
{
    return 
1;
}
public 
OnPlayerStreamOut(playeridforplayerid)
{
    return 
1;
}
public 
OnVehicleStreamIn(vehicleidforplayerid)
{
    return 
1;
}
public 
OnVehicleStreamOut(vehicleidforplayerid)
{
    return 
1;
}
public 
OnDialogResponse(playeriddialogidresponselistiteminputtext[])
{
    
//gang inizio
    
if(dialogid == DIALOG_GANGCREATE)
    {
        if(
response)
        {
            if(
strlen(inputtext) > 20 || strlen(inputtext) < ) return SendClientMessage(playeridCOLOR_ROSSO"Invalid name's lenght. MIN 4 - MAX 19 letters");
             new 
GangFile[255];
             for(new 
gangid 0gangid MAX_GANGSgangid++) //inizio controllo degli id liberi
             
{
                 
format(GangFile,sizeof(GangFile),GangIDFilegangid);
                 if(!
dini_Exists(GangFile))
                 {
                     
//salvataggio CFG
                     
new cfgFile[255];
                     
TotGang ++;
                    
format(cfgFile,sizeof(GangFile),GangCFGFile);
                    
dini_Create(cfgFile);
                    
dini_IntSet(cfgFile,"TotGang"TotGang);
                    
//creazione gang
                    
format(GangFile,sizeof(GangFile),GangIDFilegangid);
                    
GangInfo[gangid][GangID] = gangid;
                    
GetPlayerName(playeridGangInfo[gangid][Owner], 30);
                    
dini_Create(GangFile);
                    
dini_IntSet(GangFile,"GangID"GangInfo[gangid][GangID]);
                    
dini_IntSet(GangFile,"Color", -1);
                    
dini_Set(GangFile,"Name"inputtext);
                    
dini_Set(GangFile,"Tag""");
                    
dini_Set(GangFile,"Owner"GangInfo[gangid][Owner]);
                    
dini_IntSet(GangFile,"Members"1);
                       
GangInfo[gangid][GangID] = dini_Int(GangFile,"GangID");
                       
GangInfo[gangid][Color] = dini_Int(GangFile,"Color");
                       
GangInfo[gangid][GangName] = dini_Get(GangFile,"Name");
                       
GangInfo[gangid][Tag] = dini_Get(GangFile,"Tag");
                       
GangInfo[gangid][Owner] = dini_Get(GangFile,"Owner");
                       
GangInfo[gangid][Members] = dini_Int(GangFile,"Members");
                       
//mostra info gang creata
                       
PlayerInfo[playerid][GangID] = gangid;
                       
PlayerInfo[playerid][GangOwner] = true;
                       new 
strENG[255];
                       
format(strENGsizeof(strENG), "ID Gang: %d | Gang Name: %s | Founder: %s"GangInfo[gangid][GangID], GangInfo[gangid][GangName], GangInfo[gangid][Owner]);
                       
SendClientMessage(playeridCOLOR_VERDEstrENG);
                       
//ferma il ciclo dopo la creazione gang
                       
gangid MAX_GANGS;
                       
//manda al dialogo della scelta colore della gang
                    
ShowPlayerDialog(playeridDIALOG_GANGCOLOURDIALOG_STYLE_LIST"Change Gang Color""{FF0000}Red\n{9900FF}Fuchsia\n{0000FF}Blue\n{0066FF}Light Blue\n{00FF00}Green\n{00FF99}Water Green\n{FFFF00}Yellow\n{FF9900}Orange\n{663300}Brown\n{FF6666}Pink\n{9900FF}Salmon""Ok""Cancel");
                   }
            }
        }
    }
    if(
dialogid == DIALOG_GANGTAG)
    {
        if(
response)
        {
            if(
strlen(inputtext) < || strlen(inputtext) > 4) return SendClientMessage(playeridCOLOR_ROSSO"The tag must have minimum 1 and maximum 4 characters!");
            if(
strfind(inputtext"["true) != -|| strfind(inputtext"]"true) != -1) return SendClientMessage(playeridCOLOR_ROSSO"Don't use square brackets ('[' e ']')");
            new 
gangid PlayerInfo[playerid][GangID];
            new 
GangFile[255];
            
format(GangFilesizeof(GangFile), GangIDFilegangid);
            if(
dini_Exists(GangFile))
            {
                
dini_Set(GangFile,"Tag"inputtext);
                
GangInfo[gangid][Tag] = dini_Get(GangFile,"Tag");
                new 
gPlate[8];
                for(new 
zoneid 1zoneid <= MAX_ZONESzoneid++)
                {
                    for(new 
gvehicleidgvehicleid MAX_GVEHICLESgvehicleid++)
                    {
                        
DestroyVehicle(GangVehicle[zoneid][gvehicleid][VehID]);
                        if(
GangInfo[gangid][VehModel] >= 400 && GangInfo[gangid][VehModel] <= 609 && GangVehicle[zoneid][gvehicleid][PosX] != && GangVehicle[zoneid][gvehicleid][PosY] != && GangVehicle[zoneid][gvehicleid][PosZ] != 0)
                        {
                            new 
vehiclemodel GangInfo[gangid][VehModel], col1 GangInfo[gangid][VehCol1], col2 GangInfo[gangid][VehCol2];
                            
GangVehicle[zoneid][gvehicleid][VehID] = CreateVehicle(vehiclemodelGangVehicle[zoneid][gvehicleid][PosX], GangVehicle[zoneid][gvehicleid][PosY], GangVehicle[zoneid][gvehicleid][PosZ], GangVehicle[zoneid][gvehicleid][Angle], col1col21800000);
                            
format(gPlatesizeof(gPlate), "[%s]-%d"GangInfo[gangid][Tag], gvehicleid);
                            
SetVehicleNumberPlate(GangVehicle[zoneid][gvehicleid][VehID], gPlate);
                        }
                    }
                }
                new 
strENG[255];
                
format(strENGsizeof(strENG), "The gang's founder has setted [%s] as the gang tag"GangInfo[gangid][Tag]);
                for(new 
pMAX_PLAYERSp++)
                {
                    if(
IsPlayerConnected(p) && PlayerInfo[p][GangID] == gangid)
                    {
                        
SendClientMessage(pGangInfo[gangid][Color], strENG);
                    }
                }
                
format(strENGsizeof(strENG), "You've setted [%s] as the gang tag"GangInfo[gangid][Tag]);
                
SendClientMessage(playeridGangInfo[playerid][Color], strENG);
            }
        }
    }
    if(
dialogid == DIALOG_GANGCOLOUR)
    {
        new 
gangid PlayerInfo[playerid][GangID];
        if(
response)
        {
            new 
GangFile[255];
            
format(GangFilesizeof(GangFile), GangIDFilegangid);
            if(
dini_Exists(GangFile))
             {
                 switch(
listitem)
                 {
                     case 
0: if(dini_Exists(GangFile)) dini_IntSet(GangFile,"Color"GCOLOR_ROSSO);
                    case 
1: if(dini_Exists(GangFile)) dini_IntSet(GangFile,"Color"GCOLOR_FUCSIA);
                    case 
2: if(dini_Exists(GangFile)) dini_IntSet(GangFile,"Color"GCOLOR_BLU);
                    case 
3: if(dini_Exists(GangFile)) dini_IntSet(GangFile,"Color"GCOLOR_CELESTE);
                    case 
4: if(dini_Exists(GangFile)) dini_IntSet(GangFile,"Color"GCOLOR_VERDE);
                    case 
5: if(dini_Exists(GangFile)) dini_IntSet(GangFile,"Color"GCOLOR_VERDEACQUA);
                    case 
6: if(dini_Exists(GangFile)) dini_IntSet(GangFile,"Color"GCOLOR_GIALLO);
                    case 
7: if(dini_Exists(GangFile)) dini_IntSet(GangFile,"Color"GCOLOR_ARANCIONE);
                    case 
8: if(dini_Exists(GangFile)) dini_IntSet(GangFile,"Color"GCOLOR_MARRONE);
                    case 
9: if(dini_Exists(GangFile)) dini_IntSet(GangFile,"Color"GCOLOR_ROSA);
                    case 
10: if(dini_Exists(GangFile)) dini_IntSet(GangFile,"Color"GCOLOR_SALMONE);
                }
            }
            
GangInfo[gangid][Color] = dini_Int(GangFile,"Color");
            
SendClientMessage(playeridGangInfo[gangid][Color], "You've setted the gang's color");
            for(new 
0MAX_PLAYERSp++)
            {
                if(
IsPlayerConnected(p) && PlayerInfo[p][GangID] == gangid)
                {
                    
SetPlayerColor(pGangInfo[gangid][Color]);
                }
            }
            if(
IsPlayerInAnyDynamicArea(playerid))
            {
                new 
zoneid GetPlayerNumberDynamicAreas(playerid);
                
Invaders[gangid][zoneid] ++;
                if(
Invaders[gangid][zoneid] == MembersForConq)
                {
                    for(new 
0MAX_PLAYERSl++)
                    {
                        if(
IsPlayerConnected(l) && PlayerInfo[l][GangID] == gangid)
                        {
                            
SendClientMessage(lGangInfo[gangid][Color], "You are conquiring the zone");
                        }
                    }
                    
GangZoneFlashForAll(ZoneInfo[zoneid][GZID], GangInfo[gangid][Color]);
                    if(
ZoneInfo[zoneid][OfGangID] != -1)
                    {
                        
GangTimer[gangid][zoneid] = SetTimerEx("ConquistaGZ"TimeForConqfalse"ii"zoneidgangid);
                    }
                    else
                    {
                        
GangTimer[gangid][zoneid] = SetTimerEx("ConquistaGZ"TimeForConq/2false"ii"zoneidgangid);
                    }
                    for(new 
lMAX_PLAYERSl++)
                    {
                        if(
IsPlayerConnected(l) && PlayerInfo[l][GangID] == ZoneInfo[zoneid][OfGangID] && PlayerInfo[playerid][GangID] != ZoneInfo[zoneid][OfGangID] && PlayerInfo[l][GangID] != -1)
                        {
                            
SendClientMessage(lGangInfo[ZoneInfo[zoneid][OfGangID]][Color], "Your zone is under attack!");
                        }
                    }
                }
            }
        }
        else
        {
            if(
GangInfo[gangid][Color] == -1)
            {
                new 
GangFile[255];
                
format(GangFilesizeof(GangFile), GangIDFilegangid);
                if(
dini_Exists(GangFile))
                {
                    
dini_Remove(GangFile);
                }
                
SendClientMessage(playeridCOLOR_ROSSO"In order to create a gang also need a color! The gang has been deleted.");
                
PlayerInfo[playerid][GangID] = -1;
            }
        }
    }
    if(
dialogid == DIALOG_GANGINVITE)
    {
        if(
response)
        {
            new 
strENG[255], pName[MAX_PLAYER_NAME], InviteNameInvite[MAX_PLAYER_NAME];
            
Invite strval(inputtext);
            
PlayerInfo[Invite][InvitedByGang] = PlayerInfo[playerid][GangID];
            
GetPlayerName(playeridpNamesizeof(pName));
            
GetPlayerName(InviteNameInvitesizeof(NameInvite));
            
format(strENGsizeof(strENG), "You've invited {FFFF00}%s {00FF00}(ID:{FFFF00}%d{00FF00}) to join your gang"NameInviteInvite);
            
SendClientMessage(playeridCOLOR_VERDEstrENG);
            
format(strENGsizeof(strENG), "%s (ID:%d) ti ha invitato ad entrare nella gang {FFFF00}'%s'{00FF00}. Use /gang join to accept"pNameplayeridGangInfo[PlayerInfo[playerid][GangID]][GangName]);
            
SendClientMessage(InviteCOLOR_VERDEstrENG);
        }
    }
    if(
dialogid == DIALOG_GANGKICK)
    {
        if(
response)
        {
             new 
gangid PlayerInfo[playerid][GangID];
            if(
IsNumeric(inputtext))
            {
                new 
PlayerToKick strval(inputtext);
                if(!
IsPlayerConnected(PlayerToKick)) return SendClientMessage(playeridCOLOR_ROSSO"The player with this ID isn't connected!");
                  if(
PlayerInfo[PlayerToKick][GangID] != PlayerInfo[playerid][GangID]) return SendClientMessage(playeridCOLOR_ROSSO"The player with this ID isn't in your gang!");
                  if(
PlayerToKick == playerid) return SendClientMessage(playeridCOLOR_ROSSO"You can't kick yourself!");
                new 
strENG[255], pName[MAX_PLAYER_NAME], PlayerToKickName[MAX_PLAYER_NAME], GangFile[255], SlotFile[255], slotid CheckGangPlayerSlot(gangidPlayerToKick);
                
GetPlayerName(playeridpNamesizeof(pName));
                
GetPlayerName(PlayerToKickPlayerToKickNamesizeof(PlayerToKickName));
                
format(strENGsizeof(strENG), "%s (ID:%d) {00FF00}have kicked you from gang {FFFF00}'%s'"pNameplayeridGangInfo[PlayerInfo[PlayerToKick][GangID]][GangName]);
                
SendClientMessage(PlayerToKickCOLOR_GIALLOstrENG);
                
format(GangFilesizeof(GangFile), GangIDFilegangid);
                
format(SlotFilesizeof(SlotFile), "Member_%d"slotid);
                
GangInfo[gangid][Members] --;
                
PlayerInfo[PlayerToKick][GangID] = -1;
                
dini_IntSet(GangFile"Members"GangInfo[gangid][Members]);
                
dini_Set(GangFileSlotFile"");
                
MemberInfo[gangid][slotid][Name] = dini_Get(GangFileSlotFile);
                
format(strENGsizeof(strENG), "%s (ID:%d) {00FF00}was kicked from your gang"PlayerToKickNamePlayerToKick);
                for(new 
0MAX_PLAYERSi++)
                {
                    if(
IsPlayerConnected(i) && PlayerInfo[i][GangID] == PlayerInfo[playerid][GangID]) SendClientMessage(iCOLOR_GIALLOstrENG);
                }
                
format(strENGsizeof(strENG), "You've kicked {FFFF00}%s (ID:%d) {00FF00}from your gang"PlayerToKickNamePlayerToKick);
                
SendClientMessage(playeridCOLOR_VERDEstrENG);
            }
            else
            {
                if(!
IsPlayerNameInGang(inputtextgangid)) return SendClientMessage(playeridCOLOR_ROSSO"This player is not in your gang");
                new 
slotid CheckGangPlayerNameSlot(gangidinputtext);
                new 
strENG[255], pName[MAX_PLAYER_NAME], GangFile[255], SlotFile[255];
                
GetPlayerName(playeridpNamesizeof(pName));
                new 
PlayerToKick IsPlayerConnectedWithName(inputtext);
                if(
PlayerToKick != -1)
                {
                    
format(strENGsizeof(strENG), "%s (ID:%d) {00FF00}have kicked you from the gang {FFFF00}'%s'"pNameplayeridGangInfo[gangid][GangName]);
                    
SendClientMessage(PlayerToKickCOLOR_GIALLOstrENG);
                }
                
format(GangFilesizeof(GangFile), GangIDFilegangid);
                
GangInfo[gangid][Members] --;
                
PlayerInfo[PlayerToKick][GangID] = -1;
                
dini_IntSet(GangFile"Members"GangInfo[gangid][Members]);
                
dini_Set(GangFileSlotFile"");
                
                
MemberInfo[gangid][slotid][Name] = dini_Get(GangFileSlotFile);
                
format(strENGsizeof(strENG), "%s (ID: Offline) {00FF00}was kicked from your gang"inputtext);
                for(new 
0MAX_PLAYERSi++)
                {
                    if(
IsPlayerConnected(i) && PlayerInfo[i][GangID] == PlayerInfo[playerid][GangID]) SendClientMessage(iCOLOR_GIALLOstrENG);
                }
                
format(strENGsizeof(strENG), "You've kicked {FFFF00}%s (ID: Offline) {00FF00}from your gang"inputtext);
                
SendClientMessage(playeridCOLOR_VERDEstrENG);
            }
        }
    }
    if(
dialogid == DIALOG_GANGPICKUP)
    {
        if(
response)
        {
            if(!
IsNumeric(inputtext)) return SendClientMessage(playeridCOLOR_ROSSO"The ID of the zone must contain only numbers!");
            new 
zonaidFloatPos[3];
            
zonaid strval(inputtext);
            new 
ZoneFile[255];
            
format(ZoneFilesizeof(ZoneFile), GangZoneFilezonaid);
            if(!
dini_Exists(ZoneFile)) return SendClientMessage(playeridCOLOR_ROSSO"Zone ID doesn't exists");
            
GetPlayerPos(playeridPos[0], Pos[1], Pos[2]);
            
dini_FloatSet(ZoneFile"PickX"Pos[0]);
            
dini_FloatSet(ZoneFile"PickY"Pos[1]);
            
dini_FloatSet(ZoneFile"PickZ"Pos[2]);
            
ZoneInfo[zonaid][PickX] = dini_Float(ZoneFile"PickX");
            
ZoneInfo[zonaid][PickY] = dini_Float(ZoneFile"PickY");
            
ZoneInfo[zonaid][PickZ] = dini_Float(ZoneFile"PickZ");
            
DestroyPickup(ZoneInfo[zonaid][PickUp]);
            
ZoneInfo[zonaid][PickUp] = CreatePickup(12741ZoneInfo[zonaid][PickX], ZoneInfo[zonaid][PickY], ZoneInfo[zonaid][PickZ]);
            
Delete3DTextLabel(ZoneInfo[zonaid][Label]);
            new 
txt[50];
            
format(txtsizeof(txt), "Money\n%d$"ZoneInfo[zonaid][PickUpCash]);
            
ZoneInfo[zonaid][Label] = Create3DTextLabel(txtCOLOR_VERDEZoneInfo[zonaid][PickX], ZoneInfo[zonaid][PickY], ZoneInfo[zonaid][PickZ]+0.51000);
            for(new 
0MAX_PLAYERSp++)
            {
                if(
IsPlayerConnected(p) && IsPlayerAdmin(p)) GangZoneStopFlashForPlayer(pZoneInfo[zonaid][GZID]);
            }
        }
    }
    
//gang fine
    
return 1;
}
public 
OnPlayerClickPlayer(playeridclickedplayeridsource)
{
    return 
1;
}
public 
OnPlayerEnterDynamicArea(playeridareaid)
{
    
//gang inizio
    
new string[255];
    new 
zoneid areaid;
    new 
gangid PlayerInfo[playerid][GangID];
    if(
gangid != -&& gangid != ZoneInfo[zoneid][OfGangID] && GetPlayerVirtualWorld(playerid) == 0Invaders[gangid][zoneid] ++;
    
format(stringsizeof(string), "[JOIN]ID zone: %d | Invaders: %d | OfGangID: %d | Your Gang ID: %d"zoneidInvaders[gangid][zoneid], ZoneInfo[zoneid][OfGangID], gangid);
    if(
IsPlayerAdmin(playerid)) SendClientMessage(playeridCOLOR_VERDEstring);
    if(
Invaders[gangid][zoneid] == MembersForConq)
    {
        if(
ZoneInfo[zoneid][OfGangID] != gangid)
        {
            for(new 
0MAX_PLAYERSl++)
            {
                if(
IsPlayerConnected(l) && PlayerInfo[l][GangID] == gangid)
                {
                    
SendClientMessage(lGangInfo[gangid][Color], "You are conquiring the zone");
                }
            }
            
GangZoneFlashForAll(ZoneInfo[zoneid][GZID], GangInfo[gangid][Color]);
            if(
ZoneInfo[zoneid][OfGangID] != -1GangTimer[gangid][zoneid] = SetTimerEx("ConquistaGZ"TimeForConqfalse"ii"zoneidgangid);
            else 
GangTimer[gangid][zoneid] = SetTimerEx("ConquistaGZ"TimeForConq/2false"ii"zoneidgangid);
            for(new 
lMAX_PLAYERSl++)
            {
                if(
IsPlayerConnected(l) && PlayerInfo[l][GangID] == ZoneInfo[zoneid][OfGangID] && PlayerInfo[playerid][GangID] != ZoneInfo[zoneid][OfGangID] && PlayerInfo[l][GangID] != -1)
                {
                    
SendClientMessage(lGangInfo[ZoneInfo[zoneid][OfGangID]][Color], "A your zone is under attack by another Gang");
                }
            }
        }
    }
    if(
ZoneInfo[zoneid][OfGangID] == gangid && PlayerInfo[playerid][GangOwner] == trueSetPlayerMapIcon(playeridGANG_CASH_ICON_IDZoneInfo[zoneid][PickX], ZoneInfo[zoneid][PickY], ZoneInfo[zoneid][PickZ], 520MAPICON_LOCAL);
    if(
ZoneInfo[zoneid][OfGangID] != -1)
    {
        
format(stringsizeof(string), "%s"GangInfo[ZoneInfo[zoneid][OfGangID]][GangName]);
        
GameTextForPlayer(playeridstring10001);
    }
    
//gang fine
    
return 1;
}
public 
OnPlayerLeaveDynamicArea(playeridareaid)
{
    
//gang inizio
    
new string[255];
    new 
zoneid areaid;
    new 
gangid PlayerInfo[playerid][GangID];
    if(
gangid != ZoneInfo[zoneid][OfGangID] && gangid != -&& GetPlayerVirtualWorld(playerid) == 0Invaders[gangid][zoneid] --; //---- Togliere un invasor
    
if(Invaders[gangid][zoneid] < MembersForConq)
    {
        
KillTimer(GangTimer[gangid][zoneid]);
        
GangZoneStopFlashForAll(ZoneInfo[zoneid][GZID]);
    }
    if(
ZoneInfo[zoneid][OfGangID] == gangid && PlayerInfo[playerid][GangOwner] == trueRemovePlayerMapIcon(playeridGANG_CASH_ICON_ID);
    
format(stringsizeof(string), "[LEAVE]ID zone: %d | Invaders: %d | OfGangID: %d | Gang ID: %d"zoneidInvaders[gangid][zoneid], ZoneInfo[zoneid][OfGangID], gangid);
    if(
IsPlayerAdmin(playerid)) SendClientMessage(playeridCOLOR_VERDEstring);
    
//gang fine
    
return 1;
}
forward ConquistaGZ(zoneidgangid);
public 
ConquistaGZ(zoneidgangid)
{
    new 
file[100];
    
format(filesizeof(file), GangZoneFilezoneid);
     
dini_IntSet(file"OfGangID"gangid);
    
GangZoneStopFlashForAll(ZoneInfo[zoneid][GZID]);
    
ZoneInfo[zoneid][OfGangID] = gangid;
    
ZoneInfo[zoneid][Color] = GangInfo[gangid][Color];
    new 
gPlate[8];
    for(new 
gvehicleidgvehicleid MAX_GVEHICLESgvehicleid++)
    {
        
DestroyVehicle(GangVehicle[zoneid][gvehicleid][VehID]);
        if(
GangInfo[gangid][VehModel] >= 400 && GangInfo[gangid][VehModel] <= 609 && GangVehicle[zoneid][gvehicleid][PosX] != && GangVehicle[zoneid][gvehicleid][PosY] != && GangVehicle[zoneid][gvehicleid][PosZ] != 0)
        {
            new 
vehiclemodel GangInfo[gangid][VehModel], col1 GangInfo[gangid][VehCol1], col2 GangInfo[gangid][VehCol2];
            
GangVehicle[zoneid][gvehicleid][VehID] = CreateVehicle(vehiclemodelGangVehicle[zoneid][gvehicleid][PosX], GangVehicle[zoneid][gvehicleid][PosY], GangVehicle[zoneid][gvehicleid][PosZ], GangVehicle[zoneid][gvehicleid][Angle], col1col21800000);
            
format(gPlatesizeof(gPlate), "[%s]-%d"GangInfo[gangid][Tag], gvehicleid);
            
SetVehicleNumberPlate(GangVehicle[zoneid][gvehicleid][VehID], gPlate);
        }
    }
    for(new 
0MAX_PLAYERSi++) if(IsPlayerConnected(i) && PlayerInfo[i][GangID] == gangidGivePlayerMoney(iMoneyAfterConq);
     
GangZoneShowForAll(ZoneInfo[zoneid][GZID], ZoneInfo[zoneid][Color]);
     
     new 
GangFile[255];
     
format(GangFilesizeof(GangFile), GangIDFilegangid);
     
dini_IntSet(GangFile"TotConqZ"GangInfo[gangid][TotConqZ]++);
     
GangInfo[gangid][TotConqZ] = dini_Int(GangFile"TotConqZ");
    return 
1;
}
forward AddCashInPickUp();
public 
AddCashInPickUp()
{
    new 
ZoneFile[255];
    for(new 
zoneid 1zoneid MAX_ZONESzoneid++)
    {
        
format(ZoneFilesizeof(ZoneFile), GangZoneFilezoneid);
        if(
dini_Exists(ZoneFile))
        {
            
ZoneInfo[zoneid][PickUpCash] = ZoneInfo[zoneid][PickUpCash] + AddCash;
            
dini_IntSet(ZoneFile"Cash"ZoneInfo[zoneid][PickUpCash]);
            new 
txt[50];
            
format(txtsizeof(txt), "Money\n%d$"ZoneInfo[zoneid][PickUpCash]);
            
Update3DTextLabelText(ZoneInfo[zoneid][Label], COLOR_VERDEtxt);
            new 
StrENG[255];
            
format(StrENGsizeof(StrENG), "Your zone (ID:%d) reached %d$ of proceeds! The zone is marked with a White Flash"zoneidZoneInfo[zoneid][PickUpCash]);
            for(new 
playerid 0playerid MAX_PLAYERSplayerid++)
            {
                if(
IsPlayerConnected(playerid) && ZoneInfo[zoneid][PickUpCash] >= 25000 && PlayerInfo[playerid][GangID] == ZoneInfo[zoneid][OfGangID] && PlayerInfo[playerid][GangOwner] == true)
                {
                    
GangZoneFlashForPlayer(playeridZoneInfo[zoneid][GZID], GCOLOR_BIANCO);
                    
SendClientMessage(playeridCOLOR_GIALLOStrENG);
                }
            }
            
            
//avviso mancanza del pick up cash della zona
            
if(ZoneInfo[zoneid][PickX] == && ZoneInfo[zoneid][PickY] == && ZoneInfo[zoneid][PickZ] == 0)
            {
                
format(StrENGsizeof(StrENG), "[ADMIN WARN]Pickup Cash missing! ID Zone: %d | Zone marked with a Black Flash"zoneid);
                for(new 
playerid 0playerid MAX_PLAYERSplayerid++)
                {
                    if(
IsPlayerConnected(playerid) && IsPlayerAdmin(playerid))
                    {
                        
SendClientMessage(playeridCOLOR_GIALLOStrENG);
                        
GangZoneFlashForPlayer(playeridZoneInfo[zoneid][GZID], GCOLOR_NERO);
                    }
                }
            }
            
            
//avviso mancanza veicoli gang
            
for(new gvehicleidgvehicleid MAX_GVEHICLESgvehicleid++)
            {
                if(
GangVehicle[zoneid][gvehicleid][PosX] == && GangVehicle[zoneid][gvehicleid][PosY] == && GangVehicle[zoneid][gvehicleid][PosZ] == 0)
                {
                    
format(StrENGsizeof(StrENG), "[WARN ADMIN]Gang vehicle doesn't exists! ID Zone: %d | ID Vehicle: %d | Zone marked with a Black Flash"zoneidgvehicleid);
                    for(new 
playerid 0playerid MAX_PLAYERSplayerid++)
                    {
                        if(
IsPlayerConnected(playerid) && IsPlayerAdmin(playerid))
                        {
                            
SendClientMessage(playeridCOLOR_GIALLOStrENG);
                            
GangZoneFlashForPlayer(playeridZoneInfo[zoneid][GZID], GCOLOR_NERO);
                        }
                    }
                }
            }
        }
    }
    return 
1;
}
forward CheckGangPayDayTime();
public 
CheckGangPayDayTime()
{
    new 
GangFile[255], UserBank[255];
    new 
HourMinuteSecond;
    
gettime(HourMinuteSecond);
    if(
Hour == GangPayDay && Minute == 0)
    {
        for(new 
gangidgangid MAX_GANGSgangid++)
        {
            new 
PercentageRemains;
            
format(GangFilesizeof(GangFile), GangIDFilegangid);
            for(new 
slotidslotid MAX_MEMBERSslotid++)
            {
                if(
strlen(MemberInfo[gangid][slotid][Name]) > 1)
                {
                    
format(UserBanksizeof(UserBank), UserBankFileMemberInfo[gangid][slotid][Name]);
                    
                    
dini_IntSet(UserBankFile"Deposita"GangInfo[gangid][Bank] / 100 MemberInfo[gangid][slotid][Percentage]);
                    
PercentageRemains 100 MemberInfo[gangid][slotid][Percentage];
                    
                    new 
playerid IsPlayerConnectedWithName(MemberInfo[gangid][slotid][Name]);
                    if(
playerid != -1)
                    {
                        new 
strENG[128];
                        
format(strENGsizeof(strENG), "You earned $%d from your gang work"GangInfo[gangid][Bank] / 100 MemberInfo[gangid][slotid][Percentage]);
                        
SendClientMessage(playeridCOLOR_VERDEstrENG);
                    }
                }
            }
            
format(UserBanksizeof(UserBank), UserBankFileGangInfo[gangid][Owner]);
            
dini_IntSet(UserBankFile"Deposita"GangInfo[gangid][Bank] / 100 PercentageRemains);
            
            new 
playerid IsPlayerConnectedWithName(GangInfo[gangid][Owner]);
            if(
playerid != -1)
            {
                new 
strENG[128];
                
format(strENGsizeof(strENG), "You earned $%d from your gang work"GangInfo[gangid][Bank] / 100 PercentageRemains);
                
SendClientMessage(playeridCOLOR_VERDEstrENG);
            }
            
            
dini_IntSet(GangFile"Bank"0);
        }
    }
    return 
1;
}
                
stock CheckFreeGangSeat(gangid)
{
    for(new 
slotidslotid MAX_MEMBERSslotid++)
    {
        if(
strlen(MemberInfo[gangid][slotid][Name]) == 0) return slotid;
    }
    return -
1;
}
stock CheckGangPlayerSlot(gangidplayerid)
{
    new 
pName[MAX_PLAYER_NAME];
    
GetPlayerName(playeridpNamesizeof(pName));
    
    for(new 
slotidslotid MAX_MEMBERSslotid++)
    {
        if(
strlen(pName) == strlen(MemberInfo[gangid][slotid][Name]) && strcmp(pNameMemberInfo[gangid][slotid][Name], falseMAX_PLAYER_NAME) == 0) return slotid;
    }
    return -
1;
}
stock CheckGangPlayerNameSlot(gangidPlayerName[])
{
    for(new 
slotidslotid MAX_MEMBERSslotid++)
    {
        if(
strlen(PlayerName) == strlen(MemberInfo[gangid][slotid][Name]) && strcmp(PlayerNameMemberInfo[gangid][slotid][Name], falseMAX_PLAYER_NAME) == 0) return slotid;
    }
    return -
1;
}
stock IsPlayerNameInGang(PlayerName[], gangid)
{
    for(new 
slotidslotid MAX_MEMBERSslotid++)
    {
        if(
strlen(PlayerName) == strlen(MemberInfo[gangid][slotid][Name]) && strcmp(PlayerNameMemberInfo[gangid][slotid][Name], falseMAX_PLAYER_NAME) == 0) return true;
    }
    return 
false;
}
stock IsPlayerConnectedWithName(PlayerName[])
{
    new 
pName[MAX_PLAYER_NAME];
    for(new 
playeridplayerid MAX_PLAYERSplayerid ++)
    {
        
GetPlayerName(playeridpNamesizeof(pName));
        if(
strlen(PlayerName) == strlen(pName) && strcmp(PlayerNamepNamefalseMAX_PLAYER_NAME) == 0) return playerid;
    }
    return -
1;
}
stock IsNumeric(string[])
{
    for (new 
0strlen(string); ji++)
    {
        if (
string[i] > '9' || string[i] < '0') return 0;
    }
    return 
1;

http://forum.sa-mp.com/showthread.ph...ht=gang+system
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)