Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <a_samp>
- #include <a_mysql>
- #include <sscanf2>
- #include <zcmd>
- /* =-=-=-=-=-= Mode settings =-=-=-=-=-=-==--=- */
- /* MySQL Settings */
- #define DB_SERVER "127.0.0.1"
- #define DB_USER "root"
- #define DB_PASS ""
- #define DB_DB "bm" //bm = Basic Mode
- #define MAX_TABLES \
- (1) //Change it!
- /* Propties Mode */
- #define MODE_CREATOR "iRaiDeN"
- #define MODE_DATA_CREATED "17/05/2014"
- #define MODE_NAME "BasicMode MySQL V1"
- /* Sever CFG Settings */
- #define SLOTS \
- "30"
- #define RCON \
- "basicmode1212"
- #define PORT \
- "7777"
- #define HOST \
- "Basic Mode - MySQL!"
- /* Another Defines */
- #pragma dynamic 42572
- /* Dialogs Defines */
- #define DIALOG_LOGIN \
- (1)
- #define DIALOG_REGISTER \
- (2)
- #define DIALOG_STATS \
- (3)
- /* =-=-=-=-=-= Mode settings =-=-=-=-=-=-==--=- */
- /* =-=-=-=-=-= Mode Enums =-=-=-=-=-=-=-=-=-=-=-= */
- /* Database Create Enum */
- enum databaseEnum {
- db_name[37],
- db_info[128]
- }
- enum playerEnum {
- pName[27],
- pPassword[26],
- pKills,
- pDeath,
- pLevel,
- bool:logged
- }
- enum teleportEnum
- {
- Teleport[40],
- TMessage[128],
- Float:PosX,
- Float:PosY,
- Float:PosZ,
- Float:PosA,
- Float:PosVX,
- Float:PosVY,
- Float:PosVZ,
- Float:PosVA,
- TInterior,
- TVirtualWorld,
- VehOn
- }
- /* =-=-=-=-=-= Mode News =-=-=-=-=-=-=-=-=-=-=-= */
- /* Database New */
- new
- dbHandle,
- gQuery[357],
- gBuffer[256],
- pInfo[MAX_PLAYERS][playerEnum],
- databaseArray[MAX_TABLES][databaseEnum] = {
- {"accounts","username varchar(34),password varchar(26),kills int,death int,level int"}
- // Example you continue, you can upgrade the mode!
- // {"clans","clanid int,clanplayers int,...}
- };
- new Float:RandPlayerSpawn[][3] = {
- {1958.3783,1343.1572,15.3746},{1705.2347,1025.6808,10.8203},
- {2199.6531,1393.3678,10.8203},{2483.5977,1222.0825,10.8203},
- {2637.2712,1129.2743,11.1797},{2000.0106,1521.1111,17.0625},
- {2024.8190,1917.9425,12.3386},{2261.9048,2035.9547,10.8203},
- {2262.0986,2398.6572,10.8203},{2244.2566,2523.7280,10.8203},
- {2335.3228,2786.4478,10.8203},{2150.0186,2734.2297,11.1763},
- {2158.0811,2797.5488,10.8203},{1969.8301,2722.8564,10.8203},
- {1652.0555,2709.4072,10.8265},{1564.0052,2756.9463,10.8203},
- {1271.5452,2554.0227,10.8203},{1441.5894,2567.9099,10.8203},
- {1480.6473,2213.5718,11.0234},{1400.5906,2225.6960,11.0234},
- {1598.8419,2221.5676,11.0625},{1318.7759,1251.3580,10.8203},
- {1558.0731,1007.8292,10.8125},{373.2678,-2080.8015,7.8359},
- {689.5941,-1275.9441,13.5593},{1546.3545,-1676.3113,13.5622},
- {2495.5012,-1687.9529,13.5170},{2058.1328,826.6031,6.7909},
- {2236.6060,2453.8743,10.7037},{1383.6451,2184.9885,11.0234},
- {-2466.1191,2248.9255,4.8003},{-2575.6404,1102.0094,55.5781},
- {-1921.6219,297.1514,41.0469},{-2672.0693,378.705,4.3672},
- {-672.1888,-710.7643,80.4041},{-2509.3237,-714.5736,139.3203},
- {154.2144,-1951.7378,51.3438},{1924.2438,-1200.014,20.0214},
- {1656.4275,-1637.2434,83.7813},{2871.9111,-1589.3542,22.4428},
- {2767.9304,-1177.9412,69.8797},{2269.293,-1112.235,37.9766},
- {1237.834,-739.4084,95.7626},{-2797.1052,1219.3676,20.3759},
- {-2130.6887,917.5008,79.8516},{-1793.0884,485.8771,26.1188},
- {-1220.6179,448.9533,7.1875},{502.872,-1447.0157,15.0539},
- {2260.3152,1111.059,29.375},{2096.9844,1267.7301,10.8203},
- {1927.6123,1591.2813,10.6325},{1293.9065,2521.8823,10.6719},
- {-294.0192,1896.5623,42.2891},{-714.9441,2045.9653,60.3906},
- {-262.3136,2225.7766,110.414},{453.3871,2505.0505,19.9762},
- {1307.5275,2092.231,10.8441},{2148.5249,1683.3619,10.8203}
- };
- new TeleArray[][teleportEnum] = {
- {"/Ap","Ap\t",1636.3920,1614.6687,10.8203,94.4338,1637.6541,1579.3475,10.9127,86.8262,0,0,1},
- {"/Lv","Lv\t",2012.8467,1229.0613,10.8203,273.3840,2045.7782,1252.4523,10.4830,179.4893,0,0,1},
- {"/Race","Race\t",-2593.6106,1126.8113,55.6933,247.1823,-2588.2622,1095.0531,56.1371,329.7149,0,0,1},
- {"/Sf","Sf\t",-2663.4424,373.0685,4.1468,2.1954,-2663.4424,373.0685,4.1468,2.1954,0,0,1},
- {"/Ls","LS\t",1477.8057,-1734.8749,13.3828,90.7683,1477.8057,-1734.8749,13.3828,90.7683,0,0,1},
- {"/Ramp","Ramp\t",1859.3246, -1381.7324, 13.5625,0.0000,1859.3246, -1381.7324, 13.5625,0.0000,0,0,1}
- };
- /* =-=-=-=-=-= Mode News =-=-=-=-=-=-=-=-=-=-=-= */
- /* =-=-=-=-=-= Mode forwards =-=-=-=-=-=-=-=-=-=-=-= */
- /* Database forward/s */
- forward checkPlayer(playerid);
- forward savePlayerData ();
- /* =-=-=-=-=-= Mode forwards =-=-=-=-=-=-=-=-=-=-=-= */
- main(){}
- public OnGameModeInit()
- {
- dbHandle = mysql_connect(DB_SERVER,DB_USER,DB_DB,DB_PASS);
- if(!dbHandle) print("<MySQL> database not respond!");
- else print("<MySQL> mysql respond!");
- for(new i = 0; i != MAX_TABLES; i++)
- {
- format(gQuery,357,"CREATE TABLE IF NOT EXISTS %s(%s)",databaseArray[i][db_name],databaseArray[i][db_info]);
- mysql_function_query(dbHandle,gQuery,false,"","");
- }
- for(new i; i != 299; i++) AddPlayerClass(i,0.0,0.0,0.0,-1,-1,-1,-1,-1,-1,-1);
- SetGameModeText(MODE_NAME);
- SendRconCommand("maxplayers "SLOTS"");
- SendRconCommand("rcon_password "RCON"");
- SendRconCommand("port "PORT"");
- SendRconCommand("hostname "HOST"");
- /* MySQL save information */
- SetTimer("savePlayerData",60*1000*5,true);
- /* ===== choose skin arena ====== */
- CreateObject(11496, 445.73, 302.49, 0.94, 0.00, 0.00, 146.00);
- CreateObject(3524, 441.02, 302.63, 3.32, 0.00, 0.00, 238.00);
- CreateObject(3524, 443.94, 306.69, 3.54, 0.00, 0.00, 238.00);
- CreateObject(3534, 438.48, 298.40, 2.60, 0.00, 0.00, 0.00);
- CreateObject(3534, 446.53, 310.67, 2.82, 0.00, 0.00, 0.00);
- CreateObject(16114, 465.50, 281.00, 0.50, 0.00, 0.00, 164.00);
- CreateObject(16114, 473.10, 288.10, 0.50, 0.00, 0.00, 176.00);
- CreateObject(7916, 459.10, 304.60, 5.00, 2.00, 0.00, 226.00);
- CreateObject(7916, 455.80, 299.90, 5.00, 2.00, 0.00, 226.00);
- CreateObject(7916, 461.70, 308.30, 5.00, 2.00, 0.00, 226.00);
- CreateObject(19076, 451.29, 307.62, 0.90, 0.00, 0.00, 57.61);
- CreateObject(19076, 442.97, 295.33, 1.03, 0.00, 0.00, 42.58);
- CreateObject(3511, 446.64, 301.37, -0.79, 0.00, 0.00, 0.00);
- CreateObject(3528, 445.31, 302.22, 11.51, 0.00, 0.00, 146.00);
- CreateObject(19343, 451.13, 307.74, 1.61, 0.00, 0.00, 0.00);
- CreateObject(19343, 450.61, 308.39, 1.63, 0.00, 0.00, 0.00);
- CreateObject(19342, 450.26, 307.60, 1.60, 0.00, 0.00, 0.00);
- CreateObject(19343, 443.13, 296.07, 1.64, 0.00, 0.00, 0.00);
- CreateObject(19342, 442.33, 295.78, 1.55, 0.00, 0.00, 0.00);
- CreateObject(19342, 442.60, 296.50, 1.55, 0.00, 0.00, 0.00);
- return 1;
- }
- public OnPlayerConnect(playerid)
- {
- GetPlayerName(playerid,pInfo[playerid][pName],27);
- format(gQuery,357,"SELECT * FROM accounts WHERE username='%s'",pInfo[playerid][pName]);
- pInfo[playerid][logged] = false;
- mysql_function_query(dbHandle,gQuery,true,"checkPlayer","d",playerid);
- return 1;
- }
- public OnPlayerDeath(playerid,killerid)
- {
- pInfo[killerid][pKills]++;
- pInfo[playerid][pDeath]++;
- if(pInfo[killerid][pKills] % 50 == 0)
- {
- pInfo[killerid][pLevel]++;
- format(gBuffer,256,"!%d :יפה עלית רמה בהצלחה, עלית לרמה",pInfo[killerid][pLevel]);
- SendClientMessage(killerid,-1,gBuffer);
- }
- }
- public OnDialogResponse(playerid,dialogid,response,listitem,inputtext[])
- {
- switch(dialogid)
- {
- case (DIALOG_LOGIN):
- {
- if(!response) return Kick(playerid);
- if(!strcmp(inputtext,pInfo[playerid][pPassword]))
- {
- SendClientMessage(playerid,-1,"{ffffff}[{c2ed14}Success{ffffff}]: התחברת בהצלחה");
- pInfo[playerid][logged] = true;
- } else {
- ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Welcome Back!","{ffffff}!הקלדת סיסמא שגויה","Login","Logout");
- }
- return 1;
- }
- case (DIALOG_REGISTER):
- {
- if(!response) return Kick(playerid);
- if(strlen(inputtext) < 7 || strlen(inputtext) > 17) return ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_PASSWORD,"Welcome!","Error & Please type an password with 7-15 charaters!","Register","Logout");
- mysql_real_escape_string(inputtext,pInfo[playerid][pPassword]);
- format(gQuery,357,"INSERT INTO accounts (username,password,kills,death,level) VALUES('%s','%s','0','0','1')",pInfo[playerid][pName],inputtext);
- mysql_function_query(dbHandle,gQuery,false,"","");
- pInfo[playerid][logged] = true;
- SendClientMessage(playerid,-1,"{ffffff}----- {c2ed14}Account Information {ffffff}-----");
- format(gBuffer,256,"{c2ed14}Username{ffffff}: %s",pInfo[playerid][pName]);
- SendClientMessage(playerid,-1,gBuffer);
- format(gBuffer,256,"{c2ed14}Password{ffffff}: %s",inputtext);
- SendClientMessage(playerid,-1,gBuffer);
- SendClientMessage(playerid,-1,"{ffffff}----- {c2ed14}Account Information {ffffff}-----");
- }
- }
- return 1;
- }
- public OnPlayerRequestClass(playerid)
- {
- if(!pInfo[playerid][logged]) return 0;
- SetPlayerPos(playerid, 442.5924,304.2280,2.1400);
- SetPlayerFacingAngle(playerid, 51.6283);
- SetPlayerCameraPos(playerid, 425.6743,314.9246,4.1639);
- SetPlayerCameraLookAt(playerid, 443.8711,304.3779,2.1400);
- return 1;
- }
- public OnPlayerRequestSpawn(playerid)
- {
- if(!pInfo[playerid][logged]) return 0;
- return 1;
- }
- COMMAND:stats(playerid,params[])
- {
- if(!strlen(params))
- {
- format(gBuffer,256,"\t{c2ed14}User Static\n\nUsername{ffffff}: %s\n{c2ed14}Kills{ffffff}: %d\n{c2ed14}Death{ffffff}: %d\n{c2ed14}Level{ffffff}: %d",pInfo[playerid][pName],pInfo[playerid][pKills],pInfo[playerid][pDeath],pInfo[playerid][pLevel]);
- ShowPlayerDialog(playerid,DIALOG_STATS,DIALOG_STYLE_MSGBOX,"Your stats",gBuffer,"אישור","");
- } else {
- if(sscanf(params,"u",params[0]))
- return SendClientMessage(playerid,-1,"Usage:/Stats [ID]");
- format(gBuffer,256,"\t{c2ed14}User Static\n\nUsername{ffffff}: %s\n{c2ed14}Kills{ffffff}: %d\n{c2ed14}Death{ffffff}: %d\n{c2ed14}Level{ffffff}: %d",pInfo[params[0]][pName],pInfo[params[0]][pKills],pInfo[params[0]][pDeath],pInfo[params[0]][pLevel]);
- ShowPlayerDialog(playerid,DIALOG_STATS,DIALOG_STYLE_MSGBOX,"Your stats",gBuffer,"אישור","");
- }
- return 1;
- }
- COMMAND:modeinfo(playerid,params[])
- {
- SendClientMessage(playerid,-1,"{ffffff}----- {c2ed14}Mode Information {ffffff}-----");
- format(gBuffer,256,"{c2ed14}Mode Creator{ffffff}: %s",MODE_CREATOR);
- SendClientMessage(playerid,-1,gBuffer);
- format(gBuffer,256,"{c2ed14}Data of Created mode{ffffff}: %s",MODE_DATA_CREATED);
- SendClientMessage(playerid,-1,gBuffer);
- SendClientMessage(playerid,-1,"{ffffff}----- {c2ed14}Mode Information {ffffff}-----");ש
- return 1;
- }
- public OnPlayerSpawn(playerid)
- {
- SetPlayerInterior(playerid,0);
- SetPlayerVirtualWorld(playerid,0);
- new RndSpawn = random(sizeof(RandPlayerSpawn));
- SetPlayerPos(playerid, RandPlayerSpawn[RndSpawn][0], RandPlayerSpawn[RndSpawn][1], RandPlayerSpawn[RndSpawn][2]);
- return 1;
- }
- public OnPlayerCommandReceived(playerid,cmdtext[])
- {
- for(new i = 0; i<sizeof(TeleArray); i++)
- {
- if(!strcmp(cmdtext, TeleArray[i][Teleport], true))
- {
- format(gBuffer,40,"~b~~h~ ] ~R~ %s~b~~h~ ]",TeleArray[i][TMessage]);
- GameTextForPlayer(playerid,gBuffer,3000,4);
- if(IsPlayerInAnyVehicle(playerid) && TeleArray[i][VehOn])
- {
- SetVehiclePos(GetPlayerVehicleID(playerid), TeleArray[i][PosVX], TeleArray[i][PosVY], TeleArray[i][PosVZ]);
- SetVehicleZAngle(GetPlayerVehicleID(playerid), TeleArray[i][PosVA]);
- } else {
- SetPlayerPos(playerid, TeleArray[i][PosX], TeleArray[i][PosY], TeleArray[i][PosZ]);
- SetPlayerFacingAngle(playerid, TeleArray[i][PosA]);
- }
- SetPlayerInterior(playerid,TeleArray[i][TInterior]);
- SetPlayerVirtualWorld(playerid,TeleArray[i][TVirtualWorld]);
- SetCameraBehindPlayer(playerid);
- return PlayerPlaySound(playerid,1063,0.0,0.0,0.0);
- }
- }
- return 1;
- }
- public savePlayerData()
- {
- for(new i, j = GetMaxPlayers(); i != j; i++)
- {
- format(gQuery,356,"UPDATE accounts SET kills='%d',death='%d',level='%d'",pInfo[i][pKills],pInfo[i][pDeath],pInfo[i][pLevel]);
- mysql_function_query(dbHandle,gQuery,false,"","");
- }
- SendClientMessageToAll(-1,"{ffffff}[{c2ed14}Auto Saved{ffffff}]: כל הפרטים של כל השחקנים נשמרו אוטמטית");
- }
- public checkPlayer(playerid)
- {
- new rows,fields;
- cache_get_data(rows,fields,dbHandle);
- if(rows != 0)
- {
- cache_get_field_content(0,"password",pInfo[playerid][pPassword],dbHandle,26);
- pInfo[playerid][pKills] = cache_get_field_content_int(0,"kills",dbHandle);
- pInfo[playerid][pDeath] = cache_get_field_content_int(0,"death",dbHandle);
- pInfo[playerid][pLevel] = cache_get_field_content_int(0,"level",dbHandle);
- ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Welcome Back!","{ffffff}שלום משתמש יקר, המשתמש שלך נמצא במסד, אז כדי להתחבר נא הקלד את סיסמתך","Login","Logout");
- } else {
- ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_PASSWORD,"Welcome!","{ffffff}שלום משתמש יקר, המס אינו זיהה את המשתמש שלך\nאנא הקלד סיסמא שתשמש אותך להרבה דברים","Register","Logout");
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment