Ez a szekció lehetővé teszi a felhasználó által írt összes hozzászólás megtekintését. Vedd figyelembe, hogy csak azokba a fórumokba írt hozzászólásokat látod, amelyekhez hozzáférésed van.
Üzenetek - Norby
Oldalak: 1 ... 14 15 [16] 17 18 ... 104
226
« Dátum: 2012. július 19. - 20:40:02 »
Rendben, köszi. Üdv. JBauer
Viszont addig is ajánlok egy nagyon jó, és figyelmesen pontosan megfogalmazott MySQL scriptet amit kurta készített. http://sampforum.hu/index.php?topic=7449.0
227
« Dátum: 2012. július 19. - 20:31:42 »
Szép lett nagyon, gratulálok. Esetleg nem tudnád megcsinálni úgy, hogy magyarázatot fûzöl a bonyolultabb sorokhoz, mert én most tanulgatom a MySql-t és így sokkal könnyebb lenne. Üdv. JBauer
De, tudok holnap vagy még ma meg fogom csinálni.
228
« Dátum: 2012. július 19. - 20:20:35 »
szép
Köszi. Szép, grat. Bár én mp-ben tároltam volna el, és abból számolnám át mikor a játékos lekérdezi, mert az sokkal kevesebb \"terhelés\" a szervernek, bár egy ekkora script esetében mondhatni elhanyagolható a különbség [/quote] Iagazd van, kevesebb terhelés, de hirtelen most ez jutott eszembe, de ha valaki kéri akkor szívesen megírom a te ötleteddel is.
229
« Dátum: 2012. július 19. - 20:14:43 »
Ez nagyonjó lett! :thumbsup:
Köszi.
230
« Dátum: 2012. július 19. - 20:02:10 »
Üdvözletem. Ezt az új MySQL R7 plugint nem nagyon ismerem még és gondoltam csinálok valami scriptet ami alapján megértem. A scriptrõl annyit hogy az Online eltöltött idõt mér és menti kilépésnél, csatlakozásnál pedig beolvassa és ugyan onnan folytatja. Tábla Struktúra CREATE TABLE IF NOT EXISTS `online` ( `ID` int(11) NOT NULL AUTO_INCREMENT, `Name` varchar(24) NOT NULL, `Online` varchar(45) NOT NULL, PRIMARY KEY (`ID`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ; Script /* A scriptet készítette: Norby Dátum: 2012.07.19 20:03 A script Y_less sscanf pluginját, Zeex zcmd parancsfeldolgozó include, és BlueG mysql pluginját tartalmazza. Letöltési linkek ZCMD: http://forum.sa-mp.com/showthread.php?t=91354 sscanf: http://forum.sa-mp.com/showthread.php?t=120356 mysql: http://forum.sa-mp.com/showthread.php?t=337810 */ #include <a_samp> #include <zcmd> #include <a_mysql> #include <sscanf2> #define MYSQL_HOST \"localhost\" #define MYSQL_USER \"root\" #define MYSQL_DB \"norby\" #define MYSQL_PASS \"\" new dbHandle, OnlineTimeTimer[MAX_PLAYERS], str[128], query[512]; public OnFilterScriptInit() { dbHandle = mysql_connect(MYSQL_HOST,MYSQL_USER,MYSQL_DB,MYSQL_PASS); return 1; } public OnPlayerConnect(playerid) { format(query,sizeof(query),\"SELECT * FROM `online` WHERE Name = \'%s\'\",pName(playerid)); mysql_function_query(dbHandle,query,true,\"MySQL_Query\",\"d\",playerid); OnlineTimeTimer[playerid] = SetTimerEx(\"OnlineTime\",1000,true,\"i\",playerid); return 1; } public OnPlayerDisconnect(playerid, reason) { format(query,sizeof(query),\"SELECT * FROM `online` WHERE Name = \'%s\'\",pName(playerid)); mysql_function_query(dbHandle,query,true,\"MySQL_Online\",\"dsddddd\",playerid,pName(playerid),GetPVarInt(playerid,\"Years\"),GetPVarInt(playerid,\"Days\"),GetPVarInt(playerid,\"Hour\"),GetPVarInt(playerid,\"Minutes\"),GetPVarInt(playerid,\"Seconds\")); KillTimer(OnlineTimeTimer[playerid]); OnlineTimeTimer[playerid] = -1; return 1; } CMD:stats(playerid) { format(str,sizeof(str),\"Szerveren Online eltölött idõd: %d év %02d nap %02d óra %02d perc %02d másodperc.\", GetPVarInt(playerid,\"Years\"),GetPVarInt(playerid,\"Days\"),GetPVarInt(playerid,\"Hour\"),GetPVarInt(playerid,\"Minutes\"),GetPVarInt(playerid,\"Seconds\")); SendClientMessage(playerid,-1,str); return 1; } forward MySQL_Query(playerid); public MySQL_Query(playerid) { new Time[32],year,day,hour,minute,sec; cache_get_row(0, 2, Time); sscanf(Time,\"p<,>ddddd\",year,day,hour,minute,sec); SetPVarInt(playerid,\"Years\",year); SetPVarInt(playerid,\"Days\",day); SetPVarInt(playerid,\"Hour\",hour); SetPVarInt(playerid,\"Minutes\",minute); SetPVarInt(playerid,\"Seconds\",sec); return 1; } forward MySQL_Online(playerid, name[],year,day,hour,minute,sec); public MySQL_Online(playerid, name[],year,day,hour,minute,sec) { new rows, fields; cache_get_data(rows, fields); if(!rows) { format(query,sizeof(query),\"INSERT INTO `online` (ID,Name,Online) VALUES (NULL,\'%s\',\'%d, %02d, %02d, %02d, %02d\')\",name,year,day,hour,minute,sec); mysql_function_query(dbHandle,query,false,\"\",\"\"); } else { format(query,sizeof(query),\"UPDATE `online` SET Online = \'%d,%02d,%02d,%02d,%02d\' WHERE Name = \'%s\'\",year,day,hour,minute,sec,name); mysql_function_query(dbHandle,query,false,\"\",\"\"); } return 1; } forward OnlineTime(playerid); public OnlineTime(playerid) { SetPVarInt(playerid,\"Seconds\",GetPVarInt(playerid,\"Seconds\") +1); if(GetPVarInt(playerid,\"Seconds\") == 60){ SetPVarInt(playerid,\"Seconds\",0); SetPVarInt(playerid,\"Minutes\",GetPVarInt(playerid,\"Minutes\") +1); } if(GetPVarInt(playerid,\"Minutes\") == 60){ SetPVarInt(playerid,\"Minutes\",0); SetPVarInt(playerid,\"Hour\",GetPVarInt(playerid,\"Hour\") +1); } if(GetPVarInt(playerid,\"Hour\") == 24){ SetPVarInt(playerid,\"Hour\",0); SetPVarInt(playerid,\"Days\",GetPVarInt(playerid,\"Days\") +1); } if(GetPVarInt(playerid,\"Days\") == 365){ SetPVarInt(playerid,\"Days\",0); SetPVarInt(playerid,\"Years\",GetPVarInt(playerid,\"Years\") +1); } return 1; } pName(playerid) { new pname[24]; GetPlayerName(playerid,pname,sizeof(pname)); return pname; }
Verzió 2.0 Javítások/Újítások- Csak másodpercet mér és abból számolja ki az adatokat. - Nincs timer gettime() függvénnyel van megoldva. Anthony ötlete alapján frissítve.Script /* A scriptet készítette: Norby Dátum: 2012.07.19 20:03 A script Y_less sscanf pluginját, Zeex zcmd parancsfeldolgozó include, és BlueG mysql pluginját tartalmazza. Letöltési linkek ZCMD: http://forum.sa-mp.com/showthread.php?t=91354 sscanf: http://forum.sa-mp.com/showthread.php?t=120356 mysql: http://forum.sa-mp.com/showthread.php?t=337810 */ #include <a_samp> #include <zcmd> #include <a_mysql> #include <sscanf2> #define MYSQL_HOST \"localhost\" #define MYSQL_USER \"root\" #define MYSQL_DB \"norby\" #define MYSQL_PASS \"\" new dbHandle, str[128], Time[MAX_PLAYERS], Time2[MAX_PLAYERS], query[512]; public OnFilterScriptInit() { dbHandle = mysql_connect(MYSQL_HOST,MYSQL_USER,MYSQL_DB,MYSQL_PASS); return 1; } public OnPlayerConnect(playerid) { Time[playerid] = gettime(); format(query,sizeof(query),\"SELECT * FROM `online` WHERE Name = \'%s\'\",pName(playerid)); mysql_function_query(dbHandle,query,true,\"MySQL_Query\",\"d\",playerid); return 1; } public OnPlayerDisconnect(playerid, reason) { Time2[playerid] = gettime(); new OnlineTime2 = Time2[playerid] - Time[playerid]; new OnlineTime = GetPVarInt(playerid,\"OnlineTime\") + OnlineTime2; format(query,sizeof(query),\"SELECT * FROM `online` WHERE Name = \'%s\'\",pName(playerid)); mysql_function_query(dbHandle,query,true,\"MySQL_Online\",\"dsd\",playerid,pName(playerid),OnlineTime); return 1; } forward MySQL_Query(playerid); public MySQL_Query(playerid) { new oTime[12]; cache_get_row(0, 2, oTime); SetPVarInt(playerid,\"OnlineTime\",strval(oTime)); format(str,sizeof(str),\"%s\",SecondsTransform(GetPVarInt(playerid,\"OnlineTime\"))); SendClientMessage(playerid,-1,str); return 1; } forward MySQL_Online(playerid, name[],oTime); public MySQL_Online(playerid, name[],oTime) { new rows, fields; cache_get_data(rows, fields); if(!rows) { format(query,sizeof(query),\"INSERT INTO `online` (ID,Name,Online) VALUES (NULL,\'%s\',\'%d\')\",name,oTime); mysql_function_query(dbHandle,query,false,\"\",\"\"); } else { format(query,sizeof(query),\"UPDATE `online` SET Online = \'%d\' WHERE Name = \'%s\'\",oTime,name); mysql_function_query(dbHandle,query,false,\"\",\"\"); } return 1; } pName(playerid) { new pname[24]; GetPlayerName(playerid,pname,sizeof(pname)); return pname; } // ----------------------------------------------------------------------------- // Név: SecondsTransform // Készítõ: GameStar // Frissítve: 2012. június 17. // ----------------------------------------------------------------------------- stock SecondsTransform(seconds) { new string[64], rest, weeks, days, hours, minutes; weeks = seconds / (60 * 60 * 24 * 7); rest = seconds % (60 * 60 * 24 * 7); days = rest / (60 * 60 * 24); rest %= (60 * 60 * 24); hours = rest / (60 * 60); rest %= (60 * 60); minutes = rest / 60; rest %= 60; format(string, 64, \"%i hét %i nap %i óra %i perc %i másodperc\", weeks,days,hours,minutes,rest); return string; } Tesztelve van mûködik, jöhetnek a kritikák!
232
« Dátum: 2012. július 19. - 16:17:41 »
Ha egy játékos bele esík a vízbe akkor az kiesik azt ki írja? És az útorsó aki fent marad az nyer? Ennyi a kérdésem :thumbsup:
Hát igen aki utoljára fent marad az nyer, de az még nincs kész, hogy ki is írja a nevét, ha gondolod majd hozzá írod.
233
« Dátum: 2012. július 19. - 12:51:49 »
Jó lett! Goto utasítással is meglehet oldani. Én azt használok a Derby minigamemnél.
new bool: g_iPositionUsed[ 10 ]; PositionGoto: { new iRandom = random( 10 ); if( g_iPositionUsed[ iRandom ] == true ) { goto PositionGoto; } // SetPlayerPos( ... ) stb... g_iPositionUsed[ iRandom ] = true; }
Ez oda, ahol csatlakozik.
for( new iPos = 0; iPos < 10; i++ ) { g_iPositionUsed[ iPos ] = false; }
Ezt oda, ahol nyer a játékos.
Igen, ez sem rossz megoldás.
235
« Dátum: 2012. július 19. - 02:56:15 »
Tudom.., de azért már le lehet lassulni annál a résznél, mint pl visszaszámlálás, és ha 0-ra és akkor mi legyen stb..
Hallod valakinek el kell kezdenie ilyet is publikálni, mert akkor a kezdõk min induljanak el?
236
« Dátum: 2012. július 19. - 02:54:10 »
Nem nagyon ismerlek, de a \"Dö pro\"-khoz.
Hát, ha te mondod. Nem nagy tudomány megírni egy ilyet kis logika és gondolkozás után már meg is van a többi mellékes.
237
« Dátum: 2012. július 19. - 02:49:54 »
Nem szükséges, mert ezek a minigamek, ritkák, és azért ne terjedjen már minden jó script el a szervereken.. A kezdõk/Haladók majd megtanulják, hogyan kell írni ilyeneket.
Hát.. valamilyen szinten igazad van. Kezdõk/Haladók ?? Akkor engem hova sorolsz?
238
« Dátum: 2012. július 19. - 02:41:54 »
Szép munka, grat!
Köszi, majd még fejlesztem, hogy mérjen idõt is, és ki írja az utolsó bent maradt playert.
239
« Dátum: 2012. július 19. - 02:20:52 »
Üdvözletem. Ystee a minap feltette nekem azt a kérdést, hogy lehetne megoldani azt hogy, pl: DM zónában egy ember csak egy helyre spawnoljon na én erre a kérdésre írtam egy példa filterscriptet ami egy Autó Derby-hez kapcsolódok, a lényeg, hogy le kell lökni egymást és 6 férõhely mind a 6 játékosnak van külön spawn hely/kezdési pozíció. Nem vagyok valami nagy mapper és nem is szeretek mappolni ezért ne várjatok nagy csodát nem csináltam valami fullos mapot. Ha nem az alapértelmezett kocsival szeretnél derbyzni akkor a script elején találsz egy ilyet: DERBY_KOCSI_ID és 504-es ID van alapértelmezetten ezt írd át például, ha elegy-el akkor DERBY_KOCSI_ID 562 Képek a pályárólScript: /* A scriptet készítette: Norby Dátum: 2012.07.19 02:34 A script Incognito streamer pluginját, Zeex zcmd parancsfeldolgozó include, és GameStar fixchars include-t tartalmazza. Letöltési linkek ZCMD: http://forum.sa-mp.com/showthread.php?t=91354 Streamer: http://forum.sa-mp.com/showthread.php?t=102865/ fixchars2: http://gtaforum.hu/index.php?topic=12977.msg106729#msg106729 */ #include <a_samp> #include <streamer> #include <zcmd> #include <fixchars> #define DERBY_KOCSI_ID 504 new bool:dmhely[7], Timer[MAX_PLAYERS], helycount = 0; public OnFilterScriptInit() { CreateDynamicObject(11496,2966.60009766,-2052.60009766,3.29999995,0.00000000,0.00000000,90.00000000); //object(des_wjetty) (1) CreateDynamicObject(11496,2966.69995117,-2057.10009766,3.29999995,0.00000000,0.00000000,270.50000000); //object(des_wjetty) (2) CreateDynamicObject(8558,2994.50000000,-2055.60009766,1.89999998,0.00000000,0.00000000,0.00000000); //object(vgshseing28) (1) CreateDynamicObject(8558,3012.39990234,-2032.50000000,1.89999998,0.00000000,0.00000000,89.50000000); //object(vgshseing28) (2) CreateDynamicObject(8558,3012.00000000,-2078.60009766,1.89999998,0.00000000,0.00000000,89.49462891); //object(vgshseing28) (3) CreateDynamicObject(8558,3035.19995117,-2075.50000000,1.89999998,0.00000000,0.00000000,179.49462891); //object(vgshseing28) (4) CreateDynamicObject(8558,3058.19995117,-2058.19995117,1.89999998,0.00000000,0.00000000,269.73913574); //object(vgshseing28) (5) CreateDynamicObject(8558,3035.19995117,-2055.80004883,1.89999998,0.00000000,0.00000000,359.48623657); //object(vgshseing28) (6) CreateDynamicObject(8558,3058.39990234,-2017.80004883,1.89999998,0.00000000,0.00000000,269.73632812); //object(vgshseing28) (7) CreateDynamicObject(8558,3035.50000000,-1995.09997559,1.89999998,0.00000000,0.00000000,0.23632812); //object(vgshseing28) ( CreateDynamicObject(8558,3012.50000000,-1991.90002441,1.89999998,0.00000000,0.00000000,270.23620605); //object(vgshseing28) (9) CreateDynamicObject(8558,3058.50000000,-1977.80004883,1.89999998,0.00000000,0.00000000,269.73632812); //object(vgshseing28) (10) CreateDynamicObject(8558,3035.39990234,-2023.40002441,1.89999998,0.00000000,0.00000000,0.48632812); //object(vgshseing28) (11) CreateDynamicObject(8558,3081.30004883,-2022.69995117,1.89999998,0.00000000,0.00000000,0.48339844); //object(vgshseing28) (12) CreateDynamicObject(8558,3058.00000000,-2098.80004883,1.89999998,0.00000000,0.00000000,269.73632812); //object(vgshseing28) (13) CreateDynamicObject(8558,3071.80004883,-2038.80004883,1.89999998,0.00000000,0.00000000,47.73632812); //object(vgshseing28) (14) CreateDynamicObject(11496,3014.39990234,-2106.50000000,3.20000005,0.00000000,0.00000000,0.49987793); //object(des_wjetty) (3) CreateDynamicObject(11496,3009.69995117,-2106.60009766,3.20000005,0.00000000,0.00000000,181.24989319); //object(des_wjetty) (4) CreateDynamicObject(11496,3010.19995117,-1965.59997559,3.20000005,0.00000000,0.00000000,180.99694824); //object(des_wjetty) (5) CreateDynamicObject(11496,3014.80004883,-1965.50000000,3.20000005,0.00000000,0.00000000,0.99429321); //object(des_wjetty) (6) CreateDynamicObject(11496,3061.80004883,-1953.09997559,3.20000005,0.00000000,0.00000000,358.99426270); //object(des_wjetty) (7) CreateDynamicObject(11496,3057.00000000,-1953.00000000,3.20000005,0.00000000,0.00000000,178.98925781); //object(des_wjetty) ( CreateDynamicObject(11496,3107.89990234,-2019.90002441,3.20000005,0.00000000,0.00000000,91.48925781); //object(des_wjetty) (9) CreateDynamicObject(11496,3108.10009766,-2024.40002441,3.20000005,0.00000000,0.00000000,271.98864746); //object(des_wjetty) (10) CreateDynamicObject(11496,3055.80004883,-2124.00000000,3.20000005,0.00000000,0.00000000,179.23852539); //object(des_wjetty) (11) CreateDynamicObject(11496,3059.60009766,-2123.89990234,3.20000005,0.00000000,0.00000000,359.23641968); //object(des_wjetty) (12) return 1; } CMD:dm(playerid) { if(helycount == 6) return SendClientMessage(playerid,-1,\"Hiba: Nincs több hely!\"); if(GetPVarInt(playerid,\"DM\") == 1) return SendClientMessage(playerid,-1,\"Te már DM-ben vagy!\"); helycount++; dmhely[helycount] = true; Csatlakozas(playerid,helycount); SetPVarInt(playerid,\"DM\",1); return 1; } CMD:exitdm(playerid) { if(GetPVarInt(playerid,\"DM\") == 0) return SendClientMessage(playerid,-1,\"Nem vagy DM-ben!\"); helycount--; dmhely[helycount] = false; SetPVarInt(playerid,\"DM\",0); SetPlayerPos(playerid,1958.3783,1343.1572,15.3746); if(IsPlayerInAnyVehicle(playerid)) DestroyVehicle(GetPlayerVehicleID(playerid)); return 1; } CMD:szabadhelyek(playerid) { new str[128]; format(str,sizeof(str),\"Szabad DM helyek: %d | Foglalt: %d\",SzabadDMHelyek(),JoinDM()); SendClientMessage(playerid,-1,str); return 1; } forward Csatlakozas(playerid,helyid); public Csatlakozas(playerid,helyid) { new vehicle; switch(helyid) { case 1: SetPlayerPos(playerid,2962.7034,-2054.4771,4.5000), vehicle = CreateVehicle(DERBY_KOCSI_ID,2962.7034,-2054.4771,4.5000,269.5526,1,1,-1); case 2: SetPlayerPos(playerid,3012.4294,-2108.4832,4.4000), vehicle = CreateVehicle(DERBY_KOCSI_ID,3012.4294,-2108.4832,4.4000,4.3030,1,1,-1); case 3: SetPlayerPos(playerid,3012.7112,-1961.9540,4.4000), vehicle = CreateVehicle(DERBY_KOCSI_ID,3012.7112,-1961.9540,4.4000,181.8159,1,1,-1); case 4: SetPlayerPos(playerid,3059.6064,-1949.9526,4.4000), vehicle = CreateVehicle(DERBY_KOCSI_ID,3059.6064,-1949.9526,4.4000,182.6933,1,1,-1); case 5: SetPlayerPos(playerid,3108.1431,-2022.1266,4.4000), vehicle = CreateVehicle(DERBY_KOCSI_ID,3108.1431,-2022.1266,4.4000,94.3741,1,1,-1); case 6: SetPlayerPos(playerid,3058.0200,-2126.6311,4.4000), vehicle = CreateVehicle(DERBY_KOCSI_ID,3058.0200,-2126.6311,4.4000,0.2062,1,1,-1); } PutPlayerInVehicle(playerid,vehicle,0); Timer[playerid] = SetTimerEx(\"Kiesett\",2000,true,\"i\",playerid); return 1; } public OnPlayerExitVehicle(playerid, vehicleid) { if(GetPVarInt(playerid,\"DM\") == 1) { DestroyVehicle(GetPlayerVehicleID(playerid)); GameTextForPlayer(playerid,\"~r~Kiszálltál a kocsiból, ezért kiestél!\",2500,6); SetPVarInt(playerid,\"DM\",0); helycount--; dmhely[helycount] = false; SetPlayerPos(playerid,1958.3783,1343.1572,15.3746); } return 1; } forward Kiesett(playerid); public Kiesett(playerid) { new Float:P[3]; GetPlayerPos(playerid,P[0],P[1],P[2]); if(P[2] < 0) { GameTextForPlayer(playerid,\"~r~Kiestél!\",2500,6); helycount--; dmhely[helycount] = false; KillTimer(Timer[playerid]); SetPVarInt(playerid,\"DM\",0); DestroyVehicle(GetPlayerVehicleID(playerid)); SetPlayerPos(playerid,1958.3783,1343.1572,15.3746); } return 1; } stock JoinDM() { new count = 0; for(new i = 0; i < 6; i++) { if(dmhely == false) continue; if(dmhely == true) count++; } return count; } stock SzabadDMHelyek() { new count = 0; for(new i = 0; i < 6; i++) { if(dmhely == true) continue; if(dmhely == false) count++; } return count; } Tesztelve van és mûködik, jöhetnek a kérdések és a kritikák!
Oldalak: 1 ... 14 15 [16] 17 18 ... 104
|