ĐaVe 33 Odesláno: 8. Březen, 2015 Share Odesláno: 8. Březen, 2015 (upraveno) tak dneska jsem byl u kamose na serveru a mel tam jeden barak co se mu pres streamer spatne nacital tak jsem mu rekl ze mu udelam streamer... povedlo se uz ho ma POPIS: ================================================================================================================ **** * * **** * ======================= * * * * * * * ======================= * * *** * * *** * **** ======================= * * * * * * **** * * * ** *** *** * * * *** * * ======================= ***** *** * ** * * * ** * **** * * ** * * **** ** * ======================= *** * * * * * * * * * * * * * * ======================= *** *** * *** *** * * * * *** * ====================================================================================================================================== DaVe Object Streamer = verze 1.0 = Vytvořeno: 8.3.2015 ===================================================================================================================================================================== Použití includu: 1) nakopírujte tento include do pawno/include 2) Do vyšeho pawno scriptu zadejte úplně nahoru include <DOS> 3) do vašeho scriptu přiřaďte do publiců: OnFilterScriptInit() / OnGameModeInit() (dle vašeho scriptu)-> Streamer_OnInit() OnPlayerConnect(playerid) -> Streamer_OnPlayerConnect(playerid) OnPlayerDisconnect(playerid) -> Streamer_OnPlayerDisconnect(playerid) 4) Využijeme funkce: CreateDynamicObject(modelid,Float:X,Float:Y,Float:Z,Float:rX,Float:rY,Float:rZ) DestroyDynamicObject(objectid) MoveDynamicObject(objectid,Float:ToX,Float:ToY,Float:ToZ,Float:speed,Float:torx,Float:tory,Float:torz) StopDynamicObject(objectid) 5) upravíme definici MAX_DYNAMIC_OBJECTS v tomto includu na počet vašich vytvořených objektů (aby jste je nemuseli počítat, podívejte se do server.log, include vám napíše kolik objektů vytvořil): #define MAX_DYNAMIC_OBJECTS 2000 //(toto je příklad jenom) STREAMER TESTOVÁN NA MÓDU HARRY POTTER Jak na to? jednoduchý příklad tady ve spoileru #include a_samp #include DOS public OnGameModeInit() { Streamer_OnInit(); CreateDynamicObject(/*sem pozice id a vse co tam patri */); CreateDynamicObject(/*sem pozice id a vse co tam patri */); return 1; } public OnPlayerConnect(playerid) { Streamer_OnPlayerConnect(playerid); return 1; } public OnPlayerDisconnect(playerid) { Streamer_OnPlayerDisconnect(playerid); return 1; } v tomto pripade jsme vyuzili pouze 2 objekty, tudiz otevreme potom include a upravime definici: #define MAX_DYNAMIC_OBJECTS 2 DOWNLOAD INCLUDE PASTEBIN Edited 8. Březen, 2015 by ĐaVe Link to comment Share on other sites More sharing options...
Amenadiel 286 Odesláno: 8. Březen, 2015 Share Odesláno: 8. Březen, 2015 zachvilku příjde qwer a zase tě pojebe že nepoužíváš hooky jinak umí to více věcí než jenom objekty? jsem línej čumět do kodu Link to comment Share on other sites More sharing options...
ĐaVe 33 Odesláno: 8. Březen, 2015 Author Share Odesláno: 8. Březen, 2015 sam nevim co to "hook" je zatim jen 4 funkce CreateDynamicObject(modelid,Float:X,Float:Y,Float:Z,Float:rX,Float:rY,Float:rZ) DestroyDynamicObject(objectid) MoveDynamicObject(objectid,Float:ToX,Float:ToY,Float:ToZ,Float:speed,Float:torx,Float:tory,Float:torz) StopDynamicObject(objectid) jojo qwer mi to zkritizuje a tak aspon se poucim jo jinak testoval jsem jen CreateDynamicObject tak kdyby neco neslo napiste Link to comment Share on other sites More sharing options...
ActiV3Drifter 11 Odesláno: 8. Březen, 2015 Share Odesláno: 8. Březen, 2015 Dave ty ses nějak s těmi includy rozjel zachvíly tady bude includ Tvoja Mama...... samozřejmě to není urážka jen pokračuj dál 1 Link to comment Share on other sites More sharing options...
ĐaVe 33 Odesláno: 8. Březen, 2015 Author Share Odesláno: 8. Březen, 2015 nejak me to zaclo bavit diky ti Link to comment Share on other sites More sharing options...
DoubleX 7 Odesláno: 8. Březen, 2015 Share Odesláno: 8. Březen, 2015 pěkný 1 Link to comment Share on other sites More sharing options...
ĐaVe 33 Odesláno: 8. Březen, 2015 Author Share Odesláno: 8. Březen, 2015 pěkný diky jen kdo chcete tak si to prosim stahnete znovu, mel jsem tam bug Link to comment Share on other sites More sharing options...
D4n09 71 Odesláno: 8. Březen, 2015 Share Odesláno: 8. Březen, 2015 jen když vidím ten mod harry potter na kterém sem dřív chvíli hrál sem si uvědomil že kdyby si to udělal v MTA šlo by to udělat lépe ale k tématu s pracemi od tebe nemam nikdy problém vesměs se mi všechno líbí jen tak dál Link to comment Share on other sites More sharing options...
ĐaVe 33 Odesláno: 9. Březen, 2015 Author Share Odesláno: 9. Březen, 2015 To ešte je v móde robiť takéto nefunkčné/polofunkčné systémy ktorých je milión a kopec z toho lepších? (rečnícka otázka ^.^)Ach jaj, tak sa do toho vrhneme... (budem používať spoiler lebo keď som použil code tak sa po prvom zmazalo všetko ostatné ^.^ gj AT)- Knižnica ktorá potrebuje aby som niečo mal dať do gamemode je na P**U ^.^ Oh cmon guyz je rok 2015 a tu asi nikto nevie hookovať callbacky/funkcie public OnGameModeInit(){SetTimer("StreamerControll",1000,true);for(new i=0; i<MAX_PLAYERS; i++){for(new o=0; o<MAX_DYNAMIC_OBJECTS; o++){COE[o] = false;}}#if defined ObjStreamer_OnGameModeInitreturn ObjStreamer_OnGameModeInit();#elsereturn 1;#endif}#if defined _ALS_OnGameModeInit#undef OnGameModeInit#else#define _ALS_OnGameModeInit#endif#define OnGameModeInit ObjStreamer_OnGameModeInit#if defined ObjStreamer_OnGameModeInitforward ObjStreamer_OnGameModeInit();#endif a už netreba dávať nič do OnGameModeInitTo isté s OnPlayerConnect public OnPlayerConnect(plyerid){for(new o=0; o<MAX_DYNAMIC_OBJECTS; o++){COE[playerid][o] = false;}#if defined ObjStreamer_OnPlayerConnectreturn ObjStreamer_OnPlayerConnect(plyerid);#elsereturn 1;#endif}#if defined _ALS_OnPlayerConnect#undef OnPlayerConnect#else#define _ALS_OnPlayerConnect#endif#define OnPlayerConnect ObjStreamer_OnPlayerConnect#if defined ObjStreamer_OnPlayerConnectforward ObjStreamer_OnPlayerConnect(plyerid);#endif - Premeny majú divné pomenovanie, moc obyčajné pomenovanie čo môže byť problém ak by bol niekto (o.O) až taký odvážny alebo až taký blázon a použil to vo svojom móde a mal by premenu new Object; tak by to hádzalo errory npr. Streamaer_Objects- Podmienka je blbosť, lebo ak by si vytvoril tisíci objekt (čiže by celkemvytvoreno malo hodnotu 1000) tak by si už bol mimo veľkosť pola lebo veľkosť poľa je od [0] po [999] a neexistujúcemu polu by si nastavil hodnoty if(celkemvytvoreno > MAX_DYNAMIC_OBJECTS) { printf("ERROR: Překročená definice MAX_DYNAMIC_OBJECTS"); } - Globálna premena "DOmsg[70];" je zbytočná o.O Využil si to iba tu format(DOmsg,70,"Vytvářím %d. dynamický objekt",celkemvytvoreno);printf(DOmsg); Tam by sa dala použiť normálne lokálna premena a btw... vieš o tom že existuje printf? printf("Vytvářím %d. dynamický objekt",celkemvytvoreno", celkemvytvoreno);Ja som myslel, že print a printf je základ - Si si vedomý, že novo vytvorená premena má hodnotu 0 že? Lebo keby si si toho bol vedomý tak by si vedel že toto je chujovina stock Streamer_OnInit()for(new i=0; i<MAX_PLAYERS; i++){for(new o=0; o<MAX_DYNAMIC_OBJECTS; o++){COE[o] = false;}} - CreateDynamicObject nemá žiadnu návratovú hodnotu, takže sa nedá potom s objektom pohybovať/mazať- Ou ja som zabudol DestroyDynamicObject nefunguje ^.^ Nemáš vôbec žiadnu premenu na to, že je objekt zmazaný. Zmaže sa len tým hráčom, ktorým je objekt streamovaný (čiže stačí sa vzdialiť a vrátiť a objekt tam je znovu)- Znova DestroyDynamicObject ^.^ Ty asi nevieš čo to je testovanie že? DestroyPlayerObject(i,CO[objectid]);Nemá to byť náhodouDestroyPlayerObject(i,CO[objectid]); - A znova... čo tam tak dať podmienku že má hráč ten objekt vytvorený (streamovany)?- Je pekné že máš rád MoveObject ~ MoveDynamicObject Ale prečo nastavuješ 1000x pozíciu objektu? stock MoveDynamicObject(objectid,Float:ToX,Float:ToY,Float:ToZ,Float:speed,Float:torx,Float:tory,Float:torz){for(new i=0; i<MAX_PLAYERS; i++){if(IsPlayerConnected(i) && COE[objectid] == true){MovePlayerObject(objectid,CO[objectid],ToX,ToY,ToZ,speed,torx,tory,torz);}Object[objectid][sTREAMER_x] = ToX;Object[objectid][sTREAMER_y] = ToY;Object[objectid][sTREAMER_z] = ToZ;Object[objectid][sTREAMER_Rx] = torx;Object[objectid][sTREAMER_Ry] = tory;Object[objectid][sTREAMER_Rz] = torz;}} - StopDynamicObject je iná káva ^.^ Prečo tam je tá premena pocet? Je v cykle takže môže mať hodnotu iba 0 alebo 1. Aha no jasne, povedal si si že nastavovať pozíciu objektu 1000x je moc mainstream tak to urobíš iba toľko krát, koľko ľuďom je ten objekt streamovaný i get it [ale čo ak ten objekt nie je nikomu nestramovaný, tak sa nestopne a neprenastavia sa hodnoty pre streamovanie?] stock StopDynamicObject(objectid){for(new i=0; i<MAX_PLAYERS; i++){new Float:ToX, Float:ToY, Float:ToZ, Float:torx, Float:tory, Float:torz, pocet = 0;if(IsPlayerConnected(i) && COE[objectid] == true){StopPlayerObject(objectid,CO[objectid]);GetPlayerObjectPos(i,CO[objectid],ToX,ToY,ToZ);pocet++;}if(pocet != 0) { Object[objectid][sTREAMER_x] = ToX; Object[objectid][sTREAMER_y] = ToY; Object[objectid][sTREAMER_z] = ToZ; Object[objectid][RSTREAMER_x] = torx; Object[objectid][sTREAMER_Ry] = tory; Object[objectid][sTREAMER_Rz] = torz; }}} - Streamer_OnPlayerDisconnect(playerid) Chýba podmienka či je objekt streamovany (vytvorený)- A čerešnička na torte .... StreamerControll()Je to úplne zle. Čo to je za logiku? Jaj, to nemá logiku for(new i=0; i<MAX_PLAYERS; i++){for(new o=0; o<MAX_DYNAMIC_OBJECTS; o++){if(IsPlayerConnected(i)){ Najskôr precyklíme 1000 hráčov ale to nestačí horste! My to totiž môžeme cykliť 1000*MAX_DYNAMIC_OBJECTS aby sme prišli na to, že hráč nie je na servery (bola by to prdel to niekomu dať na server a MAX_DYNAMIC_OBJECTS nastaviť na hodnotu .... 25 000)- Namiesto IsPlayerInRangeOfPos by si mal urobiť nejaké zóny bolo by to omnoho efektívnejšie- Kašlite na amatérske object streamery a použite nejaký ktorý je osvedčený EDIT ^.^ a to týpek nad týmto potom napísal že nemá žiadny problém... oh my godEDIT2 Ale chápem, je to pekné (*pekne vtipné) keď ti napíšu že to je super, síce ani nevedia čo to je, nevedia že je to takmer nefunkčné ale čo, koment treba a samozrejme karma+ musí byť... nj co si budem nalhavat mas pravdu asi bych to rovnou smazal lepsi vyuzit Incognito Object Streamer ten je osvedceny ale aspon jsem se zasmal jak jsi to popisoval pripadne jak se mi bude chtit a jak budu mit cas to upravim dle tvyho navodu, diky 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