Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <a_samp>
- #include <a_mysql>
- #include <zcmd>
- //#include <sscanf2>
- #define MAX_GANG (1) //Change this!
- #define DB_SERVER "127.0.0.1"
- #define DB_USER "root"
- #define DB_DB "samp"
- #define DB_PASS ""
- enum gangEnum {
- g_name[27],
- g_motd[128],
- g_leader[27],
- Float:g_pos_hq[3],
- Float:g_pos_hq_int[3],
- g_tier
- };
- new
- dbHandle,
- gInfo[MAX_GANG][gangEnum],
- bool: pInvited[MAX_PLAYERS],
- g_name_2[MAX_PLAYERS][27];
- public OnGameModeInit()
- {
- dbHandle = mysql_connect(DB_SERVER,DB_USER,DB_DB,DB_PASS);
- mysql_function_query(dbHandle,"SELECT * FROM gangs",true,"loadGangs","");
- return 1;
- }
- public OnPlayerSpawn(playerid)
- return SetPlayerPos(playerid,gInfo[playerid][g_pos_hq_int][0],gInfo[playerid][g_pos_hq_int][1],gInfo[playerid][g_pos_hq_int][2]);
- public OnPlayerRequestSpawn(playerid)
- {
- new localString[128];
- format(localString,128,"[Gang MOTD]: %s",gInfo[playerid][g_motd]);
- SendClientMessage(playerid,-1,localString);
- }
- COMMAND:gang(playerid,params[])
- {
- new param[128];
- if(gInfo[playerid][g_tier] != 3)
- {
- if(sscanf(params,"s[128]",param))
- return SendClientMessage(playerid,-1,"[Usage]: /gang [invite | kick | motd | hq | tier]");
- } else {
- if(sscanf(params,"s[128]",param))
- return SendClientMessage(playerid,-1,"[Usage]: /gang [accept | leave]");
- }
- if(!strcmp(param,"invite",true,6))
- {
- if(gInfo[playerid][g_tier] != 3) return 0;
- if(sscanf(param,"u",params[0]))
- return SendClientMessage(playerid,-1,"[Usage Command(Invite)]: [ID]");
- if(!IsPlayerConnected(params[0]))
- return SendClientMessage(playerid,-1,"[Error]: invaild player ID");
- if(strcmp(gInfo[playerid][g_name],gInfo[params[0]][g_name],true))
- return SendClientMessage(playerid,-1,"[Error]: this player in gang!");
- strcat(gInfo[params[0]][g_name],gInfo[playerid][g_name]);
- pInvited[params[0]] = true;
- g_name_2[params[0]] = gInfo[playerid][g_name];
- SetTimerEx("EndInvited",5*1000*60,false,"d",playerid);
- new localString[128];
- format(localString,128,"[Gang]: hello, you been invited to the GANG: %s | /gang accept");
- SendClientMessage(params[0],-1,localString);
- }
- if(!strcmp(param,"kick",true,4))
- {
- if(gInfo[playerid][g_tier] != 3) return 0;
- if(sscanf(param,"u",params[1]))
- return SendClientMessage(playerid,-1,"[Usage Command(Kick)]: [ID]");
- if(!IsPlayerConnected(params[1]))
- return SendClientMessage(playerid,-1,"[Error]: invaild player ID");
- if(strcmp(gInfo[playerid][g_name],gInfo[params[0]][g_name],true))
- return SendClientMessage(playerid,-1,"[Error]: this player not in your's gang!");
- new localString[128];
- format(localString,128,"[Gang]: you have been un-invited to the GANG: %s",gInfo[playerid][g_name]);
- SendClientMessage(playerid,-1,localString);
- strcat(gInfo[params[1]][g_name],"\0");
- SpawnPlayer(params[1]);
- }
- if(!strcmp(param,"motd",true,4))
- {
- if(gInfo[playerid][g_tier] != 3) return 0;
- if(sscanf(param,"u",params[2]))
- return SendClientMessage(playerid,-1,"[Usage Command]: [MOTD]");
- strcat(gInfo[playerid][g_motd],"\0");
- gInfo[playerid][g_motd] = params[2];
- new localString[128];
- format(localString,128,"[Gang]: the gang MOTED by changed to: %s",params[2]);
- SendClientMessage(playerid,-1,localString);
- }
- if(!strcmp(param,"hq",true,2))
- {
- if(gInfo[playerid][g_tier] != 3) return 0;
- new Float:gPos[MAX_PLAYERS][3];
- GetPlayerPos(playerid,gPos[playerid][0],gPos[playerid][1],gPos[playerid][2]);
- gInfo[playerid][g_pos_hq][0] = gPos[playerid][0],gInfo[playerid][g_pos_hq][1] = gPos[playerid][1],gInfo[playerid][g_pos_hq][2] = gPos[playerid][2];
- new localString[128];
- format(localString,128,"[Gang]: the HQ Pos changed successufly to: %f,%f,%f",gPos[playerid][0],gPos[playerid][1],gPos[playerid][2]);
- SendClientMessage(playerid,-1,localString);
- }
- if(!strcmp(param,"tier",true,4))
- {
- if(gInfo[playerid][g_tier] != 3) return 0;
- if(sscanf(param,"ud",params[3],params[4]))
- return SendClientMessage(playerid,-1,"[Usage Command]: [ID] [tier]");
- if(!IsPlayerConnected(params[3]))
- return SendClientMessage(playerid,-1,"[Error]: invaild player ID");
- if(strcmp(gInfo[playerid][g_name],gInfo[params[3]][g_name],true))
- return SendClientMessage(playerid,-1,"[Error]: this player not in your gang!");
- gInfo[playerid][g_tier] = params[4];
- new localString[128];
- format(localString,128,"[Gang]: you tier now is: %d",params[4]);
- SendClientMessage(params[4],-1,localString);
- }
- if(!strcmp(param,"accept",true,6))
- {
- if(!pInvited[playerid]) return 0;
- gInfo[playerid][g_name] = g_name_2[playerid];
- new localString[128];
- format(localString,128,"[Gang]: you successuflly accept the invited to the GANG: %s",gInfo[playerid][g_name]);
- SendClientMessage(playerid,-1,localString);
- }
- if(!strcmp(param,"leave",true,5))
- {
- if(!strlen(gInfo[playerid][g_name])) return 0;
- new localString[128];
- format(localString,128,"[Gang]: you are successuflly leaved the GANG: %s",gInfo[playerid][g_name]);
- SendClientMessage(playerid,-1,localString);
- strcat(gInfo[playerid][g_name],"\0");
- strcat(gInfo[playerid][g_motd],"\0");
- }
- return 1;
- }
- COMMAND:makeleader(playerid,params[])
- {
- if(gInfo[playerid][g_tier] != 3) return 0;
- if(sscanf(params,"u",params[1]))
- return SendClientMessage(playerid,-1,"[Usage]: /makeleader [ID]");
- new pName[MAX_PLAYER_NAME];
- GetPlayerName(params[1],pName[params[1]],24);
- gInfo[params[1]][g_leader] = pName[params[1]];
- new localString[128];
- format(localString,128,"[Gang]: you now the leader of the GANG: %s",gInfo[playerid][g_name]);
- SendClientMessage(params[1],-1,localString);
- return 1;
- }
- forward loadGangs();
- public loadGangs()
- {
- for(new i; i != MAX_GANG; i++)
- {
- cache_get_field_content(0,"g_name",gInfo[i][g_name],dbHandle);
- cache_get_field_content(0,"g_motd",gInfo[i][g_motd],dbHandle);
- cache_get_field_content(0,"g_leader",gInfo[i][g_leader],dbHandle);
- gInfo[i][g_pos_hq][0] = cache_get_field_content_float(0,"g_hq_x",dbHandle);
- gInfo[i][g_pos_hq][1] = cache_get_field_content_float(0,"g_hq_y",dbHandle);
- gInfo[i][g_pos_hq][2] = cache_get_field_content_float(0,"g_hq_z",dbHandle);
- gInfo[i][g_pos_hq_int][0] = cache_get_field_content_float(0,"g_hq_int_x",dbHandle);
- gInfo[i][g_pos_hq_int][1] = cache_get_field_content_float(0,"g_hq_int_y",dbHandle);
- gInfo[i][g_pos_hq_int][2] = cache_get_field_content_float(0,"g_hq_int_z",dbHandle);
- }
- SetTimer("loadAllGangs",2000,false);
- return 1;
- }
- forward loadAllGangs();
- public loadAllGangs()
- {
- for(new i; i != MAX_GANG; i++)
- {
- CreatePickup(1239,2,gInfo[i][g_pos_hq][0],gInfo[i][g_pos_hq][1],gInfo[i][g_pos_hq][2]);
- new localString[128];
- format(localString,128,"This the HQ of the GANG: %s",gInfo[i][g_name]);
- Create3DTextLabel(localString,-1,30.0,40.0,50.0,40.0,0,0);
- }
- return 1;
- }
- forward EndInvited(playerid);
- public EndInvited(playerid)
- return pInvited[playerid] = false,strcat(g_name_2[playerid],"\0"),1;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement