ĐaVe 33 Odesláno: 27. Prosinec, 2015 Share Odesláno: 27. Prosinec, 2015 (upraveno) Přátelé, plánoval jsem se vrátit k pawnu, ale prdím na to chtěl jsem udělat mód RP, začal jsem tímhle scriptem, jelikož jsem se na mód vykašlal a dělat jej nebudu, tak vám odevzdávám svůj include... takže... Job system include = include pro tvorbu zamestnani v sampu 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) Funkce,která odebere hráči job: DeletePlayerJob(playerid); 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: if(PlayerJob(playerid,==,14) ) A samozřejmě nezapomeňte nahoru do módu: #include <DJS> Vzhledem k tomu, ze planovany projekt nebyl zhotoven, tak vam tento includedavam, s pozdravem DaVe //EDIT: include otestován, opravené chyby scriptu, znovu nahráno a upravené linky pastebin a download /* ||=========================================================================|| || || || ** 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; } DOWNLOAD PASTEBIN Edited 29. Prosinec, 2015 by ĐaVe Link to comment Share on other sites More sharing options...
Albus Brambůrek 41 Odesláno: 27. Prosinec, 2015 Share Odesláno: 27. Prosinec, 2015 Jsem línej to zkoušet a i líný nahrávat svůj jobs systém... Link to comment Share on other sites More sharing options...
Lukasz 336 Odesláno: 27. Prosinec, 2015 Share Odesláno: 27. Prosinec, 2015 (upraveno) Celé je to na nic... stock GivePlayerJobCashForGet jde napsat mnohem líp bez zbytečného cyklu if(JobID[playerid] >= 0) Vyplata[playerid][JobId[playerid]] += cash; Wau a mam to bez cyklu.. - To stejné AddMin() JobNahranoMinut[i][JobId[i]]++; - A další hlod.. 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]); } Protože něco jako SetPlayerSkin(playerid,Job[IsMenu[playerid]][random(3)]); je moc mainstream - A toto je zase co 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 = CreateMenu(Job[DJS][jobname],1, 50.0, 180.0, 400.0, 200.0); AddMenuItem(JobMenu,0,"Uchazet se o pozici"); AddMenuItem(JobMenu,0,"Uniforma"); AddMenuItem(JobMenu,0,"Vyplata"); AddMenuItem(JobMenu,0,"Nic"); ShowMenuForPlayer(JobMenu,playerid); IsMenu[playerid] = DJS; } } } Proč sakra porovnáváš na jaké je pozici, když stačí porovnat pickupid s uloženýma pickupid k jednotlivým jobům. Plus ti to nebude fungovat, když si stoupne na pickup víc lidí, protože pořád přepisuješ ID toho menu. - Další pěkná věc, aneb jak zahltit streamer zbytečnýma mapiconama.. 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 } (Vytvářej je pokud není includovaný streamer. Pokud je, tak je vytvářej v Initu ^^. Takhle se vytváří pro všechny hráče s každým připojením) - - A je strašně pěkně vymyšlené to vkládání volání fcí do OnGameModeInit, OnPlayerConnect atd.. vůbec by nebylo pro obě strany lepší použít hookovaní. Jako vždy jsi nepřekvapil a je to sra.. Ámen Edited 27. Prosinec, 2015 by Lukasz 1 Link to comment Share on other sites More sharing options...
ĐaVe 33 Odesláno: 27. Prosinec, 2015 Author Share Odesláno: 27. Prosinec, 2015 Celé je to na nic... stock GivePlayerJobCashForGet jde napsat mnohem líp bez zbytečného cyklu if(JobID[playerid] >= 0) Vyplata[playerid][JobId[playerid]] += cash; Wau a mam to bez cyklu.. - To stejné AddMin() JobNahranoMinut[i][JobId[i]]++; - A další hlod.. 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]); } Protože něco jako SetPlayerSkin(playerid,Job[IsMenu[playerid]][random(3)]); je moc mainstream - A toto je zase co 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 = CreateMenu(Job[DJS][jobname],1, 50.0, 180.0, 400.0, 200.0); AddMenuItem(JobMenu,0,"Uchazet se o pozici"); AddMenuItem(JobMenu,0,"Uniforma"); AddMenuItem(JobMenu,0,"Vyplata"); AddMenuItem(JobMenu,0,"Nic"); ShowMenuForPlayer(JobMenu,playerid); IsMenu[playerid] = DJS; } } } Proč sakra porovnáváš na jaké je pozici, když stačí porovnat pickupid s uloženýma pickupid k jednotlivým jobům. Plus ti to nebude fungovat, když si stoupne na pickup víc lidí, protože pořád přepisuješ ID toho menu (?) - Další pěkná věc, aneb jak zahltit streamer zbytečnýma mapiconama.. 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 } (Vytvářej je pokud není includovaný streamer. Pokud je, tak je vytvářej v Initu ^^. Takhle se vytváří pro všechny hráče s každým připojením) - - A je strašně pěkně vymyšlené to vkládání volání fcí do OnGameModeInit, OnPlayerConnect atd.. vůbec by nebylo pro obě strany lepší použít hookovaní. Jako vždy jsi nepřekvapil a je to sra.. Ámen jojo, sorry, po rocnim nepawneni co jsem pawno otevrel jsem delal moc kopancu co uz, oprvovat se mi to nechce, proste je to jak je a at si s tim dela kazdy co chce *opravovat Proč sakra porovnáváš na jaké je pozici, když stačí porovnat pickupid s uloženýma pickupid k jednotlivým jobům. duvod je jednoduchy, protoze od zkusenosti s pawnem vim, ze se if(pickupid==pickup) pri vice pouziti prohazuje a snazim se vyhnout bugum, kdyz uzivatel bude vyuzivat tuto defektni funkci ( myslim if(pickupid == pickup) ), a nestojim o opravne includy jako napr od ATomase, snazil jsem se to delat bez blbych dalsich includu 1 Link to comment Share on other sites More sharing options...
Scydo 397 Odesláno: 27. Prosinec, 2015 Share Odesláno: 27. Prosinec, 2015 stock DJS_OnPlayerPickupPickup(playerid,pickupid) { #pragma unused pickupid ~> Tohle mě překvapí pokaždé. Při deklaraci nové funkce do ní přidáváš preprocesor s nevyužitím jednoho z tvých vlastních parametrů. Proč? Když ho tam nepotřebuješ, nechceš nebo cokoliv jiného, tak ho tam nedávej. public AddMin() { for(new i=0; i<MAX_PLAYERS; i++) { if(IsPlayerConnected(i) && JobID[i] != -1) { ~> Ale no ták... už je rok 2k15: (wiki/GetPlayerPoolSize). Link to comment Share on other sites More sharing options...
ĐaVe 33 Odesláno: 27. Prosinec, 2015 Author Share Odesláno: 27. Prosinec, 2015 Další pěkná věc, aneb jak zahltit streamer zbytečnýma mapiconama.. (Vytvářej je pokud není includovaný streamer. Pokud je, tak je vytvářej v Initu ^^. Takhle se vytváří pro všechny hráče s každým připojením) nevim jak presne to funguje ve streameru, ale dle mych zkusenosti jsem to vzdy daval do onplayerconnectu a nebyl s tim problem, jestli streamer funguje jinak nez SetPlayerMapIcon, to jsem nezkoumal stock DJS_OnPlayerPickupPickup(playerid,pickupid) { #pragma unused pickupid hej no je to zvyk napisu cely public, upravim do sveho, jasny jednodussi pickupid vymazat ~> Ale no ták... už je rok 2k15: (wiki/GetPlayerPoolSize). nesleduju novinky pawna delam ete ve starsim pawnu a ani jsem neaktualizoval ted pawno aby tam tahle funkce sla 1 Link to comment Share on other sites More sharing options...
Lukasz 336 Odesláno: 27. Prosinec, 2015 Share Odesláno: 27. Prosinec, 2015 Pickupy se "prohazují" při špatném zacházení s hodnotou proměnné. Pokud ničíš pickupy (DestroyPickup) a "neresetuješ" hodnotu proměnné, kde máš uložené id pickupu, tak se pak nemůžeš divit no.. Jinak porovnávání pickupid funguje tak jak má. S těma ikonama jde o to, že při každém připojení hráče vytvoříš MAX_JOBS ikon pro všechny hráče (pokud máš streamer). Stačí je všechny vytvořit pouze jednou a nestarat se o to.. takhle při víc hráčích máš přes sebe x ikon. Link to comment Share on other sites More sharing options...
ĐaVe 33 Odesláno: 28. Prosinec, 2015 Author Share Odesláno: 28. Prosinec, 2015 (upraveno) ráno jsem to testoval, opravil asi 5 chyb v pawnu, ktere měly vliv na funkci includu, include opraven, linky updatovány, include funkční... Jak pracovat s DJS.inc? Zde je příklad(soubor, na kterém jsem inc testoval, vznikl pro tento test): /* ============================================================================ DaVe Roleplay Gamemode v1.0 zahájeno: 28.12.2015 v: 1:12 ráno ============================================================================ DJS: ==== 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: if(JobID[playerid] == Job_ID) AddJob(job_name[],Float:X,Float:Y,Float:Z,barvatextu,Jobzadaminut,skin1,skin2,skin3,weapon1,weapon2,weapon3,jobcolor,mapicon) DHS: ==== 3) vyuzijeme funkci(tuto funkci zadavame do public GameModeInit() ve vasem modu): CreateDaveHouse(mapicon,pickupid,cena,Float:X,Float:Y,Float:Z,interiorid,Float:InteriorX,Float:InteriorY,Float:InteriorZ,HomeVirtualWorld) mapicon = ikona na mape pickupid = id pickupu domu cena = vase nastaveni ceny napr 100000 (piste bez mezer a bez uvozovek) Float:X,Float:Y,Float:Z = pozice pickupu domu interiorid = id interioru domu Float:InteriorX,Float:InteriorY,Float:InteriorZ = pozice interioru, pripadne pozice, kam hrac bude presunut HomeVirtualWorld = vami zvolene id VirtualWorld 4) upravime definici MAX_HOUSES na vami vyuzity pocet domu v includu: #define MAX_HOUSES [vas pocet domu] priklad: #define MAX_HOUSES 45 */ #include <a_samp> #include <DJS> #include <DHS> #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 B_ORANZOVA 0xFF7B00AA #define B_CERVENA 0xE10000AA #define B_SVITIVA 0xB5FF4AAA #define B_BILA 0xFFFFFFAA #define B_MODR 0x4169FFAA #define B_ZLUT 0xFFFF00AA #define B_SEDA 0x808080AA main() { print("===================================="); print(" DaVe RolePlay Gamemode"); print("započato: 28.12.2015 v: 1:12 ráno"); print("===================================="); } public OnGameModeInit() { DJS_OnGameModeInit(); DHS_OnGameModeInit(); SetGameModeText("DaVe RP 2015"); for(new i=0; i<299;i++) { AddPlayerClass(i, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0); } AddJob("Policista",2029.7307,1349.2823,10.8203,B_ORANZOVA,5,299,241,264,23,32,31,B_ORANZOVA,34); AddJob("Urednik",2040.5896,1344.0265,10.6719,B_MODR,5,299,241,264,0,0,0,B_MODR,34); AddJob("Popelar",2049.5200,1336.1340,10.6719,B_SEDA,5,299,241,264,23,14,0,B_SEDA,34); return 1; } public OnGameModeExit() { DHS_OnGameModeExit(); return 1; } public OnPlayerRequestClass(playerid, classid) { SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746); SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746); SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746); return 1; } public OnPlayerConnect(playerid) { DJS_OnPlayerConnect(playerid); DHS_OnPlayerConnect(playerid); return 1; } public OnPlayerDisconnect(playerid, reason) { return 1; } public OnPlayerSpawn(playerid) { DHS_OnPlayerSpawn(playerid); return 1; } public OnPlayerDeath(playerid, killerid, reason) { return 1; } public OnVehicleSpawn(vehicleid) { return 1; } public OnVehicleDeath(vehicleid, killerid) { return 1; } public OnPlayerText(playerid, text[]) { return 1; } public OnPlayerCommandText(playerid, cmdtext[]) { return 0; } public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger) { return 1; } public OnPlayerExitVehicle(playerid, vehicleid) { return 1; } public OnPlayerStateChange(playerid, newstate, oldstate) { 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(playerid, objectid) { return 1; } public OnPlayerPickUpPickup(playerid, pickupid) { DJS_OnPlayerPickupPickup(playerid,pickupid); DHS_OnPlayerPickUpPickup(playerid, pickupid); return 1; } public OnVehicleMod(playerid, vehicleid, componentid) { return 1; } public OnVehiclePaintjob(playerid, vehicleid, paintjobid) { return 1; } public OnVehicleRespray(playerid, vehicleid, color1, color2) { return 1; } public OnPlayerSelectedMenuRow(playerid, row) { DJS_OnPlayerSelectedMenuRow(playerid, row); DHS_OnPlayerSelectedMenuRow(playerid, row); return 1; } public OnPlayerExitedMenu(playerid) { return 1; } public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid) { return 1; } public OnPlayerKeyStateChange(playerid, newkeys, oldkeys) { DHS_OnPlayerKeyStateChange(playerid, newkeys, oldkeys); return 1; } public OnRconLoginAttempt(ip[], password[], success) { return 1; } public OnPlayerUpdate(playerid) { return 1; } public OnPlayerStreamIn(playerid, forplayerid) { return 1; } public OnPlayerStreamOut(playerid, forplayerid) { return 1; } public OnVehicleStreamIn(vehicleid, forplayerid) { return 1; } public OnVehicleStreamOut(vehicleid, forplayerid) { return 1; } public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) { return 1; } public OnPlayerClickPlayer(playerid, clickedplayerid, source) { return 1; } (v udaném příkladu je zahrnut i DHS) Edited 28. Prosinec, 2015 by ĐaVe Link to comment Share on other sites More sharing options...
Lukasz 336 Odesláno: 28. Prosinec, 2015 Share Odesláno: 28. Prosinec, 2015 (upraveno) Stale nedoporucuji pouzivat. Include je neoptimalizovany a nefunkcni. Edited 28. Prosinec, 2015 by Lukasz Link to comment Share on other sites More sharing options...
ĐaVe 33 Odesláno: 28. Prosinec, 2015 Author Share Odesláno: 28. Prosinec, 2015 Stale nedoporucuji pouzivat. Include je neoltimalizovany a nefunkcni. na zruseni cyklusu jsem o pul druhe rano opravdu nemel cas ani chut a ted taky ne, include funkcni je, ty p*covinky tam opravim az bude cas a chut Link to comment Share on other sites More sharing options...
Lukasz 336 Odesláno: 28. Prosinec, 2015 Share Odesláno: 28. Prosinec, 2015 Changelog pridas? Je celkem odvazne tvrdit o nefunkcnim scriptu ze je funkcni. A ne, nejde o zruseni cyklu, to je uz vec optimalizace.. Include funkcni neni Link to comment Share on other sites More sharing options...
ĐaVe 33 Odesláno: 28. Prosinec, 2015 Author Share Odesláno: 28. Prosinec, 2015 (upraveno) jede specialne pro tebe jsem tu nahral fotky FOTKY V AKCI ZDE co ti nejede? jediny co se divam, nejak nelogicky jsem udelal JobNahranoMinut , jasne pri zadani 0 je vse v pohode ale prakticky nemas sanci treba na id jobu 1 2 3 4 atd ziskat praxi kdyz to reknu lajcky to je asi jediny bug pak ta uniforma tam bych dal podminku ze si ji muzes dat jen pokud jsi tam zamestnan, tyto dva bugy mohu opravit behem chvilinky kdyz budu chtit vymazu ti pak z tama rovnou ty 2 cykly Edited 28. Prosinec, 2015 by Polis_Polismanovic Link to comment Share on other sites More sharing options...
Lukasz 336 Odesláno: 28. Prosinec, 2015 Share Odesláno: 28. Prosinec, 2015 (upraveno) Mistni [Cenzura] jsi tu akorat tak ty. Si myslis, ze kdyz sem das neotestovany, nefunkcni bullshit include tak se kazdy pos*re?Include ani zkouset nemusim a vidim, ze nejede, ale chyby uz jsem ti tu jednou vypsal. To by nekdo nesmel byt takovy ignorant a umet cist ^^.Jed si dal svoje "Script je [Cenzura], obcas to nefunguje ale kdyz to zkousim sam tak to jede.. opravte si to sami". [Cenzura] pristup [Cenzura] cloveka, muzes to opravit behem chvilinky (prakticky to mas opravene ode me) ale skutek utekl a Jezis umrel. //EDIT: Protože je DaVe věřící, který nekleje, smazal všechny svoje nadávky.. viz http://img.ewolutions.cz/di/6OWB/daveomg.png Ámen Dave Edited 28. Prosinec, 2015 by Lukasz Nahrazení vulgarní slov 2 Link to comment Share on other sites More sharing options...
Globální moderátor HighPrint 177 Odesláno: 28. Prosinec, 2015 Globální moderátor Share Odesláno: 28. Prosinec, 2015 Třeba tohle jak již zmiňoval Plus ti to nebude fungovat, když si stoupne na pickup víc lidí, protože pořád přepisuješ ID toho menu. Navíc, nikde neničíš vytvořený Menu... zkus si stoupnout 129x a schválně jestli ti nepadne server Link to comment Share on other sites More sharing options...
Polisek 76 Odesláno: 28. Prosinec, 2015 Share Odesláno: 28. Prosinec, 2015 Fajn to stačí... Nebudem se tu hádat poslední šance nebo lock příspěvek a var pro každého kdo použije vulgarní slovo nebo uraživou větu na jakoukoliv osobu! Topic se mazat nebude je to includ který pár lidi zřejmě využije. Pokud se někomu nelíbí tento přístup prosím nevyjadřujte se. Link to comment Share on other sites More sharing options...
ĐaVe 33 Odesláno: 29. Prosinec, 2015 Author Share Odesláno: 29. Prosinec, 2015 vite co? me je to jedno, jak jsem jiz psal... klidne to cely vymazte a nebo se hodlejte uklidnit, o vsech zninovanych chybach vim dokonce i o tom menu co jsem tu sam nezminil, nejsem blbej, pawno cist jeste umim bud to cely smazte (je mi to fuk) a nebo budte trpelivi az budu mit chut a cas na to, uz nejsem takovej blazen jako driv ze bych pawnil porad, ne Protože je DaVe věřící, který nekleje, smazal všechny svoje nadávky. Vážně si myslíš že kvůli tomu jsem to smazal? Důvod proč: -jsem takový, že občas vybuchnu, něco napíšu a pak si to třeba čtu, jakmile se uklidním alespoň trochu, vidím to jinak a vidím, že jsem třeba vybuchl zbytečně a že jsem ti zbytečně nadával... Ten příspěvek jsem upravoval dříve, než jsi odeslal tvůj. K includu: opravil jsem doufám vše, snad jsem na nic nezapoměl, linky upraveny, include připraven k použití, kdyby cokoliv ohledně scriptu, pište sem Link to comment Share on other sites More sharing options...
Amenadiel 286 Odesláno: 29. Prosinec, 2015 Share Odesláno: 29. Prosinec, 2015 abych zhodnotil zmého pohledu. máš tam hoodně kravin a to vytváření práce s 20 argumentama je otřesné..raději bych udělal CreateJob(ID,X,Y,Z); AddSkinJob(ID,One.Two,Three); AddSpawnPoint(ID,X,Y,Z); AddWeaponsJob(ID,Gun,Ammo); takle má člověk přehled kde co má a nemusí to hrabat na jednom řádku mezi všema těma číslama kterým ani nemusí potom rozumět.. jednoduše řečeno. máš tam fakt moc kravin i na můj vkus. 2 Link to comment Share on other sites More sharing options...
ĐaVe 33 Odesláno: 29. Prosinec, 2015 Author Share Odesláno: 29. Prosinec, 2015 jojo taky to neni spatny napad kdyz se mi bude zase chtit tak ti to prekopu Link to comment Share on other sites More sharing options...
Amenadiel 286 Odesláno: 29. Prosinec, 2015 Share Odesláno: 29. Prosinec, 2015 jojo taky to neni spatny napad kdyz se mi bude zase chtit tak ti to prekopu neděláš to pro mě. ale děláš to pro sebe aby se ti zlepšila reputace... Link to comment Share on other sites More sharing options...
ĐaVe 33 Odesláno: 29. Prosinec, 2015 Author Share Odesláno: 29. Prosinec, 2015 neděláš to pro mě. ale děláš to pro sebe aby se ti zlepšila reputace... sorry ale reputace i cely tenhle server je mi vis kde delam to pro vas ne pro me, ja uz se samp skoncil vis kdyby to melo byt na me tak me by se treba s tim delalo lip jak to je, mene radku budes mit v modu, ano sice budes tam neco v danem radku hledat pri upravach, ale budes to mit vse u sebe sjednoceny a nemusis vse definovat jak vocas, naopak to nadefinujes v jednom radku a nemusis se tim vice zdrzovat a zabyvat, vede to i k rychlejsimu pawneni aspon dle meho nazoru Link to comment Share on other sites More sharing options...
Amenadiel 286 Odesláno: 29. Prosinec, 2015 Share Odesláno: 29. Prosinec, 2015 jasně ale takle ten job system více propracuješ. když nebudou vyplněné zbraně tak by je ten system měl ignorovat a nepřidávat key. Link to comment Share on other sites More sharing options...
Globální moderátor HighPrint 177 Odesláno: 29. Prosinec, 2015 Globální moderátor Share Odesláno: 29. Prosinec, 2015 (upraveno) Eh...? Už jsem nechtěl do toho rejpat ale "a nemusis vse definovat jak vocas, naopak to nadefinujes v jednom radku... nemusis se tim vice zdrzovat a zabyvat, vede to i k rychlejsimu pawneni" - TOHLE by nikdy PROGRAMÁTOR neřekl. Vše by se mělo hezky dělit do funkcí, kde každá funkce má svůj JEDEN účel. Terpve pak JE to PŘEHLEDNÉ A RYCHLÉ Nemusíš se ZDRŽOVAT? RYCHLEJI?... kdyby to bylo všechno sjednocené, tak OnPConnect a OnPDisconnect je v jednom... nebo počkej, proč to rovnou všechno nenacpat do OnGameModeInit, že? To je taky sjednocení, přece se nemusíš ničím zdržovat a vede to k rychlejšímu pawnění. A taky méně řádků (a tím pokračujeme na druhý bod níže) A co jako má znamena tohle? "mene radku budes mit v modu" - Od kdy je lepší méně řádků? Být to na mě, tak ten tvůj celej systém dokážů napsat o 3x méně řádků a s lepší funkčností, pokud se hraje na tohle - na řádky. Už jenom DestroyMenu jsi mohl dát na lepší místo a tím by ses zbavil 4 zbytečných řádků... EDIT: a jinak jak jsem psal, jak se mi bude chtit, klidne vam to prekopu, neni to pro me a predem vas zadam Tolik nesrovnalostí a protiřečí v jedné větě. Tak když to neděláš pro sebe, ale pro nás, tak prosím... překopej to ať to vypadá k světu. Edited 29. Prosinec, 2015 by HighPrint Link to comment Share on other sites More sharing options...
ĐaVe 33 Odesláno: 29. Prosinec, 2015 Author Share Odesláno: 29. Prosinec, 2015 Eh...? Už jsem nechtěl do toho rejpat ale "a nemusis vse definovat jak vocas, naopak to nadefinujes v jednom radku... nemusis se tim vice zdrzovat a zabyvat, vede to i k rychlejsimu pawneni" - TOHLE by nikdy PROGRAMÁTOR neřekl, nemusíš se ZDRŽOVAT? RYCHLEJI?... promiň,... kdyby to bylo všechno sjednocené, tak OnPConnect a OnPDisconnect je v jednom... nebo počkej, proč to rovnou všechno nenacpat do OnGameModeInit? To je taky sjednocení... přece se nemusíš ničím zdržovat a vede to k rychlejšímu pawnění. A taky méně řádků (a tím pokračujeme na druhý bod níže) A co jako má znamena tohle? "mene radku budes mit v modu" - Od kdy je lepší méně řádků? Být to na mě, tak ten tvůj celej systém dokážů napsat o 3x méně řádků a s lepší funkčností, pokud se hraje na tohle - na řádky. Už jenom DestroyMenu jsi mohl dát na lepší místo a tím by ses zbavil 4 zbytečných řádků... ale me je to uplne jedno chapes? nepochopil jsi vyznam toho prispevku... jinak ja vim ze to jde pod sebe, muj vkus je jednoduchost v jednom radku, nemusim pak vse vypisovast... jako napr kdyz tvoris menu CreateMenu AddMenuItem... ja nevim jak tebe ale me treba nebavi kvuli tomu abych do menu pridal funkci psat porad znovu AddMenuItem(MojeMenu,... , muj vkus je jednoduchost v jednom radku a jinak jak jsem psal, jak se mi bude chtit, klidne vam to prekopu, neni to pro me a predem vas zadam, nespamujte kraviny Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now