Ajutatima varog nu siu cum sa adaug organizatii in acest fs [pawn]/* DYNAMIC ORGANIZATIONS FILTERSCRIPT SCRIPTAT DE [s.U.S]Vyper BY [s.U.S]Vyper COPYRIGHT © 2013 RELEASE DATE: 19/03/2013 PLEASE REPORT ALL BUGS (If found) @ SA-MP FORUMS */ #include <a_samp> #include <Dini> #include <sscanf2> #include <zcmd> //DEFINIII PENRU CULORI #define COLOR_GREY 0xAFAFAFAA #define COLOR_WHITE 0xFFFFFFAA #define COLOR_ORANGE 0xFF9900AA #define COLOR_YELLOW 0xFFFF00AA #define COLOR_RED 0xFF0000FF // #pragma tabsize 0 #define WAGE 150 //Define the wage here #define MAX_ORGS 10 //Change only if you need more than 10 orgs #define MAX_ORG_WEAPONS 3 //Max amount of weapons for orgs #define ORG_NAME_LENGTH 32 //Max name length for organization and it's leader #define MAX_ORG_VEHICLES 10 #define SAVE_LEADERS_TO "org_leaders.txt" #define SPAWN_WITH_ORG_SKIN //Comment this line IF YOU DON'T WANT THE PLAYERS SPAWN WITH ORGANIZATION SKIN! forward PayDay(); new OrgsCount; enum Orgs { Name[32], Leader[24], Skin, Float:X, Float:Y, Float:Z, Weapons[3], Ammo[3], Vehicles[MAX_ORG_VEHICLES], VehiclesCreated, }; new Organization[MAX_ORGS][Orgs]; new PlayerOrg[MAX_PLAYERS]; new PlayerLeader[MAX_PLAYERS]; new PlayerRank[MAX_PLAYERS][28]; new Requesting[MAX_PLAYERS]; new CollectedWage[MAX_PLAYERS]; public OnFilterScriptInit() { print("\n-------------------------------------------------"); print("==Dynamic organization filterscript by [s.U.S]Vyper"); print("==© 2013== "); print("-------------------------------------------------\n"); SetTimer("PayDay",1500000,1); //PayDay every 25 minutes //Let's create your organizations here //ALWAYS add your organization BELOW the old one, otherwise the IDs will change = leaders mix up ! ! ! ! ! //CreateOrganization([32], skin, Float:x,Float:y,Float:z, weapon1,ammo1,weapon2,ammo2,weapon3,ammo3) //*/ //Create here // //Create org vehicles AFTER you create the organization, you can add them here: //Syntax: CreateOrgVehicle(org[], model, Float:x,Float:y,Float:z,Float:rot, clr1,clr2) //Create here LoadLeaders(); return 1; } public PayDay() { for (new i=0;i<MAX_PLAYERS;i++) { if (IsPlayerConnected(i)) { if (PlayerOrg != 0) { new string[80]; format(string, sizeof(string),"Ai cistigat din org dvs.. ($%d)", WAGE); SendClientMessage(i, COLOR_GREY, string); CollectedWage+=WAGE; SavePlayerOrgInfo(i); } } } } public OnFilterScriptExit() { print("Va mulumim pentru utilizarea [s.U.S]Dynamic organizations "); print("© 2011"); SaveLeaders(); return 1; } public OnPlayerConnect(playerid) { PlayerOrg[playerid] = 0; //Resetarea org jucator PlayerLeader[playerid] = 0; //Resetarea org jucãtor lider de stare Requesting[playerid] = 0; CollectedWage[playerid] = 0; PlayerRank[playerid] = "Nici unul"; if(!dini_Exists(PlayerPath(playerid))) // Crearea fisierului (verifica stocul PlayerPath (playerid)) { SendClientMessage(playerid, COLOR_ORANGE,"As this is your first visit here, we decided to tell you that this server is using Dynamic organization- script by Jakku"); dini_Create(PlayerPath(playerid)); } else { LoadPlayerOrgInfo(playerid); } return 1; } public OnPlayerDisconnect(playerid, reason) { SavePlayerOrgInfo(playerid); return 1; } public OnPlayerSpawn(playerid) { if (PlayerOrg[playerid] != 0) { if (GetPVarInt(playerid, "Dead") == 0) { new string[160]; new leader[4]; if (PlayerLeader[playerid]) leader = "Yes"; else leader = "No"; format(string,sizeof(string),"Organization: {5CB3FF}%s {FFFFFF}|| Leader: {5CB3FF}%s {FFFFFF}|| Rank: {5CB3FF}%s", GetOrgName(PlayerOrg[playerid]), leader, PlayerRank[playerid]); SendClientMessage(playerid, COLOR_WHITE, string); } GiveOrgFeatures(playerid); } SetPVarInt(playerid, "Dead", 0); return 1; } public OnPlayerDeath(playerid, killerid, reason) { SetPVarInt(playerid, "Dead", 1); } public OnPlayerCommandText(playerid, cmdtext[]) { return 0; } public OnPlayerEnterCheckpoint(playerid) { return 1; } public OnPlayerPickUpPickup(playerid, pickupid) { return 1; } public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) { if (dialogid == 755) { if (response) { new string[120]; format(string,sizeof(string),"Ati demisionat de la %s", Organization[PlayerOrg[playerid]][Name]); SendClientMessage(playerid, COLOR_YELLOW, string); format(string,sizeof(string),"**%s a demisionat de la %s", PlayerName(playerid), Organization[PlayerOrg[playerid]][Name]); SendClientMessageToAllEx(playerid, COLOR_GREY, string); new none[24]; format(none,sizeof(none),"Nici unul"); Organization[PlayerOrg[playerid]][Leader] = none; PlayerOrg[playerid] = 0; PlayerLeader[playerid] = 0; SavePlayerOrgInfo(playerid); SetPlayerSkin(playerid, 0); ResetPlayerWeapons(playerid); } else { SendClientMessage(playerid, COLOR_YELLOW, "Demisia anulat"); } } if (dialogid == 756 && response) { switch (listitem) { case 0: { for (new i=1;i<OrgsCount+1;i++) { if (IsPlayerInRangeOfPoint(playerid, 3.0, Organization[X], Organization[Y],Organization[Z])) { new string[140]; format(string,sizeof(string),"{5CB3FF}Organizatia: {FFFFFF}%s\n{5CB3FF}Lider: {FFFFFF}%s", GetOrgName(i), Organization[Leader]); ShowPlayerDialog(playerid, 757, DIALOG_STYLE_MSGBOX, "Organizatia",string,"Inchide",""); } } } case 1: { if (CollectedWage[playerid] <= 0) return SendClientMessage(playerid, COLOR_RED, "Nu aveti nici un salariu castigat inca!"); new string[80]; format(string,sizeof(string),"Ati colectat $%d", CollectedWage[playerid]); SendClientMessage(playerid, COLOR_YELLOW, string); GivePlayerMoney(playerid, CollectedWage[playerid]); CollectedWage[playerid] = 0; SavePlayerOrgInfo(playerid); } } } return 1; } public OnPlayerStateChange(playerid,newstate,oldstate) { if (newstate == PLAYER_STATE_DRIVER) { for (new i=1;i<OrgsCount+1;i++) { for (new a=0;a<MAX_ORG_VEHICLES;a++) { new vehicleid = GetPlayerVehicleID(playerid); if (vehicleid == Organization[Vehicles][a] && PlayerOrg[playerid] != i) { new string[100]; format(string,sizeof(string),"Acest vehicul apartine lui %s. Tu nu esti in aceasta organiatie ca sal poti folosi.", GetOrgName(i)); SendClientMessage(playerid, COLOR_RED, string); RemovePlayerFromVehicle(playerid); } } } } return 1; } stock PlayerName(playerid) { new name[24]; GetPlayerName(playerid, name, 24); return name; } stock CreateOrganization(name[32], skin, Float:x,Float:y,Float:z, wp1 = 0,a1 = 0,wp2 = 0,a2 = 0,wp3 = 0,a3 = 0) { OrgsCount++; if (OrgsCount >= MAX_ORGS) return printf("Ati depasit MAX_ORGS-defini! avortat"); new id = OrgsCount; Organization[id][Name] = name; Organization[id][skin] = skin; Organization[id][X] = x; Organization[id][Y] = y; Organization[id][Z] = z; Organization[id][Weapons][0] = wp1; Organization[id][Ammo][0] = a1; Organization[id][Weapons][1] = wp2; Organization[id][Ammo][1] = a2; Organization[id][Weapons][2] = wp3; Organization[id][Ammo][2] = a3; printf("Organizatie creatã: ID: %d || Nume: %s",id, name); new string[100]; format(string,sizeof(string),"{5CB3FF}HQ:{FFFFFF} %s\nScrie {5CB3FF}/org{FFFFFF} pentru mai multe informatii!",name); Create3DTextLabel(string, 0x008080FF, x, y, z, 25.0, 0); return 1; } stock PlayerPath(playerid) { new path[45]; format(path, sizeof(path),"Orginfo_%s.ini", PlayerName(playerid)); return path; } stock SaveLeaders() { new part[40]; if (!dini_Exists(SAVE_LEADERS_TO)) { dini_Create(SAVE_LEADERS_TO); } for (new i=1;i<OrgsCount+1;i++) { format(part,sizeof(part),"%d", i); dini_Set(SAVE_LEADERS_TO,part,Organization[Leader]); } } stock LoadLeaders() { new part[24]; new part2[40]; if (!dini_Exists(SAVE_LEADERS_TO)) { for (new i=1;i<OrgsCount+1;i++) { dini_Create(SAVE_LEADERS_TO); format(part,sizeof(part),"Nici unul"); Organization[Leader] = part; SaveLeaders(); } return 1; } for (new i=1;i<OrgsCount+1;i++) { format(part2,sizeof(part2),"%d", i); format(part,sizeof(part),dini_Get(SAVE_LEADERS_TO,part2)); Organization[Leader] = part; } return 1; } stock SavePlayerOrgInfo(playerid) { if (!dini_Exists(PlayerPath(playerid))) { dini_Create(PlayerPath(playerid)); } //dini_Set(savef,"ContactName1",ContactNames[0][playerid]); dini_Set(PlayerPath(playerid),"Org",Organization[PlayerOrg[playerid]][Name]); dini_Set(PlayerPath(playerid),"Rank",PlayerRank[playerid]); dini_IntSet(PlayerPath(playerid),"SalariiColectate",CollectedWage[playerid]); } stock LoadPlayerOrgInfo(playerid) { new string[45]; format(string,sizeof(string),"%s",dini_Get(PlayerPath(playerid),"Org")); PlayerOrg[playerid] = GetOrgID(string); new string2[28]; format(string2,sizeof(string2),"%s",dini_Get(PlayerPath(playerid),"Rank")); PlayerRank[playerid] = string2; CollectedWage[playerid] = dini_Int(PlayerPath(playerid), "SalariiColectate"); if (strcmp(Organization[PlayerOrg[playerid]][Leader], PlayerName(playerid),true) == 0) { PlayerLeader[playerid] = 1; } } stock GiveOrgFeatures(playerid) { new org = PlayerOrg[playerid]; if (!org) return 1; GivePlayerWeapon(playerid, Organization[org][Weapons][0],Organization[org][Ammo][0]); GivePlayerWeapon(playerid, Organization[org][Weapons][1],Organization[org][Ammo][1]); GivePlayerWeapon(playerid, Organization[org][Weapons][2],Organization[org][Ammo][2]); #if defined SPAWN_WITH_ORG_SKIN SetPlayerSkin(playerid, Organization[org][skin]); #endif return 1; } stock GetOrgName(orgid) { new name[32]; format(name,sizeof(name),"%s",Organization[orgid][Name]); if (orgid == 0) format(name,sizeof(name),"Nici unul"); return name; } stock SendClientMessageToAllEx(exception, clr, const message[]) { for(new i; i<MAX_PLAYERS; i++) { if(IsPlayerConnected(i)) { if(i != exception) { SendClientMessage(i, clr, message); } } } } stock ResetPlayerOrg(playerid) { if (PlayerOrg[playerid] == 0) return 1; printf("%s a fost eliminat din %s", GetOrgName(PlayerOrg[playerid])); SetPlayerSkin(playerid, 0); ResetPlayerWeapons(playerid); PlayerOrg[playerid] = 0; Requesting[playerid] = 0; return 1; } CMD:resign(playerid, params[]) { #pragma unused params if (PlayerOrg[playerid] == 0) return SendClientMessage(playerid, COLOR_RED, "Tu nu esti intr-o organizatie"); ShowPlayerDialog(playerid, 755, DIALOG_STYLE_MSGBOX, "{FFFFFF}Sunteti sigur ca doriti sa demisionezi?","{FFFFFF}Va rog {00FF00}confirmati {FFFFFF}cerere dumneavoastra.","Cerere","Inchide"); return 1; } CMD:org(playerid, params[]) { #pragma unused params for (new i=1;i<OrgsCount+1;i++) { if (IsPlayerInRangeOfPoint(playerid, 3.0, Organization[X],Organization[Y],Organization[Z])) { new string[35]; new string2[80]; format(string, sizeof(string),"%s", GetOrgName(i)); format(string2, sizeof(string2),"Informatii"); if (PlayerOrg[playerid] == i) format(string2, sizeof(string2),"Informatii\nSalariiColectate"); ShowPlayerDialog(playerid, 756, DIALOG_STYLE_LIST, string,string2,"Ok","Inchide"); return 1; } } SendClientMessage(playerid, COLOR_RED,"Tu nu esti destul de aproape de vrio organizatie!"); return 1; } CMD:setmember(playerid, params[]) { if (!PlayerLeader[playerid]) return SendClientMessage(playerid,COLOR_RED,"Tu nu esti lider al unei organizatii."); new ID; if (sscanf(params, "u", ID)) return SendClientMessage(playerid,COLOR_WHITE,"Scrie: /setmember [playerid]"); if (!IsPlayerConnected(ID) || ID == playerid) return 1; new org = PlayerOrg[playerid]; if (PlayerOrg[iD]) return SendClientMessage(playerid, COLOR_RED,"Acel jucator deja apartine unei organizatii."); if (Requesting[iD] != org) return SendClientMessage(playerid, COLOR_RED,"Acel jucator nu se cere sa se alature organizatiei dumneavoastra!"); new string[120]; format(string,sizeof(string),"%s v-a stabilit ca un membru al %s", PlayerName(playerid), GetOrgName(org)); SendClientMessage(ID, COLOR_YELLOW, string); format(string,sizeof(string),"Ati setat %s un membru al %s", PlayerName(ID), GetOrgName(org)); SendClientMessage(playerid, COLOR_YELLOW, string); PlayerOrg[iD] = org; GiveOrgFeatures(ID); Requesting[iD] = 0; return 1; } CMD:setleader(playerid, params[]) { if (!IsPlayerAdmin(playerid)) return SendClientMessage(playerid,COLOR_RED,"Trebuie sã fii logat în RCON pentru a folosi aceasta comanda!"); new ID,orgid; if (sscanf(params, "ud", ID,orgid)) return SendClientMessage(playerid,COLOR_WHITE,"Scrie: /setleader [playerid] [orgid]"); if (!IsPlayerConnected(ID)) return 1; if (PlayerOrg[iD]) return SendClientMessage(playerid, COLOR_RED,"Acel jucator deja apartine unei organizatii"); new string[140]; format(string,sizeof(string),"Adminul %s te-a stabilit ca lider al %s", PlayerName(playerid), GetOrgName(orgid)); SendClientMessage(ID, COLOR_YELLOW, string); format(string,sizeof(string),"Ati setat pe %s ca lider %s", PlayerName(ID), GetOrgName(orgid)); SendClientMessage(playerid, COLOR_YELLOW, string); PlayerOrg[iD] = orgid; PlayerLeader[iD] = 1; Organization[orgid][Leader] = PlayerName(ID); SaveLeaders(); SavePlayerOrgInfo(ID); GiveOrgFeatures(ID); return 1; } CMD:setrank(playerid, params[]) { if (!PlayerLeader[playerid]) return SendClientMessage(playerid,COLOR_RED,"Tu nu esti lider al unei organizatii."); new ID, rank[28]; if (sscanf(params, "us[28]", ID, rank)) return SendClientMessage(playerid,COLOR_WHITE,"Scrie: /setrank [playerid] [rank]"); if (strlen(rank) > 28) return SendClientMessage(playerid, COLOR_RED,"Lungimea maxima este de rang 28 de caractere!"); if (!IsPlayerConnected(ID)) return 1; new org = PlayerOrg[playerid]; if (PlayerOrg[iD] != org) return SendClientMessage(playerid, COLOR_RED,"Acest player nu apartine organizatiei dumneavoastra"); new string[120]; format(string,sizeof(string),"Liderul %s tia dat un rang: '%s'", PlayerName(playerid), rank); SendClientMessage(ID, COLOR_YELLOW, string); format(string,sizeof(string),"Ati dat un rang lui %s (%s)", PlayerName(ID), rank); SendClientMessage(playerid, COLOR_YELLOW, string); PlayerRank[iD] = rank; SavePlayerOrgInfo(ID); return 1; } CMD:kickmember(playerid, params[]) { if (!PlayerLeader[playerid]) return SendClientMessage(playerid,COLOR_RED,"Tu nu esti lider al unei organizatii."); new ID; if (sscanf(params, "u", ID)) return SendClientMessage(playerid,COLOR_WHITE,"Scrie: /kickmember [playerid]"); if (!IsPlayerConnected(ID) || ID == playerid) return 1; new org = PlayerOrg[playerid]; if (PlayerOrg[iD] != org) return SendClientMessage(playerid, COLOR_RED,"Acest player nu apartine organizatiei dumneavoastra"); new string[130]; format(string,sizeof(string),"%s a fost dat afara de catre %s", PlayerName(playerid), GetOrgName(org)); SendClientMessage(ID, COLOR_YELLOW, string); format(string,sizeof(string),"Ai fost dat afara %s din %s", PlayerName(ID), GetOrgName(org)); SendClientMessage(playerid, COLOR_YELLOW, string); ResetPlayerOrg(ID); return 1; } CMD:request(playerid, params[]) { if (PlayerOrg[playerid] > 0) return SendClientMessage(playerid, COLOR_RED,"Deja apartii unei organizatii!"); if (Requesting[playerid] > 0) return SendClientMessage(playerid, COLOR_RED,"Sunteti deja aderati la o organizatie!"); new ID; if (sscanf(params, "d", ID)) return SendClientMessage(playerid,COLOR_WHITE,"Scrie: /request [org id]"); if (ID < 1 || ID > OrgsCount) return SendClientMessage(playerid,COLOR_RED,"Aceasta organizaie nu exista! Scrie /orglist pentru a vedea organizatiile."); new string[120]; format(string,sizeof(string),"%s cere sa se alature %s", PlayerName(playerid), GetOrgName(ID)); SendClientMessageToAllEx(playerid, COLOR_GREY, string); format(string,sizeof(string),"Cererea ta la %s a fost trimisa!", GetOrgName(ID)); SendClientMessage(playerid, COLOR_YELLOW, string); Requesting[playerid] = ID; return 1; } CMD:orglist(playerid, params[]) { #pragma unused params new string[90]; if (OrgsCount == 0) return SendClientMessage(playerid, COLOR_RED,"Ne pare rau, nu exista organizatii create!"); SendClientMessage(playerid, COLOR_WHITE, "Organizatii Curente:"); for (new i=1;i<OrgsCount+1;i++) { format(string,sizeof(string),"ID: %d || Nume: %s || Lider: %s", i, GetOrgName(i), Organization[Leader]); SendClientMessage(playerid, COLOR_YELLOW, string); } return 1; } CMD:members(playerid, params[]) { #pragma unused params if (!PlayerLeader[playerid]) return SendClientMessage(playerid, COLOR_RED,"Tu nu esti lider al unei organizatii"); new string[60]; new count = 0; SendClientMessage(playerid, COLOR_YELLOW,"Membrii Online:"); for (new i=0;i<MAX_PLAYERS;i++) { if (IsPlayerConnected(i)) { if (PlayerOrg == PlayerOrg[playerid] && i != playerid) { format(string,sizeof(string),"%s - %s", PlayerName(i), PlayerRank); SendClientMessage(playerid, COLOR_WHITE, string); count++; } } } if (count == 0) { SendClientMessage(playerid, COLOR_YELLOW,"Nici unul dintre membrii dumneavoastra nu sunt online"); } else { format(string,sizeof(string),"%d membrii online.", count); SendClientMessage(playerid, COLOR_WHITE, string); } return 1; } CMD:myorg(playerid, params[]) { #pragma unused params if (PlayerOrg[playerid] == 0) return SendClientMessage(playerid, COLOR_RED,"Nu sunteti un membru al unei organizatii"); new string[140]; format(string,sizeof(string),"{5CB3FF}Organizatie: {FFFFFF}%s\n{5CB3FF}Lider: {FFFFFF}%s", GetOrgName(PlayerOrg[playerid]), Organization[PlayerOrg[playerid]][Leader]); ShowPlayerDialog(playerid, 757, DIALOG_STYLE_MSGBOX, "Organizatia mea", string, "Ok", ""); return 1; } CMD:orghelp(playerid, params[]) { #pragma unused params SendClientMessage(playerid, COLOR_YELLOW, "Dynamic Organizations by [s.U.S]Vyper"); SendClientMessage(playerid, COLOR_WHITE, "/orglist || /myorg || /request || /resign || /org || /setleader"); if (PlayerLeader[playerid]) SendClientMessage(playerid, COLOR_WHITE,"Comenzi pentru lideri: /setmember || /kickmember || /setrank || /members"); return 1; } stock GetOrgID(name[]) { if (strlen(name) <= 0) return 0; for (new i=1;i<OrgsCount+1;i++) { if (strcmp(name,Organization[Name],true) == 0) return i; } return 0; } stock CreateOrgVehicle(org[], model, Float:x,Float:y,Float:z,Float:rot, clr1,clr2) { new orgid = GetOrgID(org); new freeslot = Organization[orgid][VehiclesCreated]; if (freeslot >= MAX_ORG_VEHICLES-1) return printf("%s nu poate manipula mai multe vehicule! Anulat", org); Organization[orgid][Vehicles][freeslot] = CreateVehicle(model, x,y,z,rot,clr1,clr2,900); printf("%d, %d, %s", model, freeslot, org); Organization[orgid][VehiclesCreated]++; return 1; } [/pawn]