Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- ||=========================================================================||
- || ||
- || ** DaVe Job System Include ** ||
- || Tento include je určen pro módy RP, já jsem jej vytvořil pro svůj ||
- || nový plánovaný projekt, který hodlám zkusit udělat, jelikož Sa:Mp ||
- || již není co bývalo, hrozně moc upadlo i já i moji nejlepší přátelé ||
- || ze samp tuto hru již opustili, po prodeji svého auta šetřím na jiné ||
- || tak mám čas po práci vždy něco připawnit, pokud z tohoto projektu, ||
- || který plánuji nic nebude, teno include hodlám zveřejnit pro pawno.cz . ||
- || ||
- ||=========================================================================||
- Pro vyuziti je treba pridat do publicu:
- public OnGameModeInit() { DJS_OnGameModeInit(); }
- public OnPlayerPickupPickup(playerid,pickupid) { DJS_OnPlayerPickupPickup(playerid,pickupid); }
- public OnPlayerSelectedMenuRow(playerid, row) { DJS_OnPlayerSelectedMenuRow(playerid, row); }
- public OnPlayerConnect(playerid) { DJS_OnPlayerConnect(playerid); }
- Funkce pro pridani penez hraci: GivePlayerJobCashForGet(playerid,cash)
- Nezapomeňte, až v módu budete dělat ukládání zahrnout i uložení:
- JobNahranoMinut[playerid][MAX_JOBS] //je třeba uložit a načíst všechny MAX_JOBS
- po odpojení hráče a po připojení
- JobID[playerid]
- Vyplata[playerid][MAX_JOBS] //je třeba uložit a načíst všechny MAX_JOBS
- po odpojení hráče a po připojení
- Nezapomente definovat MAX_JOBS na svůj využitý počet
- #define MAX_JOBS 50 //přímo v includu
- Pro kontrolu hráčového jobu využijte (14 znamená id jobu):
- if(PlayerJob(playerid,==,14) )
- Nezapomeňte nahoru do módu:
- #include <DJS>
- Důležité:
- Job vytvoříte pomocí:
- AddJob(job_name[],Float:X,Float:Y,Float:Z,barvatextu,Jobzadaminutnapodobnepozici,skin1,skin2,skin3,weapon1,weapon2,weapon3,jobcolor,mapicon)
- Nezapomeňte, funguje to na jednoduchém principu, zkrátka čím výš bude
- AddJob(...), tím menší je ID tohoto jobu:
- AddJob("Policista",2029.7307,1349.2823,10.8203,B_ORANZOVA,5,299,241,264,23,32,31,B_ORANZOVA,34); //toto zaměstnání bude mít id 0, protože je nahoře
- AddJob("Urednik",2040.5896,1344.0265,10.6719,B_MODR,5,299,241,264,0,0,0,B_MODR,34); //toto zaměstnání bude mít id 1, protože je uprostřed
- AddJob("Popelar",2049.5200,1336.1340,10.6719,B_SEDA,5,299,241,264,23,14,0,B_SEDA,34); //toto zaměstnání bude mít id 2, protože je dole
- Pokud využijete funkci "Jobzadaminutnapodobnepozici"(čiže pokud tam dáte
- větší číslo než 0), musíte na definovaných podobných pozicích do svého
- módu přidat public, který bude přičítat minuty z podobného jobu do toho,
- který požaduje vámi definovaný počet minut na podobném:
- if(PlayerJob(playerid,==,2) )
- {
- JobNahranoMinut[playerid][4]++; //4 je id podobného jobu
- }
- Funkce DeletePlayerJob(playerid) odebere hráči job, tuto funkci můžete použít
- například když hráče někdo zatkne:
- DeletePlayerJob(playerid);
- Vzhledem k tomu, ze planovany projekt nebyl zhotoven, tak vam tento include
- davam, s pozdravem DaVe
- */
- #include <a_samp>
- #define MAX_JOBS 50
- enum JOB_INFO {
- Float: Job_X,
- Float: Job_Y,
- Float: Job_Z,
- jobname[70],
- jobpickup,
- jobid,
- jobzadaminut,
- jobskin1,
- jobskin2,
- jobskin3,
- wep1,
- wep2,
- wep3,
- color,
- jobmapicon
- };
- new Job[MAX_JOBS][JOB_INFO], JobID[MAX_PLAYERS], JobNahranoMinut[MAX_PLAYERS][MAX_JOBS], VytvorenoJobu;
- new Menu: JobMenu[MAX_PLAYERS], IsMenu[MAX_PLAYERS], Vyplata[MAX_PLAYERS][MAX_JOBS];
- #define PlayerJob(%1,%2,%3) JobID[%1]%2%3
- #define DeletePlayerJob(%1) JobID[%1]=-1
- forward AddMin();
- stock DJS_OnGameModeInit()
- {
- SetTimer("AddMin",60000,true);
- }
- stock AddJob(job_name[],Float:X,Float:Y,Float:Z,barvatextu,Jobzadaminutnapodobnepozici,skin1,skin2,skin3,weapon1,weapon2,weapon3,jobcolor,mapicon)
- {
- if(mapicon > 63 || mapicon < 0 || VytvorenoJobu == MAX_JOBS || Jobzadaminutnapodobnepozici < 0)
- {
- if(VytvorenoJobu == MAX_JOBS) { printf("[ DJS ERROR ]: Prekroceny pocet MAX_JOBS"); }
- if(mapicon > 63 || mapicon < 0) { printf("[ DJS ERROR ]: Chybne ID mapicon"); }
- if(Jobzadaminutnapodobnepozici < 0) { printf("[ DJS ERROR ]: Chybna definice funkce Jobzadaminutnapodobnepozici"); }
- }else{
- Job[VytvorenoJobu][Job_X] = X;
- Job[VytvorenoJobu][Job_Y] = Y;
- Job[VytvorenoJobu][Job_Z] = Z;
- format(Job[VytvorenoJobu][jobname],70,job_name);
- Job[VytvorenoJobu][jobzadaminut] = Jobzadaminutnapodobnepozici;
- Job[VytvorenoJobu][jobid] = VytvorenoJobu;
- Job[VytvorenoJobu][jobskin1] = skin1; Job[VytvorenoJobu][jobskin2] = skin2; Job[VytvorenoJobu][jobskin3] = skin3;
- Job[VytvorenoJobu][wep1] = weapon1; Job[VytvorenoJobu][wep2] = weapon2; Job[VytvorenoJobu][wep3] = weapon3;
- Create3DTextLabel(Job[VytvorenoJobu][jobname],barvatextu,X,Y,Z,100,0);
- Job[VytvorenoJobu][jobpickup] = CreatePickup(1272,1,X,Y,Z);
- Job[VytvorenoJobu][jobmapicon] = mapicon;
- Job[VytvorenoJobu][color] = jobcolor;
- VytvorenoJobu++;
- }
- }
- stock DJS_OnPlayerPickupPickup(playerid,pickupid)
- {
- #pragma unused pickupid
- for(new DJS=0; DJS<VytvorenoJobu; DJS++)
- {
- if(IsPlayerInRangeOfPoint(playerid,2,Job[DJS][Job_X],Job[DJS][Job_Y],Job[DJS][Job_Z]))
- {
- JobMenu[playerid] = CreateMenu(Job[DJS][jobname],1, 50.0, 180.0, 400.0, 200.0);
- AddMenuItem(JobMenu[playerid],0,"Uchazet se o pozici");
- AddMenuItem(JobMenu[playerid],0,"Uniforma");
- AddMenuItem(JobMenu[playerid],0,"Vyplata");
- AddMenuItem(JobMenu[playerid],0,"Nic");
- ShowMenuForPlayer(JobMenu[playerid],playerid);
- IsMenu[playerid] = DJS;
- }
- }
- }
- stock DJS_OnPlayerSelectedMenuRow(playerid, row)
- {
- if(GetPlayerMenu(playerid) == JobMenu[playerid])
- {
- switch(row)
- {
- case 0: {
- DestroyMenu(JobMenu[playerid]);
- if(JobNahranoMinut[playerid][IsMenu[playerid]] < Job[IsMenu[playerid]][jobzadaminut]){
- SendClientMessage(playerid,-1,"Nemáš dostatečnou praxi na podobné pozici"); return 1;}
- if(JobID[playerid] == Job[IsMenu[playerid]][jobid]){
- SendClientMessage(playerid,-1,"Již u nás pracuješ, kolego"); return 1;}
- JobID[playerid] = Job[IsMenu[playerid]][jobid];
- SendClientMessage(playerid,-1,"Vítej v nové práci kolego, snaž se plnit svoji práci");
- GivePlayerWeapon(playerid,Job[IsMenu[playerid]][wep1],5);
- GivePlayerWeapon(playerid,Job[IsMenu[playerid]][wep2],5);
- GivePlayerWeapon(playerid,Job[IsMenu[playerid]][wep3],5);
- SetPlayerColor(playerid,Job[IsMenu[playerid]][color]);
- }
- case 1: {
- DestroyMenu(JobMenu[playerid]);
- if(JobID[playerid] != Job[IsMenu[playerid]][jobid]){
- return SendClientMessage(playerid,-1,"Uniformy dáváme jen zaměstnancům"); }
- switch(random(3))
- {
- case 0: SetPlayerSkin(playerid,Job[IsMenu[playerid]][jobskin1]);
- case 1: SetPlayerSkin(playerid,Job[IsMenu[playerid]][jobskin2]);
- case 2: SetPlayerSkin(playerid,Job[IsMenu[playerid]][jobskin3]);
- }
- }
- case 2: {
- DestroyMenu(JobMenu[playerid]);
- if(Vyplata[playerid][IsMenu[playerid]] == 0) return SendClientMessage(playerid,-1,"Nemáte u nás peníze");
- GivePlayerMoney(playerid,Vyplata[playerid][IsMenu[playerid]]);
- Vyplata[playerid][IsMenu[playerid]] = 0;
- }
- }
- }
- return 1;
- }
- public AddMin()
- {
- for(new i=0; i<MAX_PLAYERS; i++)
- {
- if(IsPlayerConnected(i) && JobID[i] != -1)
- {
- JobNahranoMinut[i][JobID[i]]++;
- }
- }
- }
- stock GivePlayerJobCashForGet(playerid,cash)
- {
- if(IsPlayerConnected(playerid) && JobID[playerid] != -1)
- {
- Vyplata[playerid][JobID[playerid]]+=cash;
- }
- }
- stock DJS_OnPlayerConnect(playerid)
- {
- for(new i=0;i<MAX_JOBS;i++)
- {
- #if defined Streamer_IncludeFileVersion
- CreateDynamicMapIcon(Job[i][Job_X],Job[i][Job_Y],Job[i][Job_Z],Job[i][jobmapicon],-1,-1,-1,-1,100);
- #else
- SetPlayerMapIcon(playerid,i,Job[i][Job_X],Job[i][Job_Y],Job[i][Job_Z],Job[i][jobmapicon],i,MAPICON_GLOBAL);
- #endif
- JobNahranoMinut[playerid][i] = 0;
- }
- JobID[playerid] = -1;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement