| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- /*
-
- ______ _ _ _ _ ____ _____ _
- | ____| (_) | | | | | | _ \ | __ \ | |
- | |__ __ _ _ __ ___ _| |_ _ | | _____ _____| |___ | |_) |_ _ | | | | ___ ___ _ __ ___ ___ _ __ __| |
- | __/ _` | '_ ` _ \| | | | | | | | / _ \ \ / / _ \ / __| | _ <| | | | | | | |/ _ \/ __| '_ ` _ \ / _ \| '_ \ / _` |
- | | | (_| | | | | | | | | |_| | | |___| __/\ V / __/ \__ \ | |_) | |_| | | |__| | __/\__ \ | | | | | (_) | | | | (_| |
- |_| \__,_|_| |_| |_|_|_|\__, | |______\___| \_/ \___|_|___/ |____/ \__, | |_____/ \___||___/_| |_| |_|\___/|_| |_|\__,_|
- __/ | __/ |
- |___/ |___/
- http://www.gta-sarp.com/forums/showthread.php?298108
- Read post:
- http://www.gta-sarp.com/forums/showthread.php?298108-Family-system&p=2169479&viewfull=1#post2169479
- Families get XP by activity, roleplay and shootouts activities.
- 1. Roleplay - /famrp - RP given by gang mods
- 2. Activity - if you have 5+ members in your family online, on /signcheck you get XP
- 3. Shootouts - get XP for making a successful bank robbery
- 8-10 levels
- */
- GetFamilyLevel(familyid) // simply check what level the family is, as it's based on XP
- {
- new xp = FamilyInfo[familyid][fXP];
- switch(xp)
- {
- case 0..49: return 1;
- case 50..149: return 2;
- case 150..299: return 3;
- case 300..499: return 4;
- case 500..749: return 5;
- case 750..1049: return 6;
- case 1050..1399: return 7;
- case 1400..1799: return 8;
- }
- if(xp >= 1799) return 8;
-
- return 1;
- }
- GetFamilyNextXP(familyid) // couldn't think of a better name. This function returns the amount of XP the family needs to level up
- {
- new xp = FamilyInfo[familyid][fXP];
- switch(xp)
- {
- case 0..49: return 50;
- case 50..149: return 150;
- case 150..299: return 300;
- case 300..499: return 500;
- case 500..749: return 750;
- case 750..1049: return 1050;
- case 1050..1399: return 1400;
- case 1400..1799: return 1800;
- }
- if(xp >= 1799) return -1;
- return 1;
- }
- GrantFamXP(family, amount)
- {
- new xp = FamilyInfo[family][fXP];
- new nextxp = GetFamilyNextXP(family);
- if(xp+amount > nextxp) // if family leveled up
- {
- if(GetFamilyLevel(family) == 8) return 1; // max level
- FamilyInfo[family][fXP] += amount;
- new msgstr[50];
- format(msgstr, sizeof(msgstr), "Your family has leveled up! New level: %d", GetFamilyLevel(family));
- foreach(new i: Player)
- {
- if(PlayerInfo[i][pFMember] == family)
- {
- SendClientMessage(i, COLOR_LIGHTBLUE, msgstr);
- }
- }
- }
- else FamilyInfo[family][fXP] += amount;
- SaveFamilies();
- return 1;
- }
|