Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*-----------------------------------------------------------------------------*\
- Larceny - GunGame
- Descrição:
- Um gamemode com o objetivo de matar os outros competidores, a cada quantia
- de jogadores mortos você recebe uma nova arma. No inicio do round todos
- usam apenas a faca para matar seus adversários por um minuto, após isso
- recebem suas armas para começar o verdadeiro combate. O jogo acaba quando
- alguém chegar até a ultima arma que é a faca novamente e matar um oponente.
- Versão:
- 1.0
- Changelog:
- -
- Comandos:
- 36
- Autor:
- Larceny. - grandlarceny@live.com
- Agradecimentos:
- Y_Less.
- Lós.
- PabloBorsellino.
- \*-----------------------------------------------------------------------------*/
- #include <a_samp>
- #if defined MAX_PLAYERS
- #undef MAX_PLAYERS
- #endif
- #define MAX_PLAYERS 32
- #define MAX_INI_ENTRY_TEXT 160
- #include <YSI\y_ini>
- #include <YSI\y_va>
- #include <YSI\y_commands>
- #include <YSI\y_iterate>
- #include <sscanf2>
- #include <YSI\y_timers>
- #include <pBoom>
- #define COLOR_SAMP 0xA9C4E4FF
- #define COLOR_WHITE 0xFFFFFFFF
- #define COLOR_YELLOW 0xFFFF00AA
- #define COLOR_GREY 0xAFAFAFAA
- #define COLOR_LIGHTRED 0xFF6347AA
- #define COLOR_PURPLE 0xC2A2DAAA
- #define DIALOG_NULL 2
- #define DIALOG_LOGIN 1
- #define DIALOG_REGISTER 0
- enum E_PLAYER_DATA
- {
- Float:E_PLAYER_HEALTH,
- bool:E_PLAYER_LOGGED,
- bool:E_PLAYER_MUTED,
- E_PLAYER_NXTLVL,
- E_PLAYER_LVL,
- E_PLAYER_SKIN,
- E_PLAYER_SCORE,
- E_PLAYER_REG,
- E_PLAYER_ADMIN,
- E_PLAYER_AGE,
- E_PLAYER_SEX,
- E_PLAYER_GKILLS,
- E_PLAYER_GDEATHS,
- E_PLAYER_KILLS,
- E_PLAYER_DEATHS,
- E_PLAYER_PLAYEDHOURS,
- E_PLAYER_CLAN[4],
- E_PLAYER_PASS[64],
- E_PLAYER_RDATE[32],
- E_PLAYER_LASTLOGIN[32],
- E_PLAYER_BIRTH[32]
- }
- new
- gPlayerData[MAX_PLAYERS][E_PLAYER_DATA];
- enum G_SCORE_DATA
- {
- G_WINNER_ID,
- G_SECOND_ID,
- G_THIRD_ID,
- G_FOURTY_ID,
- G_FIVE_ID
- }
- new
- gScoreData[G_SCORE_DATA];
- enum G_GLOBAL_DATA
- {
- G_SECONDS,
- G_MINUTES,
- G_ADMIN,
- G_ROUND
- }
- new
- gGlobal[G_GLOBAL_DATA];
- new Float:gStartSpawns[][4] = {
- {2540.6560,2848.4426,10.8203,227.6038},
- {2546.0940,2836.8591,10.8203,2.1700},
- {2585.9043,2848.9812,10.8203,126.8779},
- {2573.4312,2848.3315,10.8203,228.2305},
- {2596.0417,2805.9031,10.8203,35.8654},
- {2615.7966,2849.2153,10.8203,141.6047},
- {2605.7920,2805.8025,10.8203,321.1230},
- {2614.1472,2848.3218,19.9922,88.9408},
- {2562.1228,2848.2454,19.9922,274.4125},
- {2543.5471,2805.7273,19.9999,268.9409},
- {2584.9009,2825.5068,19.9922,202.1277},
- {2563.6899,2848.8738,10.8203,117.3095}
- };
- new Text:box;
- new Text:LLine1;
- new Text:LLine2;
- new Text:LLine3;
- new Text:LLine4;
- new Text:nametext;
- new Text:killtext;
- new Text:deathtext;
- new Text:stringtext;
- new Text:timeDisplay;
- new Text:boxdn;
- new Text:pxlvl;
- new Text:bhleader;
- new Text:pxlvlnum[MAX_PLAYERS];
- new Text:admon;
- new Text:admonnum;
- new Text:bhleadernum[MAX_PLAYERS];
- new Text:separator1;
- new Text:separator2;
- new Text:currleader;
- new Text:currleadernam;
- forward load_user_birth_day(playerid, name[], value[]);
- forward load_user_data_gungame(playerid, name[], value[]);
- forward load_player_pass(playerid, name[], value[]);
- forward ShowPlayerStats(playerid, targetid);
- forward split(const strsrc[], strdest[][], delimiter);
- forward D1(playerid);
- forward D2(playerid);
- forward D3(playerid);
- forward DS(playerid);
- forward OnPlayerLogout(playerid);
- forward SetCameraBehindPlayerEx(playerid);
- main()
- {
- print("...GunGame iniciado com sucesso.\n");
- print("------------------------------------------------");
- }
- /*-----------------------------------------------------------------------------*\
- Esta callback é chamada quando o gamemode é iniciado
- \*-----------------------------------------------------------------------------*/
- public OnGameModeInit()
- {
- print("------------------------------------------------\n");
- print("Iniciando GunGame...");
- SetGameModeText("GunGame v1.0");
- SendRconCommand("hostname SA-MP GunGame BR");
- ShowPlayerMarkers(PLAYER_MARKERS_MODE_OFF);
- UsePlayerPedAnims();
- AddPlayerClass(285, 2548.0349, 2824.0513, 10.8203, 269.5908, 0, 0, 0, 0, 0, 0);
- /*CreateObject(971,2539.19995117,2823.00000000,13.19999981,0.00000000,0.00000000,90.25000000);
- CreateObject(971,2616.60009766,2830.69995117,13.39999962,0.00000000,0.00000000,270.00000000);*/
- CreateObject(3095,2543.50000000,2808.60009766,9.30000019,0.00000000,0.00000000,0.00000000);
- CreateObject(3095,2552.50000000,2808.30004883,9.30000019,0.00000000,0.00000000,0.00000000);
- CreateObject(3095,2561.50000000,2808.30004883,9.30000019,0.00000000,0.00000000,0.00000000);
- CreateObject(3095,2570.50000000,2808.30004883,9.30000019,0.00000000,0.00000000,0.00000000);
- CreateObject(3095,2579.50000000,2808.30004883,9.30000019,0.00000000,0.00000000,0.00000000);
- CreateObject(3095,2588.50000000,2808.30004883,9.30000019,0.00000000,0.00000000,0.00000000);
- CreateObject(3095,2608.50000000,2808.39990234,9.30000019,0.00000000,0.00000000,0.00000000);
- CreateObject(3095,2597.50000000,2808.30004883,9.30000019,0.00000000,0.00000000,0.00000000);
- CreateObject(3095,2617.50000000,2808.39990234,9.30000019,0.00000000,0.00000000,0.00000000);
- CreateObject(3095,2543.69995117,2817.60009766,9.30000019,0.00000000,0.00000000,0.00000000);
- CreateObject(3095,2552.50000000,2817.30004883,9.30000019,0.00000000,0.00000000,0.00000000);
- CreateObject(3095,2561.50000000,2817.30004883,9.30000019,0.00000000,0.00000000,0.00000000);
- CreateObject(3095,2570.50000000,2817.30004883,9.30000019,0.00000000,0.00000000,0.00000000);
- CreateObject(3095,2579.50000000,2817.30004883,9.30000019,0.00000000,0.00000000,0.00000000);
- CreateObject(3095,2588.50000000,2817.30004883,9.30000019,0.00000000,0.00000000,0.00000000);
- CreateObject(3095,2597.50000000,2817.30004883,9.30000019,0.00000000,0.00000000,0.00000000);
- CreateObject(3095,2606.50000000,2817.30004883,9.30000019,0.00000000,0.00000000,0.00000000);
- CreateObject(3095,2615.50000000,2817.30004883,9.30000019,0.00000000,0.00000000,0.00000000);
- CreateObject(3095,2615.50000000,2826.30004883,9.30000019,0.00000000,0.00000000,0.00000000);
- CreateObject(3095,2615.50000000,2835.30004883,9.30000019,0.00000000,0.00000000,0.00000000);
- CreateObject(3095,2606.50000000,2826.30004883,9.30000019,0.00000000,0.00000000,0.00000000);
- CreateObject(3095,2606.50000000,2835.30004883,9.30000019,0.00000000,0.00000000,0.00000000);
- CreateObject(3095,2597.50000000,2826.30004883,9.30000019,0.00000000,0.00000000,0.00000000);
- CreateObject(3095,2597.50000000,2835.30004883,9.30000019,0.00000000,0.00000000,0.00000000);
- CreateObject(3095,2588.50000000,2835.30004883,9.30000019,0.00000000,0.00000000,0.00000000);
- CreateObject(3095,2588.50000000,2826.30004883,9.30000019,0.00000000,0.00000000,0.00000000);
- CreateObject(3095,2579.50000000,2826.30004883,9.30000019,0.00000000,0.00000000,0.00000000);
- CreateObject(3095,2579.50000000,2835.30004883,9.30000019,0.00000000,0.00000000,0.00000000);
- CreateObject(3095,2570.50000000,2826.30004883,9.30000019,0.00000000,0.00000000,0.00000000);
- CreateObject(3095,2570.50000000,2835.30004883,9.30000019,0.00000000,0.00000000,0.00000000);
- CreateObject(3095,2561.50000000,2826.30004883,9.30000019,0.00000000,0.00000000,0.00000000);
- CreateObject(3095,2561.50000000,2835.30004883,9.30000019,0.00000000,0.00000000,0.00000000);
- CreateObject(3095,2552.50000000,2826.30004883,9.30000019,0.00000000,0.00000000,0.00000000);
- CreateObject(3095,2552.50000000,2835.30004883,9.30000019,0.00000000,0.00000000,0.00000000);
- CreateObject(3095,2615.50000000,2844.30004883,9.30000019,0.00000000,0.00000000,0.00000000);
- CreateObject(3095,2606.50000000,2844.30004883,9.30000019,0.00000000,0.00000000,0.00000000);
- CreateObject(3095,2615.50000000,2853.30004883,9.30000019,0.00000000,0.00000000,0.00000000);
- CreateObject(3095,2606.50000000,2853.30004883,9.30000019,0.00000000,0.00000000,0.00000000);
- CreateObject(3095,2597.50000000,2853.30004883,9.30000019,0.00000000,0.00000000,0.00000000);
- CreateObject(3095,2597.50000000,2844.30004883,9.30000019,0.00000000,0.00000000,0.00000000);
- CreateObject(3095,2588.50000000,2844.30004883,9.30000019,0.00000000,0.00000000,0.00000000);
- CreateObject(3095,2579.50000000,2844.30004883,9.30000019,0.00000000,0.00000000,0.00000000);
- CreateObject(3095,2570.50000000,2844.30004883,9.30000019,0.00000000,0.00000000,0.00000000);
- CreateObject(3095,2561.50000000,2844.30004883,9.30000019,0.00000000,0.00000000,0.00000000);
- CreateObject(3095,2552.50000000,2844.30004883,9.30000019,0.00000000,0.00000000,0.00000000);
- CreateObject(3095,2543.50000000,2844.30004883,9.30000019,0.00000000,0.00000000,0.00000000);
- CreateObject(3095,2543.50000000,2835.30004883,9.30000019,0.00000000,0.00000000,0.00000000);
- CreateObject(3095,2543.69995117,2826.60009766,9.30000019,0.00000000,0.00000000,0.00000000);
- CreateObject(3095,2588.50000000,2853.30004883,9.30000019,0.00000000,0.00000000,0.00000000);
- CreateObject(3095,2579.50000000,2853.30004883,9.30000019,0.00000000,0.00000000,0.00000000);
- CreateObject(3095,2570.50000000,2853.30004883,9.30000019,0.00000000,0.00000000,0.00000000);
- CreateObject(3095,2560.69995117,2853.30004883,9.30000019,0.00000000,0.00000000,0.00000000);
- CreateObject(3095,2551.69995117,2853.30004883,9.30000019,0.00000000,0.00000000,0.00000000);
- CreateObject(3095,2542.69995117,2853.30004883,9.30000019,0.00000000,0.00000000,0.00000000);
- CreateObject(3095,2616.60009766,2831.19995117,12.19999981,0.00000000,270.25024414,359.99987793);
- CreateObject(3095,2538.89990234,2823.80004883,12.19999981,0.00000000,270.24707031,182.99450684);
- ResetNonePlayer();
- gGlobal[G_SECONDS] = 60;
- box = TextDrawCreate(612.000000,338.000000,"C");
- TextDrawUseBox(box,1);
- TextDrawBoxColor(box,0x00000033);
- TextDrawTextSize(box,454.000000,9.000000);
- TextDrawAlignment(box,0);
- TextDrawBackgroundColor(box,0x000000ff);
- TextDrawFont(box,3);
- TextDrawLetterSize(box,-0.000000,8.700001);
- TextDrawColor(box,0xffffffff);
- TextDrawSetOutline(box,1);
- TextDrawSetProportional(box,1);
- TextDrawSetShadow(box,1);
- nametext = TextDrawCreate(471.000000, 353.000000, "Ninguem~n~Ninguem~n~Ninguem~n~Ninguem~n~Ninguem");
- TextDrawBackgroundColor(nametext, 255);
- TextDrawFont(nametext, 1);
- TextDrawLetterSize(nametext, 0.180000, 1.100000);
- TextDrawColor(nametext, -1);
- TextDrawSetOutline(nametext, 0);
- TextDrawSetProportional(nametext, 1);
- TextDrawSetShadow(nametext, 1);
- killtext = TextDrawCreate(520.000000, 353.000000, "0~n~0~n~0~n~0~n~0");
- TextDrawBackgroundColor(killtext, 255);
- TextDrawFont(killtext, 1);
- TextDrawLetterSize(killtext, 0.289999, 1.100000);
- TextDrawColor(killtext, -1);
- TextDrawSetOutline(killtext, 0);
- TextDrawSetProportional(killtext, 1);
- TextDrawSetShadow(killtext, 1);
- deathtext = TextDrawCreate(565.000000, 353.000000, "0~n~0~n~0~n~0~n~0");
- TextDrawBackgroundColor(deathtext, 255);
- TextDrawFont(deathtext, 1);
- TextDrawLetterSize(deathtext, 0.289999, 1.100000);
- TextDrawColor(deathtext, -1);
- TextDrawSetOutline(deathtext, 0);
- TextDrawSetProportional(deathtext, 1);
- TextDrawSetShadow(deathtext, 1);
- stringtext = TextDrawCreate(471.000000, 339.000000, "~p~N~w~ome - ~p~K~w~ills - ~p~D~w~eaths");
- TextDrawBackgroundColor(stringtext, 255);
- TextDrawFont(stringtext, 2);
- TextDrawLetterSize(stringtext, 0.280000, 1.000000);
- TextDrawColor(stringtext, -1);
- TextDrawSetOutline(stringtext, 0);
- TextDrawSetProportional(stringtext, 1);
- TextDrawSetShadow(stringtext, 1);
- LLine1 = TextDrawCreate(609.000000,341.000000,"L");
- TextDrawUseBox(LLine1,1);
- TextDrawBoxColor(LLine1,0xffffff33);
- TextDrawTextSize(LLine1,457.000000,-1.000000);
- TextDrawAlignment(LLine1,0);
- TextDrawBackgroundColor(LLine1,0x000000ff);
- TextDrawFont(LLine1,3);
- TextDrawLetterSize(LLine1,-0.000000,-0.400000);
- TextDrawColor(LLine1,0xffffffff);
- TextDrawSetOutline(LLine1,1);
- TextDrawSetProportional(LLine1,1);
- TextDrawSetShadow(LLine1,1);
- //---------------------------------------------------------->
- LLine2 = TextDrawCreate(609.000000,416.000000,"L");
- TextDrawUseBox(LLine2,1);
- TextDrawBoxColor(LLine2,0xffffff33);
- TextDrawTextSize(LLine2,457.000000,-9.000000);
- TextDrawBackgroundColor(LLine2,0x000000ff);
- TextDrawFont(LLine2,3);
- TextDrawLetterSize(LLine2,-0.000000,-0.400000);
- TextDrawColor(LLine2,0xffffffff);
- TextDrawSetOutline(LLine2,1);
- TextDrawSetProportional(LLine2,1);
- TextDrawSetShadow(LLine2,1);
- //---------------------------------------------------------->
- LLine3 = TextDrawCreate(466.000000,343.000000,"T");
- TextDrawUseBox(LLine3,1);
- TextDrawBoxColor(LLine3,0xffffff33);
- TextDrawTextSize(LLine3,457.000000,0.000000);
- TextDrawAlignment(LLine3,0);
- TextDrawBackgroundColor(LLine3,0x000000ff);
- TextDrawFont(LLine3,3);
- TextDrawLetterSize(LLine3,-0.000000,7.499998);
- TextDrawColor(LLine3,0xffffffff);
- TextDrawSetOutline(LLine3,1);
- TextDrawSetProportional(LLine3,1);
- TextDrawSetShadow(LLine3,1);
- //---------------------------------------------------------->
- LLine4 = TextDrawCreate(607.000000,343.000000,"T");
- TextDrawUseBox(LLine4,1);
- TextDrawBoxColor(LLine4,0xffffff33);
- TextDrawTextSize(LLine4,603.000000,-6.000000);
- TextDrawAlignment(LLine4,0);
- TextDrawBackgroundColor(LLine4,0x000000ff);
- TextDrawFont(LLine4,3);
- TextDrawLetterSize(LLine4,-0.000000,7.499999);
- TextDrawColor(LLine4,0xffffffff);
- TextDrawSetOutline(LLine4,1);
- TextDrawSetProportional(LLine4,1);
- TextDrawSetShadow(LLine4,1);
- timeDisplay = TextDrawCreate(605.0,25.0,"00:00");
- TextDrawUseBox(timeDisplay, 0);
- TextDrawFont(timeDisplay, 3);
- TextDrawSetShadow(timeDisplay,0);
- TextDrawSetOutline(timeDisplay,2);
- TextDrawBackgroundColor(timeDisplay,0x000000FF);
- TextDrawColor(timeDisplay,0xFFFFFFFF);
- TextDrawAlignment(timeDisplay,3);
- TextDrawLetterSize(timeDisplay,0.5,1.5);
- boxdn = TextDrawCreate(680.000000, 434.000000, "_");
- TextDrawBackgroundColor(boxdn, 255);
- TextDrawFont(boxdn, 1);
- TextDrawLetterSize(boxdn, 0.500000, 2.000000);
- TextDrawColor(boxdn, -1);
- TextDrawSetOutline(boxdn, 0);
- TextDrawSetProportional(boxdn, 1);
- TextDrawSetShadow(boxdn, 1);
- TextDrawUseBox(boxdn, 1);
- TextDrawBoxColor(boxdn, 125);
- TextDrawTextSize(boxdn, -53.000000, -6.000000);
- pxlvl = TextDrawCreate(4.000000, 433.000000, "Proximo level em Kills");
- TextDrawBackgroundColor(pxlvl, 255);
- TextDrawFont(pxlvl, 1);
- TextDrawLetterSize(pxlvl, 0.340000, 1.399999);
- TextDrawColor(pxlvl, -1);
- TextDrawSetOutline(pxlvl, 0);
- TextDrawSetProportional(pxlvl, 1);
- TextDrawSetShadow(pxlvl, 1);
- bhleader = TextDrawCreate(437.000000, 433.000000, "Voce esta a leveis atras do lider");
- TextDrawBackgroundColor(bhleader, 255);
- TextDrawFont(bhleader, 1);
- TextDrawLetterSize(bhleader, 0.340000, 1.399999);
- TextDrawColor(bhleader, -1);
- TextDrawSetOutline(bhleader, 0);
- TextDrawSetProportional(bhleader, 1);
- TextDrawSetShadow(bhleader, 1);
- admon = TextDrawCreate(36.000000, 323.000000, "Ha administradores online.");
- TextDrawBackgroundColor(admon, 255);
- TextDrawFont(admon, 1);
- TextDrawLetterSize(admon, 0.219999, 1.399999);
- TextDrawColor(admon, -1);
- TextDrawSetOutline(admon, 0);
- TextDrawSetProportional(admon, 1);
- TextDrawSetShadow(admon, 1);
- admonnum = TextDrawCreate(48.000000, 323.000000, "~p~00");
- TextDrawBackgroundColor(admonnum, 255);
- TextDrawFont(admonnum, 1);
- TextDrawLetterSize(admonnum, 0.159999, 1.399999);
- TextDrawColor(admonnum, -1029514582);
- TextDrawSetOutline(admonnum, 1);
- TextDrawSetProportional(admonnum, 1);
- separator1 = TextDrawCreate(149.000000, 425.000000, "l");
- TextDrawBackgroundColor(separator1, 255);
- TextDrawFont(separator1, 0);
- TextDrawLetterSize(separator1, 0.500000, 3.099998);
- TextDrawColor(separator1, -65281);
- TextDrawSetOutline(separator1, 0);
- TextDrawSetProportional(separator1, 1);
- TextDrawSetShadow(separator1, 1);
- separator2 = TextDrawCreate(430.000000, 425.000000, "l");
- TextDrawBackgroundColor(separator2, 255);
- TextDrawFont(separator2, 0);
- TextDrawLetterSize(separator2, 0.500000, 3.099998);
- TextDrawColor(separator2, -65281);
- TextDrawSetOutline(separator2, 0);
- TextDrawSetProportional(separator2, 1);
- TextDrawSetShadow(separator2, 1);
- currleader = TextDrawCreate(212.000000, 433.000000, "Lider Atual:");
- TextDrawBackgroundColor(currleader, 255);
- TextDrawFont(currleader, 1);
- TextDrawLetterSize(currleader, 0.340000, 1.399999);
- TextDrawColor(currleader, -1);
- TextDrawSetOutline(currleader, 0);
- TextDrawSetProportional(currleader, 1);
- TextDrawSetShadow(currleader, 1);
- currleadernam = TextDrawCreate(300.000000, 431.000000, "~p~Ninguem");
- TextDrawBackgroundColor(currleadernam, 255);
- TextDrawFont(currleadernam, 1);
- TextDrawLetterSize(currleadernam, 0.270000, 1.700000);
- TextDrawColor(currleadernam, -1029514582);
- TextDrawSetOutline(currleadernam, 1);
- TextDrawSetProportional(currleadernam, 1);
- return 1;
- }
- /*-----------------------------------------------------------------------------*\
- Esta callback é chamada quando o gamemode é desligado
- \*-----------------------------------------------------------------------------*/
- public OnGameModeExit()
- {
- return 1;
- }
- /*-----------------------------------------------------------------------------*\
- Esta callback é chamada quando um jogador realiza algum comando
- Param:
- - playerid: ID do jogador que executou o comando
- - cmdtext[]: O comando que o jogador utilizou
- - sucess: O estado que foi realizado o comando
- Notes:
- - sucess: retorna 1 caso o comando foi encontrado e quer retornar 1.
- retorna -1 caso o comando foi encontrado e quer retornar 0.
- retorna 0 caso o comando não for encontrado, retorna qualquer
- coisa.
- \*-----------------------------------------------------------------------------*/
- public OnPlayerCommandPerformed(playerid, cmdtext[], success)
- {
- if(!success)
- {
- format(cmdtext, 94, "*** Este comando não existe. Utilize /cmds ou /comandos para uma lista com todos os comandos.");
- SendClientMessage(playerid, COLOR_GREY, cmdtext);
- }
- return true;
- }
- /*-----------------------------------------------------------------------------*\
- Esta callback é chamada quando um jogador muda de classe na seleção
- Param:
- - playerid: O ID do jogador que muda as classes.
- - classid: O ID da classe que está sendo vista.
- Notes:
- - Retornando 0 nesta callback irá evitar que o jogador de spawn.
- \*-----------------------------------------------------------------------------*/
- public OnPlayerRequestClass(playerid, classid)
- {
- SetPlayerPos(playerid,1524.7351,-1373.0142,233.8161);
- SetPlayerCameraPos(playerid,1359.5557,-1029.1689,288.2147);
- SetPlayerCameraLookAt(playerid,1557.7233,-1322.3529,220.9097);
- return 1;
- }
- public load_user_birth_day(playerid, name[], value[])
- {
- INI_String("birthday", gPlayerData[playerid][E_PLAYER_BIRTH], 12);
- return 1;
- }
- /*-----------------------------------------------------------------------------*\
- Esta callback é chamada quando se conecta ao servidor
- Param:
- - playerid: O ID do jogador conectado.
- \*-----------------------------------------------------------------------------*/
- public OnPlayerConnect(playerid)
- {
- ClearScreen(playerid);
- SendClientMessageFormattedToAll(0x78C100FF, "*** {68A100}%s{78C100} se conectou ao servidor.", GetPlayerNameEx(playerid));
- SendClientMessage(playerid, -1, " ");
- new
- playerName[MAX_PLAYER_NAME];
- GetPlayerName(playerid, playerName, MAX_PLAYER_NAME);
- new
- userFile[32];
- format(userFile, sizeof (userFile), "users/%s.ini", playerName);
- if(fexist(userFile))
- {
- SendClientMessage(playerid, COLOR_SAMP, "Esta conta está registrada em nosso banco de dados, entre com seus dados para fazer log-in.");
- ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Log-in", "Digite sua senha para log-in:", "Acessar", "Disconnect");
- }
- else
- {
- SendClientMessage(playerid, COLOR_SAMP, "Esta conta não está registrada em nosso banco de dados, entre com seus dados para fazer o registro.");
- ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT, "Registro", "Digite sua senha para registrar:", "Registrar", "Disconnect");
- }
- SendClientMessage(playerid, -1, " ");
- SendClientMessageFormatted(playerid, 0x00B6FFFF, "*** Bem vindo {0087FA}%s{00B6FF}, ao GunGame SA-MP.", GetPlayerNameEx(playerid));
- SendClientMessageFormatted(playerid, 0x00B6FFFF, "*** Digite {0087FA}/ajuda{00B6FF} para obter mais informações sobre este jogo.", GetPlayerNameEx(playerid));
- SendClientMessage(playerid, -1, " ");
- gPlayerData[playerid][E_PLAYER_LVL] = 1;
- gPlayerData[playerid][E_PLAYER_REG] = 0;
- gPlayerData[playerid][E_PLAYER_KILLS] = 0;
- gPlayerData[playerid][E_PLAYER_MUTED] = false;
- gPlayerData[playerid][E_PLAYER_DEATHS] = 0;
- gPlayerData[playerid][E_PLAYER_GKILLS] = 0;
- gPlayerData[playerid][E_PLAYER_GDEATHS] = 0;
- gPlayerData[playerid][E_PLAYER_NXTLVL] = 2;
- gPlayerData[playerid][E_PLAYER_SKIN] = 285;
- gPlayerData[playerid][E_PLAYER_SCORE] = 0;
- gPlayerData[playerid][E_PLAYER_AGE] = 0;
- gPlayerData[playerid][E_PLAYER_SEX] = 0;
- gPlayerData[playerid][E_PLAYER_HEALTH] = 100.0;
- gPlayerData[playerid][E_PLAYER_ADMIN] = 0;
- gPlayerData[playerid][E_PLAYER_PLAYEDHOURS] = 0;
- pxlvlnum[playerid] = TextDrawCreate(106.000000, 431.000000, "~p~02");
- TextDrawBackgroundColor(pxlvlnum[playerid], 255);
- TextDrawFont(pxlvlnum[playerid], 1);
- TextDrawLetterSize(pxlvlnum[playerid], 0.270000, 1.700000);
- TextDrawColor(pxlvlnum[playerid], -1029514582);
- TextDrawSetOutline(pxlvlnum[playerid], 1);
- TextDrawSetProportional(pxlvlnum[playerid], 1);
- bhleadernum[playerid] = TextDrawCreate(507.000000, 431.000000, "~p~00");
- TextDrawBackgroundColor(bhleadernum[playerid], 255);
- TextDrawFont(bhleadernum[playerid], 1);
- TextDrawLetterSize(bhleadernum[playerid], 0.270000, 1.700000);
- TextDrawColor(bhleadernum[playerid], -1029514582);
- TextDrawSetOutline(bhleadernum[playerid], 1);
- TextDrawSetProportional(bhleadernum[playerid], 1);
- return 1;
- }
- /*-----------------------------------------------------------------------------*\
- Esta callback é chamada quando um jogador desconecta do servidor
- Param:
- - playerid: ID do jogador que saiu
- - reason: ID da razão porque ele saiu
- \*-----------------------------------------------------------------------------*/
- public OnPlayerDisconnect(playerid, reason)
- {
- if(gPlayerData[playerid][E_PLAYER_LOGGED] == true) OnPlayerLogout(playerid);
- gPlayerData[playerid][E_PLAYER_LOGGED] = false;
- if(gPlayerData[playerid][E_PLAYER_ADMIN] > 0)
- {
- gGlobal[G_ADMIN]--;
- new newtext[8];
- format(newtext, sizeof(newtext), "~p~%02d", gGlobal[G_ADMIN]);
- TextDrawSetString(admonnum, newtext);
- }
- gPlayerData[playerid][E_PLAYER_KILLS] = 0;
- gPlayerData[playerid][E_PLAYER_DEATHS] = 0;
- TextDrawDestroy(pxlvlnum[playerid]);
- return 1;
- }
- /*-----------------------------------------------------------------------------*\
- Esta callback é chamada quando um jogador da spawn
- Param:
- - playerid: ID do jogador que spawnou
- Notes:
- - Return 0 nesta callback para forçar o jogador voltar a seleção
- de classes no próximo respawn
- \*-----------------------------------------------------------------------------*/
- public OnPlayerSpawn(playerid)
- {
- new rand = random(sizeof(gStartSpawns));
- SetPlayerPos(playerid, gStartSpawns[rand][0], gStartSpawns[rand][1], gStartSpawns[rand][2]);
- SetPlayerFacingAngle(playerid, gStartSpawns[rand][3]);
- switch(gGlobal[G_ROUND])
- {
- case 1: GiveWeaponLevel(playerid);
- default: GivePlayerWeapon(playerid, 4, 50);
- }
- SetPlayerSkin(playerid, gPlayerData[playerid][E_PLAYER_SKIN]);
- return 1;
- }
- /*-----------------------------------------------------------------------------*\
- Esta callback é chamada quando um jogador morre
- Param:
- - playerid: ID do jogador que morreu
- - killerid: ID do jogador que matou,
- ou INVALID_PLAYER_ID se ele morreu sozinho
- - reason: ID da razão pela qual o jogador morreu
- \*-----------------------------------------------------------------------------*/
- public OnPlayerDeath(playerid, killerid, reason)
- {
- new myStr[156];
- gPlayerData[playerid][E_PLAYER_DEATHS]++;
- gPlayerData[playerid][E_PLAYER_GDEATHS]++;
- if(killerid == INVALID_PLAYER_ID && gPlayerData[playerid][E_PLAYER_LVL] > 1)
- {
- gPlayerData[playerid][E_PLAYER_NXTLVL] = 0;
- gPlayerData[playerid][E_PLAYER_LVL]--;
- CheckWeaponLevel(playerid);
- }
- if(killerid != INVALID_PLAYER_ID)
- {
- gPlayerData[killerid][E_PLAYER_KILLS]++;
- gPlayerData[killerid][E_PLAYER_GKILLS]++;
- TogglePlayerSpectating(playerid, 1);
- PlayerSpectatePlayer(playerid, killerid);
- D1(playerid);
- if(reason == 4)
- {
- if(gPlayerData[playerid][E_PLAYER_LVL] > 1)
- {
- gPlayerData[playerid][E_PLAYER_NXTLVL] = 0;
- gPlayerData[playerid][E_PLAYER_LVL]--;
- CheckWeaponLevel(playerid);
- }
- gPlayerData[killerid][E_PLAYER_NXTLVL] = 1;
- }
- gPlayerData[killerid][E_PLAYER_NXTLVL]--;
- if(gPlayerData[killerid][E_PLAYER_NXTLVL] <= 0) gPlayerData[killerid][E_PLAYER_LVL]++;
- CheckWeaponLevel(killerid);
- SetPlayerScore(killerid, gPlayerData[killerid][E_PLAYER_LVL]);
- if(gPlayerData[killerid][E_PLAYER_KILLS] == 1){myStr = "First Kill";}
- else{format(myStr, sizeof(myStr), "%d kills", gPlayerData[killerid][E_PLAYER_KILLS]);}
- SetPlayerBoom(killerid, myStr);
- format(myStr, sizeof(myStr), "%02d", gPlayerData[killerid][E_PLAYER_NXTLVL]);
- TextDrawSetString(pxlvlnum[killerid], myStr);
- }
- return 1;
- }
- /*-----------------------------------------------------------------------------*\
- Esta callback é chamada quando a vehicle REspawns
- Param:
- - vehicleid: ID of the vehicle that spawned
- \*-----------------------------------------------------------------------------*/
- public OnVehicleSpawn(vehicleid)
- {
- return 1;
- }
- /*-----------------------------------------------------------------------------*\
- Esta callback é chamada quando a vehicle dies/explodes
- Param:
- - vehicleid: ID of the vehicle that died
- \*-----------------------------------------------------------------------------*/
- public OnVehicleDeath(vehicleid, killerid)
- {
- return 1;
- }
- /*-----------------------------------------------------------------------------*\
- Esta callback é chamada quando a player sends a chat message
- Param:
- - playerid: ID of the player who typed
- - text[]: the text that player typed
- Notes:
- - Returning 0 wiil stop the text from being sent
- \*-----------------------------------------------------------------------------*/
- public OnPlayerText(playerid, text[])
- {
- if(gPlayerData[playerid][E_PLAYER_MUTED])
- return SendClientMessage(playerid, COLOR_GREY, "*** Você está silenciado.");
- switch(gPlayerData[playerid][E_PLAYER_REG])
- {
- case 1:
- {
- new year, month,day;
- getdate(year, month, day);
- new DateInfo[3][20];
- split(text, DateInfo, '/');
- if(year - strval(DateInfo[2]) > 100 || strval(DateInfo[2]) < 1 || strval(DateInfo[2]) >= year)
- {
- SendClientMessage(playerid, COLOR_SAMP, "Qual a data de seu nascimento? (Use dd/mm/aaaa)");
- return 0;
- }
- new check = year - strval(DateInfo[2]);
- if(check == year)
- {
- SendClientMessage(playerid, COLOR_SAMP, "Qual a data de seu nascimento? (Use dd/mm/aaaa)");
- return 0;
- }
- if(strval(DateInfo[1]) > month)
- {
- check -= 1;
- }
- else if(strval(DateInfo[1]) == month && strval(DateInfo[0]) > day)
- {
- check -= 1;
- }
- gPlayerData[playerid][E_PLAYER_AGE] = check;
- new string[34];
- format(string, sizeof(string), "Certo, você tem %d anos.",gPlayerData[playerid][E_PLAYER_AGE]);
- SendClientMessage(playerid, COLOR_WHITE, string);
- gPlayerData[playerid][E_PLAYER_REG] = 2;
- new playerName[MAX_PLAYER_NAME];
- GetPlayerName(playerid, playerName, MAX_PLAYER_NAME);
- new userFile[32];
- format(userFile, sizeof (userFile), "users/%s.ini", playerName);
- new INI:file = INI_Open(userFile);
- INI_SetTag(file, "gungame");
- INI_WriteString(file, "birthday", text);
- INI_Close(file);
- SendClientMessage(playerid, COLOR_SAMP, "Você é do sexo masculino ou feminino?");
- return 0;
- }
- case 2:
- {
- if((strcmp("masculino", text, true, strlen(text)) == 0))
- {
- gPlayerData[playerid][E_PLAYER_SEX] = 1;
- SendClientMessage(playerid, COLOR_WHITE, "Certo, você é do sexo masculino.");
- SendClientMessage(playerid, COLOR_SAMP, "Você possui um endereço de e-mail? Caso não, diga apenas \"não\".");
- SendClientMessage(playerid, 0xC8C8C8C8, "*** Seu endereço não será divulgado, é apenas para contactar-mos nossos jogadores em caso de informações importantes.");
- gPlayerData[playerid][E_PLAYER_REG] = 3;
- return 0;
- }
- else if((strcmp("feminino", text, true, strlen(text)) == 0))
- {
- gPlayerData[playerid][E_PLAYER_SEX] = 2;
- SendClientMessage(playerid, COLOR_WHITE, "Certo, você é do sexo feminino.");
- SendClientMessage(playerid, COLOR_SAMP, "Você possui um endereço de e-mail? Caso não, diga apenas \"não\".");
- SendClientMessage(playerid, 0xC8C8C8C8, "*** Seu endereço não será divulgado, é apenas para contactar-mos nossos jogadores em caso de informações importantes.");
- gPlayerData[playerid][E_PLAYER_REG] = 3;
- return 0;
- }
- else
- {
- SendClientMessage(playerid, COLOR_SAMP, "Você é do sexo masculino ou feminino?");
- }
- }
- case 3:
- {
- if(strfind(text, "@", true) != -1 && strfind(text, ".", true) != -1)
- {
- new playerName[MAX_PLAYER_NAME];
- GetPlayerName(playerid, playerName, MAX_PLAYER_NAME);
- new userFile[32];
- format(userFile, sizeof (userFile), "users/%s.ini", playerName);
- new INI:file = INI_Open(userFile);
- INI_SetTag(file, "gungame");
- INI_WriteString(file, "email", text);
- INI_WriteInt(file, "registered", 255);
- INI_Close(file);
- SendClientMessageFormatted(playerid, COLOR_WHITE, "Certo, então seu e-mail é: {C8C8C8}%s", text);
- SendClientMessage(playerid, COLOR_SAMP, "Conta registrada completamente com sucesso.");
- gPlayerData[playerid][E_PLAYER_REG] = 0;
- SpawnPlayer(playerid);
- SetTimerEx("SetCameraBehindPlayerEx", 50, false, "i", playerid);
- return 0;
- }
- else if((strcmp("não", text, true, strlen(text)) == 0) || strcmp("nao", text, true, strlen(text)) == 0)
- {
- new playerName[MAX_PLAYER_NAME];
- GetPlayerName(playerid, playerName, MAX_PLAYER_NAME);
- new userFile[32];
- format(userFile, sizeof (userFile), "users/%s.ini", playerName);
- new INI:file = INI_Open(userFile);
- INI_SetTag(file, "gungame");
- INI_WriteString(file, "email", "Nenhum");
- INI_WriteInt(file, "registered", 255);
- INI_Close(file);
- SendClientMessage(playerid, COLOR_WHITE, "Certo, então você não possui um e-mail.");
- SendClientMessage(playerid, 0xC8C8C8C8, "*** Você não poderá recuperar sua conta caso perca sua senha, você pode adicionar um novo e-mail através do /mudaremail.");
- SendClientMessage(playerid, COLOR_SAMP, "Conta registrada completamente com sucesso.");
- gPlayerData[playerid][E_PLAYER_REG] = 0;
- SpawnPlayer(playerid);
- SetTimerEx("SetCameraBehindPlayerEx", 50, false, "i", playerid);
- return 0;
- }
- else
- {
- SendClientMessage(playerid, COLOR_SAMP, "Você possui um endereço de e-mail? Caso não, diga apenas \"não\".");
- return 0;
- }
- }
- }
- SendClientMessageFormattedToAll(GetPlayerColor(playerid), "%s{C8C8C8}(ID:%i): {ffffff}%s", GetPlayerNameEx(playerid), playerid, text);
- return 0;
- }
- /*-----------------------------------------------------------------------------*\
- Esta callback é chamada quando a player starts to enter a vehicle,
- meaning the player is not in vehicle yet at the time
- this callback is called.
- Param:
- - playerid: ID of the player who attempts to enter a vehicle
- - vehicleid: ID of the vehicle the player is attempting to enter
- - ispassenger: 0 if entering as driver. 1 if entering as passenger
- \*-----------------------------------------------------------------------------*/
- public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
- {
- return 1;
- }
- /*-----------------------------------------------------------------------------*\
- Esta callback é chamada quando a player exits a vehicle
- Param:
- - playerid: The ID of the player who exited the vehicle
- - vehicleid: The ID of the vehicle the player is exiting
- \*-----------------------------------------------------------------------------*/
- public OnPlayerExitVehicle(playerid, vehicleid)
- {
- return 1;
- }
- /*-----------------------------------------------------------------------------*\
- Esta callback é chamada quando a player changes state4
- Param:
- - playerid: The ID of the player that changed state
- - newstate: The player's new state
- - oldstate: The player's previous state
- \*-----------------------------------------------------------------------------*/
- public OnPlayerStateChange(playerid, newstate, oldstate)
- {
- return 1;
- }
- /*-----------------------------------------------------------------------------*\
- Esta callback é chamada quando a player enters the checkpoint
- set for that player
- Param:
- - playerid: The player who entered the checkpoint
- \*-----------------------------------------------------------------------------*/
- public OnPlayerEnterCheckpoint(playerid)
- {
- return 1;
- }
- /*-----------------------------------------------------------------------------*\
- Esta callback é chamada quando a player leaves the checkpoint
- set for that player
- Param:
- - playerid: The player who left the checkpoint
- \*-----------------------------------------------------------------------------*/
- public OnPlayerLeaveCheckpoint(playerid)
- {
- return 1;
- }
- /*-----------------------------------------------------------------------------*\
- Esta callback é chamada quando a player enters a race checkpoint
- Param:
- - playerid: The ID of the player who entered the race checkpoint
- \*-----------------------------------------------------------------------------*/
- public OnPlayerEnterRaceCheckpoint(playerid)
- {
- return 1;
- }
- /*-----------------------------------------------------------------------------*\
- Esta callback é chamada quando a player leaves a race checkpoint
- Param:
- - playerid: The ID of the player who left the race checkpoint
- \*-----------------------------------------------------------------------------*/
- public OnPlayerLeaveRaceCheckpoint(playerid)
- {
- return 1;
- }
- /*-----------------------------------------------------------------------------*\
- Esta callback é chamada quando a player types things into the RCON console
- Param:
- - cmd[]: The string containing the cmd
- Notes:
- - Returns 0 if the command was not processed,
- it will be passed to another script or
- - Returns 1 if the command was processed,
- will not be passed to other scripts
- \*-----------------------------------------------------------------------------*/
- public OnRconCommand(cmd[])
- {
- return 1;
- }
- /*-----------------------------------------------------------------------------*\
- Esta callback é chamada quando a player attempts to spawn via class selection
- Param:
- - playerid: The ID of the player who requested to spawn
- Notes:
- - Returning 0 in this callback will prevent the player from spawning
- \*-----------------------------------------------------------------------------*/
- public OnPlayerRequestSpawn(playerid)
- {
- if(gPlayerData[playerid][E_PLAYER_REG] == 0 || gPlayerData[playerid][E_PLAYER_REG] == 255){}
- else
- {
- SendClientMessage(playerid, COLOR_GREY, "*** Você não pode dar spawn antes de terminar seu cadastro.");
- return 0;
- }
- return 1;
- }
- /*-----------------------------------------------------------------------------*\
- Esta callback é chamada quando an object is moved after MoveObject
- (when it stops moving)
- Param:
- - objectid: The ID of the object that was moved
- \*-----------------------------------------------------------------------------*/
- public OnObjectMoved(objectid)
- {
- return 1;
- }
- /*-----------------------------------------------------------------------------*\
- Esta callback é chamada quando a player object is moved after
- MovePlayerObject (when it stops moving)
- Param:
- - playerid: The playerid the object is assigned to
- - objectid: The ID of the player object that was moved
- \*-----------------------------------------------------------------------------*/
- public OnPlayerObjectMoved(playerid, objectid)
- {
- return 1;
- }
- /*-----------------------------------------------------------------------------*\
- Esta callback é chamada quando a player picks up a pickup
- Param:
- - playerid: The ID of the player that picked up the pickup
- - pickupid: The ID of the pickup, returned by CreatePickup()
- \*-----------------------------------------------------------------------------*/
- public OnPlayerPickUpPickup(playerid, pickupid)
- {
- return 1;
- }
- /*-----------------------------------------------------------------------------*\
- Esta callback é chamada quando a vehicle is modded
- Param:
- - playerid: ID of the player who is actually sitting in the car
- - vehicleid: ID of the vehicle which is modded
- - componentid: The componentid which was added to the car
- \*-----------------------------------------------------------------------------*/
- public OnVehicleMod(playerid, vehicleid, componentid)
- {
- return 1;
- }
- /*-----------------------------------------------------------------------------*\
- Esta callback é chamada quando a player changes the paintjob
- of their vehicle (in a modshop)
- Param:
- - playerid: The ID of the player whos vehicle is modded
- - vehicleid: The ID of the vehicle that changed paintjob
- - paintjobid: The ID of the new paintjob
- \*-----------------------------------------------------------------------------*/
- public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
- {
- return 1;
- }
- /*-----------------------------------------------------------------------------*\
- The callback name is deceptive, Esta callback é chamada quando a
- player exits the mod shops, regardless if color was changed,
- and is NEVER called for pay'n'spray shops
- Param:
- - playerid: The ID of the player that is driving the vehicle
- - vehicleid: The ID of the vehicle that was resprayed
- - color1: The color that the vehicle's primary color was changed to
- - color2: The color that the vehicle's secondary color was changed to
- \*-----------------------------------------------------------------------------*/
- public OnVehicleRespray(playerid, vehicleid, color1, color2)
- {
- return 1;
- }
- /*-----------------------------------------------------------------------------*\
- Esta callback é chamada quando a player selects an item from a menu
- Param:
- - playerid: The ID of the player thatselected the item on the menu
- - row: The row that was selected
- \*-----------------------------------------------------------------------------*/
- public OnPlayerSelectedMenuRow(playerid, row)
- {
- return 1;
- }
- /*-----------------------------------------------------------------------------*\
- Esta callback é chamada quando a player exits a menu
- Param:
- - playerid: The ID of the player that exited the menu
- \*-----------------------------------------------------------------------------*/
- public OnPlayerExitedMenu(playerid)
- {
- return 1;
- }
- /*-----------------------------------------------------------------------------*\
- Esta callback é chamada quando a player changes interior
- Param:
- - playerid: The playerid who changed interior
- - newinteriorid: The interior the player just changed to
- - oldinteriorid: The interior the player just changed from
- \*-----------------------------------------------------------------------------*/
- public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
- {
- return 1;
- }
- /*-----------------------------------------------------------------------------*\
- Esta callback é chamada quando the state of any key
- except the movement keys (up, down, left, right)
- changes (i.e. are pressed or released)
- Param:
- - playerid: ID of the player who pressed the key
- - newkeys: A map of the keys currently held - see GetPlayerKeys
- - oldkeys: A map of the keys held prior to the current change
- Notes:
- - Returning 1 allows this callback to be called in other scripts.
- it is always called first in gamemodes so retuning 0 there
- blocks filterscripts from seeing it.
- \*-----------------------------------------------------------------------------*/
- public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
- {
- return 1;
- }
- /*-----------------------------------------------------------------------------*\
- Esta callback é chamada quando someone tries to login to RCON,
- succesful or not
- Param:
- - ip[]: The IP of the player that tried to login to RCON
- - password[]: The password used to login with
- - success: 0 if the password was incorrect or 1 if it was correct
- Notes:
- - This callback is only called when /rcon login is used.
- \*-----------------------------------------------------------------------------*/
- public OnRconLoginAttempt(ip[], password[], success)
- {
- return 1;
- }
- /*-----------------------------------------------------------------------------*\
- This callback is called everytime a client/player updates the server
- with their status
- Param:
- - playerid: ID of the player sending an update packet
- Notes:
- - Return 0 - Update from this player will not be
- replicated to other clients
- - Return 1 - Indicates that this update can be processed normally
- and sent to other players.
- \*-----------------------------------------------------------------------------*/
- public OnPlayerUpdate(playerid)
- {
- return 1;
- }
- /*-----------------------------------------------------------------------------*\
- Esta callback é chamada quando a player is streamed
- by some other player's client
- Param:
- - playerid: The ID of the player who has been streamed
- - forplayerid: The ID of the player that streamed the other player in
- \*-----------------------------------------------------------------------------*/
- public OnPlayerStreamIn(playerid, forplayerid)
- {
- return 1;
- }
- /*-----------------------------------------------------------------------------*\
- Esta callback é chamada quando a player is streamed out
- from some other player's client
- Param:
- - playerid: The player who has been destreamed
- - forplayerid: The player who has destreamed the other player
- \*-----------------------------------------------------------------------------*/
- public OnPlayerStreamOut(playerid, forplayerid)
- {
- return 1;
- }
- /*-----------------------------------------------------------------------------*\
- Esta callback é chamada quando a vehicle is streamed to a player's client
- Param:
- - vehicleid: The ID of the vehicle that streamed in for the player
- - forplayerid: The ID of the player who the vehicle streamed in for
- \*-----------------------------------------------------------------------------*/
- public OnVehicleStreamIn(vehicleid, forplayerid)
- {
- return 1;
- }
- /*-----------------------------------------------------------------------------*\
- Esta callback é chamada quando a vehicle is streamed out
- from some player's client
- Param:
- - vehicleid: The ID of the vehicle that streamed out
- - forplayerid: ID of the player who is no longer streaming the vehicle
- \*-----------------------------------------------------------------------------*/
- public OnVehicleStreamOut(vehicleid, forplayerid)
- {
- return 1;
- }
- /*-----------------------------------------------------------------------------*\
- Esta callback é chamada quando a player pressiona qualquer botão no dialogo
- criado usando ShowPlayerDialog()
- Param:
- - playerid: O ID que clicou o botão do dialogo
- - dialogid: O ID do dialogo que o jogador clicou,
- usado no ShowPlayerDialog()
- - response: 1 para o primeiro botão e 0 para o segundo botão
- - listitem: O ID do item selecionado pelo jogador
- - inputtext[]: O texto inserido na caixa de texto pelo jogador
- Notas:
- - Retornando 0 nesta callback irá passar o dialogo para outro script
- no caso de nenhum código correspondente for encontrado em seu gamemode
- \*-----------------------------------------------------------------------------*/
- public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
- {
- switch(dialogid)
- {
- case DIALOG_LOGIN:
- {
- if(response)
- {
- new
- playerName[MAX_PLAYER_NAME];
- GetPlayerName(playerid, playerName, MAX_PLAYER_NAME);
- new
- userFile[32];
- format(userFile, sizeof (userFile), "users/%s.ini", playerName);
- // Parse the file.
- INI_ParseFile(userFile, "load_player_pass", .bExtra = true, .extra = playerid);
- if(!strcmp(gPlayerData[playerid][E_PLAYER_PASS], inputtext, true))
- {
- SendClientMessage(playerid, COLOR_SAMP, "Você acessou a conta com sucesso!");
- gPlayerData[playerid][E_PLAYER_LOGGED] = true;
- OnPlayerLogin(playerid);
- if(gGlobal[G_ROUND] == 0) SendClientMessage(playerid, COLOR_YELLOW, "*** Atualmente, está na {E5CE00}rodada de aquecimento{FFFF00}.");
- if(gPlayerData[playerid][E_PLAYER_ADMIN] > 0){ gGlobal[G_ADMIN]++; new newtext[8]; format(newtext, sizeof(newtext), "~p~%02d", gGlobal[G_ADMIN]); TextDrawSetString(admonnum, newtext);}
- SpawnPlayer(playerid);
- SetTimerEx("SetCameraBehindPlayerEx", 50, false, "i", playerid);
- CheckBirthDay(playerid, userFile);
- SetPlayerTime(playerid, 22, 00);
- }
- else
- {
- SendClientMessage(playerid, COLOR_SAMP, "Senha incorreta.");
- ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Log-in", "Digite sua senha para log-in:", "Acessar", "Desconectar");
- }
- }
- else
- {
- Kick(playerid);
- }
- }
- case DIALOG_REGISTER:
- {
- if(response)
- {
- if(strlen(inputtext) < 1)
- return SendClientMessage(playerid, COLOR_SAMP, "Senha muito curta.");
- // Make the filename.
- new
- playerName[MAX_PLAYER_NAME];
- GetPlayerName(playerid, playerName, MAX_PLAYER_NAME);
- new
- userFile[32];
- format(userFile, sizeof (userFile), "users/%s.ini", playerName);
- //Store the date.
- new
- pYear, pMonth, pDay, pHour, pMinute, pSecond, pDate[23];
- getdate(pYear, pMonth, pDay);
- gettime(pHour, pMinute, pSecond);
- format(pDate, sizeof pDate, "%02d:%02d:%02d %02d/%02d/%02d",pHour, pMinute, pSecond , pDay, pMonth, pYear);
- // Open the file.
- new
- INI:file = INI_Open(userFile);
- // Set the tag.
- INI_SetTag(file, "gungame");
- // Write the data.
- INI_WriteString(file, "password", inputtext);
- INI_WriteFloat(file, "health", 100.0);
- INI_WriteInt(file, "skinid", 285);
- INI_WriteInt(file, "idade", 0);
- INI_WriteInt(file, "sexo", 0);
- INI_WriteString(file, "clan", "Nen");
- INI_WriteInt(file, "admin", 0);
- INI_WriteString(file, "date", pDate);
- INI_WriteInt(file, "kills", 0);
- INI_WriteInt(file, "deaths", 0);
- INI_WriteString(file, "lastlogin", pDate);
- INI_WriteInt(file, "playedtime", 0);
- INI_WriteBool(file, "muted", false);
- // Close the file.
- INI_Close(file);
- SendClientMessage(playerid, COLOR_SAMP, "Conta registrada.");
- SendClientMessage(playerid, COLOR_SAMP, "Qual a data de seu nascimento? (Use dd/mm/aaaa)");
- gPlayerData[playerid][E_PLAYER_REG] = 1;
- gPlayerData[playerid][E_PLAYER_LOGGED] = true;
- format(gPlayerData[playerid][E_PLAYER_RDATE], 32, "%s", pDate);
- format(gPlayerData[playerid][E_PLAYER_LASTLOGIN], 32, "%s", pDate);
- }
- else
- {
- Kick(playerid);
- }
- }
- }
- return 0;
- }
- /*-----------------------------------------------------------------------------*\
- Esta callback é faz com que a camera fique atrás do jogador
- Param:
- - playerid: O ID do jogador que terá a camera setada
- \*-----------------------------------------------------------------------------*/
- public SetCameraBehindPlayerEx(playerid)
- {
- SetCameraBehindPlayer(playerid);
- TextDrawShowForPlayer(playerid, box);
- TextDrawShowForPlayer(playerid, LLine1);
- TextDrawShowForPlayer(playerid, LLine2);
- TextDrawShowForPlayer(playerid, LLine3);
- TextDrawShowForPlayer(playerid, LLine4);
- TextDrawShowForPlayer(playerid, nametext);
- TextDrawShowForPlayer(playerid, stringtext);
- TextDrawShowForPlayer(playerid, killtext);
- TextDrawShowForPlayer(playerid, deathtext);
- TextDrawShowForPlayer(playerid,timeDisplay);
- TextDrawShowForPlayer(playerid, boxdn);
- TextDrawShowForPlayer(playerid, pxlvl);
- TextDrawShowForPlayer(playerid, bhleader);
- TextDrawShowForPlayer(playerid, pxlvlnum[playerid]);
- TextDrawShowForPlayer(playerid, admon);
- TextDrawShowForPlayer(playerid, admonnum);
- TextDrawShowForPlayer(playerid, bhleadernum[playerid]);
- TextDrawShowForPlayer(playerid, separator1);
- TextDrawShowForPlayer(playerid, separator2);
- TextDrawShowForPlayer(playerid, currleader);
- TextDrawShowForPlayer(playerid, currleadernam);
- SetCameraBehindPlayer(playerid);
- return 1;
- }
- /*-----------------------------------------------------------------------------*\
- Esta callback é chamada quando a player double-clicks on another
- player's name in the scoreboard
- Param:
- - playerid: The ID of the player that clicked the name
- - clickedplayerid: The ID of the player whose name was clicked
- - source: Scoreboard = 0
- \*-----------------------------------------------------------------------------*/
- public OnPlayerClickPlayer(playerid, clickedplayerid, source)
- {
- return 1;
- }
- /*-----------------------------------------------------------------------------*\
- Esta callback é chamada quando a player enters or exits a mod shop
- Param:
- - playerid: The ID of the player that entered or exited the modshop
- - enterexit: 1 if the player entered or 0 if they exited
- - interiorid: The interior ID of the modshop that the player is entering
- (or 0 if exiting)
- \*-----------------------------------------------------------------------------*/
- public OnEnterExitModShop(playerid, enterexit, interiorid)
- {
- return 1;
- }
- /*-----------------------------------------------------------------------------*\
- Esta callback é chamada quando um jogador danifica outro jogador
- Param:
- - playerid: O ID do jogador que danificou
- - damagedid: O ID do jogador que foi danificado
- - amount: A quantia de saúde/colete perdida
- - weaponid: A arma usada para danificar
- \*-----------------------------------------------------------------------------*/
- public OnPlayerGiveDamage(playerid, damagedid, Float: amount, weaponid)
- {
- new
- Float:health;
- GetPlayerHealth(damagedid, health);
- if(health-amount > 0) SetPlayerHealth(damagedid, health-amount);
- return 1;
- }
- /*-----------------------------------------------------------------------------*\
- Esta callback é chamada quando a player takes damage
- Param:
- - playerid: The ID of the player that took damage
- - issuerid: The ID of the player that caused the damage.
- INVALID_PLAYER_ID if none
- - amount: The amount of health/armour playerid has lost
- - weaponid: The reason that caused the damage
- \*-----------------------------------------------------------------------------*/
- public OnPlayerTakeDamage(playerid, issuerid, Float: amount, weaponid)
- {
- return 1;
- }
- /*-----------------------------------------------------------------------------*\
- This callback is called everytime an unoccupied vehicle updates
- the server with their status
- Param:
- - vehicleid: The vehicleid that the callback is processing
- - playerid: The playerid that the callback is processing
- (the playerid affecting the vehicle)
- - passenger_seat: The passenger seat of the playerid moving the vehicle.
- 0 if they're not in the vehicle
- \*-----------------------------------------------------------------------------*/
- public OnUnoccupiedVehicleUpdate(vehicleid, playerid, passenger_seat)
- {
- return 1;
- }
- /*-----------------------------------------------------------------------------*\
- Esta callback é chamada quando um jogador faz log-in no servidor
- Param:
- - playerid: O ID do jogador que terá a conta carregada
- - name: Nome do item a ser carregado
- - value: Valor do item que será carregado
- \*-----------------------------------------------------------------------------*/
- public load_user_data_gungame(playerid, name[], value[])
- {
- INI_Float("health", gPlayerData[playerid][E_PLAYER_HEALTH]);
- INI_Int("skinid", gPlayerData[playerid][E_PLAYER_SKIN]);
- INI_Int("idade", gPlayerData[playerid][E_PLAYER_AGE]);
- INI_Int("sexo", gPlayerData[playerid][E_PLAYER_SEX]);
- INI_String("clan", gPlayerData[playerid][E_PLAYER_CLAN], 4);
- INI_Int("admin", gPlayerData[playerid][E_PLAYER_ADMIN]);
- INI_Int("kills", gPlayerData[playerid][E_PLAYER_GKILLS]);
- INI_Int("deaths", gPlayerData[playerid][E_PLAYER_GDEATHS]);
- INI_String("date", gPlayerData[playerid][E_PLAYER_RDATE], 32);
- INI_String("lastlogin", gPlayerData[playerid][E_PLAYER_LASTLOGIN], 32);
- INI_Int("playedtime", gPlayerData[playerid][E_PLAYER_PLAYEDHOURS]);
- INI_Int("registered", gPlayerData[playerid][E_PLAYER_REG]);
- INI_Bool("muted", gPlayerData[playerid][E_PLAYER_MUTED]);
- return 1;
- }
- /*-----------------------------------------------------------------------------*\
- Esta callback checa a senha de um jogador
- Param:
- - playerid: O ID do jogador que terá a senha checada
- \*-----------------------------------------------------------------------------*/
- public load_player_pass(playerid, name[], value[])
- {
- if ( !strcmp( name, "password" ) ) { INI_String("password", gPlayerData[playerid][E_PLAYER_PASS], 64); }
- return 1;
- }
- /*-----------------------------------------------------------------------------*\
- Esta callback mostra o status de um jogador
- Param:
- - playerid: O ID do jogador que terá o status mostrado
- - targetid: O ID do jogador que verá o status
- \*-----------------------------------------------------------------------------*/
- public ShowPlayerStats(playerid,targetid)
- {
- if(gPlayerData[playerid][E_PLAYER_LOGGED] && gPlayerData[targetid][E_PLAYER_LOGGED])
- {
- SendClientMessage(playerid,COLOR_PURPLE,"_____________________________ {B1A2DA}GERAL{C2A2DA} _____________________________");
- new
- Float:hp,
- Float:armour,
- wstring[128],
- stext[11];
- GetPlayerHealth(targetid,hp);
- GetPlayerArmour(targetid, armour);
- switch(gPlayerData[targetid][E_PLAYER_SEX])
- {
- case 1: stext = "masculino";
- case 2: stext = "feminino";
- default: stext = "indefinido";
- }
- new kills = gPlayerData[targetid][E_PLAYER_KILLS];
- new deaths = gPlayerData[targetid][E_PLAYER_DEATHS];
- new Float:ratio;
- ratio=floatdiv(kills, deaths);
- if(kills+deaths == 0) ratio=0.00;
- format(wstring, sizeof(wstring), "Nome: %s - Idade: %d - Sexo: %s - Kills: %d - Deaths: %d - K/D: %0.02f",GetPlayerNameEx(targetid),gPlayerData[targetid][E_PLAYER_AGE],stext,gPlayerData[targetid][E_PLAYER_GKILLS],gPlayerData[targetid][E_PLAYER_GDEATHS],ratio);
- SendClientMessage(playerid,0xE6E6E6E6, wstring);
- format(wstring, sizeof(wstring), "Membro desde: %s - Última visita: %s - Horas Jogadas: %02d:%02d:%02d",gPlayerData[playerid][E_PLAYER_RDATE], gPlayerData[playerid][E_PLAYER_LASTLOGIN], gPlayerData[playerid][E_PLAYER_PLAYEDHOURS]/3600, (gPlayerData[playerid][E_PLAYER_PLAYEDHOURS]-(3600*(gPlayerData[playerid][E_PLAYER_PLAYEDHOURS]/3600)))/60, gPlayerData[playerid][E_PLAYER_PLAYEDHOURS]%60);
- SendClientMessage(playerid,0xC8C8C8C8, wstring);
- SendClientMessage(playerid,COLOR_PURPLE,"_____________________________ {B1A2DA}PARTIDA{C2A2DA} ___________________________");
- format(wstring, sizeof(wstring), "Saúde: %.1f - Kills: %d - Deaths: %d - K/D: %0.02f",hp,kills,deaths,ratio);
- SendClientMessage(playerid,0xE6E6E6E6, wstring);
- format(wstring, sizeof(wstring), "Arma: %s - Colete: %.1f - Nível: %i",GetWeaponNameEx(GetPlayerWeapon(targetid)), armour, gPlayerData[targetid][E_PLAYER_LVL]);
- SendClientMessage(playerid,0xC8C8C8C8, wstring);
- SendClientMessage(playerid,COLOR_PURPLE, "_________________________________________________________________________________");
- }
- }
- /*-----------------------------------------------------------------------------*\
- Esta callback separa strings
- Param:
- - strsrc[]: Array que será dividida
- - strdest[]: Array que armazenara as strings
- - delimiter: Letra que dividirá
- \*-----------------------------------------------------------------------------*/
- public split(const strsrc[], strdest[][], delimiter)
- {
- new i, li;
- new aNum;
- new len;
- while(i <= strlen(strsrc)){
- if(strsrc[i]==delimiter || i==strlen(strsrc)){
- len = strmid(strdest[aNum], strsrc, li, i, 128);
- strdest[aNum][len] = 0;
- li = i+1;
- aNum++;
- }
- i++;
- }
- return 1;
- }
- /*-----------------------------------------------------------------------------*\
- Esta callback é chamada a cada 1 segundo
- Param:
- -
- \*-----------------------------------------------------------------------------*/
- task OnClientUpdate[1000]()
- {
- if(gGlobal[G_SECONDS] > 0) gGlobal[G_SECONDS]--;
- if(gGlobal[G_MINUTES] > 0 && gGlobal[G_SECONDS] == 0) { gGlobal[G_SECONDS] = 60; gGlobal[G_MINUTES]--; }
- if(gGlobal[G_MINUTES] == 8 && gGlobal[G_SECONDS] == 35 || gGlobal[G_MINUTES] == 5 && gGlobal[G_SECONDS] == 35 || gGlobal[G_MINUTES] == 2 && gGlobal[G_SECONDS] == 35) SendClientMessageToAll(0xBBEA00FF, "*** Você está jogando na versão {7CAB00}BETA{BBEA00} do {7CAB00}SA-MP PT Gun Game");
- if(gGlobal[G_MINUTES] == 0 && gGlobal[G_SECONDS] == 0)
- {
- switch(gGlobal[G_ROUND])
- {
- case 0:
- {
- gGlobal[G_ROUND] = 1;
- foreach(Player, i)
- {
- ResetPlayerWeapons(i);
- if(gPlayerData[i][E_PLAYER_LOGGED]) SpawnPlayer(i);
- }
- SendClientMessageToAll(COLOR_YELLOW, "*** O {E5CE00}round {FFFF00}começou!");
- gGlobal[G_MINUTES] = 9;
- gGlobal[G_SECONDS] = 59;
- }
- }
- }
- new timestr[32];
- format(timestr,32,"%02d:%02d",gGlobal[G_MINUTES],gGlobal[G_SECONDS]);
- TextDrawSetString(timeDisplay,timestr);
- new
- aPoints,
- iPoints,
- zPoints,
- xPoints,
- hPoints;
- foreach(Player, i)
- {
- if(gPlayerData[i][E_PLAYER_LOGGED]) gPlayerData[i][E_PLAYER_PLAYEDHOURS]++;
- if(gPlayerData[i][E_PLAYER_LVL] > aPoints)
- {
- aPoints = gPlayerData[i][E_PLAYER_LVL];
- gScoreData[G_WINNER_ID] = i;
- if(i == gScoreData[G_SECOND_ID])
- {
- foreach(Player, x)
- {
- if(gPlayerData[x][E_PLAYER_LVL] > iPoints && gScoreData[G_WINNER_ID] != x)
- {
- gScoreData[G_SECOND_ID] = x;
- }
- }
- }
- if(i == gScoreData[G_THIRD_ID])
- {
- foreach(Player, x)
- {
- if(gPlayerData[x][E_PLAYER_LVL] > iPoints && gScoreData[G_WINNER_ID] != x && gScoreData[G_SECOND_ID] != x)
- {
- gScoreData[G_THIRD_ID] = x;
- }
- }
- }
- if(i == gScoreData[G_FOURTY_ID])
- {
- foreach(Player, x)
- {
- if(gPlayerData[x][E_PLAYER_LVL] > iPoints && gScoreData[G_WINNER_ID] != x && gScoreData[G_SECOND_ID] != x && gScoreData[G_THIRD_ID] != x)
- {
- gScoreData[G_FOURTY_ID] = x;
- }
- }
- }
- if(i == gScoreData[G_FIVE_ID])
- {
- foreach(Player, x)
- {
- if(gPlayerData[x][E_PLAYER_LVL] > iPoints && gScoreData[G_WINNER_ID] != x && gScoreData[G_SECOND_ID] != x && gScoreData[G_THIRD_ID] != x && gScoreData[G_FOURTY_ID] != x)
- {
- gScoreData[G_FIVE_ID] = x;
- }
- }
- }
- }
- else if(gPlayerData[i][E_PLAYER_LVL] > iPoints && gScoreData[G_WINNER_ID] != i)
- {
- iPoints = gPlayerData[i][E_PLAYER_LVL];
- gScoreData[G_SECOND_ID] = i;
- if(i == gScoreData[G_THIRD_ID])
- {
- foreach(Player, x)
- {
- if(gPlayerData[x][E_PLAYER_LVL] > iPoints && gScoreData[G_WINNER_ID] != x && gScoreData[G_SECOND_ID] != x)
- {
- gScoreData[G_THIRD_ID] = x;
- }
- }
- }
- if(i == gScoreData[G_FOURTY_ID])
- {
- foreach(Player, x)
- {
- if(gPlayerData[x][E_PLAYER_LVL] > iPoints && gScoreData[G_WINNER_ID] != x && gScoreData[G_SECOND_ID] != x && gScoreData[G_THIRD_ID] != x)
- {
- gScoreData[G_FOURTY_ID] = x;
- }
- }
- }
- if(i == gScoreData[G_FIVE_ID])
- {
- foreach(Player, x)
- {
- if(gPlayerData[x][E_PLAYER_LVL] > iPoints && gScoreData[G_WINNER_ID] != x && gScoreData[G_SECOND_ID] != x && gScoreData[G_THIRD_ID] != x && gScoreData[G_FOURTY_ID] != x)
- {
- gScoreData[G_FIVE_ID] = x;
- }
- }
- }
- }
- else if(gPlayerData[i][E_PLAYER_LVL] > zPoints && gScoreData[G_WINNER_ID] != i && gScoreData[G_SECOND_ID] != i)
- {
- zPoints = gPlayerData[i][E_PLAYER_LVL];
- gScoreData[G_THIRD_ID] = i;
- if(i == gScoreData[G_FOURTY_ID])
- {
- foreach(Player, x)
- {
- if(gPlayerData[x][E_PLAYER_LVL] > iPoints && gScoreData[G_WINNER_ID] != x && gScoreData[G_SECOND_ID] != x && gScoreData[G_THIRD_ID] != x)
- {
- gScoreData[G_FOURTY_ID] = x;
- }
- }
- }
- if(i == gScoreData[G_FIVE_ID])
- {
- foreach(Player, x)
- {
- if(gPlayerData[x][E_PLAYER_LVL] > iPoints && gScoreData[G_WINNER_ID] != x&& gScoreData[G_SECOND_ID] != x && gScoreData[G_THIRD_ID] != x && gScoreData[G_FOURTY_ID] != x)
- {
- gScoreData[G_FIVE_ID] = x;
- }
- }
- }
- }
- else if(gPlayerData[i][E_PLAYER_LVL] > xPoints && gScoreData[G_WINNER_ID] != i && gScoreData[G_SECOND_ID] != i && gScoreData[G_THIRD_ID] != i)
- {
- xPoints = gPlayerData[i][E_PLAYER_LVL];
- gScoreData[G_FOURTY_ID] = i;
- if(i == gScoreData[G_FIVE_ID])
- {
- foreach(Player, x)
- {
- if(gPlayerData[x][E_PLAYER_LVL] > iPoints && gScoreData[G_WINNER_ID] != x&& gScoreData[G_SECOND_ID] != x && gScoreData[G_THIRD_ID] != x && gScoreData[G_FOURTY_ID] != x)
- {
- gScoreData[G_FIVE_ID] = x;
- }
- }
- }
- }
- else if(gPlayerData[i][E_PLAYER_LVL] > hPoints && gScoreData[G_WINNER_ID] != i && gScoreData[G_SECOND_ID] != i && gScoreData[G_THIRD_ID] != i && gScoreData[G_FOURTY_ID] != i)
- {
- hPoints = gPlayerData[i][E_PLAYER_LVL];
- gScoreData[G_FIVE_ID] = i;
- }
- new nstr[32];
- format(nstr, sizeof(nstr), "~p~%02d", gPlayerData[gScoreData[G_WINNER_ID]][E_PLAYER_LVL] - gPlayerData[i][E_PLAYER_LVL]);
- TextDrawSetString(bhleadernum[i], nstr);
- }
- new myStr[110];
- format(myStr, sizeof(myStr), "%s~n~%s~n~%s~n~%s~n~%s",GetPlayerNameEx(gScoreData[G_WINNER_ID]),GetPlayerNameEx(gScoreData[G_SECOND_ID]),GetPlayerNameEx(gScoreData[G_THIRD_ID]),GetPlayerNameEx(gScoreData[G_FOURTY_ID]),GetPlayerNameEx(gScoreData[G_FIVE_ID]));
- TextDrawSetString(nametext, myStr);
- format(myStr, sizeof(myStr), "%d~n~%d~n~%d~n~%d~n~%d",gPlayerData[gScoreData[G_WINNER_ID]][E_PLAYER_KILLS],gPlayerData[gScoreData[G_SECOND_ID]][E_PLAYER_KILLS],gPlayerData[gScoreData[G_THIRD_ID]][E_PLAYER_KILLS],gPlayerData[gScoreData[G_FOURTY_ID]][E_PLAYER_KILLS],gPlayerData[gScoreData[G_FIVE_ID]][E_PLAYER_KILLS]);
- TextDrawSetString(killtext, myStr);
- format(myStr, sizeof(myStr), "%d~n~%d~n~%d~n~%d~n~%d",gPlayerData[gScoreData[G_WINNER_ID]][E_PLAYER_DEATHS],gPlayerData[gScoreData[G_SECOND_ID]][E_PLAYER_DEATHS],gPlayerData[gScoreData[G_THIRD_ID]][E_PLAYER_DEATHS],gPlayerData[gScoreData[G_FOURTY_ID]][E_PLAYER_DEATHS],gPlayerData[gScoreData[G_FIVE_ID]][E_PLAYER_DEATHS]);
- TextDrawSetString(deathtext, myStr);
- format(myStr, sizeof(myStr), "~p~%s", GetPlayerNameEx(gScoreData[G_WINNER_ID]));
- TextDrawSetString(currleadernam, myStr);
- }
- /*-----------------------------------------------------------------------------*\
- Esta callback é chamada quando um jogador morre e está spectando o matador
- Param:
- - playerid: ID do jogador que está spectando
- \*-----------------------------------------------------------------------------*/
- public D1(playerid)
- {
- GameTextForPlayer(playerid,"~r~3",1000,4);
- SetTimerEx("D2", 1000, false,"d",playerid);
- PlayerPlaySound(playerid,1056,0.0,0.0,0.0);
- }
- /*-----------------------------------------------------------------------------*\
- Esta callback é chamada quando um jogador morre e está spectando o matador
- Param:
- - playerid: ID do jogador que está spectando
- \*-----------------------------------------------------------------------------*/
- public D2(playerid)
- {
- GameTextForPlayer(playerid,"~y~2",1000,4);
- SetTimerEx("D3", 1000, false,"d",playerid);
- PlayerPlaySound(playerid,1056,0.0,0.0,0.0);
- }
- /*-----------------------------------------------------------------------------*\
- Esta callback é chamada quando um jogador morre e está spectando o matador
- Param:
- - playerid: ID do jogador que está spectando
- \*-----------------------------------------------------------------------------*/
- public D3(playerid)
- {
- GameTextForPlayer(playerid,"~g~1",1000,4);
- SetTimerEx("DS", 1000, false,"d",playerid);
- PlayerPlaySound(playerid,1056,0.0,0.0,0.0);
- }
- /*-----------------------------------------------------------------------------*\
- Esta callback é chamada quando um jogador morre e está spectando o matador
- Param:
- - playerid: ID do jogador que está spectando
- \*-----------------------------------------------------------------------------*/
- public DS(playerid)
- {
- TogglePlayerSpectating(playerid, 0);
- SpawnPlayer(playerid);
- PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
- }
- /*-----------------------------------------------------------------------------*\
- Esta função faz log-in de um jogador
- Param:
- - playerid: O ID do jogador que terá a conta carregada
- \*-----------------------------------------------------------------------------*/
- OnPlayerLogin(playerid)
- {
- // Make the filename.
- new
- playerName[MAX_PLAYER_NAME];
- GetPlayerName(playerid, playerName, MAX_PLAYER_NAME);
- new
- userFile[32];
- format(userFile, sizeof (userFile), "users/%s.ini", playerName);
- // Parse the file.
- INI_ParseFile(userFile, "load_user_data_%s", .bExtra = true, .extra = playerid);
- }
- /*-----------------------------------------------------------------------------*\
- Esta função salva os dados um jogador quando ele sair
- Param:
- - playerid: O ID do jogador que terá a conta salva
- \*-----------------------------------------------------------------------------*/
- public OnPlayerLogout(playerid)
- {
- // Make the filename.
- new
- playerName[MAX_PLAYER_NAME];
- GetPlayerName(playerid, playerName, MAX_PLAYER_NAME);
- new
- userFile[32];
- format(userFile, sizeof (userFile), "users/%s.ini", playerName);
- //Store the date.
- new
- pYear, pMonth, pDay, pHour, pMinute, pSecond, pDate[23];
- getdate(pYear, pMonth, pDay);
- gettime(pHour, pMinute, pSecond);
- format(pDate, sizeof pDate, "%02d:%02d:%02d %02d/%02d/%02d",pHour, pMinute, pSecond , pDay, pMonth, pYear);
- // Open the file.
- new
- INI:file = INI_Open(userFile);
- // Set the tag.
- INI_SetTag(file, "gungame");
- // Write the data.
- INI_WriteFloat(file, "health", gPlayerData[playerid][E_PLAYER_HEALTH]);
- INI_WriteInt(file, "skinid", GetPlayerSkin(playerid));
- INI_WriteInt(file, "idade", gPlayerData[playerid][E_PLAYER_AGE]);
- INI_WriteInt(file, "sexo", gPlayerData[playerid][E_PLAYER_SEX]);
- INI_WriteString(file, "clan", gPlayerData[playerid][E_PLAYER_CLAN]);
- INI_WriteInt(file, "admin", gPlayerData[playerid][E_PLAYER_ADMIN]);
- INI_WriteInt(file, "kills", gPlayerData[playerid][E_PLAYER_GKILLS]);
- INI_WriteInt(file, "deaths", gPlayerData[playerid][E_PLAYER_GDEATHS]);
- INI_WriteString(file, "lastlogin", pDate);
- INI_WriteInt(file, "playedtime", gPlayerData[playerid][E_PLAYER_PLAYEDHOURS]);
- INI_WriteBool(file, "muted", gPlayerData[playerid][E_PLAYER_MUTED]);
- // Close the file.
- INI_Close(file);
- }
- /*-----------------------------------------------------------------------------*\
- Esta stock é usada para limpar o chat de algum jogador
- Param:
- - playerid: O ID do jogador que terá o chat limpo
- \*-----------------------------------------------------------------------------*/
- stock ClearScreen(playerid)
- {
- for(new i = 0; i < 100; i++){SendClientMessage(playerid, -1, " ");}
- return 0;
- }
- /*-----------------------------------------------------------------------------*\
- Esta stock é usada para checar se é o aniversário de algum jogador
- Param:
- - playerid: O ID do jogador que será checado
- - userFile: Arquivo do jogador.
- \*-----------------------------------------------------------------------------*/
- stock CheckBirthDay(playerid, userFile[])
- {
- if(gPlayerData[playerid][E_PLAYER_REG] == 255)
- {
- INI_ParseFile(userFile, "load_user_birth_day", .bExtra = true, .extra = playerid);
- new year, month, day, DateInfo[3][20], str[24], strr[24];
- getdate(year, month, day);
- split(gPlayerData[playerid][E_PLAYER_BIRTH], DateInfo, '/');
- format(str, 24, "%s/%s", DateInfo[0], DateInfo[1]);
- format(strr, 24, "%02d/%02d", day, month);
- if(strcmp(strr, str, true) == 0){SendClientMessage(playerid, 0x00B6FFFF, "*** Parabéns!! O {0087FA}SA-MP GunGame{00B6FF} lhe deseja um feliz aniversário.");}
- }
- return 1;
- }
- /*-----------------------------------------------------------------------------*\
- Esta stock é usada para resetar variaveis do ranking
- Param:
- -
- \*-----------------------------------------------------------------------------*/
- stock ResetNonePlayer()
- {
- gScoreData[G_WINNER_ID] = MAX_PLAYERS-1;
- gScoreData[G_SECOND_ID] = MAX_PLAYERS-1;
- gScoreData[G_THIRD_ID] = MAX_PLAYERS-1;
- gScoreData[G_FOURTY_ID] = MAX_PLAYERS-1;
- gScoreData[G_FIVE_ID] = MAX_PLAYERS-1;
- gPlayerData[MAX_PLAYERS-1][E_PLAYER_KILLS] = -1;
- gPlayerData[MAX_PLAYERS-1][E_PLAYER_DEATHS] = -1;
- gPlayerData[MAX_PLAYERS-1][E_PLAYER_NXTLVL] = 5;
- gPlayerData[MAX_PLAYERS-1][E_PLAYER_LVL] = -1;
- }
- /*-----------------------------------------------------------------------------*\
- Esta stock é usada para dar a arma ao jogador de acordo com o nível dele
- Param:
- - playerid: O ID do jogador que receberá a arma
- \*-----------------------------------------------------------------------------*/
- stock GiveWeaponLevel(playerid)
- {
- switch(gPlayerData[playerid][E_PLAYER_LVL])
- {
- case 0, 1:
- {
- GivePlayerWeapon(playerid, 23, 99999);
- GivePlayerWeapon(playerid, 4, 99999);
- }
- case 2:
- {
- GivePlayerWeapon(playerid, 22, 99999);
- GivePlayerWeapon(playerid, 4, 99999);
- }
- case 3:
- {
- GivePlayerWeapon(playerid, 24, 99999);
- GivePlayerWeapon(playerid, 4, 99999);
- }
- case 4:
- {
- GivePlayerWeapon(playerid, 22, 99999);
- GivePlayerWeapon(playerid, 4, 99999);
- }
- case 5:
- {
- GivePlayerWeapon(playerid, 25, 99999);
- GivePlayerWeapon(playerid, 4, 99999);
- }
- case 6:
- {
- GivePlayerWeapon(playerid, 26, 99999);
- GivePlayerWeapon(playerid, 4, 99999);
- }
- case 7:
- {
- GivePlayerWeapon(playerid, 27, 99999);
- GivePlayerWeapon(playerid, 4, 99999);
- }
- case 8:
- {
- GivePlayerWeapon(playerid, 28, 99999);
- GivePlayerWeapon(playerid, 4, 99999);
- }
- case 9:
- {
- GivePlayerWeapon(playerid, 32, 99999);
- GivePlayerWeapon(playerid, 4, 99999);
- }
- case 10:
- {
- GivePlayerWeapon(playerid, 29, 99999);
- GivePlayerWeapon(playerid, 4, 99999);
- }
- case 11:
- {
- GivePlayerWeapon(playerid, 30, 99999);
- GivePlayerWeapon(playerid, 4, 99999);
- }
- case 12:
- {
- GivePlayerWeapon(playerid, 31, 99999);
- GivePlayerWeapon(playerid, 4, 99999);
- }
- case 13:
- {
- GivePlayerWeapon(playerid, 33, 99999);
- GivePlayerWeapon(playerid, 4, 99999);
- }
- case 14:
- {
- GivePlayerWeapon(playerid, 34, 99999);
- GivePlayerWeapon(playerid, 4, 99999);
- }
- case 15:
- {
- GivePlayerWeapon(playerid, 35, 99999);
- GivePlayerWeapon(playerid, 4, 99999);
- }
- case 16:
- {
- GivePlayerWeapon(playerid, 38, 99999);
- GivePlayerWeapon(playerid, 4, 99999);
- }
- case 17:
- {
- GivePlayerWeapon(playerid, 16, 99999);
- GivePlayerWeapon(playerid, 4, 99999);
- }
- case 18:
- {
- GivePlayerWeapon(playerid, 4, 99999);
- }
- case 92:
- {
- GivePlayerWeapon(playerid, 4, 99999);
- }
- }
- }
- /*-----------------------------------------------------------------------------*\
- Esta stock é usada para checar a arma que será dada a algum jogador
- Param:
- - playerid: O ID do jogador que receberá a arma
- \*-----------------------------------------------------------------------------*/
- stock CheckWeaponLevel(playerid)
- {
- if(gPlayerData[playerid][E_PLAYER_NXTLVL] < 1)
- {
- switch(gPlayerData[playerid][E_PLAYER_LVL])
- {
- case 1:
- {
- ResetPlayerWeapons(playerid);
- GivePlayerWeapon(playerid, 23, 99999);
- GivePlayerWeapon(playerid, 4, 99999);
- PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0);
- gPlayerData[playerid][E_PLAYER_NXTLVL] = 2;
- }
- case 2:
- {
- ResetPlayerWeapons(playerid);
- SetPlayerSkillLevel(playerid, WEAPONSKILL_PISTOL, 0);
- GivePlayerWeapon(playerid, 22, 99999);
- GivePlayerWeapon(playerid, 4, 99999);
- PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0);
- gPlayerData[playerid][E_PLAYER_NXTLVL] = 2;
- }
- case 3:
- {
- ResetPlayerWeapons(playerid);
- GivePlayerWeapon(playerid, 24, 99999);
- GivePlayerWeapon(playerid, 4, 99999);
- PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0);
- gPlayerData[playerid][E_PLAYER_NXTLVL] = 5;
- }
- case 4:
- {
- ResetPlayerWeapons(playerid);
- SetPlayerSkillLevel(playerid, WEAPONSKILL_PISTOL, 999);
- GivePlayerWeapon(playerid, 22, 99999);
- GivePlayerWeapon(playerid, 4, 99999);
- PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0);
- gPlayerData[playerid][E_PLAYER_NXTLVL] = 7;
- }
- case 5:
- {
- ResetPlayerWeapons(playerid);
- GivePlayerWeapon(playerid, 25, 99999);
- GivePlayerWeapon(playerid, 4, 99999);
- PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0);
- gPlayerData[playerid][E_PLAYER_NXTLVL] = 4;
- }
- case 6:
- {
- ResetPlayerWeapons(playerid);
- GivePlayerWeapon(playerid, 26, 99999);
- GivePlayerWeapon(playerid, 4, 99999);
- PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0);
- gPlayerData[playerid][E_PLAYER_NXTLVL] = 7;
- }
- case 7:
- {
- ResetPlayerWeapons(playerid);
- GivePlayerWeapon(playerid, 27, 99999);
- GivePlayerWeapon(playerid, 4, 99999);
- PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0);
- gPlayerData[playerid][E_PLAYER_NXTLVL] = 7;
- }
- case 8:
- {
- ResetPlayerWeapons(playerid);
- GivePlayerWeapon(playerid, 28, 99999);
- GivePlayerWeapon(playerid, 4, 99999);
- PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0);
- gPlayerData[playerid][E_PLAYER_NXTLVL] = 3;
- }
- case 9:
- {
- ResetPlayerWeapons(playerid);
- GivePlayerWeapon(playerid, 32, 99999);
- GivePlayerWeapon(playerid, 4, 99999);
- PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0);
- gPlayerData[playerid][E_PLAYER_NXTLVL] = 4;
- }
- case 10:
- {
- ResetPlayerWeapons(playerid);
- GivePlayerWeapon(playerid, 29, 99999);
- GivePlayerWeapon(playerid, 4, 99999);
- PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0);
- gPlayerData[playerid][E_PLAYER_NXTLVL] = 6;
- }
- case 11:
- {
- ResetPlayerWeapons(playerid);
- GivePlayerWeapon(playerid, 30, 99999);
- GivePlayerWeapon(playerid, 4, 99999);
- PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0);
- gPlayerData[playerid][E_PLAYER_NXTLVL] = 7;
- }
- case 12:
- {
- ResetPlayerWeapons(playerid);
- GivePlayerWeapon(playerid, 31, 99999);
- GivePlayerWeapon(playerid, 4, 99999);
- PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0);
- gPlayerData[playerid][E_PLAYER_NXTLVL] = 7;
- }
- case 13:
- {
- ResetPlayerWeapons(playerid);
- GivePlayerWeapon(playerid, 33, 99999);
- GivePlayerWeapon(playerid, 4, 99999);
- PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0);
- gPlayerData[playerid][E_PLAYER_NXTLVL] = 4;
- }
- case 14:
- {
- ResetPlayerWeapons(playerid);
- GivePlayerWeapon(playerid, 34, 99999);
- GivePlayerWeapon(playerid, 4, 99999);
- PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0);
- gPlayerData[playerid][E_PLAYER_NXTLVL] = 2;
- }
- case 15:
- {
- ResetPlayerWeapons(playerid);
- GivePlayerWeapon(playerid, 35, 99999);
- GivePlayerWeapon(playerid, 4, 99999);
- PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0);
- gPlayerData[playerid][E_PLAYER_NXTLVL] = 9;
- }
- case 16:
- {
- ResetPlayerWeapons(playerid);
- GivePlayerWeapon(playerid, 38, 99999);
- GivePlayerWeapon(playerid, 4, 99999);
- PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0);
- gPlayerData[playerid][E_PLAYER_NXTLVL] = 10;
- }
- case 17:
- {
- ResetPlayerWeapons(playerid);
- GivePlayerWeapon(playerid, 16, 99999);
- GivePlayerWeapon(playerid, 4, 99999);
- PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0);
- gPlayerData[playerid][E_PLAYER_NXTLVL] = 5;
- }
- case 18:
- {
- ResetPlayerWeapons(playerid);
- GivePlayerWeapon(playerid, 4, 99999);
- PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0);
- gPlayerData[playerid][E_PLAYER_NXTLVL] = 1;
- }
- case 19:
- {
- SendClientMessageFormattedToAll(COLOR_YELLOW, "%s venceu o GunGame!", GetPlayerNameEx(playerid));
- PlayerPlaySound(playerid,1057, 0.0, 0.0, 0.0);
- gPlayerData[playerid][E_PLAYER_NXTLVL] = 0;
- }
- default: { ResetPlayerWeapons(playerid); GivePlayerWeapon(playerid, 23, 99999); GivePlayerWeapon(playerid, 4, 99999); PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0); gPlayerData[playerid][E_PLAYER_LVL] = 1; gPlayerData[playerid][E_PLAYER_NXTLVL] = 2;}
- }
- }
- }
- /*-----------------------------------------------------------------------------*\
- Esta stock é usada para enviar mensagem a algum jogador
- Param:
- - playerid: O ID do jogador que receberá a mensagem
- - colour: A cor em HEX que a mensagem será enviada
- - format: A mensagem que será enviada
- - va_args<>: Os argumentos que serão enviados
- \*-----------------------------------------------------------------------------*/
- stock SendClientMessageFormatted(playerid, colour, format[], va_args<>)
- {
- new
- out[128]
- ;
- va_format(out, sizeof(out), format, va_start<3>);
- SendClientMessage(playerid, colour, out);
- }
- /*-----------------------------------------------------------------------------*\
- Esta stock é usada para enviar mensagem a todos os jogadores
- Param:
- - colour: A cor em HEX que a mensagem será enviada
- - format: A mensagem que será enviada
- - va_args<>: Os argumentos que serão enviados
- \*-----------------------------------------------------------------------------*/
- stock SendClientMessageFormattedToAll(colour, format[], va_args<>)
- {
- new
- out[128]
- ;
- va_format(out, sizeof(out), format, va_start<2>);
- SendClientMessageToAll(colour, out);
- }
- /*-----------------------------------------------------------------------------*\
- Esta stock é usada para retornar o ratio do jogador diretamente
- Param:
- - playerid: O ID do jogador que obteremos o ratio
- \*-----------------------------------------------------------------------------*/
- stock GetPlayerRatio(playerid)
- return floatdiv(gPlayerData[playerid][E_PLAYER_KILLS], gPlayerData[playerid][E_PLAYER_DEATHS]);
- /*-----------------------------------------------------------------------------*\
- Esta stock é usada para retornar o IP do jogador diretamente
- Param:
- - playerid: O ID do jogador que obteremos o IP
- \*-----------------------------------------------------------------------------*/
- stock GetPlayerIpEx(playerid)
- {
- new string[18];
- GetPlayerIp(playerid, string, sizeof(string));
- return string;
- }
- /*-----------------------------------------------------------------------------*\
- Esta stock é usada para retornar o nome do jogador diretamente
- Param:
- - playerid: O ID do jogador que obteremos o nome
- \*-----------------------------------------------------------------------------*/
- stock GetPlayerNameEx(playerid)
- {
- new string[MAX_PLAYER_NAME];
- GetPlayerName(playerid,string,MAX_PLAYER_NAME);
- if(playerid == MAX_PLAYERS-1 || !IsPlayerConnected(playerid)) string = "Ninguem";
- return string;
- }
- /*-----------------------------------------------------------------------------*\
- Esta stock é usada para retornar o nome da arma diretamente
- Param:
- - weaponid: O ID da arma que obteremos o nome
- \*-----------------------------------------------------------------------------*/
- stock GetWeaponNameEx(weaponid)
- {
- new string[24];
- GetWeaponName(weaponid, string, sizeof(string));
- if(isnull(string)) string = "Nenhuma";
- return string;
- }
- /*-----------------------------------------------------------------------------*\
- Esta stock é usada para enviar mensagens para administradores
- Param:
- - color: A cor em HEX da mensagem a ser enviada
- - const string[]: A mensagem a ser enviada.
- - level: O nível minimo do administrador que verá a mensagem
- \*-----------------------------------------------------------------------------*/
- stock AdministratorMessage(color, const string[], level)
- {
- foreach(Player, i){if(gPlayerData[i][E_PLAYER_ADMIN] >= level){SendClientMessage(i, color, string);}}
- return 1;
- }
- /*-----------------------------------------------------------------------------*\
- Este comando é usado para mostrar seu stats
- Param:
- - playerid: O ID do jogador que utilizou o comando
- \*-----------------------------------------------------------------------------*/
- YCMD:stats(playerid, params[], help)
- {
- #pragma unused params
- if (help)
- {
- SendClientMessage(playerid, 0xFF0000AA, "*** Mostra seu stats.");
- }
- else
- {
- ShowPlayerStats(playerid,playerid);
- }
- return 1;
- }
- /*-----------------------------------------------------------------------------*\
- Este comando é usado para mostrar o stats de algum jogador
- Param:
- - playerid: O ID do jogador que utilizou o comando
- - iTarget: O ID do jogador que será mostrado o stats
- \*-----------------------------------------------------------------------------*/
- YCMD:pstats(playerid, params[], help)
- {
- #pragma unused params
- if (help)
- {
- SendClientMessage(playerid, 0xFF0000AA, "*** Mostra o stats de algum jogador.");
- }
- else
- {
- new
- iTarget;
- if(sscanf(params, "u", iTarget))
- return SendClientMessage(playerid, COLOR_SAMP, "*** /pstats [playerid]");
- ShowPlayerStats(playerid, iTarget);
- }
- return 1;
- }
- /*-----------------------------------------------------------------------------*\
- Este comando é usado para alterar sua skin
- Param:
- - playerid: O ID do jogador que utilizou o comando
- - params: O ID da skin selecionada pelo jogador
- \*-----------------------------------------------------------------------------*/
- YCMD:skin(playerid, params[], help)
- {
- if (help)
- {
- SendClientMessage(playerid, 0xFF0000AA, "*** Altera sua skin.");
- }
- else
- {
- if(isnull(params))
- return SendClientMessage(playerid, COLOR_SAMP, "*** /skin [skinid]");
- SendClientMessage(playerid, 0x78C100FF, "*** Sua skin foi alterada.");
- SetPlayerSkin(playerid, strval(params));
- gPlayerData[playerid][E_PLAYER_SKIN] = strval(params);
- }
- return 1;
- }
- /*-----------------------------------------------------------------------------*\
- Este comando é usado para mostrar todos os comandos
- Param:
- - playerid: O ID do jogador que utilizou o comando
- \*-----------------------------------------------------------------------------*/
- YCMD:comandos(playerid, params[], help)
- {
- #pragma unused params
- if (help)
- {
- SendClientMessage(playerid, 0xFF0000AA, "*** Lista com todos os comandos.");
- }
- else
- {
- new
- count = Command_GetPlayerCommandCount(playerid);
- for (new i = 0; i != count; ++i)
- {
- SendClientMessage(playerid, 0xFF0000AA, Command_GetNext(i, playerid));
- }
- }
- return 1;
- }
- /*-----------------------------------------------------------------------------*\
- Este comando é usado para mostrar todos os comandos
- Param:
- - playerid: O ID do jogador que utilizou o comando
- \*-----------------------------------------------------------------------------*/
- YCMD:ajudacmd(playerid, params[], help)
- {
- if (help)
- {
- SendClientMessage(playerid, 0xFF0000AA, "*** Mostra ajuda sobre um comando.");
- }
- else
- {
- if (isnull(params))
- {
- new
- str[128];
- SendClientMessage(playerid, COLOR_SAMP, "Bem-vindo ao ajuda.");
- format(str, sizeof (str), "Digite \"/%s [comando]\" para obter ajuda sobre um comando.", Command_GetDisplayNamed("ajudacmd", playerid));
- SendClientMessage(playerid, COLOR_WHITE, str);
- }
- else
- {
- Command_ReProcess(playerid, params, true);
- }
- }
- return 1;
- }
- /*-----------------------------------------------------------------------------*\
- Este comando é usado para mostrar ajuda sobre o modo de jogo
- Param:
- - playerid: O ID do jogador que utilizou o comando
- \*-----------------------------------------------------------------------------*/
- YCMD:ajuda(playerid, params[], help)
- {
- #pragma unused params
- if (help)
- {
- SendClientMessage(playerid, 0xFF0000AA, "*** Mostra ajuda sobre o modo de jogo.");
- }
- else
- {
- SendClientMessage(playerid, 0x00B6FFFF, "____________________ Ajuda ____________________");
- SendClientMessage(playerid, 0x0087FAFF, "Um gamemode com o objetivo de matar os outros competidores, a cada quantia...");
- SendClientMessage(playerid, 0x0087FAFF, "...de jogadores mortos você recebe uma nova arma.");
- SendClientMessage(playerid, 0x0087FAFF, "No inicio do round todos usam apenas a faca para matar seus adversários por um minuto, após isso...");
- SendClientMessage(playerid, 0x0087FAFF, "...recebem suas armas para começar o verdadeiro combate.");
- SendClientMessage(playerid, 0x0087FAFF, " O jogo acaba quando alguém chegar até a ultima arma que é a faca novamente e matar um oponente.");
- SendClientMessage(playerid, 0x00B6FFFF, "_________________________________________________");
- SendClientMessage(playerid, 0x0087FAFF, "*** /cmds para visualizar os comandos disponíveis.");
- SendClientMessage(playerid, 0x00B6FFFF, "_________________________________________________");
- }
- return 1;
- }
- /*-----------------------------------------------------------------------------*\
- Este comando é usado para mostrar os comandos do modo de jogo
- Param:
- - playerid: O ID do jogador que utilizou o comando
- \*-----------------------------------------------------------------------------*/
- YCMD:cmds(playerid, params[], help)
- {
- #pragma unused params
- if (help)
- {
- SendClientMessage(playerid, 0xFF0000AA, "*** Mostra ajuda sobre o modo de jogo.");
- }
- else
- {
- SendClientMessage(playerid, 0x00B6FFFF, "____________________ {0087FA}Comandos Gerais{00B6FF} ____________________");
- SendClientMessage(playerid, 0xE6E6E6E6, "/ajuda - /ajudacmd - /comandos - /skin - /stats - /pstats - /admins - /creditos - /acmds");
- SendClientMessage(playerid, 0xC8C8C8C8, "/mudarsenha - /mudaremail - /relatorio - /calcular - /calcularkd - /pm");
- SendClientMessage(playerid, 0x00B6FFFF, "________________________________________________________");
- }
- return 1;
- }
- /*-----------------------------------------------------------------------------*\
- Este comando é usado para mostrar os creditos do gamemode
- Param:
- - playerid: O ID do jogador que utilizou o comando
- \*-----------------------------------------------------------------------------*/
- YCMD:creditos(playerid, params[], help)
- {
- #pragma unused params
- if (help)
- {
- SendClientMessage(playerid, 0xFF0000AA, "*** Mostra os creditos do gamemode.");
- }
- else
- {
- ShowPlayerDialog(playerid, DIALOG_NULL, DIALOG_STYLE_MSGBOX, "Informações do Gamemode", "{0087FA}GunGame SA-MP {0000FF}PT {FFFFFF}v1.0.0 BETA 1\n\n{A9C4E4}Criado por {FFFFFF}Larceny\n Los\n\n{A9C4E4}Obrigado a: {FFFFFF}Y_Less\nPabloBorsellino\n\n{A9C4E4}Testers: {FFFFFF}-\n\n{A9C4E4}© Copyright 2012 - GunGame SA-MP PT™", "Fechar", "");
- }
- return 1;
- }
- /*-----------------------------------------------------------------------------*\
- Este comando é usado para mostrar os administradores online
- Param:
- - playerid: O ID do jogador que utilizou o comando
- \*-----------------------------------------------------------------------------*/
- YCMD:admins(playerid, params[], help)
- {
- #pragma unused params
- if (help)
- {
- SendClientMessage(playerid, 0xFF0000AA, "*** Mostra os admins online.");
- }
- else
- {
- new count = 0;
- new string[50];
- SendClientMessage(playerid, COLOR_LIGHTRED, "|_________ {930000}Admins Online{FF6347} _________|");
- foreach(Player, i)
- {
- if(gPlayerData[i][E_PLAYER_ADMIN] >= 1 && gPlayerData[i][E_PLAYER_ADMIN] <= 20)
- {
- format(string, 50, "Administrador: {930000}%s", GetPlayerNameEx(i));
- SendClientMessage(playerid, COLOR_LIGHTRED, string);
- count++;
- }
- }
- if(count == 0) SendClientMessage(playerid, COLOR_GREY, "*** Atualmente não há administradores online.");
- SendClientMessage(playerid, COLOR_LIGHTRED, "_______________________________________________________________");
- }
- return 1;
- }
- /*-----------------------------------------------------------------------------*\
- Este comando é usado para mostrar os administrativos comandos do modo de jogo
- Param:
- - playerid: O ID do jogador que utilizou o comando
- \*-----------------------------------------------------------------------------*/
- YCMD:acmds(playerid, params[], help)
- {
- #pragma unused params
- if (help)
- {
- SendClientMessage(playerid, 0xFF0000AA, "*** Mostra admin ajuda sobre o modo de jogo.");
- }
- else
- {
- SendClientMessage(playerid, 0x00B6FFFF, "_____________________________ Admin Commands ______________________________");
- if(gPlayerData[playerid][E_PLAYER_ADMIN] > 0) SendClientMessage(playerid, 0xE6E6E6E6, "/kick - /ban - /ir - /puxar - /sethp - /setarmour - /say - /congelar - /descongelar - /limparchat");
- if(gPlayerData[playerid][E_PLAYER_ADMIN] > 0) SendClientMessage(playerid, 0xE6E6E6E6, "/a - /slap - /dararma - /hpall - /armourall - /calar");
- if(gPlayerData[playerid][E_PLAYER_ADMIN] > 9) SendClientMessage(playerid, 0xC8C8C8C8, "/setstat - /mudarnome - /pinfo");
- if(IsPlayerAdmin(playerid)) SendClientMessage(playerid, 0xAAAAAAAA, "/setadmin");
- SendClientMessage(playerid, 0x00B6FFFF, "____________________________________________________________________________");
- }
- return 1;
- }
- /*-----------------------------------------------------------------------------*\
- Este comando é usado para limpar o chat
- Param:
- - playerid: O ID do jogador que utilizou o comando
- \*-----------------------------------------------------------------------------*/
- YCMD:limparchat(playerid, params[], help)
- {
- #pragma unused params
- if (help)
- {
- SendClientMessage(playerid, 0xFF0000AA, "*** Limpa o chat.");
- }
- else
- {
- if(gPlayerData[playerid][E_PLAYER_ADMIN] < 1)
- return SendClientMessage(playerid, COLOR_GREY, "*** Você não é um administrador.");
- foreach(Player, i){ClearScreen(i);}
- }
- return 1;
- }
- /*-----------------------------------------------------------------------------*\
- Este comando é usado para enviar uma mensagem destacada para todos
- Param:
- - playerid: O ID do jogador que utilizou o comando
- - zMessage: A mensagem que será enviada
- \*-----------------------------------------------------------------------------*/
- YCMD:dararma(playerid, params[], help)
- {
- if (help)
- {
- SendClientMessage(playerid, 0xFF0000AA, "*** Da arma a um jogador.");
- }
- else
- {
- if(gPlayerData[playerid][E_PLAYER_ADMIN] < 1)
- return SendClientMessage(playerid, COLOR_GREY, "*** Você não é um administrador.");
- new
- iTarget,
- iWeaponid,
- iAmmo;
- if(sscanf(params, "uii", iTarget, iWeaponid, iAmmo))
- return SendClientMessage(playerid, COLOR_SAMP, "*** /dararma [playerid] [arma] [munição]");
- if(iWeaponid < 1 || iWeaponid > 47)
- return SendClientMessage(playerid, COLOR_GREY, "*** Arma inválida, valores entre 1 - 47.");
- SendClientMessageFormatted(playerid, COLOR_LIGHTRED, "*** Você deu uma {930000}%s{FF6347} com {930000}%i{FF6347} balas para {930000}%s{FF6347}.", GetWeaponNameEx(iWeaponid), iAmmo, GetPlayerNameEx(iTarget));
- SendClientMessageFormatted(iTarget, COLOR_LIGHTRED, "*** {930000}%s{FF6347} deu uma {930000}%s{FF6347} com {930000}%i{FF6347} balas para você.", GetPlayerNameEx(playerid), GetWeaponNameEx(iWeaponid), iAmmo);
- GivePlayerWeapon(iTarget, iWeaponid, iAmmo);
- }
- return 1;
- }
- /*-----------------------------------------------------------------------------*\
- Este comando é usado para dar um slap em um jogador
- Param:
- - playerid: O ID do jogador que utilizou o comando
- - iTarget: ID do jogador que será slapado.
- \*-----------------------------------------------------------------------------*/
- YCMD:slap(playerid, params[], help)
- {
- if (help)
- {
- SendClientMessage(playerid, 0xFF0000AA, "*** Da slap em um jogador.");
- }
- else
- {
- if(gPlayerData[playerid][E_PLAYER_ADMIN] < 1)
- return SendClientMessage(playerid, COLOR_GREY, "*** Você não é um administrador.");
- new
- iTarget;
- if(sscanf(params, "u", iTarget))
- return SendClientMessage(playerid, COLOR_SAMP, "*** /slap [playerid]");
- if(!IsPlayerConnected(iTarget))
- return SendClientMessage(playerid, COLOR_GREY, "*** Jogador não conectado.");
- SendClientMessageFormatted(playerid, COLOR_LIGHTRED, "*** Você deu slap em {930000}%s{FF6347}.", GetPlayerNameEx(iTarget));
- new
- Float:slx,
- Float:sly,
- Float:slz,
- Float:shealth;
- GetPlayerHealth(iTarget, shealth);
- SetPlayerHealth(iTarget, shealth-5);
- GetPlayerPos(iTarget, slx, sly, slz);
- SetPlayerPos(iTarget, slx, sly, slz+5);
- PlayerPlaySound(iTarget, 1130, 0, 0, 0);
- }
- return 1;
- }
- /*-----------------------------------------------------------------------------*\
- Este comando é usado para obter as informações de um jogador
- Param:
- - playerid: O ID do jogador que utilizou o comando
- - iTarget: ID do jogador que mostrará o IP
- \*-----------------------------------------------------------------------------*/
- YCMD:pinfo(playerid, params[], help)
- {
- if (help)
- {
- SendClientMessage(playerid, 0xFF0000AA, "*** Mostra as informações de um jogador.");
- }
- else
- {
- if(gPlayerData[playerid][E_PLAYER_ADMIN] < 9)
- return SendClientMessage(playerid, COLOR_GREY, "*** Você não tem permissão.");
- new
- iTarget;
- if(sscanf(params, "u", iTarget))
- return SendClientMessage(playerid, COLOR_SAMP, "*** /pinfo [playerid]");
- if(!IsPlayerConnected(iTarget))
- return SendClientMessage(playerid, COLOR_GREY, "*** Jogador não conectado.");
- SendClientMessageFormatted(playerid, COLOR_LIGHTRED, "{930000}%s{FF6347}(ID:{930000}%i{FF6347}) - Ping: {930000}%i{FF6347} - IP: {930000}%s{FF6347}", GetPlayerNameEx(iTarget), iTarget, GetPlayerPing(iTarget), GetPlayerIpEx(iTarget));
- }
- return 1;
- }
- /*-----------------------------------------------------------------------------*\
- Este comando é usado para calar um jogador
- Param:
- - playerid: O ID do jogador que utilizou o comando
- - iTarget: ID do jogador que será silenciado
- \*-----------------------------------------------------------------------------*/
- YCMD:calar(playerid, params[], help)
- {
- if (help)
- {
- SendClientMessage(playerid, 0xFF0000AA, "*** Silencia um jogador.");
- }
- else
- {
- if(gPlayerData[playerid][E_PLAYER_ADMIN] < 1)
- return SendClientMessage(playerid, COLOR_GREY, "*** Você não é um administrador.");
- new
- iTarget;
- if(sscanf(params, "u", iTarget))
- return SendClientMessage(playerid, COLOR_SAMP, "*** /silenciar [playerid]");
- if(!IsPlayerConnected(iTarget))
- return SendClientMessage(playerid, COLOR_GREY, "*** Jogador não conectado.");
- if(playerid == iTarget)
- return SendClientMessage(playerid, COLOR_GREY, "*** Você não pode silenciar você mesmo.");
- SendClientMessageFormattedToAll(COLOR_LIGHTRED, "*** {930000}%s{FF6347} foi silenciado por {930000}%s{FF6347}.", GetPlayerNameEx(iTarget), GetPlayerNameEx(playerid));
- gPlayerData[iTarget][E_PLAYER_MUTED] = true;
- }
- return 1;
- }
- /*-----------------------------------------------------------------------------*\
- Este comando é usado para fazer calculos de K/D
- Param:
- - playerid: O ID do jogador que utilizou o comando
- - digito1: Valor de kills
- - digito2: Valor de deaths
- \*-----------------------------------------------------------------------------*/
- YCMD:calcularkd(playerid, params[], help)
- {
- if(help)
- {
- SendClientMessage(playerid, 0xFF0000AA, "*** Faz calculos de K/D.");
- }
- else
- {
- new
- digito1,
- digito2;
- if(sscanf(params, "ii", digito1, digito2))
- return SendClientMessage(playerid, COLOR_SAMP, "*** /calcularkd [kills] [deaths]");
- SendClientMessageFormatted(playerid, 0x78C100FF, "K/D: {68A100}%0.02f", floatdiv(digito1, digito2));
- }
- return 1;
- }
- /*-----------------------------------------------------------------------------*\
- Este comando é usado para fazer calculos
- Param:
- - playerid: O ID do jogador que utilizou o comando
- - digito1: Valor do número que será calculado por digito2
- - calculo: Modo do calculo
- - digito2: Valor do número que será calculado por digito1
- \*-----------------------------------------------------------------------------*/
- YCMD:calcular(playerid, params[], help)
- {
- if (help)
- {
- SendClientMessage(playerid, 0xFF0000AA, "*** Faz calculos como uma calculadora.");
- }
- else
- {
- new
- digito1,
- calculo[2],
- digito2;
- if(sscanf(params, "dsd", digito1, calculo, digito2))
- return SendClientMessage(playerid, COLOR_SAMP, "*** /calcular [digito1] [calculo] [digito2]");
- if(strcmp(calculo,"/",true) == 0)
- {
- SendClientMessageFormatted(playerid, 0x78C100FF, "*** {68A100}%d{78C100} dividido por {68A100}%d{78C100}. Resultado: {68A100}%d", digito1, digito2, digito1/digito2);
- }
- else if(strcmp(calculo,"*",true) == 0)
- {
- SendClientMessageFormatted(playerid, 0x78C100FF, "*** {68A100}%d{78C100} multiplicado por {68A100}%d{78C100}. Resultado: {68A100}%d", digito1, digito2, digito1*digito2);
- }
- else if(strcmp(calculo,"-",true) == 0)
- {
- SendClientMessageFormatted(playerid, 0x78C100FF, "*** {68A100}%d{78C100} subtraido por {68A100}%d{78C100}. Resultado: {68A100}%d", digito1, digito2, digito1-digito2);
- }
- else if(strcmp(calculo,"+",true) == 0)
- {
- SendClientMessageFormatted(playerid, 0x78C100FF, "*** {68A100}%d{78C100} somado a {68A100}%d{78C100}. Resultado: {68A100}%d", digito1, digito2, digito1+digito2);
- }
- else SendClientMessage(playerid, COLOR_GREY, "*** Sinal inválido. [/,*,+ ou -]");
- }
- return 1;
- }
- /*-----------------------------------------------------------------------------*\
- Este comando é usado para mudar a senha do jogador
- Param:
- - playerid: O ID do jogador que utilizou o comando
- - zPass: A nova senha do jogador
- \*-----------------------------------------------------------------------------*/
- YCMD:mudarsenha(playerid, params[], help)
- {
- if (help)
- {
- SendClientMessage(playerid, 0xFF0000AA, "*** Altera sua senha atual.");
- }
- else
- {
- new
- zPass[32];
- if(sscanf(params, "s", zPass))
- return SendClientMessage(playerid, COLOR_SAMP, "*** /mudarsenha [novasenha]");
- if(strlen(zPass) > 32)
- return SendClientMessage(playerid, COLOR_GREY, "*** Senha muito comprida.");
- // Make the filename.
- new
- playerName[MAX_PLAYER_NAME];
- GetPlayerName(playerid, playerName, MAX_PLAYER_NAME);
- new
- userFile[32];
- format(userFile, sizeof (userFile), "users/%s.ini", playerName);
- // Open the file.
- new
- INI:file = INI_Open(userFile);
- // Set the tag.
- INI_SetTag(file, "gungame");
- // Write the data.
- INI_WriteString(file, "password", zPass);
- // Close the file.
- INI_Close(file);
- SendClientMessageFormatted(playerid, 0xBBEA00FF, "*** Senha alterada para {7CAB00}%s", zPass);
- }
- return 1;
- }
- /*-----------------------------------------------------------------------------*\
- Este comando é usado para mudar o email do jogador
- Param:
- - playerid: O ID do jogador que utilizou o comando
- - zEmail: O novo email do jogador
- \*-----------------------------------------------------------------------------*/
- YCMD:mudaremail(playerid, params[], help)
- {
- if (help)
- {
- SendClientMessage(playerid, 0xFF0000AA, "*** Altera seu email atual.");
- }
- else
- {
- new
- zEmail[80];
- if(sscanf(params, "s", zEmail))
- return SendClientMessage(playerid, COLOR_SAMP, "*** /mudaremail [novoemail]");
- if(strlen(zEmail) < 5)
- return SendClientMessage(playerid, COLOR_GREY, "*** E-mail muito curto.");
- if(strlen(zEmail) > 80)
- return SendClientMessage(playerid, COLOR_GREY, "*** E-mail muito comprido.");
- if(strfind(zEmail, "@", true) != -1 && strfind(zEmail, ".", true) != -1)
- {
- // Make the filename.
- new
- playerName[MAX_PLAYER_NAME];
- GetPlayerName(playerid, playerName, MAX_PLAYER_NAME);
- new
- userFile[32];
- format(userFile, sizeof (userFile), "users/%s.ini", playerName);
- // Open the file.
- new
- INI:file = INI_Open(userFile);
- // Set the tag.
- INI_SetTag(file, "gungame");
- // Write the data.
- INI_WriteString(file, "email", zEmail);
- // Close the file.
- INI_Close(file);
- SendClientMessageFormatted(playerid, 0xBBEA00FF, "*** E-mail alterado para {7CAB00}%s", zEmail);
- }
- else
- {
- SendClientMessage(playerid, COLOR_GREY, "*** E-mail inválido.");
- }
- }
- return 1;
- }
- /*-----------------------------------------------------------------------------*\
- Este comando é usado para enviar uma mensagem privada a um jogador
- Param:
- - playerid: O ID do jogador que utilizou o comando
- - iTarget: O ID do jogador que receberá a mensagem
- - zMessage: A mensagem que será enviada
- \*-----------------------------------------------------------------------------*/
- YCMD:pm(playerid, params[], help)
- {
- if (help)
- {
- SendClientMessage(playerid, 0xFF0000AA, "*** Envia uma mensagem para os administradores online.");
- }
- else
- {
- new
- iTarget,
- zMessage[128],
- zString[156];
- if(sscanf(params, "us", iTarget, zMessage))
- return SendClientMessage(playerid, COLOR_SAMP, "*** /pm [playerid] [mensagem]");
- if(!IsPlayerConnected(iTarget))
- return SendClientMessage(playerid, COLOR_GREY, "*** Jogador não conectado.");
- if(playerid == iTarget)
- return SendClientMessage(playerid, COLOR_GREY, "*** Você não pode enviar mensagens para você mesmo.");
- format(zString, 156, "*** Mensagem privada de {00ACFF}%s{33CCFF}: %s", GetPlayerNameEx(playerid), zMessage);
- SendClientMessage(iTarget, 0x33CCFFAA, zString);
- format(zString, 156, "*** Mensagem enviada a {00ACFF}%s{33CCFF}: %s", GetPlayerNameEx(iTarget), zMessage);
- SendClientMessage(playerid, 0x33CCFFAA, zString);
- }
- return 1;
- }
- /*-----------------------------------------------------------------------------*\
- Este comando é usado para enviar uma mensagem para os admins online
- Param:
- - playerid: O ID do jogador que utilizou o comando
- - zMessage: A mensagem que será enviada
- \*-----------------------------------------------------------------------------*/
- YCMD:relatorio(playerid, params[], help)
- {
- if (help)
- {
- SendClientMessage(playerid, 0xFF0000AA, "*** Envia uma mensagem para os administradores online.");
- }
- else
- {
- new
- zMessage[128],
- zString[156];
- if(sscanf(params, "s", zMessage))
- return SendClientMessage(playerid, COLOR_SAMP, "*** /relatorio [mensagem]");
- format(zString, 156, "*** Relatório de {930000}%s{FF6347}: %s", GetPlayerNameEx(playerid), zMessage);
- SendClientMessage(playerid, COLOR_LIGHTRED, zString);
- AdministratorMessage(COLOR_LIGHTRED, zString, 1);
- }
- return 1;
- }
- /*-----------------------------------------------------------------------------*\
- Este comando é usado para enviar uma mensagem ao admin chat
- Param:
- - playerid: O ID do jogador que utilizou o comando
- - zMessage: A mensagem que será enviada
- \*-----------------------------------------------------------------------------*/
- YCMD:a(playerid, params[], help)
- {
- if (help)
- {
- SendClientMessage(playerid, 0xFF0000AA, "*** Envia uma mensagem ao chat dos administradores.");
- }
- else
- {
- if(gPlayerData[playerid][E_PLAYER_ADMIN] < 1)
- return SendClientMessage(playerid, COLOR_GREY, "*** Você não é um administrador.");
- new
- zMessage[128];
- if(sscanf(params, "s", zMessage))
- return SendClientMessage(playerid, COLOR_SAMP, "*** /a [mensagem]");
- foreach(Player, i){if(gPlayerData[i][E_PLAYER_ADMIN] > 0) SendClientMessageFormatted(i, COLOR_LIGHTRED, "*** A-Chat {930000}%s{FF6347}: %s", GetPlayerNameEx(playerid), zMessage);}
- }
- return 1;
- }
- /*-----------------------------------------------------------------------------*\
- Este comando é usado para enviar uma mensagem destacada para todos
- Param:
- - playerid: O ID do jogador que utilizou o comando
- - zMessage: A mensagem que será enviada
- \*-----------------------------------------------------------------------------*/
- YCMD:say(playerid, params[], help)
- {
- if (help)
- {
- SendClientMessage(playerid, 0xFF0000AA, "*** Envia uma mensagem a todos.");
- }
- else
- {
- if(gPlayerData[playerid][E_PLAYER_ADMIN] < 1)
- return SendClientMessage(playerid, COLOR_GREY, "*** Você não é um administrador.");
- new
- zMessage[128];
- if(sscanf(params, "s", zMessage))
- return SendClientMessage(playerid, COLOR_SAMP, "*** /say [mensagem]");
- SendClientMessageFormattedToAll(COLOR_LIGHTRED, "*** Admin {930000}%s{FF6347}: %s", GetPlayerNameEx(playerid), zMessage);
- }
- return 1;
- }
- /*-----------------------------------------------------------------------------*\
- Este comando é usado para descongelar um jogador
- Param:
- - playerid: O ID do jogador que utilizou o comando
- - iTarget: O ID do jogador que será descongelado
- \*-----------------------------------------------------------------------------*/
- YCMD:descongelar(playerid, params[], help)
- {
- if (help)
- {
- SendClientMessage(playerid, 0xFF0000AA, "*** Desongela um jogador.");
- }
- else
- {
- if(gPlayerData[playerid][E_PLAYER_ADMIN] < 1)
- return SendClientMessage(playerid, COLOR_GREY, "*** Você não é um administrador.");
- new
- iTarget;
- if(sscanf(params, "u", iTarget))
- return SendClientMessage(playerid, COLOR_SAMP, "*** /descongelar [playerid]");
- if(!IsPlayerConnected(iTarget))
- return SendClientMessage(playerid, COLOR_GREY, "*** O jogador não está conectado.");
- TogglePlayerControllable(iTarget, true);
- SendClientMessageFormatted(playerid, COLOR_LIGHTRED, "*** Você descongelou {930000}%s{FF6347}.", GetPlayerNameEx(iTarget));
- }
- return 1;
- }
- /*-----------------------------------------------------------------------------*\
- Este comando é usado para congelar um jogador
- Param:
- - playerid: O ID do jogador que utilizou o comando
- - iTarget: O ID do jogador que será congelado
- \*-----------------------------------------------------------------------------*/
- YCMD:congelar(playerid, params[], help)
- {
- if (help)
- {
- SendClientMessage(playerid, 0xFF0000AA, "*** Congela um jogador.");
- }
- else
- {
- if(gPlayerData[playerid][E_PLAYER_ADMIN] < 1)
- return SendClientMessage(playerid, COLOR_GREY, "*** Você não é um administrador.");
- new
- iTarget;
- if(sscanf(params, "u", iTarget))
- return SendClientMessage(playerid, COLOR_SAMP, "*** /congelar [playerid]");
- if(!IsPlayerConnected(iTarget))
- return SendClientMessage(playerid, COLOR_GREY, "*** O jogador não está conectado.");
- TogglePlayerControllable(iTarget, false);
- SendClientMessageFormatted(playerid, COLOR_LIGHTRED, "*** Você congelou {930000}%s{FF6347}.", GetPlayerNameEx(iTarget));
- }
- return 1;
- }
- /*-----------------------------------------------------------------------------*\
- Este comando é usado para banir um jogador
- Param:
- - playerid: O ID do jogador que utilizou o comando
- - iTarget: O ID do jogador que será banido
- - zReason: A razão pela qual o jogador será banido
- \*-----------------------------------------------------------------------------*/
- YCMD:ban(playerid, params[], help)
- {
- if (help)
- {
- SendClientMessage(playerid, 0xFF0000AA, "*** Ban um jogador.");
- }
- else
- {
- if(gPlayerData[playerid][E_PLAYER_ADMIN] < 1)
- return SendClientMessage(playerid, COLOR_GREY, "*** Você não é um administrador.");
- new
- iTarget,
- zReason[128];
- if(sscanf(params, "us", iTarget, zReason))
- return SendClientMessage(playerid, COLOR_SAMP, "*** /ban [playerid] [razão]");
- if(!IsPlayerConnected(iTarget))
- return SendClientMessage(playerid, COLOR_GREY, "*** O jogador não está conectado.");
- if(iTarget == playerid)
- return SendClientMessage(playerid, COLOR_GREY, "*** Você não pode banir você mesmo.");
- new STR[215];
- format(STR, sizeof(STR), "*** {930000}%s {FF6347}foi banido do servidor por {930000}%s{FF6347}. Motivo: {930000}%s{FF6347}", GetPlayerNameEx(iTarget), GetPlayerNameEx(playerid), zReason);
- SendClientMessageToAll(0xFF6347FF, STR);
- BanEx( iTarget, zReason );
- }
- return 1;
- }
- /*-----------------------------------------------------------------------------*\
- Este comando é usado para alterar o nome de um jogador
- Param:
- - playerid: O ID do jogador que utilizou o comando
- - iTarget: O ID do jogador que terá o nome alterado
- - zName: O novo nome
- \*-----------------------------------------------------------------------------*/
- YCMD:mudarnome(playerid, params[], help)
- {
- if (help)
- {
- SendClientMessage(playerid, 0xFF0000AA, "*** Muda o nome de um jogador.");
- }
- else
- {
- if(gPlayerData[playerid][E_PLAYER_ADMIN] < 10)
- return SendClientMessage(playerid, COLOR_GREY, "*** Você não é um administrador.");
- new
- iTarget,
- zName[MAX_PLAYER_NAME];
- if(sscanf(params, "us", iTarget, zName))
- return SendClientMessage(playerid, COLOR_SAMP, "*** /mudarnome [playerid] [novonome]");
- if(!IsPlayerConnected(iTarget))
- return SendClientMessage(playerid, COLOR_GREY, "*** O jogador não está conectado.");
- if(strlen(zName) > MAX_PLAYER_NAME)
- return SendClientMessage(playerid, COLOR_GREY, "*** Nome muito longo.");
- new
- playerName[MAX_PLAYER_NAME];
- GetPlayerName(iTarget, playerName, MAX_PLAYER_NAME);
- new
- userFile[32];
- format(userFile, sizeof (userFile), "users/%s.ini", playerName);
- if(fexist(userFile))
- return SendClientMessage(playerid, COLOR_GREY, "*** Este nome já está em uso.");
- SendClientMessageFormatted(playerid, COLOR_LIGHTRED, "*** Você alterou o nome de %s para %s.", GetPlayerNameEx(iTarget), zName);
- SendClientMessageFormatted(iTarget, COLOR_LIGHTRED, "*** %s alterou seu nome para %s.", GetPlayerNameEx(playerid), zName);
- switch(SetPlayerName(iTarget, zName))
- {
- case -1:
- {
- SendClientMessage(playerid, COLOR_GREY, "*** Erro: Este nome está em uso, contém caractéres inválidos ou o jogador já está utilizando este nome.");
- SendClientMessage(iTarget, COLOR_GREY, "*** Erro: Este nome está em uso, contém caractéres inválidos ou o você já está utilizando este nome.");
- }
- case 0:
- {
- SendClientMessage(playerid, COLOR_GREY, "*** Erro: O jogador já está utilizando este nick.");
- SendClientMessage(iTarget, COLOR_GREY, "*** Erro: Você já está utilizando este nome.");
- }
- }
- }
- return 1;
- }
- /*-----------------------------------------------------------------------------*\
- Este comando é usado para kickar um jogador
- Param:
- - playerid: O ID do jogador que utilizou o comando
- - iTarget: O ID do jogador que será kickado
- - zReason: A razão pela qual o jogador será kickado
- \*-----------------------------------------------------------------------------*/
- YCMD:kick(playerid, params[], help)
- {
- if (help)
- {
- SendClientMessage(playerid, 0xFF0000AA, "*** Kick um jogador.");
- }
- else
- {
- if(gPlayerData[playerid][E_PLAYER_ADMIN] < 1)
- return SendClientMessage(playerid, COLOR_GREY, "*** Você não é um administrador.");
- new
- iTarget,
- zReason[128];
- if(sscanf(params, "us", iTarget, zReason))
- return SendClientMessage(playerid, COLOR_SAMP, "*** /kick [playerid] [razão]");
- if(!IsPlayerConnected(iTarget))
- return SendClientMessage(playerid, COLOR_GREY, "*** O jogador não está conectado.");
- if(iTarget == playerid)
- return SendClientMessage(playerid, COLOR_GREY, "*** Você não pode kickar você mesmo.");
- new STR[215];
- format(STR, sizeof(STR), "*** {930000}%s {FF6347}foi kickado do servidor por {930000}%s{FF6347}. Motivo: {930000}%s{FF6347}", GetPlayerNameEx(iTarget), GetPlayerNameEx(playerid), zReason);
- SendClientMessageToAll(0xFF6347FF, STR);
- Kick( iTarget );
- }
- return 1;
- }
- /*-----------------------------------------------------------------------------*\
- Este comando é usado para alterar a saúde de todos os jogadores
- Param:
- - playerid: O ID do jogador que utilizou o comando
- - iHP: A quantia de saúde que será definida
- \*-----------------------------------------------------------------------------*/
- YCMD:armourall(playerid, params[], help)
- {
- if (help)
- {
- SendClientMessage(playerid, 0xFF0000AA, "*** Altera o colete de todos os jogadores.");
- }
- else
- {
- if(gPlayerData[playerid][E_PLAYER_ADMIN] < 1)
- return SendClientMessage(playerid, COLOR_GREY, "*** Você não é um administrador.");
- new
- iArmour;
- if(sscanf(params, "i", iArmour))
- return SendClientMessage(playerid, COLOR_SAMP, "*** /armourall [colete]");
- foreach(Player, i){SetPlayerArmour(i, iArmour);}
- SendClientMessageFormattedToAll(COLOR_LIGHTRED, "*** {930000}%s{FF6347} alterou o colete de todos os jogadores para {930000}%i{FF6347}.", GetPlayerNameEx(playerid), iArmour);
- }
- return 1;
- }
- /*-----------------------------------------------------------------------------*\
- Este comando é usado para alterar a saúde de todos os jogadores
- Param:
- - playerid: O ID do jogador que utilizou o comando
- - iHP: A quantia de saúde que será definida
- \*-----------------------------------------------------------------------------*/
- YCMD:hpall(playerid, params[], help)
- {
- if (help)
- {
- SendClientMessage(playerid, 0xFF0000AA, "*** Altera a saúde de todos os jogadores.");
- }
- else
- {
- if(gPlayerData[playerid][E_PLAYER_ADMIN] < 1)
- return SendClientMessage(playerid, COLOR_GREY, "*** Você não é um administrador.");
- new
- iHP;
- if(sscanf(params, "i", iHP))
- return SendClientMessage(playerid, COLOR_SAMP, "*** /hpall [saúde]");
- foreach(Player, i){SetPlayerHealth(i, iHP);}
- SendClientMessageFormattedToAll(COLOR_LIGHTRED, "*** {930000}%s{FF6347} alterou a saúde de todos os jogadores para {930000}%i{FF6347}.", GetPlayerNameEx(playerid), iHP);
- }
- return 1;
- }
- /*-----------------------------------------------------------------------------*\
- Este comando é usado para alterar a saúde de um jogador
- Param:
- - playerid: O ID do jogador que utilizou o comando
- - iTarget: O ID do jogador que terá a saúde alterada
- - iHP: A quantia de saúde que será definida
- \*-----------------------------------------------------------------------------*/
- YCMD:sethp(playerid, params[], help)
- {
- if (help)
- {
- SendClientMessage(playerid, 0xFF0000AA, "*** Altera a saúde de um jogador.");
- }
- else
- {
- if(gPlayerData[playerid][E_PLAYER_ADMIN] < 1)
- return SendClientMessage(playerid, COLOR_GREY, "*** Você não é um administrador.");
- new
- iTarget,
- iHP;
- if(sscanf(params, "ui", iTarget, iHP))
- return SendClientMessage(playerid, COLOR_SAMP, "*** /sethp [playerid] [saúde]");
- if(!IsPlayerConnected(iTarget))
- return SendClientMessage(playerid, COLOR_GREY, "*** O jogador não está conectado.");
- new STR[73+(MAX_PLAYER_NAME*2)];
- format(STR, sizeof(STR), "*** {930000}%s{FF6347} alterou a saúde de {930000}%s{FF6347} para {930000}%i{FF6347}.", GetPlayerNameEx(playerid), GetPlayerNameEx(iTarget), iHP);
- AdministratorMessage(0xFF6347FF, STR, 1);
- SetPlayerHealth(iTarget, iHP);
- }
- return 1;
- }
- /*-----------------------------------------------------------------------------*\
- Este comando é usado para alterar o colete de um jogador
- Param:
- - playerid: O ID do jogador que utilizou o comando
- - iTarget: O ID do jogador que terá o colete alterado
- - iArmour: A quantia do colete que será definida
- \*-----------------------------------------------------------------------------*/
- YCMD:setarmour(playerid, params[], help)
- {
- if (help)
- {
- SendClientMessage(playerid, 0xFF0000AA, "*** Altera o colete de um jogador.");
- }
- else
- {
- if(gPlayerData[playerid][E_PLAYER_ADMIN] < 1)
- return SendClientMessage(playerid, COLOR_GREY, "*** Você não é um administrador.");
- new
- iTarget,
- iArmour;
- if(sscanf(params, "ui", iTarget, iArmour))
- return SendClientMessage(playerid, COLOR_SAMP, "*** /setarmour [playerid] [colete]");
- if(!IsPlayerConnected(iTarget))
- return SendClientMessage(playerid, COLOR_GREY, "*** O jogador não está conectado.");
- new STR[73+(MAX_PLAYER_NAME*2)];
- format(STR, sizeof(STR), "*** {930000}%s{FF6347} alterou o colete de {930000}%s{FF6347} para {930000}%i{FF6347}.", GetPlayerNameEx(playerid), GetPlayerNameEx(iTarget), iArmour);
- AdministratorMessage(0xFF6347FF, STR, 1);
- SetPlayerArmour(iTarget, iArmour);
- }
- return 1;
- }
- /*-----------------------------------------------------------------------------*\
- Este comando é usado para alterar o nível de admin de um jogador
- Param:
- - playerid: O ID do jogador que utilizou o comando
- - iTarget: O ID do jogador que terá o nível alterado
- - iAdmin: A quantia do nível que será definida
- \*-----------------------------------------------------------------------------*/
- YCMD:setadmin(playerid, params[], help)
- {
- if (help)
- {
- SendClientMessage(playerid, 0xFF0000AA, "*** Altera o admin de um jogador.");
- }
- else
- {
- if(!IsPlayerAdmin(playerid))
- return SendClientMessage(playerid, COLOR_GREY, "*** Você não tem permissão.");
- new
- iTarget,
- iAdmin;
- if(sscanf(params, "ui", iTarget, iAdmin))
- return SendClientMessage(playerid, COLOR_SAMP, "*** /setadmin [playerid] [nível]");
- if(!IsPlayerConnected(iTarget))
- return SendClientMessage(playerid, COLOR_GREY, "*** O jogador não está conectado.");
- SendClientMessageFormatted(playerid, COLOR_LIGHTRED, "*** Você definiu {930000}%s {FF6347}como administrador nível {930000}%i{FF6347}.", GetPlayerNameEx(iTarget), iAdmin);
- SendClientMessageFormatted(iTarget, COLOR_LIGHTRED, "*** Você se tornou administrador nível {930000}%i {FF6347}por {930000}%s{FF6347}.", iAdmin, GetPlayerNameEx(playerid));
- if(gPlayerData[iTarget][E_PLAYER_ADMIN] < 1 && gPlayerData[iTarget][E_PLAYER_ADMIN]+iAdmin > 0)
- {
- gGlobal[G_ADMIN]++;
- new newtext[8];
- format(newtext, sizeof(newtext), "~p~%02d", gGlobal[G_ADMIN]);
- TextDrawSetString(admonnum, newtext);
- }
- else if(gPlayerData[iTarget][E_PLAYER_ADMIN] > 0 && gPlayerData[iTarget][E_PLAYER_ADMIN]+iAdmin < 1)
- {
- gGlobal[G_ADMIN]--;
- new newtext[8];
- format(newtext, sizeof(newtext), "~p~%02d", gGlobal[G_ADMIN]);
- TextDrawSetString(admonnum, newtext);
- }
- gPlayerData[iTarget][E_PLAYER_ADMIN] = iAdmin;
- }
- return 1;
- }
- /*-----------------------------------------------------------------------------*\
- Este comando é usado para teleportar-se a um jogador
- Param:
- - playerid: O ID do jogador que utilizou o comando,
- e será teleportado
- - iTarget: O ID do jogador que o playerid irá se teleportar
- \*-----------------------------------------------------------------------------*/
- YCMD:ir(playerid, params[], help)
- {
- if (help)
- {
- SendClientMessage(playerid, 0xFF0000AA, "*** Teleporta até um jogador.");
- }
- else
- {
- if(gPlayerData[playerid][E_PLAYER_ADMIN] < 1)
- return SendClientMessage(playerid, COLOR_GREY, "*** Você não é um administrador.");
- new
- iTarget;
- if(sscanf(params, "u", iTarget))
- return SendClientMessage(playerid, COLOR_SAMP, "*** /ir [playerid]");
- if(!IsPlayerConnected(iTarget))
- return SendClientMessage(playerid, COLOR_GREY, "*** O jogador não está conectado.");
- if(iTarget == playerid)
- return SendClientMessage(playerid, COLOR_GREY, "*** Você não pode teleportar para você mesmo.");
- SendClientMessageFormatted(playerid, COLOR_LIGHTRED, "*** Você se teleportou até {930000}%s{FF6347}.", GetPlayerNameEx(iTarget));
- new
- Float:pPos[3];
- GetPlayerPos(iTarget, pPos[0], pPos[1], pPos[2]);
- SetPlayerPos(playerid, pPos[0], pPos[1], pPos[2]);
- SetPlayerVirtualWorld(playerid, GetPlayerVirtualWorld(iTarget));
- SetPlayerInterior(playerid, GetPlayerInterior(iTarget));
- }
- return 1;
- }
- /*-----------------------------------------------------------------------------*\
- Este comando é usado para teleportar jogadores
- Param:
- - playerid: O ID do jogador que utilizou o comando,
- e teleportará o iTarget
- - iTarget: O ID do jogador que será teleportado
- \*-----------------------------------------------------------------------------*/
- YCMD:puxar(playerid, params[], help)
- {
- if (help)
- {
- SendClientMessage(playerid, 0xFF0000AA, "*** Teleporta um jogador até você.");
- }
- else
- {
- if(gPlayerData[playerid][E_PLAYER_ADMIN] < 1)
- return SendClientMessage(playerid, COLOR_GREY, "*** Você não é um administrador.");
- new
- iTarget;
- if(sscanf(params, "u", iTarget))
- return SendClientMessage(playerid, COLOR_SAMP, "*** /puxar [playerid]");
- if(!IsPlayerConnected(iTarget))
- return SendClientMessage(playerid, COLOR_GREY, "*** O jogador não está conectado.");
- if(iTarget == playerid)
- return SendClientMessage(playerid, COLOR_GREY, "*** Você não pode teleportar para você mesmo.");
- SendClientMessageFormatted(playerid, COLOR_LIGHTRED, "*** Você teleportou {930000}%s{FF6347} até você.", GetPlayerNameEx(iTarget));
- SendClientMessageFormatted(playerid, COLOR_LIGHTRED, "*** Você foi teleportado até {930000}%s{FF6347}.", GetPlayerNameEx(playerid));
- new
- Float:pPos[3];
- GetPlayerPos(playerid, pPos[0], pPos[1], pPos[2]);
- SetPlayerPos(iTarget, pPos[0], pPos[1], pPos[2]);
- SetPlayerVirtualWorld(iTarget, GetPlayerVirtualWorld(playerid));
- SetPlayerInterior(iTarget, GetPlayerInterior(playerid));
- }
- return 1;
- }
- /*-----------------------------------------------------------------------------*\
- Este comando é alterar o status de um jogador
- Param:
- - playerid: O ID do jogador que utilizou o comando,
- e editará o stats
- - iTarget: O ID do jogador que o playerid irá se teleportar
- - codigo: O ID do código que alterará o stats
- - quantia: Quantidade definida do stats do código
- \*-----------------------------------------------------------------------------*/
- YCMD:setstat(playerid, params[], help)
- {
- if(help)
- {
- SendClientMessage(playerid, 0xFF0000AA, "*** Altera o stats de algum jogador.");
- }
- else
- {
- if(gPlayerData[playerid][E_PLAYER_ADMIN] < 10) return SendClientMessage(playerid, COLOR_GREY, "*** Você não tem permissão.");
- new
- iTarget,
- codigo,
- quantia;
- if(sscanf(params, "udd", iTarget, codigo, quantia))
- {
- SendClientMessage(playerid, COLOR_SAMP, "*** /setstat [id] [código] [quantia]");
- SendClientMessage(playerid,0x00B6FFFF,"____________________Stats____________________");
- SendClientMessage(playerid, 0xE6E6E6E6, "(1)KillsG - (2)DeathsG - (3)Idade - (4)Sexo - (5)Nível - (6)Kills - (7)Deaths - (8)HorasJogadas");
- SendClientMessage(playerid,0x00B6FFFF, "______________________________________________________________________________________");
- }
- else if(!IsPlayerConnected(iTarget)) SendClientMessage(playerid, COLOR_GREY, "*** Jogador não encontrado.");
- else
- {
- switch(codigo)
- {
- case 1:
- {
- gPlayerData[iTarget][E_PLAYER_GKILLS] = quantia;
- SendClientMessageFormatted(playerid, COLOR_LIGHTRED, "*** Quantia de \"kills geral\" de {930000}%s{FF6347} alterada para {930000}%i{FF6347}.", GetPlayerNameEx(iTarget), quantia);
- }
- case 2:
- {
- gPlayerData[iTarget][E_PLAYER_GDEATHS] = quantia;
- SendClientMessageFormatted(playerid, COLOR_LIGHTRED, "*** Quantia de \"deaths geral\" de {930000}%s{FF6347} alterada para {930000}%i{FF6347}.", GetPlayerNameEx(iTarget), quantia);
- }
- case 3:
- {
- gPlayerData[iTarget][E_PLAYER_AGE] = quantia;
- SendClientMessageFormatted(playerid, COLOR_LIGHTRED, "*** Quantia da \"idade\" de {930000}%s{FF6347} alterada para {930000}%i{FF6347}.", GetPlayerNameEx(iTarget), quantia);
- }
- case 4:
- {
- gPlayerData[iTarget][E_PLAYER_SEX] = quantia;
- SendClientMessageFormatted(playerid, COLOR_LIGHTRED, "*** Quantia do \"sexo\" de {930000}%s{FF6347} alterado para {930000}%i{FF6347}.", GetPlayerNameEx(iTarget), quantia);
- }
- case 5:
- {
- gPlayerData[iTarget][E_PLAYER_LVL] = quantia;
- gPlayerData[iTarget][E_PLAYER_NXTLVL] = 0;
- SendClientMessageFormatted(playerid, COLOR_LIGHTRED, "*** Quantia do \"level\" de {930000}%s{FF6347} alterada para {930000}%i{FF6347}.", GetPlayerNameEx(iTarget), quantia);
- CheckWeaponLevel(iTarget);
- }
- case 6:
- {
- gPlayerData[iTarget][E_PLAYER_KILLS] = quantia;
- SendClientMessageFormatted(playerid, COLOR_LIGHTRED, "*** Quantia de \"deaths\" de {930000}%s{FF6347} alterada para {930000}%i{FF6347}.", GetPlayerNameEx(iTarget), quantia);
- }
- case 7:
- {
- gPlayerData[iTarget][E_PLAYER_DEATHS] = quantia;
- SendClientMessageFormatted(playerid, COLOR_LIGHTRED, "*** Quantia de \"kills\" de {930000}%s{FF6347} alterada para {930000}%i{FF6347}.", GetPlayerNameEx(iTarget), quantia);
- }
- case 8:
- {
- gPlayerData[iTarget][E_PLAYER_PLAYEDHOURS] = quantia;
- SendClientMessageFormatted(playerid, COLOR_LIGHTRED, "*** Quantia de \"horas jogadas\" de {930000}%s{FF6347} alterada para {930000}%i{FF6347} segundos.", GetPlayerNameEx(iTarget), quantia);
- }
- default:
- {
- return SendClientMessage(playerid, COLOR_GREY, "*** Código inválido. (/setstat)");
- }
- }
- }
- }
- return 1;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement