Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // This is a comment
- // uncomment the line below if you want to write a filterscript
- //#define FILTERSCRIPT
- #include <a_samp>
- #include <YSI\y_ini.inc>
- #include <ZCMD>
- #include <sscanf2>
- #define DIALOG_REGISTER 1
- #define DIALOG_LOGIN 2
- #define DIALOG_SUCCESS_1 3
- #define DIALOG_SUCCESS_2 4
- #define SERVER_NAME "Main Roleplay"
- #define COL_WHITE "{FFFFFF}"
- #define COL_RED "{F81414}"
- #define COL_GREEN "{00FF22}"
- #define COL_LIGHTBLUE "{00CED1}"
- #define COLOR_PURPLE 0xC2A2DAAA
- #define COLOR_ORANGE "{FFA500}"
- #define PATH "conturi/%s.ini"
- enum pInfo
- {
- pPass,
- pCash,
- pAdmin,
- pTester,
- pFaction,
- pLeader,
- pDeveloper,
- pKills,
- pDeaths,
- DT,
- DTT
- }
- enum fInfo
- {
- fLeader,
- fRank,
- fCar,
- fRanks,
- fRankName,
- fGov
- }
- enum aInfo
- {
- aDuty,
- aLevel
- }
- new PlayerInfo[MAX_PLAYERS][pInfo];
- new FactionInfo[MAX_PLAYERS][fInfo];
- new AdminInfo[MAX_PLAYERS][aInfo];
- new levels,Nam[MAX_PLAYER_NAME],pname[MAX_PLAYER_NAME],str[128],ID;
- forward dttimer(playerid);
- forward ProxDetector(Float:radi, playerid, string[],col1,col2,col3,col4,col5);
- forward OnPlayerHealthChange(playerid, Float:newhealth, Float:oldhealth);
- forward SendAdminMessage(playerid, message[]);
- new PlayerText:gMyPlayerText[MAX_PLAYERS] = {PlayerText:INVALID_TEXT_DRAW, ...};
- new Text:spawntextdraw;
- main()
- {
- print("\n----------------------------------");
- print(" MAIN ROLEPLAY NETWORK 0.1 [BETA] ");
- print("----------------------------------\n");
- }
- public OnGameModeInit()
- {
- // Don't use these lines if it's a filterscript
- SetGameModeText("Main-RP 0.1[BETA]");
- spawntextdraw = TextDrawCreate(10.0, 240.0, "[BETA] Trebuie sa apesi pe 'Spawn' sa te spawnezi!");
- TextDrawFont(spawntextdraw, 2);
- TextDrawColor(spawntextdraw, 0xFFFFFFFF);
- return 1;
- }
- public OnGameModeExit()
- {
- return 1;
- }
- public OnPlayerRequestClass(playerid, classid)
- {
- SetSpawnInfo(playerid, 0, 0, 1958.33, 1343.12, 15.36, 269.15, 0, 0, 0, 0, 0, 0);
- return 1;
- }
- public OnPlayerConnect(playerid)
- {
- if(fexist(UserPath(playerid)))
- {
- INI_ParseFile(UserPath(playerid), "LoadUser_%s", .bExtra = true, .extra = playerid);
- ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT,""COL_WHITE"Bine ai revenit!",""COL_WHITE"Contul acesta este deja inregistrat.\nIntrodu-ti parola in caseta de mai jos.","LOGARE","IESI");
- }
- else
- {
- ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT,""COL_WHITE"Bine ai venit!",""COL_WHITE"Bine ai venit pe "SERVER_NAME". Contul acesta nu este inregistrat.\nIntrodu-ti parola in caseta de mai jos pentru a te inregistra.","CREEAZA","IESI");
- }
- return 1;
- }
- public OnPlayerDisconnect(playerid, reason)
- {
- new INI:File = INI_Open(UserPath(playerid));
- INI_SetTag(File,"data");
- INI_WriteInt(File,"Cash",GetPlayerMoney(playerid));
- INI_WriteInt(File,"Admin",PlayerInfo[playerid][pAdmin]);
- INI_WriteInt(File,"Kills",PlayerInfo[playerid][pKills]);
- INI_WriteInt(File,"Deaths",PlayerInfo[playerid][pDeaths]);
- INI_WriteInt(File,"Tester",PlayerInfo[playerid][pTester]);
- INI_WriteInt(File,"Developer",PlayerInfo[playerid][pDeveloper]);
- INI_WriteInt(File,"Factiune",PlayerInfo[playerid][pFaction]);
- INI_WriteInt(File,"Lider",PlayerInfo[playerid][fLeader]);
- INI_WriteInt(File,"Rank",PlayerInfo[playerid][fRank]);
- INI_Close(File);
- /*if(pInfo[playerid][DT] = 1)
- {
- new playerName[MAX_PLAYER_NAME];
- new szString[64];
- GetPlayerName(playerid, playerName, MAX_PLAYER_NAME);
- BanExWithMessage(playerid, 0xFF0000FF, "Ai fost banat 3 zile pentru /q in DT.", "/q in DT");
- format(szString, sizeof szString, "%s a iesit de pe server [/q in DT detectat].", playerName);
- ProxDetector(50.0, playerid, string[], COL_WHITE,COL_WHITE,COL_WHITE,COL_WHITE,COL_WHITE);
- format(szString, sizeof szString, "%s a fost banat pentru 3 zile de catre SERVER. Motiv: /q in DT.", playerName);
- SendClientMessageToAll(0xFF0000, sZstring);
- }*/
- return 1;
- }
- public OnPlayerSpawn(playerid)
- {
- TextDrawHideForPlayer(playerid, spawntextdraw);
- return 1;
- }
- public OnPlayerCommandPerformed(playerid, cmdtext[], success)
- {
- if(!success) SendClientMessage(playerid, COLOR_PURPLE, ""SERVER_NAME": {FFFFFF}Comanda necunoscuta. Foloseste [/help] pentru comenzi.");
- return 1;
- }
- public OnPlayerDeath(playerid, killerid, reason)
- {
- return 1;
- }
- public OnVehicleSpawn(vehicleid)
- {
- return 1;
- }
- public OnVehicleDeath(vehicleid, killerid)
- {
- return 1;
- }
- public OnPlayerText(playerid, text[])
- {
- new string[128];
- if(strfind(text, "?", true) != -1)
- {
- new msg[128];
- format(msg, sizeof(msg), "%s intreaba: %s");
- ProxDetector(50.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
- }
- if(strfind(text, "!", true) != -1)
- {
- new msg[128];
- format(msg, sizeof(msg), "%s striga: %s");
- ProxDetector(50.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
- }
- new msg[128];
- format(msg, sizeof(msg), "%s: %s");
- ProxDetector(50.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
- return 1;
- }
- CMD:acceptdeath(playerid, params[]) {
- if(PlayerInfo[playerid][DT] != 1)
- return SendClientMessage(playerid, 0xfffffff, "Nu esti in deathtimer!");
- if(PlayerInfo[playerid][DTT] != 1) return SendClientMessage(playerid, 0xfffffff, "Nu au trecut 120 secunde!");
- SetPlayerPos(playerid,317.2694,54.9657,3.3750);
- SendClientMessage(playerid, 0xfffffff, "Un medic care nu era la datorie te-a gasit si te-a dus la el acasa.");
- SendClientMessage(playerid, 0xfffffff, "Acolo ti-a oferit primul ajutor iar acum te simti bine!");
- TogglePlayerControllable(playerid, 1);
- PlayerInfo[playerid][DT] = 0;
- return 1;
- }
- CMD:setadmin(playerid, params[])
- {
- new string1[250];
- if(PlayerInfo[playerid][pAdmin] = 6)return SendClientMessage(playerid, 0xFF9900AA, "Nu esti administring1ator, nu poti folosi comanda. Simplu.");
- if(sscanf(params,"ui",ID,levels)) return SendClientMessage(playerid,0xFF9900AA, "FOLOSESTE: /setadmin [Nume sau ID] [Nivel(1-6)]");//it will show this if you dont use the format properly
- if(levels > 4) return SendClientMessage(playerid,0xFF0000FF,"POTI DA UN NIVEL DE LA 1 LA 6!");//Available levels
- if(!IsPlayerConnected(ID))return SendClientMessage(playerid,0xFF00000,"Utilizatorul selectat nu este inregistring1at.");//Detect if the id/partofname is connected
- if(PlayerInfo[ID][pAdmin] == levels) return SendClientMessage(playerid,0xFF0000FF, "EROARE: Persoana selectata are deja acest nivel!");//Detect if the guy is already the level you setted
- GetPlayerName(playerid,Nam, MAX_PLAYER_NAME);//define the playerid name
- GetPlayerName(ID,pname,MAX_PLAYER_NAME);//define the other person name
- if(levels == 0)
- {
- format(string1, sizeof(string1),"{FFFFFF}%s {FF0000}ti-a setat nivelul de administring1ator la {FFFFFF}%d{FF0000}.",Nam,levels);
- SendClientMessage(ID,0xFF9900AA,string1);
- format(string1, sizeof(string1),"{FF0000}I-ai setat lui {FFFFFF}%s {FF0000}nivelul de administring1ator la {FFFFFF}%d!",pname,levels);
- SendClientMessage(playerid,0xFF9900AA,string1);
- PlayerInfo[ID][pAdmin] = levels;//this sets the player level
- return 1;
- }
- format(string1, sizeof(string1),"{FFFFFF}%s {FF0000}ti-a setat nivelul de administring1ator {FFFFFF}%d{FF0000}!",Nam,levels);
- SendClientMessage(ID,0xFF9900AA,string1);
- format(string1, sizeof(string1),"{FF0000}I-ai setat lui {FFFFFF}%s {FF0000}nivelul de administring1ator la {FFFFFF}%d{FF0000}!",pname,levels);
- SendClientMessage(playerid,0xFF9900AA,string1);
- PlayerInfo[ID][pAdmin] = levels;
- return 1;
- }
- CMD:aduty(playerid,params[])
- {
- if(PlayerInfo[playerid][pAdmin] >= 1)
- {
- if(PlayerInfo[playerid][aDuty] = 0)
- {
- new playerName[MAX_PLAYER_NAME];
- new szString[68];
- SetPlayerColor(playerid, 0xFFA500);
- GetPlayerName(playerid, playerName, MAX_PLAYER_NAME);
- format(szString, sizeof szString, "[ADMIN] %s este acum la datorie!", playerName);
- SendAdminMessage(playerid, szString);
- PlayerInfo[playerid][aDuty] = 1;
- }
- else if(PlayerInfo[playerid][aDuty] = 1)
- {
- new playerName[MAX_PLAYER_NAME];
- new szString[68];
- SetPlayerColor(playerid, 0xFFFFFFF);
- GetPlayerName(playerid, playerName, MAX_PLAYER_NAME);
- format(szString, sizeof szString, "[ADMIN] %s nu mai este la datorie.", playerName);
- SendAdminMessage(playerid, szString);
- PlayerInfo[playerid][aDuty] = 0;
- }
- }
- else
- {
- SendClientMessage(playerid, 0xFFFFFFF, "Nu esti administrator.");
- }
- return 1;
- }
- /* Comenzi in lucru
- CMD:developer(playerid,params[])
- {
- if
- CMD:sethp(playerid, params[])
- {
- new id, string[128], Float:Health;
- new Float:Health;
- if(sscanf(params,"ui",ID,Float:health)) return SendClientMessage(playerid, 0xFF9900AA, "FOLOSESTE: /setadmin [Nume sau ID] [HP]");
- if(Float:health < 0 || Float:health > 120) return SendClientMessage(playerid, 0xFF9900AA, "Viata trebuie sa fie intre 0 si 120.");
- if(!IsPlayerConnected(ID)) return SendClientMessage(playerid, 0xFF9900AA, "Utilizatorul selectat nu este conectat.");
- GetPlayerName(ID,pname,MAX_PLAYER_NAME); // targetid
- GetPlayerName(playerid,Nam, MAX_PLAYER_NAME); // playerid
- format(str, sizeof(str), "{FFFFFF}%s {FF0000}ti-a setat viata la {FFFFFF}%d.",Nam,Float:health);
- SendClientMessage(ID, -1);
- format(str, sizeof(str), "{FF0000}I-ai setat lui {FFFFFF}%s {FF0000}viata la {FFFFFF}%d{FF0000}.",pname,Float:health);
- SendClientMessage(playerid, -1,str);
- SetPlayerHealth(ID, Float:health);
- return 1;
- }*/
- 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 OnPlayerHealthChange(playerid, Float:newhealth, Float:oldhealth)
- {
- if(newhealth > 20)
- {
- TogglePlayerControllable(playerid,0);
- new Text3D:label = Create3DTextLabel("(( JUCATORUL ESTE RANIT. IN-CHARACTER ESTE PE JOS. ))", 0x008080FF, 30.0, 40.0, 50.0, 40.0, 0);
- Attach3DTextLabelToPlayer(label, playerid, 0.0, 0.0, 0.7);
- SendClientMessage(playerid, 0xff00000, "Ai intrat in DEATH-TIMER! Peste 120 secunde vei putea folosii /deathtimer.");
- SetTimerEx("dttimer", 120000, false, "i", playerid);
- PlayerInfo[playerid][DT] = 1;
- PlayerInfo[playerid][DTT] = 1;
- }
- return 1;
- }
- public dttimer(playerid)
- {
- SendClientMessage(playerid, 0xff00000, "Au trecut 120 secunde. Acum poti da /acceptdeath.");
- PlayerInfo[playerid][DTT] = 0;
- }
- public OnPlayerRequestSpawn(playerid)
- {
- return 1;
- }
- public OnObjectMoved(objectid)
- {
- return 1;
- }
- public OnPlayerObjectMoved(playerid, objectid)
- {
- return 1;
- }
- public 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)
- {
- return 1;
- }
- public OnPlayerExitedMenu(playerid)
- {
- return 1;
- }
- public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
- {
- return 1;
- }
- public 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[])
- {
- switch( dialogid )
- {
- case DIALOG_REGISTER:
- {
- if (!response) return Kick(playerid);
- if(response)
- {
- if(!strlen(inputtext)) return ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT, "{FF0000}EROARE","{FF0000}Nu ai introdus o parola"COL_WHITE".\n"COL_WHITE"Introdu-ti parola mai jos pentru a te inregistra.","Register","Quit");
- new INI:File = INI_Open(UserPath(playerid));
- INI_SetTag(File,"data");
- INI_WriteInt(File,"Password",udb_hash(inputtext));
- INI_WriteInt(File,"Cash",0);
- INI_WriteInt(File,"Admin",0);
- INI_WriteInt(File,"Kills",0);
- INI_WriteInt(File,"Deaths",0);
- INI_WriteInt(File,"Tester",0);
- INI_WriteInt(File,"Developer",0);
- INI_WriteInt(File,"Factiune",0);
- INI_WriteInt(File,"Lider",0);
- INI_Close(File);
- SetSpawnInfo(playerid, 0, 0, 1958.33, 1343.12, 15.36, 269.15, 0, 0, 0, 0, 0, 0);
- SpawnPlayer(playerid);
- TextDrawShowForPlayer(playerid, spawntextdraw);
- }
- }
- case DIALOG_LOGIN:
- {
- if ( !response ) return Kick ( playerid );
- if( response )
- {
- if(udb_hash(inputtext) == PlayerInfo[playerid][pPass])
- {
- INI_ParseFile(UserPath(playerid), "LoadUser_%s", .bExtra = true, .extra = playerid);
- GivePlayerMoney(playerid, PlayerInfo[playerid][pCash]);
- SpawnPlayer(playerid);
- TextDrawShowForPlayer(playerid, spawntextdraw);
- }
- else
- {
- ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT,""COL_WHITE"{FF0000}EROARE","{FF0000}Parola incorecta.\n"COL_WHITE"Te rog introdu-ti parola in casuta de mai jos.","LOGHEAZA","IESI");
- }
- return 1;
- }
- }
- }
- return 1;
- }
- public OnPlayerClickPlayer(playerid, clickedplayerid, source)
- {
- return 1;
- }
- stock UserPath(playerid)
- {
- new string[128],playername[MAX_PLAYER_NAME];
- GetPlayerName(playerid,playername,sizeof(playername));
- format(string,sizeof(string),PATH,playername);
- return string;
- }
- /*Credits to Dracoblue*/
- stock udb_hash(buf[]) {
- new length=strlen(buf);
- new s1 = 1;
- new s2 = 0;
- new n;
- for (n=0; n<length; n++)
- {
- s1 = (s1 + buf[n]) % 65521;
- s2 = (s2 + s1) % 65521;
- }
- return (s2 << 16) + s1;
- }
- forward LoadUser_data(playerid,name[],value[]);
- public LoadUser_data(playerid,name[],value[])
- {
- INI_Int("Password",PlayerInfo[playerid][pPass]);
- INI_Int("Cash",PlayerInfo[playerid][pCash]);
- INI_Int("Admin",PlayerInfo[playerid][pAdmin]);
- INI_Int("Kills",PlayerInfo[playerid][pKills]);
- INI_Int("Deaths",PlayerInfo[playerid][pDeaths]);
- INI_Int("Tester",PlayerInfo[playerid][pTester]);
- INI_Int("Developer",PlayerInfo[playerid][pDeveloper]);
- INI_Int("Factiune",PlayerInfo[playerid][pFaction]);
- INI_Int("Lider",PlayerInfo[playerid][pLeader]);
- INI_Int("Rank",FactionInfo[playerid][fRank]);
- return 1;
- }
- public SendAdminMessage(playerid, message[])
- {
- if(PlayerInfo[playerid][pAdmin] = 1)
- {
- new szString[68];
- SendClientMessage(playerid, 0xFFFFFFF, szString);
- }
- return 1;
- }
- public ProxDetector(Float:radi, playerid, string[],col1,col2,col3,col4,col5)
- {
- if(IsPlayerConnected(playerid))
- {
- new Float:posx, Float:posy, Float:posz;
- new Float:oldposx, Float:oldposy, Float:oldposz;
- new Float:tempposx, Float:tempposy, Float:tempposz;
- GetPlayerPos(playerid, oldposx, oldposy, oldposz);
- for(new i = 0; i < MAX_PLAYERS; i++)
- {
- if(IsPlayerConnected(i) && (GetPlayerVirtualWorld(playerid) == GetPlayerVirtualWorld(i)))
- {
- GetPlayerPos(i, posx, posy, posz);
- tempposx = (oldposx -posx);
- tempposy = (oldposy -posy);
- tempposz = (oldposz -posz);
- if (((tempposx < radi/16) && (tempposx > -radi/16)) && ((tempposy < radi/16) && (tempposy > -radi/16)) && ((tempposz < radi/16) && (tempposz > -radi/16)))
- {
- SendClientMessage(i, col1, string);
- }
- else if (((tempposx < radi/8) && (tempposx > -radi/8)) && ((tempposy < radi/8) && (tempposy > -radi/8)) && ((tempposz < radi/8) && (tempposz > -radi/8)))
- {
- SendClientMessage(i, col2, string);
- }
- else if (((tempposx < radi/4) && (tempposx > -radi/4)) && ((tempposy < radi/4) && (tempposy > -radi/4)) && ((tempposz < radi/4) && (tempposz > -radi/4)))
- {
- SendClientMessage(i, col3, string);
- }
- else if (((tempposx < radi/2) && (tempposx > -radi/2)) && ((tempposy < radi/2) && (tempposy > -radi/2)) && ((tempposz < radi/2) && (tempposz > -radi/2)))
- {
- SendClientMessage(i, col4, string);
- }
- else if (((tempposx < radi) && (tempposx > -radi)) && ((tempposy < radi) && (tempposy > -radi)) && ((tempposz < radi) && (tempposz > -radi)))
- {
- SendClientMessage(i, col5, string);
- }
- }
- else
- {
- SendClientMessage(i, col1, string);
- }
- }
- }
- return 1;
- }
- forward BanExPublic(playerid, reason[]);
- public BanExPublic(playerid, reason[])
- {
- BanEx(playerid, reason);
- }
- stock BanExWithMessage(playerid, color, message[], reason[])
- {
- SendClientMessage(playerid, color, message);
- SetTimerEx("BanExPublic", 1000, false, "ds", playerid, reason);
- }
Advertisement
Add Comment
Please, Sign In to add comment