rendered paste body//include#include <a_samp>#include <float>#include <core>#include <file>#include <dudb>#include <dini>static gTeam[MAX_PLAYERS];new gPlayerClass[MAX_PLAYERS];new logged[MAX_PLAYERS];new zlehaslo[MAX_PLAYERS];new logintimeout[MAX_PLAYERS];new giveplayer[MAX_PLAYER_NAME];new sendername[MAX_PLAYER_NAME];#define FILE_TOTALSTAT "totalstat.ini"//------------dcmd--------------#define dcmd(%1,%2,%3) if ((strcmp(%3, "/%1", true, %2+1) == 0)&&(((%3[%2+1]==0)&&(dcmd_%1(playerid,"")))||((%3[%2+1]==32)&&(dcmd_%1(playerid,%3[%2+2]))))) return 1new gRoundTime = 3600000; // 60 minutnew savePos;new giveplayerid; //--TEAM--------------------------#define TEAM_GROVE 0#define TEAM_GROVE_COLOR 0x0080FFFF#define TEAM_BALLAS 1#define TEAM_BALLAS_COLOR 0x9E3DFFAA#define TEAM_VAGOS 2#define TEAM_VAGOS_COLOR 0xFFD700AA#define TEAM_AZTECAS 3#define TEAM_AZTECAS_COLOR 0x00CED3AA//kolory#define COLOR_GREEN 0x33AA33AA#define COLOR_GREY 0xAFAFAFAA#define FIOLETOWY 0x9E3DFFAA#define COLOR_LIGHTBLUE 0x0000FFAA#define BEZOWY 0xFFFFADAA#define BIALY 0xFFFFFFAA#define BLEKITNY 0x00FFFFAA#define BORDOWY 0x99001FAA#define BRAZOWY 0x997A00AA#define CIEMNY_ZIELONY 0x336633AA#define CZARNY 0x000000AA#define CZERWONY 0xFF0000AA#define FIOLETOWY 0x9E3DFFAA#define NIEBIESKI 0x0000FFAA#define POMARANCZOWY 0xFF8000AA#define ROZOWY 0xFF66CCAA#define SZARY 0xB0B0B0AA#define ZIELONY 0x00CC00AA#define ZOLTY 0xFFFF00AA#define MAX_SAVE 64new savedNames[MAX_SAVE][1];new savedMoney[MAX_SAVE][1];new savedScore[MAX_SAVE][1];////-----------------------------------------------------------------------------main(){ print("\n----------------------------------"); print(" LS Gang War Beta " ); print("----------------------------------\n");}public OnGameModeInit(){ print("GameModeInit(LS Gang war 0.1)"); SetGameModeText("LS Gang War 0.1");SetTimer("GameModeExitFunc", gRoundTime, 0);//Skiny//plaerys AddPlayerClass(107,2495.2207,-1687.3169,13.5152,351.7600,0,0,29,650,22,260); // Grove AddPlayerClass(106,2495.2207,-1687.3169,13.5152,351.7600,0,0,29,650,22,260); // Grove AddPlayerClass(105,2495.2207,-1687.3169,13.5152,351.7600,0,0,29,650,22,260); // Grove AddPlayerClass(195,2495.2207,-1687.3169,13.5152,351.7600,0,0,29,650,22,260); // Grove AddPlayerClass(102,832.2958,-1080.4476,24.2969,184.2249,4,0,25,320,32,550); // Ballas 1 AddPlayerClass(103,832.2958,-1080.4476,24.2969,184.2249,4,0,25,320,32,550); // Ballas 2 AddPlayerClass(104,832.2958,-1080.4476,24.2969,184.2249,4,0,25,320,32,550); // Ballas 3 AddPlayerClass(110,2459.0442,-949.4450,80.0800,180.7668,4,0,28,600,27,160); // Vagos AddPlayerClass(109,2459.0442,-949.4450,80.0800,180.7668,4,0,28,600,27,160); // Vagos AddPlayerClass(108,2459.0442,-949.4450,80.0800,180.7668,4,0,28,600,27,160); // Vagos AddPlayerClass(114,1761.7893,-1892.7225,13.5551,269.0211,22,280,29,545,25,180); // Aztecas AddPlayerClass(115,1761.7893,-1892.7225,13.5551,269.0211,22,280,29,545,25,180); // Aztecas AddPlayerClass(116,1761.7893,-1892.7225,13.5551,269.0211,22,280,29,545,25,180); // Aztecas //samochody //TEAM BALLAS AddStaticVehicle(566,1884.9437,-1266.3868,13.2813,94.9774,95,1);AddStaticVehicle(566,1854.9448,-1210.8865,20.1397,0.8816,83,1);AddStaticVehicle(566,1967.0892,-1219.9951,24.9483,182.0590,83,1);AddStaticVehicle(481,1991.1158,-1230.2188,19.9276,130.2759,3,3); AddStaticVehicle(481,1883.8904,-1253.2983,13.0437,88.8027,6,6); return 1;}public OnPlayerConnect(playerid){GameTextForPlayer(playerid,"Los santos: ~r~Gang War",2500,5);SendClientMessage(playerid,ZOLTY,"Witaj na serverze LS Gang War jezeli chcesz uzyskac pomoc wpisz /pomoc");GivePlayerMoney(playerid, 1000); SetPlayerColor(playerid, COLOR_GREY); // Color na poczatku if(gTeam[playerid] == TEAM_GROVE) { SetPlayerColor(playerid, SZARY); for(new i = 0; i < MAX_SAVE; i++) { if(isStringSame(savedNames[i], ReturnPlayerName(playerid), MAX_PLAYER_NAME)) { StatGivePlayerMoney(playerid, savedMoney[i][0]); SetPlayerScore(playerid, savedScore[i][0]); savedScore[i][0]=0; savedMoney[i][0]=0; SendClientMessage(playerid, POMARANCZOWY, "Twoje pieniądze i punkty zostały przywrócone!"); } } new playername[MAX_PLAYER_NAME]; GetPlayerName(playerid, playername[playerid], MAX_PLAYER_NAME); if (dini_Exists(udb_encode(playername[playerid]))) {SendClientMessage(playerid,CZERWONY,"Twoj nick jest zarejstrowany jesli nie zalogujesz sie w ciagu 20 sekund zostaniesz wyrzucony!"); logintimeout[playerid] = SetTimer("LoginTimeout", 20000, 0); new bmp[256]; bmp=dini_Get(udb_encode(playername),"kasa"); } else { SendClientMessage(playerid, ZIELONY, "* Witamy, możesz się zarejestrować komendą: /register [hasło]"); logged[playerid] = 1; } }} public OnGameModeExit(){ print("GameModeExit()"); return 1;}public zapisz(playerid){new string[256];new playername[MAX_PLAYER_NAME];GetPlayerName(playerid, playername, MAX_PLAYER_NAME); if (dini_Exists(udb_encode(playername))) { dini_IntSet(udb_encode(playername),"kasa",GetPlayerMoney(playerid)); } else { format(string, sizeof(string), "* %s nie ma takiego konta.", playername); SendClientMessage(playerid, CZERWONY, string); } return 1;}//---------------------------------------------------------------------------------------//------------------------------------------------------------------------------------------------------public OnPlayerRequestClass(playerid, classid){ SetPlayerClass(playerid, classid); SetupPlayerForClassSelection(playerid); gPlayerClass[playerid] = classid; switch (classid) { case 0,1,2: { GameTextForPlayer(playerid, "~g~GROVE", 500, 3); SetPlayerInterior(playerid,0); SetPlayerPos(playerid,2495.2227,-1686.6245,13.5142); SetPlayerFacingAngle(playerid, 70.0); SetPlayerCameraPos(playerid,2494.6362,-1679.8091,13.3386); SetPlayerCameraLookAt(playerid,2494.6362,-1579.8091,13.3386); } case 3,4,5:{ GameTextForPlayer(playerid, "~p~BALLAS", 500, 3); } case 6,7,8: { GameTextForPlayer(playerid, "~y~VAGOS", 500, 3); } case 9,10,11: { GameTextForPlayer(playerid, "~b~AZTECAS", 500, 3); } } return 1;}//----------------------------------------------------------------------------------------public OnPlayerDisconnect(playerid){{ format(savedNames[savePos], MAX_PLAYER_NAME, "%s",ReturnPlayerName(playerid)); savedMoney[savePos][0] = GetPlayerMoney(playerid); savedScore[savePos][0] = GetPlayerScore(playerid); savePos++; if(savePos >= MAX_SAVE) savePos = 0;zapisz(playerid); } return 1; }//----------------------------------------------------------------------------------------public LoginTimeout(){ for (new i=0;i<MAX_PLAYERS;i++) { if (logged[i] == 0 && GetPlayerState(i) != PLAYER_STATE_NONE) { KickMsg(i, "Ochrona!", "Czas na zalogowanie się skończył!"); } }}//-------------------------------------------------------------------------------------------public OnPlayerSpawn(playerid) { SetPlayerInterior(playerid,0); if(gTeam[playerid] == TEAM_GROVE) { SetPlayerColor(playerid,COLOR_GREEN);// Green GivePlayerWeapon(playerid,26,100); } else if(gTeam[playerid]==TEAM_BALLAS) { SetPlayerColor(playerid,FIOLETOWY); } else if (gTeam[playerid]==TEAM_VAGOS) { SetPlayerColor(playerid,ZOLTY); }else if (gTeam[playerid]==TEAM_VAGOS) { SetPlayerColor(playerid,COLOR_LIGHTBLUE); } return 1;}//-------------------------------------------------------------------------------------------public OnPlayerDeath(playerid, killerid, reason){ new killerstate=GetPlayerState(killerid); new killedScore=GetPlayerScore(playerid); GameTextForPlayer(playerid,"~w~WASTED",3000,2);//self kill if(killerid == INVALID_PLAYER_ID) { SendDeathMessage(INVALID_PLAYER_ID,playerid,reason); ResetPlayerMoney(playerid);SetPlayerScore(playerid, killedScore-1); } else { // Valid kill SendDeathMessage(killerid,playerid,reason); SetPlayerScore(killerid,GetPlayerScore(killerid)+1); GivePlayerMoney(killerid, 1000); }//team kill if(gTeam[killerid] != gTeam[playerid]) { new warning[256]; format(warning, sizeof(warning), "Be careful! You have been punished for teamkilling."); SendClientMessage(killerid, 0xFFFF00AA, warning); SendDeathMessage(killerid,playerid,reason); GivePlayerMoney(killerid, -1000); SetPlayerScore(killerid, GetPlayerScore(killerid) - 1);}//DBif((IsPlayerInAnyVehicle(killerid) && !IsPlayerInAnyVehicle(playerid) && killerstate == PLAYER_STATE_DRIVER && reason != WEAPON_VEHICLE)) { new warning[256]; format(warning, sizeof(warning), "Bez DB."); SendClientMessage(killerid, 0xFFFF00AA, warning); SendDeathMessage(killerid,playerid,reason); GivePlayerMoney(killerid, -1000); SetPlayerScore(killerid, GetPlayerScore(killerid) - 1); } if (dini_Exists(udb_encode(Killer(killerid)))) { new tmp[256]; tmp = dini_Get(udb_encode(Killer(killerid)), "zabojstw"); dini_IntSet(udb_encode(Killer(killerid)), "zabojstw", strval(tmp)+1); if (!dini_Exists(FILE_TOTALSTAT)) dini_Create(FILE_TOTALSTAT); tmp = dini_Get(FILE_TOTALSTAT, "zabojstwa"); dini_IntSet(FILE_TOTALSTAT, "zabojstwa", strval(tmp)+1);}return 1;}//------------------------------------------------------------------------------public StatGivePlayerMoney(playerid, amount){new tmp[256];{if (IsPlayerConnected(playerid))if (GetPlayerMoney(playerid)+amount<=50000000){GivePlayerMoney(playerid,amount);if (!dini_Exists(FILE_TOTALSTAT)) dini_Create(FILE_TOTALSTAT);if (amount > 0)tmp=dini_Get(FILE_TOTALSTAT,"pieniadzezdobyte");dini_IntSet(FILE_TOTALSTAT,"pieniadzezdobyte",strval(tmp)+amount);} else { tmp = dini_Get(FILE_TOTALSTAT, "pieniadzestracone"); dini_IntSet(FILE_TOTALSTAT, "pieniadzestracone", strval(tmp)-amount);} else { SendClientMessage(playerid, CZERWONY, "* Uwaga!!! Masz maximum pieniędzy. Nie możesz mieć ich więcej przy sobie!"); SendClientMessage(playerid, CZERWONY, "* Udaj się do banku, aby wpłacić pieniądze na konto. Banki są w sklepach 24/7"); return 0; } } return 1; }//---------------------------------------------------------------------------------public OnVehicleSpawn(vehicleid){ printf("OnVehicleSpawn(%d)", vehicleid); return 1;}//---------------------------------------------------------------------------------public OnVehicleDeath(vehicleid, killerid){ printf("OnVehicleDeath(%d, %d)", vehicleid, killerid); return 1;}//---------------------------------------------------------------------------------------------public OnPlayerText(playerid,text[]){//TEAM CHAT if(text[0] == '!') { new name[24], string[256]; GetPlayerName(playerid, name, 24); format(string, sizeof(string), "[TC] %s: %s", name, text[1]); for(new i = 0; i < MAX_PLAYERS; i++) { if(IsPlayerConnected(i)) { if(gTeam[i] == gTeam[playerid]) SendClientMessage(i, COLOR_LIGHTBLUE, string); } } return 0; }return 1;} //------------------------------------------------------------------------------------public OnPlayerCommandText(playerid, cmdtext[]){ dcmd(register, 8, cmdtext); dcmd(login, 5, cmdtext); dcmd(pomoc, 5, cmdtext); dcmd(givecash, 8, cmdtext);return SendClientMessage(playerid, CZERWONY, "SERVER: Nie ma takiej komendy!");} dcmd_register(playerid, cmdtext[]){ {new tmp[256];new tmp2[256];new idx;new playername[MAX_PLAYERS];new string[256]; { tmp2=dini_Get(FILE_TOTALSTAT,"Gracze"); tmp=strtok(cmdtext,idx); GetPlayerName(playerid, playername, sizeof(playername)); if (20<strlen(tmp)||strlen(tmp)<5) { SendClientMessage(playerid,CZERWONY,"Haslo musi miec 5 liter ale nie wiecej niz 20"); return 1; } if(!strlen(tmp)) { SendClientMessage(playerid,CZERWONY,"Wpisz:/register[haslo] aby sie zarejstrowac");}if (!dini_Exists(udb_encode(playername))){dini_Create(udb_encode(playername));dini_IntSet(udb_encode(playername), "haslo", udb_hash(tmp));if (!dini_Exists(FILE_TOTALSTAT)) dini_Create(FILE_TOTALSTAT); tmp2 = dini_Get(FILE_TOTALSTAT, "users"); dini_IntSet(FILE_TOTALSTAT, "users", strval(tmp2)+1); dini_Set(FILE_TOTALSTAT, "lastuser", playername); format(string, sizeof(string), "* %s (id: %d) utworzyłeś/aś nowe konto. Twoje hasło to: >>> %s <<< Zapamiętaj je!!!", playername, playerid, tmp); SendClientMessage(playerid, ZIELONY, string); } else { format(string, sizeof(string), "* %s jest już zarejestrowany.", playername,tmp); SendClientMessage(playerid, CZERWONY, string); } return 1; } } }//------------------------------------------------------------------------------ dcmd_login(playerid, cmdtext[]){new tmp[256];new tmp2[256];new idx;new playername[MAX_PLAYERS];new string[256]; tmp=strtok(cmdtext,idx); GetPlayerName(playerid,playername,sizeof(playername)); if(!strlen(tmp)) { SendClientMessage(playerid,CZERWONY,"Wpisz:/login [haslo]"); } if (dini_Exists(udb_encode(playername))){if (logged[playerid]== 1){ SendClientMessage(playerid, CZERWONY, "* Jesteś już zalogowany!"); } else { tmp2=dini_Get(udb_encode(playername),"haslo"); } if (udb_hash(tmp) != strval(tmp2)){ format(string, sizeof(string), "* %s (id: %d) wpisałeś złe hasło: %s.", playername, playerid, tmp); printf(string); SendClientMessage(playerid, CZERWONY, "* Podałeś złe hasło."); GameTextForPlayer(playerid, "~r~Zle haslo!", 3000, 5); zlehaslo[playerid]++; if (zlehaslo[playerid] >= 5) KickMsg(playerid, "Ochrona", "Za dużo prób!");} else { logged[playerid] = 1; KillTimer(logintimeout[playerid]); logged[playerid] = 1; format(string, sizeof(string), "--- %s (id: %d) zalogowany . haslo: %s.", playername, playerid, tmp); printf(string); SendClientMessage(playerid, COLOR_GREEN, "* JEstes zalogowany!"); } }return 1;}//------------------------------------------------------------------------------dcmd_pomoc(playerid,cmdtext[]) {#pragma unused cmdtext SendClientMessage(playerid, ZOLTY,"Witaj na LS Gang War aby zobaczyc liste komend wpisz /komendy"); return 1; } dcmd_givecash(playerid, cmdtext[]){ new idx; new string[256]; new tmp[256]; new playermoney; new moneys; tmp = strtok(cmdtext, idx); if(!strlen(tmp)) { SendClientMessage(playerid, BIALY, "* WPISZ: /givecash [idgracza] [kwota]"); return 1; } giveplayerid = strval(tmp); tmp = strtok(cmdtext, idx); if(!strlen(tmp)) { SendClientMessage(playerid, BIALY, "* WPISZ: /givecash [idgracza] [kwota]"); return 1; } moneys = strval(tmp); if (IsPlayerConnected(giveplayerid)) { GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer)); GetPlayerName(playerid, sendername, sizeof(sendername)); playermoney = GetPlayerMoney(playerid); if (giveplayerid == playerid) { SendClientMessage(playerid, CZERWONY, "* Nie możesz wysłać sobie pieniędzy!"); return 1; } if (moneys > 0 && playermoney >= moneys) { StatGivePlayerMoney(playerid, (0 - moneys)); StatGivePlayerMoney(giveplayerid, moneys); format(string, sizeof(string), "* Oddałeś/aś graczowi %s (id: %d), $%d pieniędzy.", giveplayer,giveplayerid, moneys); SendClientMessage(playerid, ZOLTY, string); format(string, sizeof(string), "* Otrzymałeś/aś $%d pieniędzy od gracza %s (id: %d).", moneys, sendername, playerid); SendClientMessage(giveplayerid, ZIELONY, string); } else { SendClientMessage(playerid, CZERWONY, "* Nieprawidłowa kwota transakcji."); } } else { format(string, sizeof(string), "* %d nie ma takiego gracza!", giveplayerid); SendClientMessage(playerid, CZERWONY, string); } return 1;}//------------------------------------------------------------------------------public KickMsg(playerid, kickername[], reason[]){new string[256]; new tmp[256]; new playername[MAX_PLAYER_NAME]; format(string, sizeof(string), "*** %s (id: %d) został/ła wyrzucony/na przez administratora: %s. Powód: %s ***", playername, playerid, kickername, reason);GetPlayerName(playerid,playername,sizeof(playername));printf(string); SendClientMessageToAll(CZERWONY, string); Kick(playerid); tmp=dini_Get(FILE_TOTALSTAT,"kicki"); dini_IntSet(FILE_TOTALSTAT, "kicki", strval(tmp)+1);return 1;}//------------------------------------------------------------------------------public SavedUpdate(){ for(new i = 0; i < MAX_SAVE; i++) { savedScore[i][0] = 0; savedMoney[i][0] = 0; savedNames[i][0] = 0; }}//------------------------------------------------------------------------------public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger){ printf("OnPlayerEnterVehicle(%d, %d, %d)", playerid, vehicleid, ispassenger); return 1;}public OnPlayerExitVehicle(playerid, vehicleid){ printf("OnPlayerExitVehicle(%d, %d)", playerid, vehicleid); return 1;}public OnPlayerEnterCheckpoint(playerid){ printf("OnPlayerEnterCheckpoint(%d)", playerid); return 1;}public SetupPlayerForClassSelection(playerid){ SetPlayerInterior(playerid,14); SetPlayerPos(playerid,258.4893,-41.4008,1002.0234); SetPlayerFacingAngle(playerid, 90.0); SetPlayerCameraPos(playerid,256.0815,-43.0475,1003.0234); SetPlayerCameraLookAt(playerid,258.4893,-41.4008,1002.0234);}//-----------------------------------------------------------------------------public OnPlayerLeaveCheckpoint(playerid){ printf("OnPlayerLeaveCheckpoint(%d)", playerid); return 1;}public PlayerName(playerid){ new Name[MAX_PLAYER_NAME]; GetPlayerName(playerid, Name, sizeof(Name)); return Name;}public LogIn(playerid){ logged[playerid]=1; return 1;}isStringSame(const string1[], const string2[], len) {for(new i = 0; i < len; i++) { if(string1[i]!=string2[i]) return 0; if(string1[i] == 0 || string1[i] == '\n') return 1; } return 1;}public ReturnPlayerName(playerid) //By Alex "Y_Less" Cole{ new pname[MAX_PLAYER_NAME]; GetPlayerName(playerid, pname, sizeof (pname)); return pname;}public Killer(killerid){new killer[MAX_PLAYER_NAME];GetPlayerName(killerid, killer, sizeof(killer)); return killer;}//--------------------------------------------------------------------------------//-------------------------------------------------------------------------------SetPlayerClass(playerid, classid){ if(classid == 0) { gTeam[playerid] = TEAM_GROVE; }else if(classid==1){gTeam[playerid] = TEAM_BALLAS;}else if(classid==2){gTeam[playerid] = TEAM_VAGOS;}else if(classid==3){gTeam[playerid] = TEAM_AZTECAS;}}