#include #include #include #include #include main(){} #define FOLDER_USERS "/Users/" #define FOLDER_ZONES "/Zones/" #define FOLDER_DOORS "/Doors/" #define FOLDER_ITEMS "/Items/" #define FOLDER_GROUPS "/Groups/" #define FOLDER_CONTACTS "/Contacts/" #define FOLDER_MESSAGES "/Messages/" #define FOLDER_OBJECTS "/Objects/" #define FOLDER_TEXTURES "/Textures/" #define FOLDER_VEHICLES "/Vehicles/" #define FOLDER_ACTORS "/Actors/" #define UID_FILE "/UID.ini" #undef MAX_PLAYERS #define MAX_PLAYERS 20 #define MAX_USERS 10000 #define D_LOGIN 0 #define D_NOTFOUND 1 #define D_CREATE 2 #define D_FIND 3 #define D_AMMO 4 #define D_PASS 5 #define D_ADMINS 6 #define D_INFO 7 #define D_CREATEDOOR 8 #define D_ITEMS 9 #define D_ITEM_OPTIONS 10 #define D_NEARBY_ITEMS 11 #define D_USE_WEAP 12 #define D_PHONE 13 #define D_SMS 14 #define D_MESSAGES 15 #define D_CALL 16 #define D_ANSWER 17 #define D_CONTACTS 18 #define D_FRIENDS 19 #define D_ADD_CONTACT 20 #define D_REMOVE_CONTACT 21 #define D_911_NUMBERS 22 #define D_VCARD 23 #define D_VCARD_ACCEPT 24 #define D_STATS 25 #define D_ZONE 26 #define D_SERVICES 27 #define D_CREATE_GROUP 28 #define D_USERS 29 #define D_SETTINGS 30 #define D_CHANGE_PASS 31 #define D_ANIMS 32 #define D_DOOR_SETTINGS 33 #define D_BOOMBOX 34 #define D_CHANGE_URL 35 #define D_CHANGE_DOOR_NAME 36 #define D_HELP 37 #define D_COMMANDS 38 #define D_CMDS_OBJECT 39 #define D_DOOR_GROUP 40 #define D_DOOR_COST 41 #define D_CHANGE_GROUP_NAME 42 #define D_GROUP_PANEL 43 #define D_GROUP_KICK 44 #define D_CHANGE_PERMS 45 #define D_CHANGEPERMS 46 #define D_JOIN_GROUP 47 #define D_CHANGE_GROUP_COLOR 48 #define D_VEHICLES 49 #define D_WITHDRAW 50 #define D_DEPOSIT 51 #define D_ATM 52 #define D_ADMIN_DOOR 53 #define D_V_OPTIONS 54 #define D_TRADE 55 #define D_TRADE_2 56 #define D_TRADE_3 57 #define D_NEAR_PLAYERS 58 #define D_GOVERMENT 59 #define D_BANK 60 #define D_DOCUMENTS 61 #define D_VEHICLE_GROUP 62 #define D_BAG 63 #define D_BAGS 64 #define D_CONNECT 65 #define D_BUY_REGISTER 66 #define D_MEDIC 67 #define UNRANKED 0 #define SP_1 1 #define SP_2 2 #define SP_3 3 #define GM 4 #define SGM 5 #define ADMIN 6 #define ADMINISTRATION 7 #define DEVELOPER 8 #define PARTY 0 #define LSPD 1 #define LSMC 2 #define RESTAURANT 3 #define GANG 4 #define MOTO_GANG 5 #define SAN_NEWS 6 #define SHOP_24_7 7 #define BANK 8 #define GOVERMENT 9 #define WORKSHOP 10 #define FUNITURE_SHOP 11 #define CLOTCHES_SHOP 12 #define HOTEL 13 #define CARS_SALOON 14 #define STRANGE_GROUP 15 #define EVENT_TEAM 16 #define HEX_WHITE "{FFFFFF}" #define HEX_BLUE "{AAB0FF}" #define HEX_RED "{FFA29C}" #define HEX_GRAY "{CCCACC}" #define HEX_YELLOW "{FFBE5E}" #define HEX_BLACK "{000000}" #define HEX_GREEN "{9FD18B}" #define HEX_PURPLE "{8671C0}" #define HEX_DARKRED "{FF3C3A}" #define COLOR_RED 0xFFA29CFF #define COLOR_BLUE 0xAAB0FFFF #define COLOR_WHITE 0xF7F7F8FF #define COLOR_GRAY 0xA6A4A7FF #define COLOR_ORANGE 0xFFA138FF #define COLOR_PINK 0xFFC3FFFF #define COLOR_YELLOW 0xEED642FF #define COLOR_GREEN 0x77C772FF #define COLOR_BLACK 0x00000000 #define COLOR_DARKRED 0xD72D32FF #define CHAT_SHADE_1 0xEEEEEEFF #define CHAT_SHADE_2 0xC8C8C8FF #define CHAT_SHADE_3 0xB4B4B4FF #define CHAT_SHADE_4 0x8C8C8CFF #define CHAT_SHADE_5 0x514F56FF #define CHAT_SHADE_6 0x302D33FF #define ME_SHADE_1 0xC5A9D2FF #define ME_SHADE_2 0xB097CAFF #define ME_SHADE_3 0xB08DC2FF #define ME_SHADE_4 0xB08DB8FF #define ME_SHADE_5 0xA184B0FF #define ME_SHADE_6 0xA184A9FF #define DO_SHADE_1 0xB39CEDFF #define DO_SHADE_2 0xA292D6FF #define DO_SHADE_3 0xA292CAFF #define DO_SHADE_4 0x9892C5FF #define DO_SHADE_5 0x9883C5FF #define DO_SHADE_6 0xA697D4FF // Spawn states #define SPAWN_OR_HOUSE 0 #define LAST_POSITION 1 #define ADMINJAIL 2 #define FIRST_MALE_SKIN 7 #define FIRST_FEMALE_SKIN 12 #define LAST_MALE_SKIN 300 #define LAST_FEMALE_SKIN 212 #define PLAYER_NORMAL_COLOR 0xFFFFFF88 #define LOGGED_COLOR 0xB4B4B400 #define UNLOGGED_COLOR 0x00000000 #define DAMAGE_COLOR 0xED444788 #define DESC_COLOR 0xB992C388 #define MAX_ZONES 600 #define ZONE_SIZE 100 #define MAX_DOORS 10000 #define MAX_ITEMS 10000 #define MAX_MESSAGES 10000 #define MAX_CONTACTS 10000 #define MAX_GROUPS 10000 #define MAX_TEXTURES 50000 #undef MAX_OBJECTS #define MAX_OBJECTS 50000 #undef MAX_VEHICLES #define MAX_VEHICLES 50000 #undef MAX_ACTORS #define MAX_ACTORS 1000 enum E_NICK { Text3D:nID, nStr[525], nColor }; new pNick[MAX_PLAYERS][E_NICK]; enum E_DESC { Text3D:dID, bool:dIsDescOnPlayer }; new pDesc[MAX_PLAYERS][E_DESC]; new PlayerText:TextDrawDoorInfo[MAX_PLAYERS]; new LastUID; new PlayerText:BWTextDraw[MAX_PLAYERS]; enum E_USER { uPass[32], uName[MAX_PLAYER_NAME], uSex, uUID, uSkin, Float:uHealth, uCash, uTutorial, uStrenght, uRank, uBW, uBWReason, uAJ, uGroup, uGroup2, uGroup3, bool:uGroupMapper, bool:uGroupMapper2, bool:uGroupMapper3, uGroupDuty, uGroupDuty2, uGroupDuty3, uMin, uH, uSP, uHouseSpawn, uBank, bool:uMapper, uBornDate, uSpawnState, uSpawnVW, Float:uSpawnX, Float:uSpawnY, Float:uSpawnZ, uID, uDrivingLicense, uBankAccount, bool:uBelts, bool:uAFK, uBan, uBanHour, uBanMin, uBanReason[128], uBanDate, uBanYear, uBanMonth, uBanDay, bool:uOnline, uLastLogin, bool:uFreeze, bool:uOOC, bool:uAchievementManDown }; new UserCache[MAX_USERS][E_USER]; enum E_REGISTER { rSex, rName[MAX_PLAYER_NAME], rBornDate }; new RegisterCache[MAX_PLAYERS][E_REGISTER]; new pUID[MAX_PLAYERS]; new PlayerText:BottomTextDraw[MAX_PLAYERS]; new PlayerText:RadarTextDraw[MAX_PLAYERS]; new RadarTextDrawTimer[MAX_PLAYERS]; new DoorInfoTextTimer[MAX_PLAYERS]; new ChooseSkinTimer[MAX_PLAYERS]; new JaneSmith[MAX_PLAYERS]; new Text3D:JaneSmithLabel[MAX_PLAYERS]; new Text:GlobalLogo; new Text:RadioTextDraw; new ClearNicknameColorTimer[MAX_PLAYERS]; new Text:PenalityTextDraw; new PlayerText:AJTextDraw[MAX_PLAYERS]; enum E_ZONE { Float:zMinX, Float:zMinY, Float:zMaxX, Float:zMaxY, zID, zYard, zCostH, zCostB, zName[64] }; new ZoneData[MAX_ZONES][E_ZONE]; new LastdUID; enum E_DOOR { dUID, dName[32], dType, Float:dInsX, Float:dInsY, Float:dInsZ, Float:dOutX, Float:dOutY, Float:dOutZ, dInsVW, dOutVW, dPlayerUID, dGroupUID, dDestroyed, dOpen, dUrl[256], dEnterCost, dVehicle }; new DoorCache[MAX_DOORS][E_DOOR]; new DoorPickupID[MAX_PICKUPS]; new PlayerMessageUID[MAX_PLAYERS]; enum E_ITEM { iUID, iType, iVal, iVal2, iVal3, iName[128], iState, Float:iX, Float:iY, Float:iZ, iVW, iOwner, iActive, Float:iAttachX, Float:iAttachY, Float:iAttachZ, Float:iAttachrX, Float:iAttachrY, Float:iAttachrZ, Float:iSizeX, Float:iSizeY, Float:iSizeZ }; new ItemCache[MAX_ITEMS][E_ITEM]; new LastiUID; enum E_MESSAGE { mUID, mText[128], mReceiver, mSender }; new MsgCache[MAX_MESSAGES][E_MESSAGE]; new LastMsgUID; enum E_CALL { cCaller, cCalling }; new CallData[MAX_PLAYERS][E_CALL]; new LastContactUID; enum E_CONTACT { cNum, cOwner, cName[128], cState }; new ContactCache[MAX_CONTACTS][E_CONTACT]; new VCardSender[MAX_PLAYERS]; new ghour, gmin, gsec, gmsg[128]; new PlayerText:Group[MAX_PLAYERS]; new PlayerText:Group2[MAX_PLAYERS]; new PlayerText:Group3[MAX_PLAYERS]; new PlayerText:GroupLabel[MAX_PLAYERS]; enum E_GROUP { gUID, gType, gName[32], gBank, bool:gChatIC, bool:gChatOOC, gColor[16], gState }; new GroupCache[MAX_GROUPS][E_GROUP]; new LastgUID; new pChoosingTxd[MAX_PLAYERS]; new pDuty[MAX_PLAYERS]; new PlayerText:DutyTxd[MAX_PLAYERS]; enum E_OBJECT { oUID, oID, Float:oX, Float:oY, Float:oZ, Float:orX, Float:orY, Float:orZ, oVW, oState, oModel, oTimer, oPlayer, oGate, Float:oGateX, Float:oGateY, Float:oGateZ, Float:oGaterX, Float:oGaterY, Float:oGaterZ, oOwner, oOwnerType }; new ObjectCache[MAX_OBJECTS][E_OBJECT]; new PlayerText:ObjectInfo[MAX_PLAYERS]; new LastoUID; new pLast[MAX_PLAYERS]; new LasttUID; enum E_TEXTURE { tTexturename[128], tTxdname[128], tColor, tModelid, tObjectUID, tIndex, tMaterialsize, tFontsize, tBold, tBackcolor, tAlignment, tType }; new TextureCache[MAX_TEXTURES][E_TEXTURE]; new LoginAttempt[MAX_PLAYERS]; new PlayerText:VehicleInfo[MAX_PLAYERS]; new LastvUID; enum E_VEHICLE { vUID, vID, vColor, vColor2, vOwner, vState, Float:vPosX, Float:vPosY, Float:vPosZ, Float:vAngle, vVW, vFuel, vModel, Float:vHP, vTimer, vEngine, vLights, vDoors, vBoot, vBonnet, vAlarm, vOpen, vObjective, bool:vRegister } new VehicleCache[MAX_VEHICLES][E_VEHICLE]; new MapIcon[MAX_PLAYERS]; new MapIconTimer[MAX_PLAYERS]; new ObjectInfoTimer[MAX_PLAYERS]; enum E_TRADE { tType, tSender, tReceiver, tPrice, tVal }; new TradeData[MAX_PLAYERS][E_TRADE]; new bool:VehicleAttackedByCheater[MAX_VEHICLES]; new aduty[MAX_PLAYERS]; new LastaUID; enum E_ACTOR { aUID, aID, aSkin, aAnimLib[32], aAnimName[32], aType, aName[64], Float:aPosX, Float:aPosY, Float:aPosZ, aVW, Float:aAng, Text3D:aLabel, aRepeat }; new ActorCache[MAX_ACTORS][E_ACTOR]; enum E_ACTION { aType }; new ActionData[MAX_PLAYERS][E_ACTION]; enum E_DIALOG { dialogVal, dialogVal2, dialogVal3 } new pVal[MAX_PLAYERS]; new pVal2[MAX_PLAYERS]; new pVal3[MAX_PLAYERS]; enum E_REPAIR { repairTimer, repairTime, repairVehicleUID } new PlayerRepairingVehicle[MAX_PLAYERS][E_REPAIR]; new PlayerTick[MAX_PLAYERS]; new gyear, gmonth, gday; new LastCar[MAX_PLAYERS]; new bool:ac[MAX_PLAYERS]; new bool:pChangeInterior[MAX_PLAYERS]; new godmodecount[MAX_PLAYERS]; new Attacker[MAX_PLAYERS]; new bool:pEnteringCar[MAX_PLAYERS]; public OnGameModeInit() { if(!dfile_FileExists(FOLDER_USERS) || !dfile_FileExists(FOLDER_ZONES) || !dfile_FileExists(FOLDER_DOORS) || !dfile_FileExists(FOLDER_ITEMS) || !dfile_FileExists(FOLDER_MESSAGES) || !dfile_FileExists(FOLDER_CONTACTS) || !dfile_FileExists(FOLDER_GROUPS) || !dfile_FileExists(FOLDER_OBJECTS) || !dfile_FileExists(FOLDER_TEXTURES) || !dfile_FileExists(FOLDER_VEHICLES) || !dfile_FileExists(FOLDER_ACTORS)) { print("> Make sure all folders exist in scriptfiles: Users, Zones, Doors, Messages, Contacts, Groups, Objects, Textures, Vehicles, Actors. If not - create them and restart server."); return 0; } if(!dfile_FileExists(UID_FILE)) { print("> Creating missing UID.ini file.."); dfile_Create(UID_FILE); dfile_Open(UID_FILE); dfile_WriteInt("UID", 1); dfile_WriteInt("dUID", 1); dfile_WriteInt("iUID", 1); dfile_WriteInt("MsgUID", 1); dfile_WriteInt("ContactUID", 1); dfile_WriteInt("gUID", 1); dfile_WriteInt("oUID", 1); dfile_WriteInt("rUID", 1); dfile_WriteInt("vUID", 1); dfile_WriteInt("aUID", 1); dfile_SaveFile(); dfile_CloseFile(); print("> Succefully created missing UID.ini file in scriptfiles folder!"); } SendRconCommand("hostname [przygotowania] Epizd Fort Carson"); SendRconCommand("gamemodetext Projekt RP"); SendRconCommand("mapname Fort Carson"); gettime(ghour, gmin, gsec); SetWorldTime(ghour); LoadUIDs(); LoadAccounts(); LoadGroups(); LoadDoors(); LoadItems(); LoadMessages(); LoadContacts(); LoadObjects(); LoadTextures(); LoadVehicles(); LoadActors(); print("Loaded everything"); SetGameModeText("Szkodnik-RP"); EnableStuntBonusForAll(0); DisableInteriorEnterExits(); ManualVehicleEngineAndLights(); ShowNameTags(0); CreateTextDraws(); SetTimer("min_timer", 1000*60, true); SetTimer("sec_timer", 1000, true); SetTimer("auto_save", 5000*60, true); CreateZones(); return 1; } stock ActorPath(actoruid) { new path[128]; format(path, sizeof(path), FOLDER_ACTORS"%d.ini", actoruid); return path; } forward auto_save(); public auto_save() { SaveUIDs(); SaveAccounts(); SaveZones(); SaveDoors(); SaveItems(); SaveMessages(); SaveContacts(); SaveGroups(); SaveObjects(); SaveTextures(); SaveVehicles(); SaveActors(); } stock GetVehicleSpeed(vehicleid) { new speed; new Float:X, Float:Y, Float:Z; GetVehicleVelocity(vehicleid, X, Y, Z); X = X*X*100; Y = Y*Y*100; Z = Z*Z*100; speed = floatround(X+Y+Z); return speed; } stock GetPlayerSpeed(playerid) { new speed; new Float:X, Float:Y, Float:Z; GetPlayerVelocity(playerid, X, Y, Z); X = X*X*100; Y = Y*Y*100; Z = Z*Z*100; speed = floatround(X+Y+Z); return speed; } stock GetPlayerGroundSpeed(playerid) { new speed; new Float:X, Float:Y, Float:Z; GetPlayerVelocity(playerid, X, Y, Z); X = X*X*100; Y = Y*Y*100; speed = floatround(X+Y); return speed; } stock GetPlayerHighSpeed(playerid) { new speed; new Float:X, Float:Y, Float:Z; GetPlayerVelocity(playerid, X, Y, Z); Z = Z*Z*100; speed = floatround(Z); return speed; } stock GetPlayerVehicleInRange(playerid) { new Float:vX, Float:vY, Float:vZ; for(new i=1; i<=GetVehiclePoolSize(); i++) { GetVehiclePos(i, vX, vY, vZ); if(IsPlayerInRangeOfPoint(playerid, 5.0, vX, vY, vZ) && VehicleCache[GetVehicleUID(i)][vOwner] == pUID[playerid]) return 1; } return 0; } forward sec_timer(); public sec_timer() { new vid, vuid, vinfo[128]; for(new i; i<=GetPlayerPoolSize(); i++) { if(IsPlayerConnected(i)) { if(pUID[i]) { if(IsPlayerInAnyVehicle(i)) { if(GetPlayerVehicleSeat(i) == 0) { vid = GetPlayerVehicleID(i), vuid = GetVehicleUID(vid); if(VehicleCache[vuid][vEngine]) { if(GetVehicleModel(i) == 481 || GetVehicleModel(i) == 509 || GetVehicleModel(i) == 510) continue; new vspeed = GetVehicleSpeed(vid); format(vinfo, sizeof(vinfo), "~b~~h~~h~~h~Licznik: ~w~%d km/h~n~~b~~h~~h~~h~Paliwo: ~w~%d/100", vspeed, VehicleCache[vuid][vFuel]); PlayerTextDrawSetString(i, VehicleInfo[i], vinfo); PlayerTextDrawShow(i, VehicleInfo[i]); } } } else { if(GetPlayerGroundSpeed(i) > 7) { if(LastCar[i]) continue; AJPlayer(i, "System", "Player speedhack (A)", 30); } } if(GetPlayerSpecialAction(i) == SPECIAL_ACTION_USEJETPACK) { KickPlayer(i, "System", "Jetpack spawn"); } if(GetPlayerWeapon(i) != 0) { for(new j=1;j 575) { GoRight(i); continue; } if(i == 575) { GoUp(i); continue; } if(i > 550) { GoLeft(i); continue; } if(i == 550) { GoUp(i); continue; } if(i > 525) { GoRight(i);continue; } if(i == 525) { GoUp(i); continue; } if(i>500) { GoLeft(i); continue; } if(i == 500) { GoUp(i); continue; } if(i > 475) { GoRight(i); continue; } if(i == 475) { GoUp(i); continue; } if(i > 450) { GoLeft(i); continue; } if(i == 450) { GoUp(i); continue; } if(i > 425) { GoRight(i);continue; } if(i == 425) { GoUp(i); continue; } if(i>400) { GoLeft(i); continue; } if(i == 400) { GoUp(i); continue; } if(i > 375) { GoRight(i); continue; } if(i == 375) { GoUp(i); continue; } if(i > 350) { GoLeft(i); continue; } if(i == 350) { GoUp(i); continue; } if(i > 325) { GoRight(i); continue; } if(i == 325) { GoUp(i); continue; } if(i> 300) { GoLeft(i); continue; } if(i == 300) { GoUp(i); continue; } if(i > 275) { GoRight(i); continue; } if(i == 275) { GoUp(i); continue; } if(i > 250) { GoLeft(i); continue; } if(i == 250) { GoUp(i); continue; } if(i > 225) { GoRight(i); continue; } if(i == 225) { GoUp(i); continue; } if(i > 200) { GoLeft(i); continue; } if(i == 200) { GoUp(i); continue; } if(i > 175) { GoRight(i); continue; } if(i == 175) { GoUp(i); continue; } if(i > 150) { GoLeft(i); continue; } if(i == 150) { GoUp(i); continue; } if(i > 125) { GoRight(i); continue; } if(i == 125) { GoUp(i); continue; } if(i > 100) { GoLeft(i); continue; } if(i == 100) { GoUp(i); continue; } if(i > 75) { GoRight(i); continue; } if(i == 75) { GoUp(i); continue; } if(i > 50) { GoLeft(i); continue; } if(i == 50) { GoUp(i); continue; } if(i > 25) { GoRight(i); continue; } if(i == 25) { GoUp(i); continue; } GoLeft(i); } } stock GoUp(i) { ZoneData[i][zMinX] = ZoneData[i-1][zMinX]; ZoneData[i][zMinY] = ZoneData[i-1][zMinY]+250; ZoneData[i][zMaxX] = ZoneData[i-1][zMaxX]; ZoneData[i][zMaxY] = ZoneData[i-1][zMaxY]+250; ZoneData[i][zID] = CreateDynamicRectangle(ZoneData[i][zMinX], ZoneData[i][zMinY], ZoneData[i][zMaxX], ZoneData[i][zMaxY], -1, -1, -1); if(!dfile_FileExists(ZonePath(i))) CreateZoneFile(i); else LoadZoneFile(i); } stock GoRight(i) { ZoneData[i][zMinX] = ZoneData[i-1][zMinX]+250; ZoneData[i][zMinY] = ZoneData[i-1][zMinY]; ZoneData[i][zMaxX] = ZoneData[i-1][zMaxX]+250; ZoneData[i][zMaxY] = ZoneData[i-1][zMaxY]; ZoneData[i][zID] = CreateDynamicRectangle(ZoneData[i][zMinX], ZoneData[i][zMinY], ZoneData[i][zMaxX], ZoneData[i][zMaxY], -1, -1, -1); if(!dfile_FileExists(ZonePath(i))) CreateZoneFile(i); else LoadZoneFile(i); } stock GoLeft(i) { ZoneData[i][zMinX] = ZoneData[i-1][zMinX]-250; ZoneData[i][zMinY] = ZoneData[i-1][zMinY]; ZoneData[i][zMaxX] = ZoneData[i-1][zMaxX]-250; ZoneData[i][zMaxY] = ZoneData[i-1][zMaxY]; ZoneData[i][zID] = CreateDynamicRectangle(ZoneData[i][zMinX], ZoneData[i][zMinY], ZoneData[i][zMaxX], ZoneData[i][zMaxY], -1, -1, -1); if(!dfile_FileExists(ZonePath(i))) CreateZoneFile(i); else LoadZoneFile(i); } stock CreateTextDraws() { getdate(gyear, gmonth, gday); new str[64]; format(str, sizeof(str), "Projekt-RP: %02d.%02d.%02d", gyear-2000, gmonth, gday); GlobalLogo = TextDrawCreate(73.075904, 424.104705, str); TextDrawLetterSize(GlobalLogo,0.261680, 1.216563); TextDrawAlignment(GlobalLogo, 2); TextDrawColor(GlobalLogo, -1); TextDrawSetShadow(GlobalLogo, 0); TextDrawSetOutline(GlobalLogo, 1); TextDrawBackgroundColor(GlobalLogo, 25); TextDrawFont(GlobalLogo, 1); TextDrawSetProportional(GlobalLogo, 1); TextDrawSetShadow(GlobalLogo, 0); RadioTextDraw = TextDrawCreate(1.697080, 437.926574, "~b~~h~~h~~h~San News~w~ Radio aktualnie nic nie nadaje.."); TextDrawLetterSize(RadioTextDraw, 0.175534, 0.999134); TextDrawTextSize(RadioTextDraw,1052.000000, 0.000000); TextDrawAlignment(RadioTextDraw, 1); TextDrawColor(RadioTextDraw, -1); TextDrawUseBox(RadioTextDraw, 1); TextDrawBoxColor(RadioTextDraw, 5); TextDrawSetShadow(RadioTextDraw, 0); TextDrawSetOutline(RadioTextDraw, 1); TextDrawBackgroundColor(RadioTextDraw, 89); TextDrawFont(RadioTextDraw, 1); TextDrawSetProportional(RadioTextDraw, 1); TextDrawSetShadow(RadioTextDraw, 0); PenalityTextDraw = TextDrawCreate(7.481735, 272.249847, "~r~Kara~w~~n~Gracz: Hype~n~Nadawca: Hype~n~~y~Masowy DM w centrum"); TextDrawLetterSize(PenalityTextDraw, 0.200876, 1.004995); TextDrawAlignment(PenalityTextDraw, 1); TextDrawColor(PenalityTextDraw, -1); TextDrawSetShadow(PenalityTextDraw, 0); TextDrawSetOutline(PenalityTextDraw, 1); TextDrawBackgroundColor(PenalityTextDraw, 83); TextDrawFont(PenalityTextDraw, 1); TextDrawSetProportional(PenalityTextDraw, 1); TextDrawSetShadow(PenalityTextDraw, 0); } public OnGameModeExit() { SaveUIDs(); SaveAccounts(); SaveZones(); SaveDoors(); SaveItems(); SaveMessages(); SaveContacts(); SaveGroups(); SaveObjects(); SaveTextures(); SaveVehicles(); SaveActors(); return 1; } stock ContactPath(contactid) { new path[64]; format(path, sizeof(path), FOLDER_CONTACTS"%d.ini", contactid); return path; } stock LoadContacts() { new str[128]; for(new i=1; i= 10) return ShowDialogInfo(playerid, "Twój stan zdrowia jest dobry, nie potrzebujesz leku."); if(UserCache[pUID[playerid]][uCash] < 50) return TextDrawForPlayerEx(playerid, 1, "Nie posiadasz przy sobie tylu pieniedzy.", 3000); UserCache[pUID[playerid]][uCash] -= 50; GivePlayerMoney(playerid, -50); ShowDialogInfo(playerid, "Zakupiono lek.\nLek pojawił się w Twoim ekwipunku."); return CreateItem(playerid, 4, 10, 0, 1, "Lek"); } } } } case D_BUY_REGISTER: { if(response) { if(UserCache[pUID[playerid]][uCash] >= 300) { UserCache[pUID[playerid]][uCash] -= 300; GivePlayerMoney(playerid, -300); CreateItem(playerid, 14, 0, 0, 0, "Rejestracja pojazdu"); return ShowDialogInfo(playerid, "Zakupiono nowy przedmiot! Rejestracja pojazdu pojawiła się w Twoim ekwipunku."); } return TextDrawForPlayerEx(playerid, 1, "Nie posiadasz przy sobie az tylu pieniedzy by zakupic ten przedmiot.", 3000); } } case D_BAGS: { if(response) { new baguid = strval(inputtext); new count; for(new i=1; i= 20) return ShowDialogInfo(playerid, "W tej torbie nie zmieści się aż tyle przedmiotów."); new choosenuid = GetPVarInt(playerid, "iUID"); ItemCache[choosenuid][iState] = 4; ItemCache[choosenuid][iOwner] = baguid; return TextDrawForPlayerEx(playerid, 1, "~b~~h~~h~~h~Schowano przedmiot", 3000); } return 1; } case D_BAG: { if(response) { new choosenuid = strval(inputtext); ItemCache[choosenuid][iOwner] = pUID[playerid]; ItemCache[choosenuid][iState] = 0; return TextDrawForPlayerEx(playerid, 1, "~b~~h~~h~~h~Wyjeto przedmiot", 3000); } return 1; } case D_DOCUMENTS: { if(response) { switch(listitem) { case 0: { new uid = strval(inputtext); new info[256]; format(info, sizeof(info), "Dowód osobisty:\n\nImię i nazwisko: %s\nPłeć: %s\nData urodzenia: %d", strreplace(UserCache[uid][uName], '_', ' '), (UserCache[uid][uSex]) ? ("Kobieta") : ("Mężczyzna"), UserCache[uid][uBornDate]); ShowDialogInfo(playerid, info); } } } } case D_TRADE_3: { if(response) { if(ActionData[playerid][aType] == 2) { if(UserCache[pUID[playerid]][uCash] < 100) return TextDrawForPlayerEx(playerid, 1, "Nie posiadasz przy sobie tyle gotowki.", 5000); UserCache[pUID[playerid]][uCash] -=100; GivePlayerMoney(playerid, -100); UserCache[pUID[playerid]][uID] = 1; ActionData[playerid][aType] = 0; return ShowDialogInfo(playerid, "Super! Zdobyłeś/aś dokumenty osobisty postaci.\nMożesz skorzystać z komendy: /pokaz dowod [ID/Część nazwy gracza]\nby pokazać komuś swój dokument."); } } return 1; } case D_GOVERMENT: { new msg[128]; new actoruid = GetActorInRange(playerid); if(response) { new option = strval(inputtext); switch(option) { case 1: { if(UserCache[pUID[playerid]][uID]) return ShowDialogInfo(playerid, "Posiadasz już dokument osobisty."); ActionData[playerid][aType] = 2; return TextDrawForPlayerEx(playerid, 1, "Odegraj przekazanie dokumentu urzednikowi.~n~/me wyjmuje z teczki swoj akt urodzenia i kladzie go na ladzie.", 15000); } case 3: { format(msg, sizeof(msg), "%s mówi: Poproszę o Pański dowód osobisty oraz dowód przynależności pojazdu.", strreplace(ActorCache[actoruid][aName], '_', ' ')); SendClientMessage(playerid, COLOR_GRAY, msg); pVal[playerid] = 1; pVal2[playerid] = actoruid; PlayerTextDrawSetString(playerid, RadarTextDraw[playerid], "Odegraj przekazanie urzednikowi wymaganych dokumentow~n~za pomoca komendy /me."); return PlayerTextDrawShow(playerid, RadarTextDraw[playerid]); } default: ShowDialogInfo(playerid, "Ta funkcja nie jest jeszcze dostępna."); } } else { format(msg, sizeof(msg), "%s mówi: Do widzenia!", strreplace(ActorCache[actoruid][aName], '_', ' ')); return SendClientMessage(playerid, COLOR_GRAY, msg); } } case D_BANK: { new auid = GetActorInRange(playerid); new msg[128]; if(response) { new option = strval(inputtext); switch(option) { case 1: { if(UserCache[pUID[playerid]][uBankAccount]) { format(msg, sizeof(msg), "%s mówi: Konto bankowe jest już zarejestrowane w systemie.", strreplace(ActorCache[auid][aName], '_', ' ')); ShowDialogInfo(playerid, "Posiadasz już konto bankowe."); } else if(!UserCache[pUID[playerid]][uID]) { format(msg, sizeof(msg), "%s mówi: Aby otworzyć konto w naszym banku, potrzebny jest dowód osobisty.",strreplace(ActorCache[auid][aName], '_', ' ')); ShowDialogInfo(playerid, "Aby otworzyć konto bankowe musisz mieć wyrobiony dokument osobisty postaci.\nUdaj się do urzędu."); } else { format(msg, sizeof(msg), "%s mówi: Proszę podać swój dowód osobisty.", strreplace(ActorCache[auid][aName], '_', ' ')); ActionData[playerid][aType] = 1; return TextDrawForPlayerEx(playerid, 1, "Odegraj przekazanie dokumentu urzednikowi.~n~/me wyjmuje z teczki swoj dowod osobisty i kladzie go na lade.", 15000); } return SendClientMessage(playerid, CHAT_SHADE_2, msg); } default: return ShowDialogInfo(playerid, "Ta funkcja będzie dostępna już wkrótce!"); } } format(msg, sizeof(msg), "%s mówi: Do widzenia!", strreplace(ActorCache[auid][aName], '_', ' ')); return SendClientMessage(playerid, CHAT_SHADE_2, msg); } case D_TRADE_2: { new sentuid = TradeData[playerid][tSender]; for(new i; i<=GetPlayerPoolSize(); i++) { if(IsPlayerConnected(i)) { if(pUID[i] == sentuid) { new Float:X, Float:Y, Float:Z; GetPlayerPos(i, X, Y, Z); if(IsPlayerInRangeOfPoint(playerid, 5.0, X, Y, Z)) { new pvw = GetPlayerVirtualWorld(playerid); if(pvw == GetPlayerVirtualWorld(i)) { new vuid = TradeData[playerid][tVal]; new price = TradeData[playerid][tPrice]; if(response) { if(TradeData[playerid][tType] == 1) { if(GetPlayerItemsCount(playerid) >= 20) return ShowDialogInfo(playerid, "Twój ekwipunek jest przepełniony!\nMożesz schować przedmioty do torby, pojazdu, szafy, oddać czy sprzedać innemu graczowi lub odłożyć je na ziemię."); TextDrawForPlayerEx(i, 1, "Oferta ~g~~h~zaakceptowana.", 3000); TextDrawForPlayerEx(playerid, 1, "Zaakceptowano ~g~~h~oferte", 3000); new iuid = TradeData[playerid][tVal]; ItemCache[iuid][iOwner] = pUID[playerid]; new msg[128]; format(msg, sizeof(msg), "podaje jakiś przedmiot %s.", RPName(playerid)); SendPlayerMe(i, msg); return ApplyAnimation(i, "dealer", "dealer_deal", 4.1, 0, 0, 0, 0, 0, 0); } else if(TradeData[playerid][tType] == 0) { if(Isnull(inputtext)) return TextDrawForPlayerEx(i, 1, "Oferta zostala ~r~~h~~h~~h~odrzucona.", 3000); if(!strcmp(inputtext, "potwierdzam", true)) { if(UserCache[pUID[playerid]][uCash] < price) { SendClientMessage(playerid, COLOR_GRAY, "Nie posiadasz przy sobie tyle gotówki."); return TextDrawForPlayerEx(i, 1, "Oferta zostala ~r~~h~~h~~h~odrzucona.", 3000); } UserCache[pUID[playerid]][uCash] -= price; GivePlayerMoney(playerid, -price); UserCache[sentuid][uCash] += price; GivePlayerMoney(i, price); new str[32]; format(str, sizeof(str), "~g~~h~~h~~h~+$%d", price); GameTextForPlayer(i, str, 3000, 4); format(str, sizeof(str), "~r~~h~~h~~h~-$%d", price); GameTextForPlayer(playerid, str, 3000, 4); RemovePlayerFromVehicle(i); VehicleCache[vuid][vOwner] = pUID[playerid]; return 1; } } } else { return TextDrawForPlayerEx(i, 1, "Oferta zostala ~r~~h~~h~~h~odrzucona.", 3000); } } } } } } return SendClientMessage(playerid, COLOR_GRAY, "Gracz nie jest w Twoim pobliżu."); } case D_TRADE: { if(response) { new tradetype = TradeData[playerid][tType]; if(tradetype == 1) { new vid = GetPlayerVehicleID(playerid); new vuid = GetVehicleUID(vid); new price = strval(inputtext); if(Isnull(inputtext) || price < 1) { new str[128]; format(str, sizeof(str), ""HEX_RED"Nieprawidłowe dane! Minimalna cena sprzedaży: $1\n\nInformacje o pojeździe:\n\nMarka: %s\nPaliwo: %d/100\n"HEX_WHITE"Wpisz poniżej cenę pojazdu, którą musi zapłacić inny gracz za Twój pojazd.", GetVehicleName(GetVehicleModel(vid)), VehicleCache[vuid][vFuel]); return ShowPlayerDialog(playerid, D_TRADE, DIALOG_STYLE_INPUT, "Sprzedaż pojazdu", str, "Gotowe", "Anuluj"); } new targetuid = TradeData[playerid][tReceiver]; for(new i; i<=GetPlayerPoolSize(); i++) { if(IsPlayerConnected(i)) { if(pUID[i] == targetuid) { new Float:X, Float:Y, Float:Z; GetPlayerPos(i, X, Y, Z); if(IsPlayerInRangeOfPoint(playerid, 5.0, X, Y, Z)) { new pvw = GetPlayerVirtualWorld(playerid); if(pvw == GetPlayerVirtualWorld(i)) { if(TradeData[playerid][tType] == 1) { TradeData[i][tType] = 1; TradeData[i][tSender] = pUID[playerid]; TradeData[i][tPrice] = price; TradeData[i][tVal] = vuid; new str[256]; format(str, sizeof(str), ""HEX_WHITE"Informacje o pojeździe:\n\nMarka: %s\nStan techniczny: %dHP\nPaliwo: %d/100\n\nKoszt kupna: "HEX_GREEN"$%d"HEX_RED"\nWpisz poniżej: POTWIERDZAM by zaakceptować ofertę w jej obecnym stanie.", GetVehicleName(GetVehicleModel(vid)), floatround(VehicleCache[vuid][vHP]), VehicleCache[vuid][vFuel], price); new header[64]; format(header, sizeof(header), "Oferta od %s", RPName(playerid)); return ShowPlayerDialog(i, D_TRADE_2, DIALOG_STYLE_INPUT, header, str, "Gotowe", "Anuluj"); } } } } } } return SendClientMessage(playerid, COLOR_GRAY, "Gracz nie znajduje się w pobliżu."); } } return 1; } case D_NEAR_PLAYERS: { if(response) { new targetuid = strval(inputtext); for(new i; i<=GetPlayerPoolSize(); i++) { if(IsPlayerConnected(i)) { if(pUID[i] == targetuid) { new Float:X, Float:Y, Float:Z; GetPlayerPos(i, X, Y, Z); if(IsPlayerInRangeOfPoint(playerid, 5.0, X, Y, Z)) { if(GetPlayerVirtualWorld(playerid) == GetPlayerVirtualWorld(i)) { if(TradeData[playerid][tType] == 0) { new vid = GetPlayerVehicleID(playerid); new vuid = GetVehicleUID(vid); new str[256]; format(str, sizeof(str), ""HEX_RED"Informacje o pojeździe:\n\nMarka: %s\nPaliwo: %d/100\n"HEX_WHITE"Wpisz poniżej cenę pojazdu, którą musi zapłacić inny gracz za Twój pojazd", GetVehicleName(GetVehicleModel(vid)), VehicleCache[vuid][vFuel]); TradeData[playerid][tReceiver] = targetuid; return ShowPlayerDialog(playerid, D_TRADE, DIALOG_STYLE_INPUT, "Sprzedaż pojazdu", str, "Gotowe", "Anuluj"); } else if(TradeData[playerid][tType] == 1) { new iuid = GetPVarInt(playerid, "iUID"); TradeData[i][tType]=1; TradeData[i][tSender] = pUID[playerid]; TradeData[i][tVal] = iuid; new header[64], info[256]; format(header, sizeof(header), "Oferta od %s", RPName(playerid)); format(info, sizeof(info), ""HEX_WHITE"Gracz %s chce oddać Tobie %s za darmo.\n\nMożesz zaakceptować lub odrzucić tę ofertę.", RPName(playerid), ItemCache[iuid][iName]); ShowPlayerDialog(i, D_TRADE_2, DIALOG_STYLE_MSGBOX, header, info, "Akceptuj", "Odrzuć"); return TextDrawForPlayerEx(playerid, 1, "Oferta ~g~~h~wyslana.", 3000); } } } } } } return SendClientMessage(playerid, COLOR_GRAY, "Gracz nie znajduje się w pobliżu."); } return 1; } case D_AMMO: { if(response) { new lastuid = GetPVarInt(playerid, "iUID"); if(ItemCache[lastuid][iActive]) return GameTextForPlayer(playerid, "~b~~h~~h~~h~schowaj przedmiot!", 3000, 4); new choosenuid = strval(inputtext), ammotoload = ItemCache[lastuid][iVal2]; ItemCache[choosenuid][iVal2] += ammotoload; ItemCache[lastuid][iState] = 3; SendPlayerMe(playerid, "uzupełnia amunicję do swojej broni."); return ApplyAnimation(playerid, "buddy", "buddy_reload ", 4.1, 0, 0, 0, 0, 0, 0); } return 1; } case D_V_OPTIONS: { new vid = GetPlayerVehicleID(playerid), vuid = GetVehicleUID(vid), option = strval(inputtext); if(response) { switch(option) { case 1: { if(VehicleCache[vuid][vBonnet]) return SetVehicleParamsEx(vid, VehicleCache[vuid][vEngine], VehicleCache[vuid][vLights], VehicleCache[vuid][vAlarm], VehicleCache[vuid][vDoors], VehicleCache[vuid][vBonnet]=0, VehicleCache[vuid][vBoot], VehicleCache[vuid][vObjective]); return SetVehicleParamsEx(vid, VehicleCache[vuid][vEngine], VehicleCache[vuid][vLights], VehicleCache[vuid][vAlarm], VehicleCache[vuid][vDoors], VehicleCache[vuid][vBonnet]=1, VehicleCache[vuid][vBoot], VehicleCache[vuid][vObjective]); } case 2: { if(VehicleCache[vuid][vBoot]) return SetVehicleParamsEx(vid, VehicleCache[vuid][vEngine], VehicleCache[vuid][vLights], VehicleCache[vuid][vAlarm], VehicleCache[vuid][vDoors], VehicleCache[vuid][vBonnet], VehicleCache[vuid][vBoot]=0, VehicleCache[vuid][vObjective]); return SetVehicleParamsEx(vid, VehicleCache[vuid][vEngine], VehicleCache[vuid][vLights], VehicleCache[vuid][vAlarm], VehicleCache[vuid][vDoors], VehicleCache[vuid][vBonnet], VehicleCache[vuid][vBoot]=1, VehicleCache[vuid][vObjective]); } case 3: { PlayerPlaySound(playerid, 24600, 0.0, 0.0, 0.0); new driver, passenger, bl, br; GetVehicleParamsCarWindows(vid, driver, passenger, bl, br); if(!driver) return SetVehicleParamsCarWindows(vid, 1, 1, 1, 1); return SetVehicleParamsCarWindows(vid, 0, 0, 0, 0); } case 4: { return ShowDialogVehicleGroup(playerid); } case 5: { return ShowDialogNearPlayers(playerid); } } } return 1; } case D_ADMIN_DOOR: { if(response) { new option = strval(inputtext); new dooruid; new pvw = GetPlayerVirtualWorld(playerid); for(new i=1; i 5000) return ShowPlayerDialog(playerid, D_DEPOSIT, DIALOG_STYLE_INPUT, "Wpłać kwotę", ""HEX_RED"Za jednym razem możesz wyłacić tylko 5000$ oraz minimalne wpłacić 1$."HEX_WHITE"\nWpisz poniżej kwotę jaką chcesz wyłacić do banku:", "Wpłać", "Wróć"); new val = strval(inputtext); if(UserCache[pUID[playerid]][uCash] < val) return ShowPlayerDialog(playerid, D_DEPOSIT, DIALOG_STYLE_INPUT, "Wpłać kwotę", ""HEX_RED"Nie posiadasz tylu pieniędzy przy sobie.\n"HEX_WHITE"Wpisz poniżej kwotę jaką chcesz wpłacić do banku", "Wpłać", "Wróć"); UserCache[pUID[playerid]][uCash] -= val; GivePlayerMoney(playerid, -val); UserCache[pUID[playerid]][uBank] += val; ApplyAnimation(playerid, "DEALER", "shop_pay", 4.1, 0, 0, 0, 0, 0, 0); return SendPlayerMe(playerid, "wpłaca pieniądze do bankomatu"); } return ShowDialogATM(playerid); } case D_WITHDRAW: { if(response) { if(Isnull(inputtext)) return ShowPlayerDialog(playerid, D_WITHDRAW, DIALOG_STYLE_INPUT, "Wypłać kwotę", ""HEX_RED"Błąd: Nieprawidłowa wartość."HEX_WHITE"\nWpisz poniżej kwotę jaką chcesz wypłacić z banku:", "Wypłać", "Anuluj"); if(strval(inputtext) < 1 || strval(inputtext) > 5000) return ShowPlayerDialog(playerid, D_WITHDRAW, DIALOG_STYLE_INPUT, "Wypłać kwotę", ""HEX_RED"Za jednym razem możesz wypłacić tylko 5000$ oraz minimalne wypłacić 1$."HEX_WHITE"\nWpisz poniżej kwotę jaką chcesz wypłacić z banku:", "Wypłać", "Anuluj"); new val = strval(inputtext); if(UserCache[pUID[playerid]][uBank] < val) return ShowPlayerDialog(playerid, D_WITHDRAW, DIALOG_STYLE_INPUT, "Wypłać kwotę", ""HEX_RED"Nie posiadasz tylu pieniędzy w banku.\n"HEX_WHITE"Wpisz poniżej kwotę jaką chcesz wypłacić z banku:", "Wypłać", "Anuluj"); UserCache[pUID[playerid]][uCash] += val; GivePlayerMoney(playerid, val); UserCache[pUID[playerid]][uBank] -= val; ApplyAnimation(playerid, "DEALER", "shop_pay", 4.1, 0, 0, 0, 0, 0, 0); return SendPlayerMe(playerid, "wypłaca pieniądze z bankomatu"); } return ShowDialogATM(playerid); } case D_ATM: { if(response) { new option = strval(inputtext); switch(option) { case 1: ShowPlayerDialog(playerid, D_WITHDRAW, DIALOG_STYLE_INPUT, "Wypłać kwotę", ""HEX_WHITE"Wpisz poniżej kwotę jaką chcesz wypłacić z banku:", "Wypłać", "Anuluj"); case 2: ShowPlayerDialog(playerid, D_DEPOSIT, DIALOG_STYLE_INPUT, "Wpłać kwotę", ""HEX_WHITE"Wpisz poniżej kwotę jaką chcesz wpłacić do banku:", "Wpłać", "Anuluj"); } } } case D_VEHICLES: { if(response) { new vuid = strval(inputtext); if(VehicleCache[vuid][vID] != 0) { if(VehicleCache[vuid][vEngine]) VehicleCache[vuid][vEngine] = 0; DestroyVehicle(VehicleCache[vuid][vID]); VehicleCache[vuid][vID]=0; TextDrawForPlayerEx(playerid, 1, "Odspawnowano pojazd.", 3000); DestroyDynamicMapIcon(MapIcon[playerid]); KillTimer(MapIconTimer[playerid]); return 1; } SpawnVehicle(vuid); TextDrawForPlayerEx(playerid, 1, "Zespawnowano pojazd.~n~Miejsce pojazdu zostalo oznaczone na mapie.", 5000); DestroyDynamicMapIcon(MapIcon[playerid]); KillTimer(MapIconTimer[playerid]); MapIcon[playerid] = CreateDynamicMapIcon(VehicleCache[vuid][vPosX], VehicleCache[vuid][vPosY], VehicleCache[vuid][vPosZ], 55,-1, VehicleCache[vuid][vVW], 0, playerid,-1, 3); MapIconTimer[playerid] = SetTimerEx("DestroyIcon", 5000*60, false, "i", playerid); } else { return 1; } } case D_CHANGE_GROUP_COLOR: { if(response) { if(Isnull(inputtext)) return ShowDialogChangeGroupColor(playerid); if(strlen(inputtext) > 6) return ShowDialogChangeGroupColor(playerid); TextDrawForPlayerEx(playerid, 1, "Kolor grupy zostal pomyslnie zmieniony.", 3000); new guid=GetPVarInt(playerid, "iUID"), gcolor[16]; format(gcolor, sizeof(gcolor), "%s", inputtext); GroupCache[guid][gColor] = gcolor; for(new i; i<=GetPlayerPoolSize(); i++) { if(IsPlayerConnected(i)) { if(pDuty[i] == guid) { UpdatePlayerName(i); } } } } return ShowDialogGroupPanel(playerid); } case D_JOIN_GROUP: { new senderuid = pVal[playerid]; new senderid; for(new i; i<=GetPlayerPoolSize(); i++) { if(IsPlayerConnected(i)) { if(pUID[i] == senderuid) { senderid = i; } } } if(!senderid) return SendClientMessage(playerid, COLOR_GRAY, "Gracz wylogował się lub wyszedł z gry."); new groupuid = pVal2[playerid]; if(response) { if(UserCache[pUID[playerid]][uGroup] == 0) UserCache[pUID[playerid]][uGroup] = groupuid; else if(UserCache[pUID[playerid]][uGroup2] == 0) UserCache[pUID[playerid]][uGroup2] = groupuid; else if(UserCache[pUID[playerid]][uGroup3] == 0) UserCache[pUID[playerid]][uGroup3] = groupuid; else return SendClientMessage(playerid, COLOR_GRAY, "Osiągnięto limit grup pod /g. Jeśli chcesz dołączyć do grupy musisz opuścić jedną ze swoich grup (/g [slot] opusc)."); TextDrawForPlayerEx(senderid, 1, "Oferta ~g~~h~zaakceptowana.", 3000); TextDrawForPlayerEx(playerid, 1, "Oferta ~g~~h~zaakceptowana.", 3000); return ShowDialogInfo(playerid, "Dołączono do grupy.\nGrupę możesz zobaczyć pod komendą /g."); } else { TextDrawForPlayerEx(senderid, 1, "Oferta ~r~anulowana.", 3000); return TextDrawForPlayerEx(playerid, 1, "Oferta ~r~anulowana.", 3000); } } case D_CHANGE_PERMS: { if(response) { return SetPVarInt(playerid, "pUID", strval(inputtext)); } return ShowDialogGroupPanel(playerid); } case D_CHANGE_GROUP_NAME: { if(response) { if(!strlen(inputtext) || strlen(inputtext) > 32) { SendClientMessage(playerid, COLOR_GRAY, "Nazwa grupy jest zbyt krótka lub zbyt długa!"); return ShowDialogChangeGroupName(playerid); } new guid = GetPVarInt(playerid, "iUID"); new newname[32]; format(newname, sizeof(newname), inputtext); GroupCache[guid][gName] = newname; for(new i; i<=GetPlayerPoolSize(); i++) { if(IsPlayerConnected(i)) { if(pUID[i]) { if(pDuty[i] == guid) { UpdatePlayerName(i); format(newname, sizeof(newname), "Sluzba: ~y~%s", newname); PlayerTextDrawSetString(playerid, DutyTxd[playerid], newname); PlayerTextDrawShow(playerid, DutyTxd[playerid]); SendClientMessage(i, COLOR_WHITE, "> Lider twojej grupy na, której służbie jesteś zmienił jej nazwę, twój nick został zaktualizowany."); } } } } } return 1; } case D_GROUP_PANEL: { if(response) { new option = strval(inputtext), guid = GetPVarInt(playerid, "iUID"); switch(option) { case 1: return ShowDialogChangeGroupName(playerid); case 2: return ShowDialogKickGroup(playerid); case 3: { if(GroupCache[guid][gChatOOC] == true) { GroupCache[guid][gChatOOC] = false; TextDrawForPlayerEx(playerid, 1, "~r~Wylaczono ~w~czat OOC grupy.", 1500); } else { GroupCache[guid][gChatOOC] = true; TextDrawForPlayerEx(playerid, 1, "~g~~h~Wlaczono ~w~czat OOC grupy.", 1500); } } case 4: { if(GroupCache[guid][gChatIC] == true) { GroupCache[guid][gChatIC] = false; TextDrawForPlayerEx(playerid, 1, "~r~Wylaczono ~w~sluchawke grupy.", 1500); } else { GroupCache[guid][gChatIC] = true; TextDrawForPlayerEx(playerid, 1, "~g~~h~Wlaczono ~w~sluchawke grupy.", 1500); } } case 5: { new str[256], info[128]; for(new i=1; i 1000) { SendClientMessage(playerid, COLOR_WHITE, "Zakres opłaty za przejście mieści się pomiędzy 0 -1000$"); return ShowDialogDoorCost(playerid); } DoorCache[GetPlayerDoorUID(playerid)][dEnterCost] = cost; } return ShowDialogGroupPanel(playerid); } case D_DOOR_GROUP: { if(response) { if(Isnull(inputtext)) return ShowDialogDoorGroup(playerid); new text[128]; format(text, sizeof(text), " %s", inputtext); new slot; new uid = GetPlayerDoorUID(playerid); if(sscanf(text, "i", slot) || slot > 3 || slot < 1) return SendClientMessage(playerid, COLOR_GRAY, "Nieprawidłowy slot grupy."); switch(slot) { case 1: { if(UserCache[pUID[playerid]][uGroup] == 0) return SendClientMessage(playerid, COLOR_GRAY, "Pod tym slotem nie znajduje się żadna grupa."); DoorCache[uid][dGroupUID] = UserCache[pUID[playerid]][uGroup]; } case 2: { if(UserCache[pUID[playerid]][uGroup2] == 0) return SendClientMessage(playerid, COLOR_GRAY, "Pod tym slotem nie znajduje się żadna grupa."); DoorCache[uid][dGroupUID] = UserCache[pUID[playerid]][uGroup2]; } case 3: { if(UserCache[pUID[playerid]][uGroup3] == 0) return SendClientMessage(playerid, COLOR_GRAY, "Pod tym slotem nie znajduje się żadna grupa."); DoorCache[uid][dGroupUID] = UserCache[pUID[playerid]][uGroup3]; } } DestroyDynamicPickup(DoorPickupID[uid]); DoorPickupID[uid] = CreateDynamicPickup(GetPickupModelFromGroupType(GroupCache[DoorCache[uid][dGroupUID]][gType]), 2, DoorCache[uid][dOutX],DoorCache[uid][dOutY], DoorCache[uid][dOutZ], DoorCache[uid][dOutVW], 0, -1); format(text, sizeof(text), "> Drzwi został pomyślnie podpisane pod grupę %s (UID: %d). Użyj /drzwi [opcje] by ustawić opłatę za przejście!", GroupCache[DoorCache[uid][dGroupUID]][gName], DoorCache[uid][dGroupUID]); return SendClientMessage(playerid, COLOR_WHITE, text); } return 1; } case D_COMMANDS: { if(response) { switch(listitem) { case 0: return ShowPlayerDialog(playerid, D_CMDS_OBJECT, DIALOG_STYLE_MSGBOX, "Pomoc > Przydatne komendy > Obiekty", ""HEX_WHITE"/mc "HEX_BLUE"[id obiektu]"HEX_WHITE" by utworzyć obiekt.\n/msel "HEX_BLUE"[opcjonalna wartość]"HEX_WHITE" by edytować obiekt w pobliżu.\n\ "HEX_RED"/md"HEX_WHITE" by usunąć aktualnie edytowany obiekt.\n/mmat by nałożyć texturę na aktualnie edytowany obiekt\n\nRotacja obiektu:\n/rx [wartość]\n/ry [wartość]\n/rz [wartość]", "Ok", ""); } } } case D_HELP: { if(response) { switch(listitem) { case 0: return ShowDialogCommands(playerid); case 1: return ShowDialogStats(playerid); case 2: return ShowDialogAnim(playerid); } } return 1; } case D_CHANGE_DOOR_NAME: { if(response) { if(Isnull(inputtext)) return ShowDialogChangeDoorName(playerid); if(UserCache[pUID[playerid]][uCash] < 2000) return ShowPlayerDialog(playerid, D_CHANGE_DOOR_NAME, DIALOG_STYLE_INPUT, "Zmień nazwę drzwi", ""HEX_RED"Nie posiadasz 2000$ na zmianę nazwy drzwi!\n"HEX_WHITE"Wpisz poniżej nową nazwę drzwi:", "Zatwierdź", "Anuluj"); if(strlen(inputtext) > 32) return ShowPlayerDialog(playerid, D_CHANGE_DOOR_NAME, DIALOG_STYLE_INPUT, "Zmień nazwę drzwi", ""HEX_RED"Wybrana nazwa jest zbyt długa!\n"HEX_WHITE"Wpisz poniżej nową nazwę drzwi:", "Zatwierdź", "Anuluj"); UserCache[pUID[playerid]][uCash] -= 2000; GivePlayerMoney(playerid, -2000); new name[32]; format(name, sizeof(name), inputtext); DoorCache[GetPlayerDoorUID(playerid)][dName] = name; return SendClientMessage(playerid, COLOR_GRAY, "Nazwa drzwi została zmieniona pomyślnie."); } return 1; } case D_CHANGE_URL: { if(response) { if(Isnull(inputtext)) return ShowDialogChangeUrl(playerid); new pvw = GetPlayerVirtualWorld(playerid); for(new i; i<=GetPlayerPoolSize(); i++) { if(IsPlayerConnected(i)) { if(GetPlayerVirtualWorld(i) == pvw) { PlayAudioStreamForPlayer(i, inputtext); } } } new url[256]; format(url, sizeof(url), inputtext); DoorCache[GetPlayerDoorUID(playerid)][dUrl] = url; new msg[128]; format(msg, sizeof(msg), "* %s zmienia płytę w systemie nagłaśniającym audio.", strreplace(PlayerName(playerid), '_', ' ')); SendPlayerMe(playerid, msg); } return 1; } case D_BOOMBOX: { if(response) { if(Isnull(inputtext)) return ShowDialogBoomBox(playerid); new uid = GetPVarInt(playerid, "iUID"); new Float:X, Float:Y, Float:Z; GetPlayerPos(playerid, X, Y, Z); ItemCache[uid][iVal] = CreateDynamicObject(2226, X, Y, Z-1.0, 0.0, 0.0, 0.0, GetPlayerVirtualWorld(playerid), -1, -1); ApplyAnimation(playerid, "bomber", "bom_plant", 4.1, 0, 0, 0, 0, 0, 0); new str[128]; format(str, sizeof(str), "* %s kładzie %s na ziemie oraz wybiera stację radiową.", strreplace(PlayerName(playerid), '_', ' '), ItemCache[uid][iName]); SendPlayerMe(playerid, str); new vw = GetPlayerVirtualWorld(playerid); for(new i; i<=GetPlayerPoolSize(); i++) { if(IsPlayerConnected(i)) { if(IsPlayerInRangeOfPoint(i, 30.0, X, Y, Z)) { if(GetPlayerVirtualWorld(i) == vw) { StopAudioStreamForPlayer(i); PlayAudioStreamForPlayer(i, inputtext, X, Y, Z, 50.0, 1); } } } } ItemCache[uid][iActive]=1; } return 1; } case D_DOOR_SETTINGS: { if(response) { new option=strval(inputtext); new uid = GetPlayerDoorUID(playerid); switch(option) { case 1: { GetPlayerPos(playerid, DoorCache[uid][dInsX], DoorCache[uid][dInsY], DoorCache[uid][dInsZ]); TextDrawForPlayerEx(playerid, 1, "Pozycja wejsciowa zostala zmieniona pomyslnie.", 3000); } case 2: { if(DoorCache[uid][dType]) return ShowDialogInfo(playerid, "Nie możesz wybrać spawnu w tym budynku."); if(UserCache[pUID[playerid]][uHouseSpawn] == uid) { UserCache[pUID[playerid]][uHouseSpawn] = 0; return SendClientMessage(playerid, COLOR_GRAY, "Wymeldowano."); } UserCache[pUID[playerid]][uHouseSpawn] = uid; return SendClientMessage(playerid, COLOR_GRAY, "Od teraz będzie się tu spawnował."); } case 3: { if(!Isnull(DoorCache[uid][dUrl])) { return ShowDialogChangeUrl(playerid); } else { if(UserCache[pUID[playerid]][uCash] < 1200) return SendClientMessage(playerid, COLOR_GRAY, "Nie posiadasz przy sobie 1200$ na ten zakup."); } new str[256]; str = " "; DoorCache[uid][dUrl] = str; UserCache[pUID[playerid]][uCash] -= 1200; GivePlayerMoney(playerid, -1200); SendClientMessage(playerid, COLOR_GRAY, "Zakupiono system nagłaśniający!"); } case 4: { SetPlayerPos(playerid, DoorCache[uid][dInsX], DoorCache[uid][dInsY], DoorCache[uid][dInsZ]); return TextDrawForPlayerEx(playerid, 1, "Przeteleportowano do pozycji wyjsciowej.", 3000); } case 5: { if(UserCache[pUID[playerid]][uCash] < 2000) return SendClientMessage(playerid, COLOR_GRAY, "Nie posiadasz przy sobie 2000$ do zmiany nazwy drzwi."); return ShowDialogChangeDoorName(playerid); } case 6: { if(DoorCache[uid][dGroupUID] != 0) return ShowDialogInfo(playerid, ""HEX_WHITE"Ten budynek jest już podpisany pod jakiś biznes"); if(DoorCache[uid][dType]) return ShowDialogDoorGroup(playerid); return ShowDialogInfo(playerid, ""HEX_WHITE"Nie możesz podpisać tego budynku pod grupę."); } case 7: { if(DoorCache[uid][dType]) { if(DoorCache[uid][dGroupUID] == 0) return ShowDialogInfo(playerid, ""HEX_WHITE"Ten budynek nie jest podpisany pod żaden biznes."); return ShowDialogDoorCost(playerid); } return ShowDialogInfo(playerid, ""HEX_WHITE"Ten budynek jest domem - nie możesz ustawić opłaty za przejście."); } case 8: { if(DoorCache[uid][dVehicle]) { DoorCache[uid][dVehicle]=0; TextDrawForPlayerEx(playerid, 1, "Przejazd pojazdami zostal ~r~~h~~h~wylaczony~w~.", 3000); } else { DoorCache[uid][dVehicle]=1; TextDrawForPlayerEx(playerid, 1, "Przejazd pojazdami zostal ~g~~h~~h~wlaczony~w~.", 3000); } return ShowDialogDoorSettings(playerid); } } } } case D_FIND: { if(response) { if(Isnull(inputtext)) return ShowDialogFind(playerid); if(UserExists(inputtext)) { SetPlayerName(playerid, inputtext); return ShowDialogLogin(playerid); } ShowDialogNotFound(playerid); return 1; } else { return ShowDialogCreate(playerid); } } case D_NOTFOUND: { if(response) { return ShowDialogCreate(playerid); } else { return ShowDialogFind(playerid); } } case D_CREATE: { if(response) { if(Isnull(inputtext)) return ShowDialogCreate(playerid); new pname[MAX_PLAYER_NAME], pborndate, sex[2]; new text[128]; format(text, sizeof(text), " %s", inputtext); if(sscanf(text, "s[24]is[2]", pname, pborndate, sex)) return ShowDialogCreate(playerid); if(strlen(pname) > 24 || strlen(pname) < 6) { SendClientMessage(playerid, COLOR_WHITE, "> Wybrana nazwa jest "HEX_RED"zbyt długa"HEX_WHITE" lub "HEX_RED"zbyt krótka"HEX_WHITE"."); ShowDialogCreate(playerid); return 1; } if(pborndate < 1910 || pborndate > 2005) { SendClientMessage(playerid, COLOR_WHITE, "> Data narodzin Twojej postaci musi mieścić się w zakresie 1910 - 2005."); return ShowDialogCreate(playerid); } if(sex[0] == 'm' || sex[0] == 'k') { if(UserExists(pname)) { SendClientMessage(playerid, COLOR_WHITE, "> Taka postać już istnieje :( Spróbuj użyć innej nazwy."); ShowDialogCreate(playerid); return 1; } new count; for(new j = 0; j < strlen(pname); j++) { if(text[j] == '_') count++; } if(count != 1) { ShowDialogCreate(playerid); new msg[128]; format(msg, sizeof(msg), "> Twoje "HEX_BLUE"imię"HEX_WHITE" oraz "HEX_BLUE"nazwisko"HEX_WHITE" musi być oddzielone tylko jednym znakiem: "HEX_BLUE"_"); SendClientMessage(playerid, COLOR_WHITE, msg); return 1; } new pos = strfind(text, "_", true); if(pos == 0 || pos == strlen(pname)-1) { ShowDialogCreate(playerid); SendClientMessage(playerid, COLOR_WHITE, "> "HEX_BLUE"imię"HEX_WHITE" lub "HEX_BLUE"nazwisko"HEX_WHITE" Twojej postaci jest za krótkie!"); return 1; } for(new i = 0; i < strlen(pname); i++) { if(pname[i] == 'q' || pname[i] == 'w' || pname[i] == 'e' || pname[i] == 'r' || pname[i] == 't' || pname[i] == 'y' || pname[i] == 'u' || pname[i] == 'i' || pname[i] =='o' || pname[i] == 'p' || pname[i] == 'a' || pname[i] == 's' || pname[i]== 'd' || pname[i]== 'f' || pname[i] =='g' || pname[i] =='z' || pname[i] == 'l' || pname[i] == 'k' || pname[i]== 'j' || pname[i] =='h' || pname[i] =='x' || inputtext[i]== 'c' || inputtext[i] == 'v' || inputtext[i] =='b' || inputtext[i] =='n' || pname[i] == 'm' || pname[i] == 'Q' || pname[i] == 'W' || pname[i] == 'E' || pname[i] == 'R' ||pname[i] == 'T' || pname[i] == 'Y' || pname[i] == 'U' || pname[i] == 'I' || pname[i] =='O' || pname[i] == 'P' || pname[i] == 'A' || pname[i] == 'S' || pname[i]== 'D' || pname[i]== 'F' || pname[i] =='G' || pname[i] =='Z' || pname[i] == 'L' || pname[i] == 'K' || pname[i]== 'J' || pname[i] =='H' || pname[i] =='X' || pname[i]== 'C' || pname[i] == 'V' || pname[i] =='B' || pname[i] =='N' || pname[i] == 'M' || pname[i] == '_') { continue; } else { new msg[128]; format(msg, sizeof(msg), "> Wprowadzono niedozwolony znak: "HEX_BLUE"%c", pname[i]); SendClientMessage(playerid, COLOR_WHITE, msg); ShowDialogCreate(playerid); return 1; } } new name[MAX_PLAYER_NAME]; format(name, sizeof(name), pname); RegisterCache[playerid][rName] = name; if(sex[0] == 'm') RegisterCache[playerid][rSex] = 0; else RegisterCache[playerid][rSex] = 1; RegisterCache[playerid][rBornDate] = pborndate; ShowDialogPassword(playerid); return 1; } else return ShowDialogCreate(playerid); } else { BackToMenu(playerid); } } case D_PASS: { if(response) { if(strlen(inputtext) < 8 || strlen(inputtext) > 32) return ShowPlayerDialog(playerid, D_PASS, DIALOG_STYLE_PASSWORD, "Wybór hasła", ""HEX_WHITE"Poniżej wprowadź hasło za pomocą którego będziesz logować się do swojej postaci.\n\n"HEX_RED"Hasło musi mieć przynajmniej 8 oraz maksymalnie 32 znaki.\n\n"HEX_PURPLE"Prosimy nie wpisywać haseł zawierających polskie znaki, gdyż logowanie potem będzie nie możliwe.", "Stwórz", "Anuluj"); if(RegisterCache[playerid][rSex]) CreateUser(RegisterCache[playerid][rName], inputtext, "k", RegisterCache[playerid][rBornDate]); else CreateUser(RegisterCache[playerid][rName], inputtext, "m", RegisterCache[playerid][rBornDate]); SetPlayerName(playerid, RegisterCache[playerid][rName]); ShowDialogLogin(playerid); } else { BackToMenu(playerid); } } case D_LOGIN: { if(response) { if(Isnull(inputtext)) { return ShowDialogLogin(playerid); } for(new i = 1; i < LastUID; i++) { if(!strcmp(PlayerName(playerid), UserCache[i][uName], true)) { if(!strcmp(inputtext, UserCache[i][uPass], false)) { if(UserCache[i][uBan]) { new str[128]; if(UserCache[i][uBan] == 999) format(str, sizeof(str), "Twoja postać została stale zablokowana."); if(UserCache[i][uBan] != 999) format(str, sizeof(str), "Twoja postać posiada aktywną blokadę do %02d:%02d:%02d", UserCache[i][uBanYear], UserCache[i][uBanDay], UserCache[i][uBanMin]); SendClientMessage(playerid, COLOR_RED, str); SendClientMessage(playerid, COLOR_ORANGE, UserCache[i][uBanReason]); return ShowDialogLogin(playerid); } return LoginPlayer(playerid, UserCache[i][uUID]); } else { if(LoginAttempt[playerid] == 3) return Kick(playerid); new str[256]; format(str, sizeof(str), ""HEX_PURPLE"Witaj na serwerze Szkodnik RolePlay!"HEX_WHITE"\n\n"HEX_RED"Nieprawidłowe dane logowania!\n\nPostać "HEX_RED"%s"HEX_WHITE" została odnaleziona.\n\nZaloguj się podając poprawne hasło lub wybierz 'Zmień' jeśli chcesz zalogować się na inną postać.", PlayerName(playerid)); ShowPlayerDialog(playerid, D_LOGIN, DIALOG_STYLE_PASSWORD, "Logowanie", str, "Zaloguj", "Zmień"); LoginAttempt[playerid]++; return 1; } } } } else { ShowDialogFind(playerid); } } case D_INFO: { if(response) { return 1; } else { return 1; } } case D_CREATEDOOR: { if(response) { new zone = GetPlayerZone(playerid); if(!strlen(inputtext)) { ShowDialogDoorCreate(playerid,ZoneData[zone][zYard]); return 1; } new input[128]; format(input, sizeof(input), " %s", inputtext); new type[2], yard; if(sscanf(input, "s[2]i", type, yard)) { ShowDialogDoorCreate(playerid, ZoneData[zone][zYard]); return 1; } if(yard < ZoneData[zone][zYard]) { ShowDialogDoorCreate(playerid,ZoneData[zone][zYard]); return 1; } new Float:X, Float:Y, Float:Z; GetPlayerPos(playerid, X, Y, Z); if(!strcmp(type, "d", true)) { new price = ZoneData[zone][zCostH] * yard; if(UserCache[pUID[playerid]][uCash] < price) { ShowDialogDoorCreate(playerid, ZoneData[zone][zYard]); new msg[64]; format(msg, sizeof(msg), "~g~nie posiadasz %d$ na stworzenie drzwi", price); GameTextForPlayer(playerid, msg, 5000, 4); return 1; } CreateDoor(playerid, GetPlayerVirtualWorld(playerid), 0, X, Y, Z); SetPlayerCash(playerid, -price); return 1; } else if(!strcmp(type, "b", true)) { new price = ZoneData[zone][zCostB] * yard; if(UserCache[pUID[playerid]][uCash] < price) { ShowDialogDoorCreate(playerid, ZoneData[zone][zYard]); new msg[64]; format(msg, sizeof(msg), "~g~nie posiadasz %d$ na stworzenie drzwi", price); GameTextForPlayer(playerid, msg, 5000, 4); return 1; } CreateDoor(playerid, GetPlayerVirtualWorld(playerid), 1, X, Y, Z); SetPlayerCash(playerid, -price); return 1; } else { ShowDialogDoorCreate(playerid, ZoneData[zone][zYard]); return 1; } } else { return 1; } } case D_ITEMS: { new uid = strval(inputtext); if(response) { UseItem(playerid, uid); return 1; } else { SetPVarInt(playerid, "iUID", uid); return ShowPlayerDialog(playerid, D_ITEM_OPTIONS, DIALOG_STYLE_LIST, "Zarządzaj przedmiotem", "1\tOdłóż przedmiot na ziemię\n2\tOddaj przedmiot za darmo graczowi\n"HEX_BLUE"3\tResetuj akcesorium doczepiane\n4\tSchowaj przedmiot do torby", "Wybierz", "Zamknij"); } } case D_ITEM_OPTIONS: { if(response) { return UseItemOption(playerid, strval(inputtext), GetPVarInt(playerid, "iUID")); } return 1; } case D_NEARBY_ITEMS: { if(response) { new uid = strval(inputtext); if(ItemCache[uid][iState] == 0) { new Float:targetX, Float:targetY, Float:targetZ; for(new i=1; i= 20) return ShowDialogInfo(playerid, "Twój ekwipunek jest przepełniony!\nMożesz schować przedmioty do torby, pojazdu, szafy, oddać czy sprzedać innemu graczowi lub odłożyć je na ziemię."); GetPlayerPos(j, targetX, targetY, targetZ); if(GetPlayerVirtualWorld(playerid) != GetPlayerVirtualWorld(j) || !IsPlayerInRangeOfPoint(playerid, 5.0, targetX, targetY, targetZ)) return SendClientMessage(playerid, COLOR_GRAY, "Gracz oddalił się."); if(ItemCache[uid][iActive]) return GameTextForPlayer(playerid, "~b~~h~~h~~h~uzywany", 3000, 4); ItemCache[uid][iOwner] = pUID[playerid]; new msg[128]; format(msg, sizeof(msg), "zabiera jakiś przedmiot %s", RPName(j)); return SendPlayerMe(playerid, msg); } } } } return 1; } if(GetPlayerItemsCount(playerid) >= 20) return ShowDialogInfo(playerid, "Twój ekwipunek jest przepełniony!\nMożesz schować przedmioty do torby, pojazdu, szafy, oddać czy sprzedać innemu graczowi lub odłożyć je na ziemię."); ItemCache[uid][iState] = 0; ItemCache[uid][iOwner] = pUID[playerid]; new msg[128]; format(msg, sizeof(msg), "podnosi %s.",ItemCache[uid][iName]); if(IsPlayerInAnyVehicle(playerid)) format(msg, sizeof(msg), "podnosi %s z pojazdu.",ItemCache[uid][iName]); SendPlayerMe(playerid, msg); ApplyAnimation(playerid, "bomber", "bom_plant", 4.1, 0, 0, 0, 0, 0, 0); } return 1; } case D_USE_WEAP: { if(response) { if(Isnull(inputtext)) return ShowDialogUseWeap(playerid); new uid=GetPVarInt(playerid, "iUID"); new msg[128]; if(ItemCache[uid][iActive]) { format(msg, sizeof(msg), "chowa %s %s.", ItemCache[uid][iName], inputtext); SendPlayerMe(playerid, msg); ItemCache[uid][iActive] = 1; ResetPlayerWeapons(playerid); SetTimerEx("HideWeapon", 50, false, "ii", uid, playerid); return 1; } format(msg, sizeof(msg), "wyciąga %s %s.", ItemCache[uid][iName], inputtext); SendPlayerMe(playerid, msg); ItemCache[uid][iActive] = 1; ItemCache[uid][iActive]=1; return SetTimerEx("GiveWeapon", 50, false, "iii", playerid, ItemCache[uid][iVal], ItemCache[uid][iVal2]); } } case D_PHONE: { if(response) { new option=strval(inputtext), uid=GetPVarInt(playerid, "iUID"); switch(option) { case 1: { return ShowDialogContacts(playerid); } case 3: { return ShowDialogCall(playerid); } case 2: { return ShowDialogMessages(playerid); } case 4: { return ShowDialogSMS(playerid); } case 5: { ItemCache[uid][iActive]=0; GameTextForPlayer(playerid, "~b~~h~telefon ~w~wylaczony", 3000, 4); return PlayerPlaySound(playerid, 4202, 0.0, 0.0, 0.0); } } } return 1; } case D_SMS: { if(response) { if(Isnull(inputtext)) return ShowDialogSMS(playerid); new str[256], num, text[128]; format(str, sizeof(str), " %s", inputtext); if(sscanf(str, "is[128]", num, text)) return ShowDialogSMS(playerid); new uid = GetPVarInt(playerid, "iUID"); MsgCache[LastMsgUID][mReceiver] = num; MsgCache[LastMsgUID][mSender] = ItemCache[uid][iVal]; MsgCache[LastMsgUID][mText] = text; MsgCache[LastMsgUID][mUID] = LastMsgUID; LastMsgUID++; ShowDialogPhone(playerid); for(new i=1; i= 0) { SetPlayerSpecialAction(playerid, 13); return SendClientMessage(playerid, COLOR_YELLOW, "Telefon(poczta głosowa): Wybrany numer jest zajęty."); } PlayerPlaySound(playerid, 3600, 0.0 ,0.0 ,0.0); new msg[128]; format(msg, sizeof(msg), "* Dzwoni telefon %s.", strreplace(PlayerName(j), '_', ' ')); SendPlayerMe(j, msg); CallData[j][cCalling] = 3; CallData[j][cCaller] = playerid; SetPlayerSpecialAction(playerid, 11); PlayerPlaySound(playerid, 3600, 0.0, 0.0, 0.0); SetTimerEx("Calling", 3000, false, "i", j); PlayerPlaySoundInRange(j, 23000, 12.0); return 1; } } } } } } return GameTextForPlayer(playerid, "~w~wybrany numer jest nieosiagalny", 3000, 4); } else return ShowDialogPhone(playerid); } case D_ANSWER: { if(response) { new option = strval(inputtext); switch(option) { case 1: { CallData[playerid][cCalling] = 0; new senderid = CallData[playerid][cCaller]; CallData[senderid][cCaller] = playerid; GameTextForPlayer(senderid, "~w~rozmowca ~g~odebral ~w~polaczenie", 3000, 4); GameTextForPlayer(playerid, "~g~~h~odebrano ~w~telefon", 3000, 4); SetPlayerSpecialAction(playerid, 11); } case 2: { new senderid = CallData[playerid][cCaller]; CallData[playerid][cCaller] = -1; CallData[senderid][cCaller] = -1; CallData[playerid][cCalling] = 0; CallData[senderid][cCalling] = 0; GameTextForPlayer(senderid, "~w~Rozmowca rozlaczyl sie", 3000, 4); SetPlayerSpecialAction(senderid, 13); SetPlayerSpecialAction(playerid, 13); } } } return 1; } case D_CONTACTS: { new option = strval(inputtext); if(response) { new uid = GetPVarInt(playerid, "iUID"), info[256], list[256], count; format(list, sizeof(list), "Numer telefonu\tNazwa kontaktu\n"); switch(option) { case 1: { for(new i=1; i Kontakty > Zadzwoń do kontaktu", list, "Wybierz", "Anuluj"); else { GameTextForPlayer(playerid, "~w~nie posiadasz zadnych kontaktow", 3000, 4); return ShowDialogContacts(playerid); } } case 2: { return ShowDialogInfo(playerid, "Ta funkcja będzie gotowa później."); } case 3: { return ShowDialogAddContact(playerid); } case 4: { return ShowDialogVCard(playerid); } case 5: { return ShowDialogRemoveContact(playerid); } } } } case D_FRIENDS: { new num = strval(inputtext); if(response) { for(new i=1; i 32) return ShowDialogCreateGroup(playerid); if(!GetPlayerFreeSlot(playerid)) return SendClientMessage(playerid, COLOR_GRAY, "Brak wolnych slotów grupowych! Musisz opuścić jakąś grupę. Możesz użyć komendy /g [slot grupy] [opuść] by opuścić grupę."); CreateGroup(type, name, "ffffff"); new uid = pUID[playerid]; UserCache[uid][uSP] -= 1000; SetPlayerScore(playerid, UserCache[uid][uSP]); TextDrawForPlayerEx(playerid, 1, "Grupa zostala utworzona pomyslnie!~n~Uzyj ~y~/g [slot] panel~w~ by zarzadzac grupa.", 5000); } return 1; } case D_USERS: { if(response) { new uid = strval(inputtext); new num = random(6); new pass[32]; format(pass, sizeof(pass), "%d", num); UserCache[uid][uPass] = pass; new msg[128]; format(msg, sizeof(msg), "Zresetowano hasło %s (%d): %s", UserCache[uid][uName], uid, pass); SendClientMessage(playerid, COLOR_WHITE, msg); } return 1; } case D_CHANGE_PASS: { if(response) { if(strlen(inputtext) < 8 || strlen(inputtext) > 32) return ShowDialogChangePass(playerid); new newpass[32]; format(newpass, sizeof(newpass), inputtext); UserCache[pUID[playerid]][uPass] = newpass; TextDrawForPlayerEx(playerid, 1, "Haslo do konta zostalo zmienione pomyslnie.", 5000); LogoutPlayer(playerid); } return 1; } } return 0; } stock ShowDialogSettings(playerid) { new str[256]; format(str, sizeof(str), ""HEX_WHITE"1\tZmień hasło logowania"); return ShowPlayerDialog(playerid, D_SETTINGS, DIALOG_STYLE_LIST, "Ustawienia postaci", str , "Wybierz", "Anuluj"); } stock ShowDialogConnects(playerid) { new str[256]; format(str, sizeof(str), "1\tFreeze przy przejściu: %s\n2\tCzat OOC: %s", UserCache[pUID[playerid]][uFreeze] ? (""HEX_GREEN"Tak") : (""HEX_RED"Nie"), UserCache[pUID[playerid]][uOOC] ? (""HEX_GREEN"Tak") : (""HEX_RED"Nie")); return ShowPlayerDialog(playerid, D_CONNECT, DIALOG_STYLE_LIST, "Przełączniki postaci", str , "Wybierz", "Anuluj"); } stock LogoutPlayer(playerid) { godmodecount[playerid]=0; new uid = pUID[playerid]; for(new i=0; i<10; i++) { if(IsPlayerAttachedObjectSlotUsed(playerid, i)) RemovePlayerAttachedObject(playerid, i); } if(UserCache[pUID[playerid]][uTutorial] == 0) { GetPlayerPos(playerid, UserCache[uid][uSpawnX], UserCache[uid][uSpawnY], UserCache[uid][uSpawnZ]); UserCache[uid][uSpawnVW] = GetPlayerVirtualWorld(playerid); // Saving player's position and virtual world } UserCache[uid][uOnline] = false; KillTimer(PlayerRepairingVehicle[playerid][repairTimer]); UserCache[uid][uBelts] = false; SetPlayerVirtualWorld(playerid, -1); DestroyPlayerTextDraws(playerid); PlayAudioStreamForPlayer(playerid, "http://k003.kiwi6.com/hotlink/ict12m0ifu/Legendary_Official_Audio_-_Welshly_Arms.mp3"); ClearChat(playerid); TogglePlayerSpectating(playerid, 1); RandomCamera(playerid); SetPlayerColor(playerid, COLOR_BLACK); ShowDialogLogin(playerid); LoginAttempt[playerid] = 0; if(UserCache[pUID[playerid]][uTutorial] > 0) // Destroy Tutorial if is any { KillTimer(ChooseSkinTimer[playerid]); } DestroyDynamic3DTextLabel(pDesc[playerid][dID]); // Destroy his description pDesc[playerid][dID] = Text3D:0; pDesc[playerid][dIsDescOnPlayer] = false; for(new i=1; i Kontakty > Wyślij VCard", list, "Wyślij", "Anuluj"); return ShowDialogInfo(playerid, "Musisz stać w pobliżu osoby z telefonem do, której chcesz wysłać VCard."); } stock ShowDialogVehicleGroup(playerid) return ShowPlayerDialog(playerid, D_VEHICLE_GROUP, DIALOG_STYLE_INPUT, "Podpisz pojazd pod grupę", "Wpisz poniżej slot grupowy grupy pod jaką chcesz podpisać swój pojazd.\nPamiętaj, aby to zrobić musisz mieć odpowiednie uprawnienia nadane przez lidera wybranej grupy.", "Podpisz", "Anuluj"); stock ShowDialogGroupPanel(playerid) { new uid = GetPVarInt(playerid, "iUID"); new str[1000]; format(str, sizeof(str), ""HEX_WHITE"Informacje o grupie:\n\nNazwa grupy:\t%s\nUID grupy:\t%d\nKolor grupy:\t{%s}%s\nStan konta bankowego grupy:\t"HEX_GREEN"%d$\n"HEX_WHITE"---\n1\tZmień nazwę grupy\n2\tWyrzuć członka\n3\tPrzełącz czat grupowy OOC\n4\tPrzełącz czat grupowy IC\n5\tZmień uprawnienia członka\n6\t"HEX_RED"Usuń grupę\n7\tZmień kolor grupy", GroupCache[uid][gName], uid, GroupCache[uid][gColor], GroupCache[uid][gColor], GroupCache[uid][gBank]); return ShowPlayerDialog(playerid, D_GROUP_PANEL, DIALOG_STYLE_LIST, "Zarządzaj grupą", str, "Wybierz", "Anuluj"); } stock ShowDialogRemoveContact(playerid) { new uid = GetPVarInt(playerid, "iUID"), list[256], info[256], count; for(new i=1; i < LastContactUID; i++) { if(ContactCache[i][cOwner] == ItemCache[uid][iVal]) { if(!ContactCache[i][cState]) { format(info, sizeof(info), "%d\t%s\n", ContactCache[i][cNum], ContactCache[i][cName]); strins(list, info, strlen(list)); count++; } } } if(count) return ShowPlayerDialog(playerid, D_REMOVE_CONTACT, DIALOG_STYLE_LIST, "Telefon > Kontakty > Usuń kontakt", list, "Wybierz", "Anuluj"); GameTextForPlayer(playerid, "~w~nie posiadasz zadnych kontaktow", 1500, 4); return ShowDialogContacts(playerid); } stock AddContact(owner, num, name[]) { new str[128]; format(str, sizeof(str), name); ContactCache[LastContactUID][cOwner] = owner; ContactCache[LastContactUID][cNum] = num; ContactCache[LastContactUID][cName] = str; ContactCache[LastContactUID][cState] = 0; LastContactUID++; } stock ShowDialogAddContact(playerid) return ShowPlayerDialog(playerid, D_ADD_CONTACT, DIALOG_STYLE_INPUT, "Telefon > Kontakty > Dodaj nowy kontakt", ""HEX_WHITE"Dodaj nowy kontakt na wzór: "HEX_GREEN"[numer telefonu] [nazwa kontaktu]", "Dodaj", "Anuluj"); stock ShowDialogContacts(playerid) return ShowPlayerDialog(playerid, D_CONTACTS, DIALOG_STYLE_LIST, "Telefon > Kontakty", "1\tZadzwoń do kontaktu\n2\tNumery alarmowe\n3\tDodaj nowy kontakt\n4\tWyślij VCard\n5\t"HEX_RED"Usuń kontakt", "Wybierz", "Anuluj"); stock PlayerPlaySoundInRange(playerid, soundid, Float:range) { new Float:X, Float:Y, Float:Z, vw = GetPlayerVirtualWorld(playerid); GetPlayerPos(playerid, X, Y, Z); for(new i=0; i<=GetPlayerPoolSize(); i++) { if(vw == GetPlayerVirtualWorld(i)) { if(IsPlayerInRangeOfPoint(i, range, X, Y, Z)) { PlayerPlaySound(i, soundid, 0.0, 0.0, 0.0); } } } } forward GiveWeapon(playerid, weaponid, ammo); public GiveWeapon(playerid, weaponid, ammo) { GivePlayerWeapon(playerid, weaponid, ammo); } forward Calling(playerid); public Calling(playerid) { if(CallData[playerid][cCalling] > 0) { PlayerPlaySound(CallData[playerid][cCaller], 16001, 0.0, 0.0, 0.0); PlayerPlaySoundInRange(playerid, 23000, 12.0); CallData[playerid][cCalling]--; if(CallData[playerid][cCalling] == 0) { SetPlayerSpecialAction(CallData[playerid][cCaller], 13); SendClientMessage(CallData[playerid][cCaller],COLOR_WHITE, "Rozmówca nie odebrał połączenia."); for(new i=1; i Zadzwoń pod numer", "Wprowadź numer telefonu osoby do, której chcesz zadzwonić.\nNp. "HEX_GREEN"500914", "Zadzwoń", "Anuluj"); stock ShowDialogMessages(playerid) { new uid = GetPVarInt(playerid, "iUID"), msg[256], list[256] = "#\tNumer tel.\tWiadomość\n", count; for(new i=1; i Skrzynka odbiorcza", list, "Wybierz", "Wróć"); else { GameTextForPlayer(playerid, "~w~skrzynka odbiorcza jest pusta", 3000, 4); return ShowDialogPhone(playerid); } } stock ShowDialogSMS(playerid) return ShowPlayerDialog(playerid, D_SMS, DIALOG_STYLE_INPUT, "Telefon > Wyślij SMS", ""HEX_WHITE"Podaj numer na jaki chcesz wysłać wiadomość SMS, następnie jego treść.\nNp. "HEX_GREEN"523414 "HEX_WHITE"Cześć Lucy!", "Wyślij", "Anuluj"); stock SetPlayerCash(playerid, cash) { UserCache[pUID[playerid]][uCash] += cash; GivePlayerMoney(playerid, cash); return 1; } stock CreateDoor(ownerid, outVW, type, Float:X, Float:Y, Float:Z) { new VW=1, name[32]; for(new i=1; i Witaj, %s! "HEX_GRAY"(UID: %d, ID: %d)"HEX_WHITE". Życzymy miłej gry!", PlayerName(playerid), UID, playerid); ClearChat(playerid); SendClientMessage(playerid, COLOR_WHITE, str); KillTimer(ChooseSkinTimer[playerid]); if(UserCache[UID][uTutorial] == 2) { SetPlayerFreeVW(playerid); SetSpawnInfoFix(playerid, 0, UserCache[pUID[playerid]][uSkin], 1016.1049,-1313.0197,13.5469); } if(UserCache[UID][uAJ] > 0) { SetPlayerFreeVW(playerid); format(str, sizeof(str), "~r~AJ: %d min", UserCache[UID][uAJ]); PlayerTextDrawSetString(playerid, AJTextDraw[playerid], str); PlayerTextDrawShow(playerid, AJTextDraw[playerid]); SetSpawnInfoFix(playerid, 0, UserCache[pUID[playerid]][uSkin], 1175.3094,-1179.7953,87.0432); } else if(UserCache[UID][uSpawnX] != 0 && UserCache[UID][uSpawnY] != 0 && UserCache[UID][uSpawnZ] != 0) { Freeze(playerid, 3000); SetSpawnInfoFix(playerid, 0, UserCache[UID][uSkin],UserCache[UID][uSpawnX], UserCache[UID][uSpawnY], UserCache[UID][uSpawnZ]); SetPlayerVirtualWorld(playerid, UserCache[UID][uSpawnVW]); } else if(UserCache[UID][uHouseSpawn] != 0) { new duid = UserCache[UID][uHouseSpawn]; SetSpawnInfoFix(playerid, 0, UserCache[UID][uSkin],DoorCache[duid][dInsX], DoorCache[duid][dInsY], DoorCache[duid][dInsZ]); SetPlayerVirtualWorld(playerid, DoorCache[duid][dInsVW]); } else { SetSpawnInfoFix(playerid, 0, UserCache[UID][uSkin],-128.0586,1267.5101,18.9242); SetPlayerVirtualWorld(playerid, 0); } TogglePlayerSpectating(playerid, 0); // Spawn if(UserCache[UID][uBW] > 0) { TogglePlayerControllable(playerid, 0); ApplyAnimation(playerid, "crack", "crckdeth1", 4.1, 0, 0, 0, 1, 0, 0); SetPlayerCameraPos(playerid, UserCache[UID][uSpawnX], UserCache[UID][uSpawnY], UserCache[UID][uSpawnZ]+10.0); SetPlayerCameraLookAt(playerid, UserCache[UID][uSpawnX], UserCache[UID][uSpawnY], UserCache[UID][uSpawnZ], CAMERA_CUT); new msg[64]; format(msg, sizeof(msg), "Stan nieprzytomnosci przez: %dmin", UserCache[UID][uBW]); PlayerTextDrawShow(playerid, BWTextDraw[playerid]); } else if(UserCache[UID][uTutorial]) { TogglePlayerControllable(playerid, 0); SetPlayerPos(playerid, -128.0586,1267.5101,18.9242); SetPlayerCameraPos(playerid, -127.2054,1263.7201,19.0055); SetPlayerCameraLookAt(playerid, -128.0586,1267.5101,18.9242); SetPlayerFacingAngle(playerid, 182.2969); ChooseSkinTimer[playerid] = SetTimerEx("ChooseSkin", 120, true, "i", playerid); PlayerTextDrawSetString(playerid, BottomTextDraw[playerid], "~y~Wyglad postaci.~w~~n~~n~~b~~h~~h~~h~lewo ~w~poprzedni skin~n~~b~~h~~h~~h~prawo ~w~nastepny skin~n~~n~~b~~h~~h~~h~LALT~w~ akceptuj"); PlayerTextDrawShow(playerid, BottomTextDraw[playerid]); } DestroyDynamic3DTextLabel(pNick[playerid][nID]); // Remove nickname on his ID if(UserCache[pUID[playerid]][uRank] != 0) pNick[playerid][nColor] = COLOR_WHITE; else pNick[playerid][nColor] = PLAYER_NORMAL_COLOR; pNick[playerid][nID] = CreateDynamic3DTextLabel(" ", pNick[playerid][nColor], 0.0, 0.0, 0.2, 10.0, playerid, INVALID_VEHICLE_ID, 1, -1, -1, -1); SetTimerEx("GiveScorePerHour", 60000*60, false, "i", playerid); if(UserCache[pUID[playerid]][uRank] != 0) { aduty[playerid] = 1; format(str, sizeof(str), "~w~wchodzisz na sluzbe:~n~~b~~h~~h~~h~%s", GetRankName(UserCache[pUID[playerid]][uRank])); GameTextForPlayer(playerid, str, 3000, 4); } UpdatePlayerName(playerid); return 1; } forward GiveScorePerHour(playerid); public GiveScorePerHour(playerid) { if(IsPlayerConnected(playerid)) { UserCache[pUID[playerid]][uSP] += 30; SetPlayerScore(playerid, UserCache[pUID[playerid]][uSP]); if(!UserCache[pUID[playerid]][uBankAccount]) TextDrawForPlayerEx(playerid, 1, "Nie mozesz otrzymac cogodzinnego zasilku~n~poniewaz nie posiadasz konta bankowego.~n~Udaj sie do banku!", 10000); else { new msg[128]; format(msg, sizeof(msg), "#Bank "HEX_WHITE"Na konto wypłynęła kwota 40$ z cogodzinnego zasiłku."); SendClientMessage(playerid, COLOR_GREEN, msg); UserCache[pUID[playerid]][uBank] += 40; SetTimerEx("GiveScorePerHour", 60000*60, false, "i", playerid); } } } stock ReturnHour() { new h, m, s; gettime(h, m ,s); return h; } stock ReturnMinute() { new h, m, s; gettime(h,m,s); return m; } stock UpdatePlayerName(playerid) { new name[525], uid = pUID[playerid]; format(name, sizeof(name), "%s, %d", strreplace(PlayerName(playerid), '_', ' '), playerid); if(UserCache[uid][uBW]) { format(name, sizeof(name), "%s, %d\n(%s)", RPName(playerid), playerid, GetBWReason(playerid)); if(UserCache[uid][uBelts]) format(name, sizeof(name), "%s, %d\n(%s, %s)", strreplace(PlayerName(playerid), '_', ' '), playerid,GetBWReason(playerid), IsHelmet(playerid) ? ("kask") : ("pasy")); if(UserCache[uid][uAFK]) format(name, sizeof(name), "%s, %d\n(%s, %s, AFK od: %02d:%02d)", strreplace(PlayerName(playerid), '_', ' '), playerid,GetBWReason(playerid),IsHelmet(playerid) ? ("kask") : ("pasy"), ReturnHour(), ReturnMinute()); } if(pDuty[playerid] != 0) { if(UserCache[uid][uBelts]) { format(name, sizeof(name), "%s, %d\n(%s)\n{%s}[%s]", strreplace(PlayerName(playerid), '_', ' '), playerid,IsHelmet(playerid) ? ("kask") : ("pasy"), GroupCache[pDuty[playerid]][gColor],GroupCache[pDuty[playerid]][gName]); if(UserCache[uid][uAFK]) { format(name, sizeof(name), "%s, %d\n(%s, AFK od: %02d:%02d)\n{%s}[%s]", strreplace(PlayerName(playerid), '_', ' '), playerid, IsHelmet(playerid) ? ("kask") : ("pasy"), ReturnHour(), ReturnMinute(), GroupCache[pDuty[playerid]][gColor],GroupCache[pDuty[playerid]][gName]); } } if(UserCache[uid][uAFK]) { format(name, sizeof(name), "%s, %d\n(AFK od: %02d:%02d)\n{%s}[%s]", strreplace(PlayerName(playerid), '_', ' '), playerid, ReturnHour(), ReturnMinute(), GroupCache[pDuty[playerid]][gColor],GroupCache[pDuty[playerid]][gName]); } else format(name, sizeof(name), "%s, %d\n{%s}[%s]", strreplace(PlayerName(playerid), '_', ' '), playerid, GroupCache[pDuty[playerid]][gColor],GroupCache[pDuty[playerid]][gName]); } if(UserCache[uid][uStrenght] >= 300) { format(name, sizeof(name), "%s, %d\n(%s)", strreplace(PlayerName(playerid), '_', ' '),playerid, GetPlayerStrenghtName(playerid)); if(UserCache[uid][uBelts]) format(name, sizeof(name), "%s, %d\n(%s, %s)", strreplace(PlayerName(playerid), '_', ' '),playerid, GetPlayerStrenghtName(playerid), IsHelmet(playerid) ? ("kask") : ("pasy")); if(UserCache[uid][uAFK]) format(name, sizeof(name), "%s, %d\n(%s, AFK od: %02d:%02d)", strreplace(PlayerName(playerid), '_', ' '),playerid, GetPlayerStrenghtName(playerid), ReturnHour(), ReturnMinute()); if(UserCache[uid][uBelts] && UserCache[uid][uAFK]) format(name, sizeof(name), "%s, %d\n(%s, %s, AFK od: %02d:%02d)", strreplace(PlayerName(playerid), '_', ' '),playerid, GetPlayerStrenghtName(playerid), IsHelmet(playerid) ? ("kask") : ("pasy"), ReturnHour(), ReturnMinute()); } if(UserCache[uid][uStrenght] >= 300 && pDuty[playerid]) { format(name, sizeof(name), "%s, %d\n(%s)\n{%s}[%s]", strreplace(PlayerName(playerid), '_', ' '),playerid, GetPlayerStrenghtName(playerid), GroupCache[pDuty[playerid]][gColor], GroupCache[pDuty[playerid]][gName]); if(UserCache[uid][uAFK]) format(name, sizeof(name), "%s, %d\n(%s, AFK od: %02d:%02d)\n{%s}[%s]", strreplace(PlayerName(playerid), '_', ' '),playerid, GetPlayerStrenghtName(playerid), ReturnHour(), ReturnMinute(), GroupCache[pDuty[playerid]][gColor], GroupCache[pDuty[playerid]][gName]); if(UserCache[uid][uBelts]) format(name, sizeof(name), "%s, %d\n(%s, %s)\n{%s}[%s]", strreplace(PlayerName(playerid), '_', ' '),playerid, GetPlayerStrenghtName(playerid), IsHelmet(playerid) ? ("kask") : ("pasy"),GroupCache[pDuty[playerid]][gColor], GroupCache[pDuty[playerid]][gName]); if(UserCache[uid][uBelts] && UserCache[uid][uAFK]) format(name, sizeof(name), "%s, %d\n(%s, %s, AFK od: %02d:%02d)\n{%s}[%s]", strreplace(PlayerName(playerid), '_', ' '),playerid, GetPlayerStrenghtName(playerid), IsHelmet(playerid) ? ("kask") : ("pasy"), ReturnHour(), ReturnMinute(), GroupCache[pDuty[playerid]][gColor], GroupCache[pDuty[playerid]][gName]); } if(UserCache[uid][uStrenght] >= 300 && UserCache[uid][uBW]) { format(name, sizeof(name), "%s, %d\n(%s, %s)", strreplace(PlayerName(playerid), '_', ' '),playerid, GetBWReason(playerid), GetPlayerStrenghtName(playerid)); if(UserCache[uid][uAFK]) format(name, sizeof(name), "%s, %d\n(%s, %s, %s, AFK od: %02d:%02d)", strreplace(PlayerName(playerid), '_', ' '),playerid, GetBWReason(playerid), GetPlayerStrenghtName(playerid), IsHelmet(playerid) ? ("kask") : ("pasy"), ReturnHour(), ReturnMinute()); if(UserCache[uid][uBelts]) format(name, sizeof(name), "%s, %d\n(%s, %s, %s)", strreplace(PlayerName(playerid), '_', ' '),playerid, GetBWReason(playerid), GetPlayerStrenghtName(playerid), IsHelmet(playerid) ? ("kask") : ("pasy")); if(UserCache[uid][uBelts] && UserCache[uid][uAFK]) format(name, sizeof(name), "%s, %d\n(%s, %s, %s, AFK od: %02d:%02d)", strreplace(PlayerName(playerid), '_', ' '),playerid, GetBWReason(playerid), GetPlayerStrenghtName(playerid), IsHelmet(playerid) ? ("kask") : ("pasy"), ReturnHour(), ReturnMinute()); } if(pDuty[playerid] && UserCache[uid][uBW]) { format(name, sizeof(name), "%s, %d\n(%s)\n{%s}[%s]", strreplace(PlayerName(playerid), '_', ' '),playerid, GetBWReason(playerid),GroupCache[pDuty[playerid]][gColor],GroupCache[pDuty[playerid]][gName]); if(UserCache[uid][uAFK]) format(name, sizeof(name), "%s, %d\n(%s, AFK od %02d:%02d)\n{%s}[%s]", strreplace(PlayerName(playerid), '_', ' '),playerid, GetBWReason(playerid),ReturnHour(), ReturnMinute(), GroupCache[pDuty[playerid]][gColor],GroupCache[pDuty[playerid]][gName]); if(UserCache[uid][uBelts]) format(name, sizeof(name), "%s, %d\n(%s, %s)\n{%s}[%s]", strreplace(PlayerName(playerid), '_', ' '),playerid, GetBWReason(playerid), IsHelmet(playerid) ? ("kask") : ("pasy"),GroupCache[pDuty[playerid]][gColor] ,GroupCache[pDuty[playerid]][gName]); if(UserCache[uid][uBelts] && UserCache[uid][uAFK]) format(name, sizeof(name), "%s, %d\n(%s, %s, AFK od %02d:%02d)\n{%s}[%s]", strreplace(PlayerName(playerid), '_', ' '),playerid, GetBWReason(playerid),IsHelmet(playerid) ? ("kask") : ("pasy"),ReturnHour(), ReturnMinute(), GroupCache[pDuty[playerid]][gColor],GroupCache[pDuty[playerid]][gName]); } if(pDuty[playerid] && UserCache[uid][uBW] && UserCache[uid][uStrenght] >= 300) { format(name, sizeof(name), "%s, %d\n(%s, %s)\n{%s}[%s]", strreplace(PlayerName(playerid), '_', ' '), playerid, GetBWReason(playerid),GetPlayerStrenghtName(playerid),GroupCache[pDuty[playerid]][gColor],GroupCache[pDuty[playerid]][gName]); if(UserCache[uid][uAFK]) format(name, sizeof(name), "%s, %d\n(%s, %s, AFK od %02d:%02d)\n{%s}[%s]", strreplace(PlayerName(playerid), '_', ' '), playerid, GetBWReason(playerid),GetPlayerStrenghtName(playerid),ReturnHour(), ReturnMinute(), GroupCache[pDuty[playerid]][gColor],GroupCache[pDuty[playerid]][gName]); if(UserCache[uid][uBelts]) format(name, sizeof(name), "%s, %d\n(%s, %s, %s)\n{%s}[%s]", strreplace(PlayerName(playerid), '_', ' '), playerid, GetBWReason(playerid),GetPlayerStrenghtName(playerid),IsHelmet(playerid) ? ("kask") : ("pasy"),GroupCache[pDuty[playerid]][gColor],GroupCache[pDuty[playerid]][gName]); if(UserCache[uid][uBelts] && UserCache[uid][uAFK]) format(name, sizeof(name), "%s, %d\n(%s, %s, %s, AFK od %02d:%02d)\n{%s}[%s]", strreplace(PlayerName(playerid), '_', ' '), playerid, GetBWReason(playerid),GetPlayerStrenghtName(playerid),IsHelmet(playerid) ? ("kask") : ("pasy"),ReturnHour(), ReturnMinute(), GroupCache[pDuty[playerid]][gColor],GroupCache[pDuty[playerid]][gName]); } pNick[playerid][nColor] = PLAYER_NORMAL_COLOR; for(new i=1; i= 300) name = "wysportowana"; if(strenght >= 600) name = "umięśniona"; if(strenght >= 900) name = "muskularna"; } else { if(strenght >= 300) name = "wysportowany"; if(strenght >= 600) name = "umięśniony"; if(strenght >= 900) name = "muskularny"; } return name; } public OnPlayerGiveDamage(playerid, damagedid, Float:amount, weaponid, bodypart) { if(GetPlayerWeapon(playerid) != 0) { new bool:ischeater=true; for(new i=1;i 0 && strcmp(cmd, "/w", true) || strcmp(cmd, "/re", true)) return 1; if(!strcmp(cmd, "/krzeslo", true)) { if(UserCache[pUID[playerid]][uTutorial] == 2) { if(!IsPlayerInRangeOfPoint(playerid,0.5,2.7780,26.6538,1199.5938)) { GameTextForPlayer(playerid, "~r~wejdz w marker", 3000, 4); return 1; } SetPlayerFacingAngle(playerid, 9.086769); SetPlayerPos(playerid, 2.6589,26.5511,1199.5938); ApplyAnimation(playerid, "ped", "seat_down", 4.1, 0, 0, 0, 1, 0, 0); TextDrawForPlayer(playerid, 0, "~b~~h~The tutoriale zjebale~n~~n~Zajebiscie. Ogarnales to. Zeby wstac musisz kliknac ~g~~h~LPM ~w~(lewy przycisk myszki).~n~Szersza liste animacji znajdziesz pod ~y~/anim~w~."); PlayerPlaySound(playerid, 1149, 0.0, 0.0, 0.0); UserCache[pUID[playerid]][uTutorial]--; return 0; } return !ApplyAnimation(playerid, "int_office", "off_sit_idle_loop", 4.1, 0, 0, 0, 1, 0, 0); } if(!strcmp(cmd, "/napad", true)) { return !ApplyAnimation(playerid, "shop", "rob_loop", 4.1, 1, 0, 0, 1, 0, 0); } if(!strcmp(cmd, "/siad", true)) { return !ApplyAnimation(playerid, "beach", "parksit_m_loop", 4.1, 1, 0, 0, 1, 0, 0); } if(!strcmp(cmd, "/tancz", true)) { return !SetPlayerSpecialAction(playerid, SPECIAL_ACTION_DANCE1); } if(!strcmp(cmd, "/tancz2", true)) { return !SetPlayerSpecialAction(playerid, SPECIAL_ACTION_DANCE2); } if(!strcmp(cmd, "/tancz3", true)) { return !SetPlayerSpecialAction(playerid, SPECIAL_ACTION_DANCE3); } if(!strcmp(cmd, "/tancz4", true)) { return !SetPlayerSpecialAction(playerid, SPECIAL_ACTION_DANCE4); } if(!pUID[playerid]) return 0; if(UserCache[pUID[playerid]][uAJ]) return 0; return 1; } stock ShowDialogATM(playerid) { new str[128]; format(str, sizeof(str), ""HEX_WHITE"Stan konta bankowego:\t"HEX_GREEN"%d$"HEX_WHITE"\n-\n1\tWypłać środki\n2\tWpłać środki", UserCache[pUID[playerid]][uBank]); return ShowPlayerDialog(playerid, D_ATM, DIALOG_STYLE_LIST, "Bankomat", str, "Wybierz", "Anuluj"); } stock RPName(playerid) { new name[MAX_PLAYER_NAME]; GetPlayerName(playerid, name, sizeof(name)); for(new i; i= 100) { new temp1[825], temp2[825]; temp1 = msg, temp2=msg; strdel(temp1, 100, strlen(temp1)); strins(temp1, "...", strlen(temp1)); strdel(temp2, 0, 100); strins(temp2, "...", 0); SendClientMessage(playerid, CHAT_SHADE_2, temp1); return SendClientMessage(playerid, CHAT_SHADE_2, temp2); } return SendClientMessage(playerid, CHAT_SHADE_2, msg); } } new objectid = GetPlayerCameraTargetDynObject(playerid); new objuid = GetObjectUID(objectid); if(ObjectCache[objuid][oModel] == 19324 || ObjectCache[objuid][oModel] == 2942 || ObjectCache[objuid][oModel] == 2754) { if(IsPlayerInRangeOfPoint(playerid, 1.5, ObjectCache[objuid][oX], ObjectCache[objuid][oY], ObjectCache[objuid][oZ])) { if(!UserCache[pUID[playerid]][uBankAccount]) return ShowDialogInfo(playerid, "Nie posiadasz konta bankowego, udaj się do banku by utworzyć konto!"); ApplyAnimation(playerid, "dealer", "shop_pay", 4.1, 0, 0, 0, 0, 0, 0); SendPlayerMe(playerid, "korzysta z bankomatu."); return ShowDialogATM(playerid); } } if(ObjectCache[objuid][oGate]) { new Float:ox, Float:oy, Float:oz, Float:rx, Float:ry, Float:rz; if(IsDynamicObjectMoving(objectid)) return TextDrawForPlayerEx(playerid, 1, "Brama aktualnie sie porusza!", 3000); GetDynamicObjectPos(objectid, ox, oy, oz); GetDynamicObjectRot(objectid, rx, ry, rz); if(ox == ObjectCache[objuid][oX]+ObjectCache[objuid][oGateX] && oy == ObjectCache[objuid][oY]+ObjectCache[objuid][oGateY] && oz ==ObjectCache[objuid][oZ]+ObjectCache[objuid][oGateZ] && rx == ObjectCache[objuid][orX]+ObjectCache[objuid][oGaterX] && ry == ObjectCache[objuid][orY]+ObjectCache[objuid][oGaterY] && rz == ObjectCache[objuid][orZ]+ObjectCache[objuid][oGaterZ]) { TextDrawForPlayerEx(playerid, 1, "Brama ~r~~h~zamknieta~w~.", 3000); return MoveDynamicObject(objectid,ObjectCache[objuid][oX], ObjectCache[objuid][oY], ObjectCache[objuid][oZ], 4.1, ObjectCache[objuid][orX], ObjectCache[objuid][orY], ObjectCache[objuid][orZ]); } MoveDynamicObject(objectid,ObjectCache[objuid][oX]+ObjectCache[objuid][oGateX], ObjectCache[objuid][oY]+ObjectCache[objuid][oGateY], ObjectCache[objuid][oZ]+ObjectCache[objuid][oGateZ], 4.1, ObjectCache[objuid][orX]+ObjectCache[objuid][oGaterX], ObjectCache[objuid][orY]+ObjectCache[objuid][oGaterY], ObjectCache[objuid][orZ]+ObjectCache[objuid][oGaterZ]); return TextDrawForPlayerEx(playerid, 1, "Brama ~g~~h~otwarta.~w~.", 3000); } } if(newkeys & KEY_FIRE) { if(IsPlayerInAnyVehicle(playerid)) { new vid = GetPlayerVehicleID(playerid), vuid = GetVehicleUID(vid); if(GetPlayerVehicleSeat(playerid) != 0) return 1; if(VehicleCache[vuid][vLights]) return SetVehicleParamsEx(vid, VehicleCache[vuid][vEngine], VehicleCache[vuid][vLights]=0, VehicleCache[vuid][vAlarm], VehicleCache[vuid][vDoors], VehicleCache[vuid][vBonnet], VehicleCache[vuid][vBoot], VehicleCache[vuid][vObjective]); return SetVehicleParamsEx(vid, VehicleCache[vuid][vEngine], VehicleCache[vuid][vLights]=1, VehicleCache[vuid][vAlarm], VehicleCache[vuid][vDoors], VehicleCache[vuid][vBonnet], VehicleCache[vuid][vBoot], VehicleCache[vuid][vObjective]); } new lib[32], name[32], index; index = GetPlayerAnimationIndex(playerid); GetAnimationName(index, lib, sizeof(lib), name, sizeof(name)); if(!strcmp(lib, "int_office", true) || !strcmp(name, "parksit_m_loop", true) || !strcmp(name, "rob_loop", true)) { return ClearAnimations(playerid); } if(GetPlayerObjectID(playerid)) { if(!strcmp(name, "gnstwall_injurd", true)) return ClearAnimations(playerid); return ApplyAnimation(playerid, "swat", "gnstwall_injurd", 4.1, 0, 0, 0, 1, 0, 0); } return 1; } if(newkeys & KEY_WALK && newkeys & KEY_SPRINT) { new vw = GetPlayerVirtualWorld(playerid); for(new i=1; i 0) { if(UserCache[pUID[playerid]][uCash] < DoorCache[i][dEnterCost]) return TextDrawForPlayerEx(playerid, 1, "~r~~h~Brak gotowki na przejscie.", 3000); UserCache[pUID[playerid]][uCash] -= DoorCache[i][dEnterCost]; GivePlayerMoney(playerid, -DoorCache[i][dEnterCost]); GroupCache[DoorCache[i][dGroupUID]][gBank] += DoorCache[i][dEnterCost]; } if(pChangeInterior[playerid]) return TextDrawForPlayerEx(playerid, 1, "Odczekaj chwile przed kolejnym przejsciem.", 3000); pChangeInterior[playerid] = true; SetTimerEx("DisableInterior", 3000, false, "i", playerid); if(UserCache[pUID[playerid]][uFreeze]) Freeze(playerid, 3000); else if(!UserCache[pUID[playerid]][uFreeze] && GetPlayerSpeed(playerid)) TextDrawForPlayerEx(playerid, 1, "Przechodzac przez interior spadasz pod mape? Przejdz do: ~y~/stats -> ustawienia postaci~w~ i ~n~Przelacz ~g~~h~freeze~w~ przy przejsciu przez drzwi.", 10000); SetPlayerVirtualWorld(playerid, DoorCache[i][dInsVW]); SetPlayerPos(playerid, DoorCache[i][dInsX], DoorCache[i][dInsY], DoorCache[i][dInsZ]); Streamer_Update(playerid); if(!Isnull(DoorCache[i][dUrl])) PlayAudioStreamForPlayer(playerid, DoorCache[i][dUrl]); PlayerTextDrawHide(playerid, TextDrawDoorInfo[playerid]); if(GroupCache[DoorCache[i][dGroupUID]][gType] == 7) TextDrawForPlayerEx(playerid, 1, "Znajdujesz sie w sklepie calodobowym.~n~Uzyj ~g~~h~/kup~w~ by wyswietlic liste wszystkich przedmiotow do kupienia.", 75000); return 1; } } if(IsPlayerInRangeOfPoint(playerid, 1.5, DoorCache[i][dInsX], DoorCache[i][dInsY], DoorCache[i][dInsZ])) { if(vw == DoorCache[i][dInsVW]) { if(!DoorCache[i][dOpen]) { SendPlayerMe(playerid, "pociąga za klamkę od drzwi"); TextDrawForPlayerEx(playerid, 1, "~r~Te drzwi sa zamkniete.", 3000); return 1; } if(pChangeInterior[playerid]) return TextDrawForPlayerEx(playerid, 1, "Odczekaj chwile przed kolejnym przejsciem.", 3000); pChangeInterior[playerid] = true; SetTimerEx("DisableInterior", 3000, false, "i", playerid); if(UserCache[pUID[playerid]][uFreeze]) Freeze(playerid, 3000); SetPlayerVirtualWorld(playerid, DoorCache[i][dOutVW]); SetPlayerPos(playerid, DoorCache[i][dOutX], DoorCache[i][dOutY], DoorCache[i][dOutZ]); StopAudioStreamForPlayer(playerid); Streamer_Update(playerid); return 1; } } } } } return 1; } forward DisableInterior(playerid); public DisableInterior(playerid) { pChangeInterior[playerid] = false; } stock Freeze(playerid, time) {TogglePlayerControllable(playerid, 0); SetTimerEx("Unfreeze", time, false, "i", playerid);} forward Unfreeze(playerid); public Unfreeze(playerid) TogglePlayerControllable(playerid, 1); stock IsPosInRangeOfPos(Float:PosX, Float:PosY, Float:PosZ, Float:TargetX, Float:TargetY, Float:TargetZ, Float:range) { if(PosX >= TargetX-range && PosX <= TargetX+range || PosY >= TargetY-range && PosY <= TargetY+range || PosZ >= TargetZ-range && PosZ <= TargetZ+range) return 1; return 0; } public OnPlayerCommandPerformed(playerid, cmd[], params[], result, flags) { printf("[UID: %d] [CMD: %s %s] [PLAYER: %s ID: %d]", pUID[playerid], cmd, params, PlayerName(playerid), playerid); if(result==-1) return PlayerPlaySound(playerid, 1085, 0.0, 0.0, 0.0); return 1; } forward ChooseSkin(playerid); public ChooseSkin(playerid) { new ud, lr, keys; GetPlayerKeys(playerid, keys, ud, lr); if(lr == KEY_LEFT) { PlayerPlaySound(playerid, 1084, 0.0, 0.0, 0.0); if(UserCache[pUID[playerid]][uSex]) { SetPrevFemaleSkin(playerid); } else { SetPrevMaleSkin(playerid); } } else if(lr == KEY_RIGHT) { PlayerPlaySound(playerid, 1083, 0.0, 0.0, 0.0); if(UserCache[pUID[playerid]][uSex]) { SetNextFemaleSkin(playerid); } else { SetNextMaleSkin(playerid); } } else if(keys & KEY_WALK) { ChooseSkinTimer[playerid] = KillTimer(ChooseSkinTimer[playerid]); UserCache[pUID[playerid]][uSkin] = GetPlayerSkin(playerid); TogglePlayerControllable(playerid, 1); SetCameraBehindPlayer(playerid); UserCache[pUID[playerid]][uTutorial] = 1; SetPlayerPos(playerid, -199.4787,1223.2294,19.7113); SetPlayerVirtualWorld(playerid, 0); ShowDialogInfo(playerid, ""HEX_BLUE"Witamy na Projekt Roleplay!\n\n"HEX_WHITE"Stworzyłeś/aś właśnie nową postać, słowami wstępu:\n\nUdaj się do "HEX_BLUE"urzędu"HEX_WHITE" miasta by wyrobić dokumenty osobiste, następnie do "HEX_GREEN"banku"HEX_WHITE",\nw celu wyrobienia karty kredytowej.\nKiedy już to wszystko zrobisz, poszukaj zatrudnienia w jakimś biznesie. Popytaj ludzi o pracę.\n\nJeśli dalej potrzebujesz pomocy - skorzystaj z komendy /pomoc. Miłej gry!"); UserCache[pUID[playerid]][uTutorial] = 0; PlayerTextDrawHide(playerid, BottomTextDraw[playerid]); } } stock SetNextMaleSkin(playerid) { for(new i=GetPlayerSkin(playerid)+1; i < LAST_MALE_SKIN; i++) { if(i == LAST_MALE_SKIN) { SetPlayerSkin(playerid, FIRST_MALE_SKIN); break; } if(i ==18 || i == 17 || i == 19 || i == 20 || i == 21 || i == 23 || i == 240 || i == 250 || i == LAST_MALE_SKIN) { SetPlayerSkin(playerid, i); break; } } } stock SetNextFemaleSkin(playerid) { for(new i=GetPlayerSkin(playerid)+1; i < LAST_FEMALE_SKIN; i++) { if(i == LAST_FEMALE_SKIN) { SetPlayerSkin(playerid, FIRST_FEMALE_SKIN); break; } if(i ==12 || i == 40 || i == 41 || i == 56 || i == 63 || i == 69 || i == 75 || i == 76 || i == LAST_FEMALE_SKIN) { SetPlayerSkin(playerid, i); break; } } } stock SetPrevMaleSkin(playerid) { for(new i=GetPlayerSkin(playerid)-1; i > FIRST_MALE_SKIN; i--) { if(i == FIRST_MALE_SKIN) { SetPlayerSkin(playerid, LAST_MALE_SKIN); break; } if(i ==18 || i == 17 || i == 19 || i == 20 || i == 21 || i == 23 || i == 240 || i == 250 || i == FIRST_MALE_SKIN) { SetPlayerSkin(playerid, i); break; } } } stock SetPrevFemaleSkin(playerid) { for(new i=GetPlayerSkin(playerid)-1; i < FIRST_FEMALE_SKIN; i--) { if(i == FIRST_FEMALE_SKIN) { SetPlayerSkin(playerid, LAST_FEMALE_SKIN); break; } if(i ==12 || i == 40 || i == 41 || i == 56 || i == 63 || i == 69 || i == 75 || i == 76 || i == LAST_FEMALE_SKIN) { SetPlayerSkin(playerid, i); break; } } } public OnPlayerSpawn(playerid) { if(!pUID[playerid]) return Kick(playerid); SetPlayerHealth(playerid, UserCache[pUID[playerid]][uHealth]); ResetPlayerMoney(playerid); GivePlayerMoney(playerid, UserCache[pUID[playerid]][uCash]); if(UserCache[pUID[playerid]][uBW] > 0) { SetPlayerHP(playerid, 1); UpdatePlayerName(playerid); } return 1; } stock LookForEmoji(str[]) { new msg[258]; format(msg, sizeof(msg), str); new pos; while(strfind(msg, ":d", true) != -1) { pos = strfind(msg, ":d", true); strdel(msg, pos, pos+2); strins(msg, "*śmieje się*",pos); } while(strfind(msg, ":)", true) != -1) { pos = strfind(msg, ":)", true); strdel(msg, pos, pos+2); strins(msg, "*uśmiecha się*",pos); } while(strfind(msg, ":(", true) != -1) { pos = strfind(msg, ":(", true); strdel(msg, pos, pos+2); strins(msg, "*smuci się*",pos); } while(strfind(msg, ";(", true) != -1) { pos = strfind(msg, ";(", true); strdel(msg, pos, pos+2); strins(msg, "*smuci się*",pos); } while(strfind(msg, ":p", true) != -1) { pos = strfind(msg, ":p", true); strdel(msg, pos, pos+2); strins(msg, "*wystawia język*",pos); } while(strfind(msg, ":o", true) != -1) { pos = strfind(msg, ":o", true); strdel(msg, pos, pos+2); strins(msg, "*robi zaskoczoną minę*",pos); } while(strfind(msg, "lel", true) != -1) { pos = strfind(msg, "lel", true); strdel(msg, pos, pos+3); strins(msg, "*wybucha śmiechem*",pos); } while(strfind(msg, "lol", true) != -1) { pos = strfind(msg, "lol", true); strdel(msg, pos, pos+3); strins(msg, "*wybucha śmiechem*",pos); } while(strfind(msg, ":d", true) != -1) { pos = strfind(msg, ":d", true); strdel(msg, pos, pos+2); strins(msg, "*śmieje się*",pos); } while(strfind(msg, "xd", true) != -1) { pos = strfind(msg, "xd", true); strdel(msg, pos, pos+2); strins(msg, "*śmieje się*",pos); } while(strfind(msg, ":/", true) != -1) { pos = strfind(msg, ":/", true); strdel(msg, pos, pos+2); strins(msg, "*krzywi się*",pos); } while(strfind(msg, ":*", true) != -1) { pos = strfind(msg, ":*", true); strdel(msg, pos, pos+2); strins(msg, "*posyła całusa*",pos); } while(strfind(msg, ":>", true) != -1) { pos = strfind(msg, ":>", true); strdel(msg, pos, pos+2); strins(msg, "*mróży oczy*",pos); } return msg; } stock SendFormattedMessage(playerid, message[], hexme[], hexnormal[], color) { new msg[500]; format(msg, sizeof(msg), message); new me[32]; format(me, sizeof(me), "%s*", hexme); new norm[32]; format(norm, sizeof(norm), "*%s", hexnormal); new bool:look; if(strlen(msg) >= 100) { new temp1[500], temp2[500]; temp1 = msg; temp2 = msg; strdel(temp1, 100, strlen(temp1)); strdel(temp2, 0, 100); strins(temp1, "...", strlen(temp1)); strins(temp2, "...", 0); format(temp1, sizeof(temp1), LookForEmoji(temp1)); format(temp2, sizeof(temp2), LookForEmoji(temp2)); for(new i=0; i<=strlen(temp1); i++) { if(look == true) { if(temp1[i] == '*') { strdel(temp1, i, i+1); strins(temp1, norm, i); look = false; continue; } } if(temp1[i] == '*') { strdel(temp1, i, i+1); strins(temp1, me, i); i=i+8; look = true; } } for(new i=0; i<=strlen(temp2); i++) { if(look == true) { if(temp2[i] == '*') { strdel(temp2, i, i+1); strins(temp2, norm, i); look = false; continue; } } if(temp2[i] == '*') { strdel(temp2, i, i+1); strins(temp2, me, i); i=i+8; look = true; } } new pos2; for(new i=strlen(temp1); i>=0; i--) { if(temp1[i] == '*') { pos2 = i; break; } } if(pos2 != 0) { strins(temp1, hexme, pos2); strins(temp2, hexme, 0); } SendClientMessage(playerid, color, temp1); SendClientMessage(playerid, color, temp2); return 1; } format(msg, sizeof(msg), LookForEmoji(msg)); for(new i=0; i<=strlen(msg); i++) { if(look == true) { if(msg[i] == '*') { strdel(msg, i, i+1); strins(msg, norm, i); look = false; continue; } } if(msg[i] == '*') { strdel(msg, i, i+1); strins(msg, me, i); i=i+8; look = true; } } return SendClientMessage(playerid, color, msg); } public OnPlayerText(playerid, text[]) { if(UserCache[pUID[playerid]][uAJ] || !pUID[playerid]) return 0; PlayerTick[playerid] = GetTickCount(); if(GetTickCount()/1000 + 2000 >= PlayerTick[playerid]) { new msg[128]; format(msg, sizeof(msg), "Poczekaj %ds.", GetTickCount()/1000-PlayerTick[playerid]/1000); return !SendClientMessage(playerid, COLOR_GRAY, msg); } if(ac[playerid]) { new msg[256]; format(msg, sizeof(msg), "(( %s: %s ))", PlayerName(playerid), text); for(new i=0; i<=GetPlayerPoolSize();i++) { if(IsPlayerConnected(i)) { if(pUID[i]) { if(UserCache[pUID[i]][uRank] >= ADMINISTRATION) { SendClientMessage(i, COLOR_DARKRED, msg); } } } } return 0; } if(UserCache[pUID[playerid]][uBW]) return !SendClientMessage(playerid, COLOR_GRAY, "Nie możesz nic mówić podczas BW."); if(text[0] == ':' && text[1] == 'd' || text[1] == 'D' && text[0] == ':') return !SendPlayerMe(playerid, "śmieje się."); if(text[0] == 'x' && text[1] == 'd' || text[1] == 'D' && text[0] == 'X') return !SendPlayerMe(playerid, "śmieje się."); if(text[0] == ':' && text[1] == ')') return !SendPlayerMe(playerid, "uśmiecha się."); if(text[0] == ':' && text[1] == '(') return !SendPlayerMe(playerid, "smuci się."); if(text[0] == ':' && text[1] == 'p') return !SendPlayerMe(playerid, "wystawia język."); if(text[0] == ':' && text[1] == 'P') return !SendPlayerMe(playerid, "wystawia język."); if(text[0] == ':' && text[1] == '>') return !SendPlayerMe(playerid, "mróży oczy."); if(text[0] == ':' && text[1] == '/') return !SendPlayerMe(playerid, "krzywi się."); if(text[0] == ':' && text[1] == 'o') return !SendPlayerMe(playerid, "robi zaskoczoną minę"); if(text[0] == ':' && text[1] == 'O') return !SendPlayerMe(playerid, "robi zaskoczoną minę"); if(text[0] == '@') { new slot; if(strfind(text, "1", true) != -1) { slot =1; } else if(strfind(text, "2", true) != -1) { slot =2; } else if(strfind(text, "3", true) != -1) { slot =3; } switch(slot) { case 1: { if(UserCache[pUID[playerid]][uGroup] == 0) { return !SendClientMessage(playerid, COLOR_GRAY, "Pod tym slotem nie masz żadnej grupy."); } else if(GroupCache[UserCache[pUID[playerid]][uGroup]][gChatOOC] == false) return !SendClientMessage(playerid, COLOR_GRAY, "Czat OOC tej grupy jest wyłaczony."); new temp[16]; format(temp, sizeof(temp), "%d", slot); new playermsg[128]; format(playermsg, sizeof(playermsg), text); strdel(playermsg, 0, strfind(playermsg,temp,true)+1); new groupuid = UserCache[pUID[playerid]][uGroup]; new msg[128]; format(msg, sizeof(msg), "{%s}(( %s, %s: %s ))",GroupCache[groupuid][gColor], GroupCache[groupuid][gName], strreplace(PlayerName(playerid), '_', ' '), playermsg); for(new i; i<=GetPlayerPoolSize(); i++) { if(IsPlayerConnected(i)) { if(pUID[i]) { if(UserCache[pUID[i]][uGroup] == groupuid || UserCache[pUID[i]][uGroup2] == groupuid || UserCache[pUID[i]][uGroup3] == groupuid) { SendClientMessage(i, -1, msg); } } } } return 0; } case 2: { if(UserCache[pUID[playerid]][uGroup2] == 0) { return !SendClientMessage(playerid, COLOR_GRAY, "Pod tym slotem nie masz żadnej grupy."); } else if(GroupCache[UserCache[pUID[playerid]][uGroup2]][gChatOOC] == false) return !SendClientMessage(playerid, COLOR_GRAY, "Czat OOC tej grupy jest wyłaczony."); new temp[16]; format(temp, sizeof(temp), "%d", slot); new playermsg[128]; format(playermsg, sizeof(playermsg), text); strdel(playermsg, 0, strfind(playermsg,temp,true)+1); new groupuid = UserCache[pUID[playerid]][uGroup2]; new msg[128]; format(msg, sizeof(msg), "{%s}(( %s, %s: %s ))",GroupCache[groupuid][gColor], GroupCache[groupuid][gName], strreplace(PlayerName(playerid), '_', ' '), playermsg); for(new i; i<=GetPlayerPoolSize(); i++) { if(IsPlayerConnected(i)) { if(pUID[i]) { if(UserCache[pUID[i]][uGroup] == groupuid || UserCache[pUID[i]][uGroup2] == groupuid || UserCache[pUID[i]][uGroup3] == groupuid) { SendClientMessage(i, -1, msg); } } } } return 0; } case 3: { if(UserCache[pUID[playerid]][uGroup3] == 0) { return !SendClientMessage(playerid, COLOR_GRAY, "Pod tym slotem nie masz żadnej grupy."); } else if(GroupCache[UserCache[pUID[playerid]][uGroup3]][gChatOOC] == false) return !SendClientMessage(playerid, COLOR_GRAY, "Czat OOC tej grupy jest wyłaczony."); new temp[16]; format(temp, sizeof(temp), "%d", slot); new playermsg[128]; format(playermsg, sizeof(playermsg), text); strdel(playermsg, 0, strfind(playermsg,temp,true)+1); new groupuid = UserCache[pUID[playerid]][uGroup3]; new msg[128]; format(msg, sizeof(msg), "{%s}(( %s, %s:%s ))",GroupCache[groupuid][gColor], GroupCache[groupuid][gName], strreplace(PlayerName(playerid), '_', ' '), playermsg); for(new i; i<=GetPlayerPoolSize(); i++) { if(IsPlayerConnected(i)) { if(pUID[i]) { if(UserCache[pUID[i]][uGroup] == groupuid || UserCache[pUID[i]][uGroup2] == groupuid || UserCache[pUID[i]][uGroup3] == groupuid) { SendClientMessage(i, -1, msg); } } } } return 0; } default: { SendClientMessage(playerid, COLOR_GRAY, "Nieprawidłowy slot grupy."); return 0; } } return 0; } if(text[0] == '!') { new slot; if(strfind(text, "1", true) != -1) { slot =1; } else if(strfind(text, "2", true) != -1) { slot =2; } else if(strfind(text, "3", true) != -1) { slot =3; } new groupuid; switch(slot) { case 1: { if(UserCache[pUID[playerid]][uGroup] == 0) { return !SendClientMessage(playerid, COLOR_GRAY, "Pod tym slotem nie masz żadnej grupy."); } else if(GroupCache[UserCache[pUID[playerid]][uGroup]][gChatIC] == false) return !SendClientMessage(playerid, COLOR_GRAY, "Czat IC tej grupy jest wyłaczony."); groupuid = UserCache[pUID[playerid]][uGroup]; } case 2: { if(UserCache[pUID[playerid]][uGroup2] == 0) { return !SendClientMessage(playerid, COLOR_GRAY, "Pod tym slotem nie masz żadnej grupy."); } else if(GroupCache[UserCache[pUID[playerid]][uGroup2]][gChatIC] == false) return !SendClientMessage(playerid, COLOR_GRAY, "Czat IC tej grupy jest wyłaczony."); groupuid = UserCache[pUID[playerid]][uGroup2]; } case 3: { if(UserCache[pUID[playerid]][uGroup3] == 0) { return !SendClientMessage(playerid, COLOR_GRAY, "Pod tym slotem nie masz żadnej grupy."); } else if(GroupCache[UserCache[pUID[playerid]][uGroup3]][gChatIC] == false) return !SendClientMessage(playerid, COLOR_GRAY, "Czat IC tej grupy jest wyłaczony."); groupuid = UserCache[pUID[playerid]][uGroup3]; } default: return !SendClientMessage(playerid, COLOR_GRAY, "Nieprawidłowy slot grupy."); } new temp[16]; format(temp, sizeof(temp), "%d", slot); new playermsg[128]; format(playermsg, sizeof(playermsg), text); strdel(playermsg, 0, strfind(playermsg,temp,true)+1); new msg[128]; format(msg, sizeof(msg), "{%s}!%s, %s"HEX_WHITE":%s", GroupCache[groupuid][gColor], GroupCache[groupuid][gName], strreplace(PlayerName(playerid), '_', ' '), playermsg); for(new i; i<=GetPlayerPoolSize(); i++) { if(IsPlayerConnected(i)) { if(pUID[i]) { if(UserCache[pUID[i]][uGroup] == groupuid || UserCache[pUID[i]][uGroup2] == groupuid || UserCache[pUID[i]][uGroup3] == groupuid) { SendClientMessage(i, -1, msg); } } } } format(msg, sizeof(msg), "(słuchawka) %s mówi: %s", strreplace(PlayerName(playerid), '_', ' '), playermsg); new Float:X, Float:Y, Float:Z; GetPlayerPos(playerid, X, Y, Z); new vw = GetPlayerVirtualWorld(playerid); for(new i=0; i<=GetPlayerPoolSize(); i++) { if(IsPlayerConnected(i)) { if(GetPlayerVirtualWorld(i) == vw) { if(UserCache[pUID[i]][uGroup] == groupuid || UserCache[pUID[i]][uGroup2] == groupuid || UserCache[pUID[i]][uGroup3] == groupuid) { continue; } if(IsPlayerInRangeOfPoint(i, 2.0, X, Y, Z)) { if(UserCache[pUID[i]][uBW] > 0) { SendClientMessage(i, ME_SHADE_1, "Twoja postać jest nieprzytomna, więc nie może sąyszeć wypowiedzi innych osób."); continue; } SendFormattedMessage(i, msg, "{B992C3}", "{EEEEEE}", CHAT_SHADE_1); } else if(IsPlayerInRangeOfPoint(i, 4.0, X, Y, Z)) { if(UserCache[pUID[i]][uBW] > 0) { SendClientMessage(i, ME_SHADE_2, "* Twoja postać jest nieprzytomna, więc nie może sąyszeć wypowiedzi innych osób."); continue; } SendFormattedMessage(i, msg, "{AC79A7}", "{C8C8C8}", CHAT_SHADE_2); } else if(IsPlayerInRangeOfPoint(i, 6.0, X, Y, Z)) { if(UserCache[pUID[i]][uBW] > 0) { SendClientMessage(i, ME_SHADE_3, "* Twoja postać jest nieprzytomna, więc nie może sąyszeć wypowiedzi innych osób."); continue; } SendFormattedMessage(i, msg, "{AC7998}", "{B4B4B4}", CHAT_SHADE_3); } else if(IsPlayerInRangeOfPoint(i, 8.0, X, Y, Z)) { if(UserCache[pUID[i]][uBW] > 0) { SendClientMessage(i, ME_SHADE_4, "* Twoja postać jest nieprzytomna, więc nie może sąyszeć wypowiedzi innych osób."); continue; } SendFormattedMessage(i, msg, "{AC6798}", "{8C8C8C}", CHAT_SHADE_4); } else if(IsPlayerInRangeOfPoint(i, 10.0, X, Y, Z)) { if(UserCache[pUID[i]][uBW] > 0) { SendClientMessage(i, ME_SHADE_5, "* Twoja postać jest nieprzytomna, więc nie może sąyszeć wypowiedzi innych osób."); continue; } SendFormattedMessage(i, msg, "{976798}", "{787878}", CHAT_SHADE_5); } else if(IsPlayerInRangeOfPoint(i, 12.0, X, Y, Z)) { if(UserCache[pUID[i]][uBW] > 0) { SendClientMessage(i, ME_SHADE_6, "* Twoja postać jest nieprzytomna, więc nie może sąyszeć wypowiedzi innych osób."); continue; } SendFormattedMessage(i, msg, "{936583}", "{505050}", CHAT_SHADE_6); } } } } return 0; } if(text[0] == '.' && text[1] != ' ') { new finalmsg[256], playermsg[128]; format(playermsg, sizeof(playermsg), text); strdel(playermsg, 0, 1); format(finalmsg, sizeof(finalmsg), "(( %s ))", playermsg); SetPlayerChatBubble(playerid, finalmsg, COLOR_WHITE, 12.0, 5000); if(!UserCache[pUID[playerid]][uOOC]) { format(finalmsg, sizeof(finalmsg), "(( Wysłano OOC: %s ))", playermsg); SendClientMessage(playerid, COLOR_WHITE, finalmsg); } format(finalmsg, sizeof(finalmsg), "(( [%d] %s: %s ))", playerid, RPName(playerid), playermsg); new Float:X, Float:Y, Float:Z; GetPlayerPos(playerid, X, Y, Z); for(new i; i<=GetPlayerPoolSize(); i++) { if(IsPlayerConnected(i)) { if(UserCache[pUID[i]][uOOC]) { if(IsPlayerInRangeOfPoint(i, 12.0, X, Y, Z) && GetPlayerVirtualWorld(playerid) == GetPlayerVirtualWorld(i)) SendClientMessage(i, COLOR_WHITE, finalmsg); } } } return 0; } if(aduty[playerid] != 0) { new msg[128]; format(msg, sizeof(msg), "%s%s"HEX_WHITE": %s",GetHexRankColor(UserCache[pUID[playerid]][uRank]), PlayerName(playerid), text); new Float:X, Float:Y, Float:Z; GetPlayerPos(playerid, X, Y, Z); new vw = GetPlayerVirtualWorld(playerid); for(new i=0; i<=GetPlayerPoolSize(); i++) { if(IsPlayerConnected(i)) { if(GetPlayerVirtualWorld(i) == vw) { if(IsPlayerInRangeOfPoint(i, 1.0, X, Y, Z)) { SendFormattedMessage(i, msg, "{B992C3}", "{EEEEEE}", CHAT_SHADE_1); } else if(IsPlayerInRangeOfPoint(i, 4.0, X, Y, Z)) { SendFormattedMessage(i, msg, "{AC79A7}", "{C8C8C8}", CHAT_SHADE_2); } else if(IsPlayerInRangeOfPoint(i, 8.0, X, Y, Z)) { SendFormattedMessage(i, msg, "{AC7998}", "{B4B4B4}", CHAT_SHADE_3); } else if(IsPlayerInRangeOfPoint(i, 12.0, X, Y, Z)) { SendFormattedMessage(i, msg, "{AC6798}", "{8C8C8C}", CHAT_SHADE_4); } else if(IsPlayerInRangeOfPoint(i, 16.0, X, Y, Z)) { SendFormattedMessage(i, msg, "{976798}", "{787878}", CHAT_SHADE_5); } else if(IsPlayerInRangeOfPoint(i, 20.0, X, Y, Z)) { SendFormattedMessage(i, msg, "{936583}", "{505050}", CHAT_SHADE_6); } } } } return 0; } new msg[128]; format(msg, sizeof(msg), "%s mówi: %s", strreplace(PlayerName(playerid), '_', ' '), text); if(CallData[playerid][cCaller] != -1) format(msg, sizeof(msg), "%s (telefon): %s", PlayerName(playerid), text); new Float:X, Float:Y, Float:Z; GetPlayerPos(playerid, X, Y, Z); new vw = GetPlayerVirtualWorld(playerid); for(new i=0; i<=GetPlayerPoolSize(); i++) { if(IsPlayerConnected(i)) { if(GetPlayerVirtualWorld(i) == vw) { if(IsPlayerInRangeOfPoint(i, 1.0, X, Y, Z)) { if(UserCache[pUID[i]][uBW] > 0) { SendClientMessage(i, ME_SHADE_1, "Twoja postać jest nieprzytomna, więc nie może sąyszeć wypowiedzi innych osób."); continue; } SendFormattedMessage(i, msg, "{B992C3}", "{EEEEEE}", CHAT_SHADE_1); } else if(IsPlayerInRangeOfPoint(i, 4.0, X, Y, Z)) { if(UserCache[pUID[i]][uBW] > 0) { SendClientMessage(i, ME_SHADE_2, "* Twoja postać jest nieprzytomna, więc nie może sąyszeć wypowiedzi innych osób."); continue; } SendFormattedMessage(i, msg, "{AC79A7}", "{C8C8C8}", CHAT_SHADE_2); } else if(IsPlayerInRangeOfPoint(i, 8.0, X, Y, Z)) { if(UserCache[pUID[i]][uBW] > 0) { SendClientMessage(i, ME_SHADE_3, "* Twoja postać jest nieprzytomna, więc nie może sąyszeć wypowiedzi innych osób."); continue; } SendFormattedMessage(i, msg, "{AC7998}", "{B4B4B4}", CHAT_SHADE_3); } else if(IsPlayerInRangeOfPoint(i, 12.0, X, Y, Z)) { if(UserCache[pUID[i]][uBW] > 0) { SendClientMessage(i, ME_SHADE_4, "* Twoja postać jest nieprzytomna, więc nie może sąyszeć wypowiedzi innych osób."); continue; } SendFormattedMessage(i, msg, "{AC6798}", "{8C8C8C}", CHAT_SHADE_4); } else if(IsPlayerInRangeOfPoint(i, 16.0, X, Y, Z)) { if(UserCache[pUID[i]][uBW] > 0) { SendClientMessage(i, ME_SHADE_5, "* Twoja postać jest nieprzytomna, więc nie może sąyszeć wypowiedzi innych osób."); continue; } SendFormattedMessage(i, msg, "{976798}", "{787878}", CHAT_SHADE_5); } else if(IsPlayerInRangeOfPoint(i, 20.0, X, Y, Z)) { if(UserCache[pUID[i]][uBW] > 0) { SendClientMessage(i, ME_SHADE_6, "* Twoja postać jest nieprzytomna, więc nie może sąyszeć wypowiedzi innych osób."); continue; } SendFormattedMessage(i, msg, "{936583}", "{505050}", CHAT_SHADE_6); } } } } if(CallData[playerid][cCaller] != -1) { new uid; for(new i=1; i 0) { new actorvw; new pvw = GetPlayerVirtualWorld(playerid); for(new i=0; i<=GetActorPoolSize(); i++) { GetActorPos(i, X, Y, Z); actorvw = GetActorVirtualWorld(i); if(IsPlayerInRangeOfPoint(playerid, 15.0, X, Y,Z) && pvw == actorvw) { if(strfind(text, "kurw", true) != -1) { SendActorMessageInRange(i, "Jane Smith mówi: zamknij pizde lachociągu jebany kurwa"); break; } } } } return 0; } stock SendActorMessageInRange(actorid, msg[]) { new Float:X, Float:Y, Float:Z; GetActorPos(actorid, X, Y, Z); new vw = GetActorVirtualWorld(actorid); for(new i=0; i<=GetPlayerPoolSize(); i++) { if(IsPlayerConnected(i)) { if(GetPlayerVirtualWorld(i) == vw) { if(IsPlayerInRangeOfPoint(i, 2.0, X, Y, Z)) { SendClientMessage(i, CHAT_SHADE_1, msg); } else if(IsPlayerInRangeOfPoint(i, 4.0, X, Y, Z)) { SendClientMessage(i, CHAT_SHADE_2, msg); } else if(IsPlayerInRangeOfPoint(i, 6.0, X, Y, Z)) { SendClientMessage(i, CHAT_SHADE_3, msg); } else if(IsPlayerInRangeOfPoint(i, 8.0, X, Y, Z)) { SendClientMessage(i, CHAT_SHADE_4, msg); } else if(IsPlayerInRangeOfPoint(i, 10.0, X, Y, Z)) { SendClientMessage(i, CHAT_SHADE_5, msg); } else if(IsPlayerInRangeOfPoint(i, 12.0, X, Y, Z)) { SendClientMessage(i, CHAT_SHADE_6, msg); } } } } } stock SendPlayerMessageInRange(playerid, text[], color, color2, color3, color4, color5, color6) { new msg[128]; format(msg, sizeof(msg), text); new Float:X, Float:Y, Float:Z; GetPlayerPos(playerid, X, Y, Z); new vw = GetPlayerVirtualWorld(playerid); for(new i; i<=GetPlayerPoolSize(); i++) { if(IsPlayerConnected(i)) { if(GetPlayerVirtualWorld(i) == vw) { if(IsPlayerInRangeOfPoint(i, 1.0, X, Y, Z)) { if(strlen(msg) >= 64) { new temp1[128], temp2[128]; temp1 = msg, temp2=msg; strdel(temp1, 64, strlen(temp1)); strins(temp1, "...", strlen(temp1)); strdel(temp2, 0, 64); strins(temp2, "...", 0); SendClientMessage(i, color, temp1); SendClientMessage(i, color, temp2); continue; } SendClientMessage(i, color, msg); } else if(IsPlayerInRangeOfPoint(i, 4.0, X, Y, Z)) { if(strlen(msg) >= 64) { new temp1[128], temp2[128]; temp1 = msg, temp2=msg; strdel(temp1, 64, strlen(temp1)); strins(temp1, "...", strlen(temp1)); strdel(temp2, 0, 64); strins(temp2, "...", 0); SendClientMessage(i, color2, temp1); SendClientMessage(i, color, temp2); continue; } SendClientMessage(i, color2, msg); } else if(IsPlayerInRangeOfPoint(i, 8.0, X, Y, Z)) { if(strlen(msg) >= 64) { new temp1[128], temp2[128]; temp1 = msg, temp2=msg; strdel(temp1, 64, strlen(temp1)); strins(temp1, "...", strlen(temp1)); strdel(temp2, 0, 64); strins(temp2, "...", 0); SendClientMessage(i, color3, temp1); SendClientMessage(i, color3, temp2); continue; } SendClientMessage(i, color3, msg); } else if(IsPlayerInRangeOfPoint(i, 12.0, X, Y, Z)) { if(strlen(msg) >= 64) { new temp1[128], temp2[128]; temp1 = msg, temp2=msg; strdel(temp1, 64, strlen(temp1)); strins(temp1, "...", strlen(temp1)); strdel(temp2, 0, 64); strins(temp2, "...", 0); SendClientMessage(i, color4, temp1); SendClientMessage(i, color4, temp2); continue; } SendClientMessage(i, color4, msg); } else if(IsPlayerInRangeOfPoint(i, 16.0, X, Y, Z)) { if(strlen(msg) >= 64) { new temp1[128], temp2[128]; temp1 = msg, temp2=msg; strdel(temp1, 64, strlen(temp1)); strins(temp1, "...", strlen(temp1)); strdel(temp2, 0, 64); strins(temp2, "...", 0); SendClientMessage(i, color5, temp1); SendClientMessage(i, color5, temp2); continue; } SendClientMessage(i, color5, msg); } else if(IsPlayerInRangeOfPoint(i, 20.0, X, Y, Z)) { if(strlen(msg) >= 64) { new temp1[128], temp2[128]; temp1 = msg, temp2=msg; strdel(temp1, 64, strlen(temp1)); strins(temp1, "...", strlen(temp1)); strdel(temp2, 0, 64); strins(temp2, "...", 0); SendClientMessage(i, color6, temp1); SendClientMessage(i, color6, temp2); continue; } SendClientMessage(i, color6, msg); } } } } return 1; } stock strreplace(string[], find, replace) { new str[128]; format(str, sizeof(str), string); for(new i = 0; i < strlen(str); i++) { if(str[i] == find) { str[i] = replace; } } return str; } stock ClearChat(playerid) { for(new i=0; i<21; i++) { SendClientMessage(playerid, 0, " "); } } stock TextDrawForPlayerEx(playerid, textdrawid, text[], time) { switch(textdrawid) { case 0: {PlayerTextDrawSetString(playerid, ObjectInfo[playerid], text); PlayerTextDrawShow(playerid, ObjectInfo[playerid]); ObjectInfoTimer[playerid]=SetTimerEx("HideTextDrawForPlayerEx", time, false, "iii", playerid, 0, time);} case 1: {PlayerTextDrawSetString(playerid, RadarTextDraw[playerid], text); PlayerTextDrawShow(playerid, RadarTextDraw[playerid]); RadarTextDrawTimer[playerid]=SetTimerEx("HideTextDrawForPlayerEx", time, false, "iii", playerid, 1, time);} case 2: {PlayerTextDrawSetString(playerid, TextDrawDoorInfo[playerid], text); PlayerTextDrawShow(playerid, TextDrawDoorInfo[playerid]); DoorInfoTextTimer[playerid]=SetTimerEx("HideTextDrawForPlayerEx", time, false, "iii", playerid, 2, time);} } return 1; } stock TextDrawForPlayer(playerid, textdrawid, text[]) { switch(textdrawid) { case 0: {PlayerTextDrawSetString(playerid, BottomTextDraw[playerid], text); PlayerTextDrawShow(playerid, BottomTextDraw[playerid]);} case 1: {PlayerTextDrawSetString(playerid, RadarTextDraw[playerid], text); PlayerTextDrawShow(playerid, RadarTextDraw[playerid]);} case 2: {PlayerTextDrawSetString(playerid, BWTextDraw[playerid], text); PlayerTextDrawShow(playerid, BWTextDraw[playerid]);} case 3: {PlayerTextDrawSetString(playerid, AJTextDraw[playerid], text); PlayerTextDrawShow(playerid, AJTextDraw[playerid]);} } } stock HideTextDrawForPlayer(playerid, textdrawid) { switch(textdrawid) { case 0: PlayerTextDrawHide(playerid, BottomTextDraw[playerid]); case 1: PlayerTextDrawHide(playerid, RadarTextDraw[playerid]); case 2: PlayerTextDrawHide(playerid, BWTextDraw[playerid]); case 3: PlayerTextDrawHide(playerid, AJTextDraw[playerid]); } } forward HideTextDrawForPlayerEx(playerid, textdrawid, time); public HideTextDrawForPlayerEx(playerid, textdrawid, time) { switch(textdrawid) { case 0: PlayerTextDrawHide(playerid, ObjectInfo[playerid]); case 1: PlayerTextDrawHide(playerid, RadarTextDraw[playerid]); case 2: PlayerTextDrawHide(playerid, TextDrawDoorInfo[playerid]); } return 1; } public OnPlayerDisconnect(playerid, reason) { godmodecount[playerid]=0; LoginAttempt[playerid] = 0; for(new i=0; i<10; i++) { if(IsPlayerAttachedObjectSlotUsed(playerid, i)) RemovePlayerAttachedObject(playerid, i); } if(pUID[playerid]) { new uid = pUID[playerid]; // uid - player's UID UserCache[uid][uOnline] = false; UserCache[uid][uBelts] = false; if(UserCache[uid][uAJ] == 0 && UserCache[uid][uTutorial] == 0) { GetPlayerPos(playerid, UserCache[uid][uSpawnX], UserCache[uid][uSpawnY], UserCache[uid][uSpawnZ]); UserCache[uid][uSpawnVW] = GetPlayerVirtualWorld(playerid); // Saving player's position and virtual world } KillTimer(PlayerRepairingVehicle[playerid][repairTimer]); DestroyDynamic3DTextLabel(pDesc[playerid][dID]); // Destroy his description pDesc[playerid][dID] = Text3D:0; pDesc[playerid][dIsDescOnPlayer] = false; for(new i=1; i 0 || aduty[playerid]) return 1; // issuerid - ten co uderzył // playerid - ten co otrzymał if(issuerid != Attacker[playerid]) { Attacker[playerid] = issuerid; SendClientMessage(issuerid, -1, "Nie jestes w stanie skrzywdzic tego gracza, jak ci odda to mozecie sie bic."); return SendClientMessage(playerid, -1, "Gracz Ci nic nie zrobi bo nie oddałeś mu."); } if(Attacker[issuerid] != playerid) { return SendClientMessage(playerid, -1, "Gracz Ci nic nie zrobi bo nie oddales mu, jak mu oddasz to mu wpierdolic mozesz."); } if(ClearNicknameColorTimer[playerid] == 0) { UpdateDynamic3DTextLabelText(pNick[playerid][nID], DAMAGE_COLOR, pNick[playerid][nStr]); ClearNicknameColorTimer[playerid] = SetTimerEx("ClearNicknameColor", 2500, false, "i", playerid); } new Float:damage = 0.0; switch(weaponid) { case 0: { if(UserCache[pUID[issuerid]][uStrenght] >= 100) damage = UserCache[pUID[issuerid]][uStrenght]/100; } case 2: damage = 3.0; case 5: damage = 3.0; case 6: damage = 3.0; case 7: damage = 3.0; case 22: damage = 4.0; case 23: damage = 2.5; case 24: damage = 21.0; case 25: damage = 6.0; case 28: damage = 1.5; case 29: damage = 3.5; case 30: damage = 9.5; case 31: damage = 9.5; case 32: damage = 2.0; case 33: damage = 10.0; case 34: damage = 50.0; case 38: damage = 0.1; case 41: damage = 0.5; case 42: damage = 0.5; } if(UserCache[pUID[playerid]][uHealth] - damage <= 0) { if(Attacker[playerid] != -1) { Attacker[Attacker[playerid]] = -1; Attacker[playerid] = -1; } if(!UserCache[pUID[playerid]][uAchievementManDown]) { UserCache[pUID[playerid]][uAchievementManDown] = true; SendClientMessage(playerid, COLOR_YELLOW, "> Zdobyto osiągnięcie Man Down! (+10 SP)"); UserCache[pUID[playerid]][uSP] += 10; SetPlayerScore(playerid, UserCache[pUID[playerid]][uSP]); } SendPlayerMe(playerid, "traci przytomność"); UserCache[pUID[playerid]][uBWReason] = weaponid; new puid = pUID[playerid]; UserCache[puid][uHealth]=1; SetPlayerCameraPos(playerid, UserCache[puid][uSpawnX], UserCache[puid][uSpawnY], UserCache[puid][uSpawnZ]+10.0); SetPlayerCameraLookAt(playerid, UserCache[puid][uSpawnX], UserCache[puid][uSpawnY], UserCache[puid][uSpawnZ], CAMERA_CUT); UserCache[puid][uBW] = 2; new msg[32]; format(msg, sizeof(msg), "Stan nieprzytomnosci przez: %d min", UserCache[puid][uBW]); TextDrawForPlayer(playerid, 2, msg); ResetPlayerWeapons(playerid); for(new i=1; i 22 && UserCache[uid][uBWReason] < 49) reason = "postrzelona z broni palnej"; else if(UserCache[uid][uBWReason] == 49) reason = "potrącenie"; else if(UserCache[uid][uBWReason] == 51) reason = "eksplozja"; else if(UserCache[uid][uBWReason] == 53) reason = "utonięcie"; else if(UserCache[uid][uBWReason] == 54) reason = "potłuczona"; } else { if(UserCache[uid][uBWReason] < 22) reason = "pobity"; else if(UserCache[uid][uBWReason] > 22 && UserCache[uid][uBWReason] < 49) reason = "postrzelony z broni palnej"; else if(UserCache[uid][uBWReason] == 49) reason = "potrącenie"; else if(UserCache[uid][uBWReason] == 51) reason = "eksplozja"; else if(UserCache[uid][uBWReason] == 53) reason = "utonięcie"; else if(UserCache[uid][uBWReason] == 54) reason = "potłuczony"; } return reason; } stock SetPlayerHP(playerid, Float:HP) { SetPlayerHealth(playerid, HP); UserCache[pUID[playerid]][uHealth] = HP; } forward ClearNicknameColor(playerid); public ClearNicknameColor(playerid) { UpdateDynamic3DTextLabelText(pNick[playerid][nID], pNick[playerid][nColor], pNick[playerid][nStr]); ClearNicknameColorTimer[playerid] = 0; } stock ReturnLastOnline(puid, todays) { new str[32]; format(str, sizeof(str), "%d dni temu", todays-UserCache[puid][uLastLogin]); return str; } cmd:a (playerid, params[]) { new year, month, days, todays; todays = getdate(year, month, days); new info[256], list[525]; format(list, sizeof(list), "Nickname\tUprawnienia\tStatus\tOstatnio online\n"); for(new i=1; i= 180.0) { AJPlayer(i, "System", "Veh speedhack (A)", 30); } vuid = GetVehicleUID(id); if(VehicleCache[vuid][vOwner] != pUID[i]) { AJPlayer(i, "System", "Vehicle Jack (A)", 30); } } } GetPlayerHealth(i, pH); if(pH != UserCache[pUID[i]][uHealth]) SetPlayerHealth(i, UserCache[pUID[i]][uHealth]); if(GetPlayerMoney(i) != UserCache[pUID[i]][uCash]) { ResetPlayerMoney(i); GivePlayerMoney(i, UserCache[pUID[i]][uCash]); } if(pDuty[i]) { guid = pDuty[i]; if(GroupCache[guid][gType] == 1) // We DO NOT check player inside building { if(UserCache[pUID[i]][uGroup] == guid) { if(UserCache[pUID[i]][uGroupDuty] == 18) { UserCache[pUID[i]][uBank] += 400; SendClientMessage(i, DO_SHADE_1, "* Otrzymujesz 400$ wypłaty *"); PlayerPlaySound(i, 4201, 0.0, 0.0, 0.0); UserCache[pUID[i]][uGroupDuty] = 0; } UserCache[pUID[i]][uGroupDuty]++; } else if(UserCache[pUID[i]][uGroup2] == guid) { if(UserCache[pUID[i]][uGroupDuty2] == 18) { UserCache[pUID[i]][uBank] += 400; SendClientMessage(i, DO_SHADE_1, "* Otrzymujesz 400$ wypłaty *"); PlayerPlaySound(i, 4201, 0.0, 0.0, 0.0); UserCache[pUID[i]][uGroupDuty2] = 0; } UserCache[pUID[i]][uGroupDuty2]++; } else if(UserCache[pUID[i]][uGroup3] == guid) { if(UserCache[pUID[i]][uGroupDuty3] == 18) { UserCache[pUID[i]][uBank] += 400; SendClientMessage(i, DO_SHADE_1, "* Otrzymujesz 400$ wypłaty *"); PlayerPlaySound(i, 4201, 0.0, 0.0, 0.0); UserCache[pUID[i]][uGroupDuty3] = 0; } UserCache[pUID[i]][uGroupDuty3]++; } } else // Count duty time ONLY when player is inside group's building { dooruid = GetPlayerDoorUID(i); if(DoorCache[dooruid][dGroupUID] == guid) { if(UserCache[pUID[i]][uGroup] == guid) { if(UserCache[pUID[i]][uGroupDuty] == 18) { UserCache[pUID[i]][uBank] += 180; SendClientMessage(i, DO_SHADE_1, "* Otrzymujesz 180$ wypłaty *"); PlayerPlaySound(i, 4201, 0.0, 0.0, 0.0); UserCache[pUID[i]][uGroupDuty] = 0; } UserCache[pUID[i]][uGroupDuty]++; } else if(UserCache[pUID[i]][uGroup2] == guid) { if(UserCache[pUID[i]][uGroupDuty2] == 18) { UserCache[pUID[i]][uBank] += 180; SendClientMessage(i, DO_SHADE_1, "* Otrzymujesz 180$ wypłaty *"); PlayerPlaySound(i, 4201, 0.0, 0.0, 0.0); UserCache[pUID[i]][uGroupDuty2] = 0; } UserCache[pUID[i]][uGroupDuty2]++; } else if(UserCache[pUID[i]][uGroup3] == guid) { if(UserCache[pUID[i]][uGroupDuty3] == 18) { UserCache[pUID[i]][uBank] += 180; SendClientMessage(i, DO_SHADE_1, "* Otrzymujesz 180$ wypłaty *"); PlayerPlaySound(i, 4201, 0.0, 0.0, 0.0); UserCache[pUID[i]][uGroupDuty3] = 0; } UserCache[pUID[i]][uGroupDuty3]++; } } } } if(UserCache[pUID[i]][uMin] >= 60) { UserCache[pUID[i]][uMin] = 0; UserCache[pUID[i]][uH]++; } UserCache[pUID[i]][uMin]++; if(UserCache[pUID[i]][uBW] > 0) { UserCache[pUID[i]][uBW]--; format(str, sizeof(str), "Stan nieprzytomnosci przez: %dmin", UserCache[pUID[i]][uBW]); PlayerTextDrawShow(i, BWTextDraw[i]); if(UserCache[pUID[i]][uBW] == 0) { TogglePlayerControllable(i, 1); ClearAnimations(i); SetCameraBehindPlayer(i); ShowDialogInfo(i, "Twoja postać ocknęła się po utracie przytomności.\nUdaj się do szpitala."); PlayerTextDrawHide(i, BWTextDraw[i]); UpdatePlayerName(i); continue; } } if(UserCache[pUID[i]][uAJ]) { UserCache[pUID[i]][uAJ]--; format(str, sizeof(str), "~r~AJ: %dmin", UserCache[pUID[i]][uAJ]); PlayerTextDrawSetString(i, AJTextDraw[i], str); PlayerTextDrawShow(i, AJTextDraw[i]); if(UserCache[pUID[i]][uAJ] == 0) { new UID = pUID[i]; if(UserCache[UID][uSpawnX] != 0 && UserCache[UID][uSpawnY] != 0 && UserCache[UID][uSpawnZ] != 0) { SetPlayerPos(i, UserCache[pUID[i]][uSpawnX], UserCache[pUID[i]][uSpawnY], UserCache[pUID[i]][uSpawnZ]); SetPlayerVirtualWorld(i, UserCache[pUID[i]][uSpawnVW]); } else if(UserCache[UID][uHouseSpawn] != 0) { new duid = UserCache[pUID[i]][uHouseSpawn]; SetPlayerPos(i, DoorCache[duid][dInsX], DoorCache[duid][dInsY], DoorCache[duid][dInsZ]); SetPlayerVirtualWorld(i, DoorCache[duid][dInsVW]); } else if(UserCache[UID][uHouseSpawn] == 0) { SetPlayerPos(i, 1016.3893,-1314.6183,13.5469); SetPlayerVirtualWorld(i, 0); } PlayerTextDrawHide(i, AJTextDraw[i]); SendClientMessage(i, COLOR_RED, "Opuściłeś AdminJail."); continue; } } } } } } cmd:me (playerid, params[]) { if(UserCache[pUID[playerid]][uBW] > 0) { ShowDialogInfo(playerid, "Nie możesz teraz tego zrobić."); return 1; } new action[128]; if(sscanf(params, "s[128]", action)) { return SendClientMessage(playerid, COLOR_GRAY, "Poprawne użycie: /me [czynność postaci]"); } new msg[256]; format(msg, sizeof(msg), "** %s %s", strreplace(PlayerName(playerid), '_', ' '), action); new Float:X, Float:Y, Float:Z; GetPlayerPos(playerid, X, Y, Z); new vw = GetPlayerVirtualWorld(playerid); for(new i; i<=GetPlayerPoolSize(); i++) { if(IsPlayerConnected(i)) { if(GetPlayerVirtualWorld(i) == vw) { if(IsPlayerInRangeOfPoint(i, 1.0, X, Y, Z)) { if(strlen(msg) >= 64) { new temp1[256], temp2[256]; temp1 = msg, temp2=msg; strdel(temp1, 64, strlen(temp1)); strins(temp1, "...", strlen(temp1)); strdel(temp2, 0, 64); strins(temp2, "...", 0); SendClientMessage(i, ME_SHADE_1, temp1); SendClientMessage(i, ME_SHADE_1, temp2); continue; } SendClientMessage(i, ME_SHADE_1, msg); } else if(IsPlayerInRangeOfPoint(i, 4.0, X, Y, Z)) { if(strlen(msg) >= 64) { new temp1[256], temp2[256]; temp1 = msg, temp2=msg; strdel(temp1, 64, strlen(temp1)); strins(temp1, "...", strlen(temp1)); strdel(temp2, 0, 64); strins(temp2, "...", 0); SendClientMessage(i, ME_SHADE_2, temp1); SendClientMessage(i, ME_SHADE_2, temp2); continue; } SendClientMessage(i, ME_SHADE_2, msg); } else if(IsPlayerInRangeOfPoint(i, 8.0, X, Y, Z)) { if(strlen(msg) >= 64) { new temp1[256], temp2[256]; temp1 = msg, temp2=msg; strdel(temp1, 64, strlen(temp1)); strins(temp1, "...", strlen(temp1)); strdel(temp2, 0, 64); strins(temp2, "...", 0); SendClientMessage(i, ME_SHADE_3, temp1); SendClientMessage(i, ME_SHADE_3, temp2); continue; } SendClientMessage(i, ME_SHADE_3, msg); } else if(IsPlayerInRangeOfPoint(i, 12.0, X, Y, Z)) { if(strlen(msg) >= 256) { new temp1[256], temp2[256]; temp1 = msg, temp2=msg; strdel(temp1, 64, strlen(temp1)); strins(temp1, "...", strlen(temp1)); strdel(temp2, 0, 64); strins(temp2, "...", 0); SendClientMessage(i, ME_SHADE_4, temp1); SendClientMessage(i, ME_SHADE_4, temp2); continue; } SendClientMessage(i, ME_SHADE_4, msg); } else if(IsPlayerInRangeOfPoint(i, 14.0, X, Y, Z)) { if(strlen(msg) >= 64) { new temp1[256], temp2[256]; temp1 = msg, temp2=msg; strdel(temp1, 64, strlen(temp1)); strins(temp1, "...", strlen(temp1)); strdel(temp2, 0, 64); strins(temp2, "...", 0); SendClientMessage(i, ME_SHADE_5, temp1); SendClientMessage(i, ME_SHADE_5, temp2); continue; } SendClientMessage(i, ME_SHADE_5, msg); } else if(IsPlayerInRangeOfPoint(i, 16.0, X, Y, Z)) { if(strlen(msg) >= 64) { new temp1[256], temp2[256]; temp1 = msg, temp2=msg; strdel(temp1, 64, strlen(temp1)); strins(temp1, "...", strlen(temp1)); strdel(temp2, 0, 64); strins(temp2, "...", 0); SendClientMessage(i, ME_SHADE_6, temp1); SendClientMessage(i, ME_SHADE_6, temp2); continue; } SendClientMessage(i, ME_SHADE_6, msg); } } } } if(pVal[playerid] == 2) { new vuid; for(new i=1; i<=GetVehiclePoolSize(); i++) { if(GetVehicleUID(i) == pVal2[playerid]) { if(vw == GetVehicleVirtualWorld(i)) { GetVehiclePos(i, X, Y, Z); if(IsPlayerInRangeOfPoint(playerid, 3.0, X, Y, Z)) { vuid = GetVehicleUID(i); VehicleCache[vuid][vRegister] = true; UnSpawnVehicle(vuid); SpawnVehicle(vuid); return ShowDialogInfo(playerid, "Pomyślnie zamontowano rejstrację pojazdu."); } } } } } if(pVal[playerid] == 1) // Buying vehicle register { new actoruid = pVal2[playerid]; if(GetActorInRange(playerid) == actoruid) { format(msg, sizeof(msg), "%s mówi: Dziękuję! "HEX_PURPLE"** zwrócił dokumenty petentowi oraz podał mu rejestrację pojazdu ** ", strreplace(ActorCache[actoruid][aName], '_', ' ')); SendClientMessage(playerid, CHAT_SHADE_2, msg); pVal[playerid] = 0; PlayerTextDrawShow(playerid, RadarTextDraw[playerid]); return ShowPlayerDialog(playerid, D_BUY_REGISTER, DIALOG_STYLE_MSGBOX, "Oferta", "Kup "HEX_GREEN"rejestrację pojazdu"HEX_WHITE" za "HEX_GREEN"$300.", "Kup", "Anuluj"); } } if(ActionData[playerid][aType] == 2) { new auid = GetActorInRange(playerid); if(ActorCache[auid][aType] == 1) { ShowPlayerDialog(playerid, D_TRADE_3, DIALOG_STYLE_MSGBOX, "Oferta", "Wyrobienie dokumentu osobistego: "HEX_GREEN"$100"HEX_WHITE"\nCzy akceptujesz tę ofertę?", "Tak", "Nie"); } } else if(ActionData[playerid][aType] == 1) { new auid = GetActorInRange(playerid); if(ActorCache[auid][aType] == 2) { format(msg, sizeof(msg), "%s mówi: Dziękuję! *wpisuje dane w systemie oraz kładzie dokumenty z powrotem na ladzie*", strreplace(ActorCache[auid][aName], '_', ' ')); SendFormattedMessage(playerid, msg, "{AC79A7}", "{C8C8C8}", CHAT_SHADE_2); new acc = MAX_USERS; acc += random(300); for(new i=1; i= 64) { new temp1[256], temp2[256]; temp1 = msg, temp2=msg; strdel(temp1, 64, strlen(temp1)); strins(temp1, "...", strlen(temp1)); strdel(temp2, 0, 64); strins(temp2, "...", 0); SendClientMessage(i, DO_SHADE_1, temp1); SendClientMessage(i, DO_SHADE_1, temp2); continue; } SendClientMessage(i, DO_SHADE_1, msg); } else if(IsPlayerInRangeOfPoint(i, 4.0, X, Y, Z)) { if(strlen(msg) >= 64) { new temp1[256], temp2[256]; temp1 = msg, temp2=msg; strdel(temp1, 64, strlen(temp1)); strins(temp1, "...", strlen(temp1)); strdel(temp2, 0, 64); strins(temp2, "...", 0); SendClientMessage(i, DO_SHADE_2, temp1); SendClientMessage(i, DO_SHADE_2, temp2); continue; } SendClientMessage(i, DO_SHADE_2, msg); } else if(IsPlayerInRangeOfPoint(i, 8.0, X, Y, Z)) { if(strlen(msg) >= 64) { new temp1[256], temp2[256]; temp1 = msg, temp2=msg; strdel(temp1, 64, strlen(temp1)); strins(temp1, "...", strlen(temp1)); strdel(temp2, 0, 64); strins(temp2, "...", 0); SendClientMessage(i, DO_SHADE_3, temp1); SendClientMessage(i, DO_SHADE_3, temp2); continue; } SendClientMessage(i, DO_SHADE_3, msg); } else if(IsPlayerInRangeOfPoint(i, 12.0, X, Y, Z)) { if(strlen(msg) >= 64) { new temp1[256], temp2[256]; temp1 = msg, temp2=msg; strdel(temp1, 64, strlen(temp1)); strins(temp1, "...", strlen(temp1)); strdel(temp2, 0, 64); strins(temp2, "...", 0); SendClientMessage(i, DO_SHADE_4, temp1); SendClientMessage(i, DO_SHADE_4, temp2); continue; } SendClientMessage(i, DO_SHADE_4, msg); } else if(IsPlayerInRangeOfPoint(i, 14.0, X, Y, Z)) { if(strlen(msg) >= 64) { new temp1[256], temp2[256]; temp1 = msg, temp2=msg; strdel(temp1, 64, strlen(temp1)); strins(temp1, "...", strlen(temp1)); strdel(temp2, 0, 64); strins(temp2, "...", 0); SendClientMessage(i, DO_SHADE_5, temp1); SendClientMessage(i, DO_SHADE_5, temp2); continue; } SendClientMessage(i, DO_SHADE_5, msg); } else if(IsPlayerInRangeOfPoint(i, 16.0, X, Y, Z)) { if(strlen(msg) >= 64) { new temp1[256], temp2[256]; temp1 = msg, temp2=msg; strdel(temp1, 64, strlen(temp1)); strins(temp1, "...", strlen(temp1)); strdel(temp2, 0, 64); strins(temp2, "...", 0); SendClientMessage(i, DO_SHADE_6, temp1); SendClientMessage(i, DO_SHADE_6, temp2); continue; } SendClientMessage(i, DO_SHADE_6, msg); } } } } return 1; } stock PlayerFirstName(playerid) { new pname[MAX_PLAYER_NAME]; GetPlayerName(playerid, pname, sizeof(pname)); new pos = strfind(pname, "_", true); if(pos != -1) strdel(pname, pos, strlen(pname)); return pname; } stock SendPlayerMe(playerid, action[]) { new str[256]; format(str, sizeof(str), "* %s %s *", PlayerFirstName(playerid), action); SetPlayerChatBubble(playerid, str, ME_SHADE_1, 15.0, 5000); format(str, sizeof(str), "* %s %s", PlayerFirstName(playerid), action); SendClientMessage(playerid, ME_SHADE_1, str); return 1; } cmd:raport (playerid, params[]) { return callcmd::report(playerid, params); } cmd:report (playerid, params[]) { new targetid, reason[128]; if(sscanf(params, "rs[128]", targetid, reason)) { return SendClientMessage(playerid, COLOR_GRAY, "Poprawne użycie: /report [ID/Część nazwy gracza] [treść]"); } if(playerid == targetid) return SendClientMessage(playerid, COLOR_GRAY, "Nie możesz zreportować samego siebie!"); if(!IsPlayerConnected(targetid)) { return SendClientMessage(playerid, COLOR_GRAY, "Takiego gracza nie ma na serwerze."); } if(!pUID[targetid]) { return SendClientMessage(playerid, COLOR_GRAY, "Ten gracz nie jest zalogowany."); } new msg[128]; format(msg, sizeof(msg), ""HEX_RED"%s(%d) wysłał raport na gracza %s(%d):", PlayerName(playerid), playerid, PlayerName(targetid), targetid); for(new i; i<=GetPlayerPoolSize(); i++) { if(IsPlayerConnected(i)) { if(pUID[i]) { if(UserCache[pUID[i]][uRank] > 0) { SendClientMessage(i, -1, msg); SendClientMessage(i, COLOR_ORANGE, reason); } } } } SendClientMessage(playerid, COLOR_RED, "Wysłano raport."); return 1; } cmd:unbw (playerid, params[]) { if(UserCache[pUID[playerid]][uRank] < 2) { return 1; } new targetid; if(sscanf(params, "r", targetid)) { return SendClientMessage(playerid, COLOR_GRAY, "Poprawne użycie: /unbw [ID/Część nazwy gracza]"); } if(!IsPlayerConnected(targetid)) { return SendClientMessage(playerid, COLOR_GRAY, "Ten gracz nie jest podłączony do serwera."); } if(!pUID[targetid]) { return SendClientMessage(playerid, COLOR_GRAY, "Ten gracz jest niezalogowany."); } if(UserCache[pUID[targetid]][uBW] == 0) { return SendClientMessage(playerid, COLOR_GRAY, "Ten gracz nie ma BW."); } UserCache[pUID[targetid]][uBW] = 0; SetCameraBehindPlayer(targetid); TogglePlayerControllable(targetid, 1); ClearAnimations(targetid); UpdatePlayerName(targetid); HideTextDrawForPlayer(targetid, 2); new msg[64]; format(msg, sizeof(msg), "%s ściąnął Ci BW.", strreplace(PlayerName(playerid), '_', ' ')); SendClientMessage(targetid, COLOR_GRAY, msg); return 1; } cmd:joty (playerid, params[]) { if(UserCache[pUID[playerid]][uRank] < 2) { return 1; } new targetid, j; if(sscanf(params, "ri", targetid, j)) { return SendClientMessage(playerid, COLOR_GRAY, "Poprawne użycie: /joty [ID/Część nazwy gracza] [ilość]"); } if(!IsPlayerConnected(targetid)) { return SendClientMessage(playerid, COLOR_GRAY, "Gracz nie jest podłączony do serwera."); } if(!pUID[targetid]) { return SendClientMessage(playerid, COLOR_GRAY, "Gracz nie jest zalogowany."); } UserCache[pUID[targetid]][uStrenght] = j; UpdatePlayerName(targetid); new msg[128]; format(msg, sizeof(msg), "%s zmienił twoją wartość Jotów na: %d", PlayerName(playerid), j); SendClientMessage(targetid, COLOR_GRAY, msg); format(msg, sizeof(msg), "Zmienił wartość Jotów %s na: %d", PlayerName(targetid), j); SendClientMessage(playerid, COLOR_GRAY, msg); return 1; } cmd:hp (playerid, params[]) { if(UserCache[pUID[playerid]][uRank] < 2) { return 1; } new targetid, Float:HP; if(sscanf(params, "rf", targetid, HP)) { return SendClientMessage(playerid, COLOR_GRAY, "Poprawne użycie: /hp [ID/Część nazwy gracza] [ilość]"); } if(!IsPlayerConnected(targetid)) { return SendClientMessage(playerid, COLOR_GRAY, "Gracz nie jest podłączony do serwera."); } if(!pUID[targetid]) { return SendClientMessage(playerid, COLOR_GRAY, "Gracz nie jest zalogowany."); } SetPlayerHP(targetid, HP); new msg[128]; format(msg, sizeof(msg), "%s zmienił twoją wartość HP na: %f", PlayerName(playerid), HP); SendClientMessage(targetid, COLOR_GRAY, msg); format(msg, sizeof(msg), "Zmienił wartość HP %s na: %f", PlayerName(targetid), HP); SendClientMessage(playerid, COLOR_GRAY, msg); return 1; } cmd:alevel (playerid, params[]) { if(UserCache[pUID[playerid]][uRank] < ADMINISTRATION) return 1; new targetid, rank; if(sscanf(params, "ri", targetid, rank)) return SendClientMessage(playerid, COLOR_GRAY, "Poprawne użycie: /alevel [ID/Część nazwy gracza] [ranga]"); if(!IsPlayerConnected(targetid)) return SendClientMessage(playerid, COLOR_GRAY, "Gracz nie jest podłączony do serwera."); if(!pUID[targetid]) return SendClientMessage(playerid, COLOR_GRAY, "Gracz nie jest zalogowany."); if(rank == 0) aduty[targetid] = 0; UserCache[pUID[targetid]][uRank] = rank; UpdatePlayerName(targetid); new msg[128]; format(msg, sizeof(msg), "%s zmienił Twój poziom rangi na: %d", PlayerName(playerid), rank); SendClientMessage(targetid, COLOR_GRAY, msg); format(msg, sizeof(msg), "Zmienił poziom rangi %s na: %d", PlayerName(targetid), rank); SendClientMessage(playerid, COLOR_GRAY, msg); return 1; } cmd:mapper (playerid, params[]) { if(UserCache[pUID[playerid]][uRank] < ADMINISTRATION) return 1; new targetid; if(sscanf(params, "r", targetid)) return SendClientMessage(playerid, COLOR_GRAY, "Poprawne użycie: /mapper [ID/Część nazwy gracza], by nadać komuś uprawnienia do edycji świata 0."); if(!IsPlayerConnected(targetid)) return SendClientMessage(playerid, COLOR_GRAY, "Wybrany gracz nie jest podłączony do serwera."); if(!pUID[targetid]) return SendClientMessage(playerid, COLOR_GRAY, "Wybrany gracz nie jest zalogowany."); if(UserCache[pUID[targetid]][uMapper] == true) { UserCache[pUID[targetid]][uMapper] = false; return SendClientMessage(targetid, COLOR_RED, "> Twoje uprawnienia do edycji świata 0 został zabrane."); } UserCache[pUID[targetid]][uMapper] = true; return SendClientMessage(targetid, COLOR_GREEN, "> Zostajesz Mapperem."); } cmd:ac (playerid, params[]) { if(UserCache[pUID[playerid]][uRank] < ADMINISTRATION) return 1; new message[128]; if(sscanf(params, "s[128]", message)) { return SendClientMessage(playerid, COLOR_GRAY, "Poprawne użycie: /ac [wiadomość]"); } new msg[256]; format(msg, sizeof(msg), "(( %s: %s ))", PlayerName(playerid), message); return SendMessageToAdmins(msg); } cmd:anick (playerid, params[]) { if(UserCache[pUID[playerid]][uRank] < ADMINISTRATION) return 1; new targetid, name[MAX_PLAYER_NAME]; if(sscanf(params, "rs[24]", targetid, name)) return SendClientMessage(playerid, COLOR_GRAY, "Poprawne użycie: /anick [ID/Część nazwy gracza] [nowy nick]"); if(!IsPlayerConnected(targetid)) return SendClientMessage(playerid, COLOR_GRAY, "Gracz nie jest podłączony do serwera."); if(!pUID[targetid]) return SendClientMessage(playerid, COLOR_GRAY, "Gracz nie jest zalogowany."); if(UserExists(name)) return SendClientMessage(playerid, COLOR_GRAY, "Ten nick jest już zajęty."); new pos; for(new i=0; i<=strlen(name); i++) { tolower(name[i]); if(name[i] == '_') pos = i; } toupper(name[0]); toupper(name[pos]); SetPlayerName(targetid, name); UserCache[pUID[targetid]][uName] = name; UpdatePlayerName(targetid); new msg[128]; format(msg, sizeof(msg), "%s zmienił Twój nickname na: %s", PlayerName(playerid), name); SendClientMessage(targetid, COLOR_GRAY, msg); format(msg, sizeof(msg), "Zmienił nickname %s na: %s", PlayerName(targetid), name); SendClientMessage(playerid, COLOR_GRAY, msg); return 1; } cmd:skin (playerid, params[]) { if(UserCache[pUID[playerid]][uRank] == 0) return 1; new targetid, skinid; if(sscanf(params, "ri", targetid, skinid)) { return SendClientMessage(playerid, COLOR_GRAY, "Poprawne użycie: /skin [ID/Część nazwy gracza] [skinid]"); } if(!IsPlayerConnected(targetid)) { return SendClientMessage(playerid, COLOR_GRAY, "Gracz nie jest podłączony do serwera."); } if(!pUID[targetid]) { return SendClientMessage(playerid, COLOR_GRAY, "Gracz nie jest zalogowany."); } if(UserCache[pUID[targetid]][uRank] != UNRANKED) { if(targetid != playerid) { SendClientMessage(playerid, COLOR_WHITE, "Nie możesz zmienić skina członkom ekipy."); new msg[128]; format(msg, sizeof(msg), "Członek ekipy %s próbował zmienić Twój skin na ID %d.", PlayerName(playerid), skinid); return SendClientMessage(targetid, COLOR_DARKRED, msg); } } UserCache[pUID[targetid]][uSkin] = skinid; SetPlayerSkin(targetid, skinid); ClearAnimations(targetid); new msg[128]; format(msg, sizeof(msg), "%s zmienił Twój skin na: %d", PlayerName(playerid), skinid); SendClientMessage(targetid, COLOR_GRAY, msg); format(msg, sizeof(msg), "Zmienił skin %s na: %d", PlayerName(targetid), skinid); SendClientMessage(playerid, COLOR_GRAY, msg); return 1; } cmd:say (playerid, params[]) { if(UserCache[pUID[playerid]][uRank] < ADMINISTRATION) { return 1; } new text[128]; if(sscanf(params, "s[128]", text)) { return SendClientMessage(playerid, COLOR_GRAY, "Poprawne użycie: /say [treść]"); } new msg[256]; format(msg, sizeof(msg), "[ %s: %s ]", PlayerName(playerid), text); SendClientMessageToAll(COLOR_PINK, msg); return 1; } new PenalityTimer; stock KickPlayer(playerid, adminname[], reason[]) { pUID[playerid]=0; new str[128]; format(str, sizeof(str), "~r~Kick~w~~n~Gracz: %s~n~Nadawca: %s~n~~y~%s", PlayerName(playerid), adminname, reason); TextDrawSetString(PenalityTextDraw, str); TextDrawShowForAll(PenalityTextDraw); if(PenalityTimer > 0) { KillTimer(PenalityTimer); } PenalityTimer = SetTimer("HidePenalityTextDraw", 15000, false); format(str, sizeof(str), "> Otrzymałeś karę(kick) od %s. Powód: %s", adminname, reason); SendClientMessage(playerid, COLOR_RED, str); SetTimerEx("KickFix", 10, false, "i", playerid); return 1; } forward KickFix(playerid); public KickFix(playerid) { Kick(playerid); } forward HidePenalityTextDraw(); public HidePenalityTextDraw() { TextDrawHideForAll(PenalityTextDraw); PenalityTimer = 0; } stock AJPlayer(playerid, adminname[], reason[], time) { new str[128]; format(str, sizeof(str), "~r~AdminJail~w~ (%d min)~n~Gracz: %s~n~Nadawca: %s~n~~y~%s", time, PlayerName(playerid), adminname, reason); TextDrawSetString(PenalityTextDraw, str); TextDrawShowForAll(PenalityTextDraw); if(PenalityTimer > 0) { KillTimer(PenalityTimer); } PenalityTimer = SetTimer("HidePenalityTextDraw", 15000, false); format(str, sizeof(str), "> Otrzymałeś karę(AdminJail) od %s. Powód: %s", adminname, reason); SendClientMessage(playerid, COLOR_RED, str); for(new i=0; i<=GetPlayerPoolSize();i++) { if(IsPlayerConnected(i)) { if(pUID[i]) { if(GetPlayerVirtualWorld(i) == GetPlayerVirtualWorld(playerid)) { SetPlayerVirtualWorld(playerid, GetPlayerVirtualWorld(i)-1); } } } } SetPlayerAJPos(playerid); UserCache[pUID[playerid]][uAJ] = time; format(str, sizeof(str), "~r~AJ: %d min.", UserCache[pUID[playerid]][uAJ]); PlayerTextDrawSetString(playerid, AJTextDraw[playerid], str); PlayerTextDrawShow(playerid, AJTextDraw[playerid]); return 1; } stock BanPlayer(playerid, adminname[], reason[], time) { new str[128]; format(str, sizeof(str), "~r~Blokada postaci~w~ (%d dni)~n~Gracz: %s~n~Nadawca: %s~n~~y~%s", time, PlayerName(playerid), adminname, reason); TextDrawSetString(PenalityTextDraw, str); TextDrawShowForAll(PenalityTextDraw); if(PenalityTimer > 0) { KillTimer(PenalityTimer); } PenalityTimer = SetTimer("HidePenalityTextDraw", 15000, false); new h, m, s; gettime(h,m, s); UserCache[pUID[playerid]][uBan] = time; UserCache[pUID[playerid]][uBanHour] = h; UserCache[pUID[playerid]][uBanMin] = m; format(str, sizeof(str), reason); UserCache[pUID[playerid]][uBanReason] = str; UserCache[pUID[playerid]][uBanDay] = gday; UserCache[pUID[playerid]][uBanMonth] = gmonth; UserCache[pUID[playerid]][uBanYear] = gyear; return Kick(playerid); } stock PermBanPlayer(playerid, adminname[], reason[]) { new str[128]; format(str, sizeof(str), "~r~Blokada postaci~w~ (na zawsze)~n~Gracz: %s~n~Nadawca: %s~n~~y~%s", PlayerName(playerid), adminname, reason); TextDrawSetString(PenalityTextDraw, str); TextDrawShowForAll(PenalityTextDraw); if(PenalityTimer > 0) { KillTimer(PenalityTimer); } PenalityTimer = SetTimer("HidePenalityTextDraw", 15000, false); new h, m, s; gettime(h,m, s); format(str, sizeof(str), reason); UserCache[pUID[playerid]][uBanReason] = reason; UserCache[pUID[playerid]][uBan] = 999; return Kick(playerid); } cmd:aj (playerid, params[]) { if(UserCache[pUID[playerid]][uRank] < SP_2) return 1; new targetid, reason[128], time; if(sscanf(params, "ris[128]", targetid, time, reason)) return SendClientMessage(playerid, COLOR_GRAY, "Poprawne użycie: /aj [ID/Część nazwy gracza] [czas] [powód]"); /*if(playerid == targetid) return SendClientMessage(playerid, COLOR_GRAY, "Nie możesz nadać sobie tej kary.");*/ if(!IsPlayerConnected(targetid)) return SendClientMessage(playerid, COLOR_GRAY, "Ten gracz nie jest podłączony do serwera."); if(!pUID[targetid]) return SendClientMessage(playerid, COLOR_GRAY, "Ten gracz nie jest zalogowany."); if(time < 0 || time > 120) return SendClientMessage(playerid, COLOR_GRAY, "Czas AdminJail musi zmieścić się pomiędzy wartościami 0(by zdjąć AJ) - 120 min."); if(time == 0) { if(UserCache[pUID[targetid]][uAJ] == 0) return SendClientMessage(playerid, COLOR_GRAY, "Ten gracz nie posiada AJ."); UserCache[pUID[targetid]][uAJ] = 0; new UID = pUID[targetid]; if(UserCache[UID][uSpawnX] != 0 && UserCache[UID][uSpawnY] != 0 && UserCache[UID][uSpawnZ] != 0) { SetPlayerPos(targetid, UserCache[UID][uSpawnX], UserCache[UID][uSpawnY], UserCache[UID][uSpawnZ]); SetPlayerVirtualWorld(targetid, UserCache[UID][uSpawnVW]); } else if(UserCache[UID][uHouseSpawn] != 0) { new duid = UserCache[UID][uHouseSpawn]; SetPlayerPos(targetid, DoorCache[duid][dInsX], DoorCache[duid][dInsY], DoorCache[duid][dInsZ]); SetPlayerVirtualWorld(targetid, DoorCache[duid][dInsVW]); } else if(UserCache[UID][uHouseSpawn] == 0) { SetPlayerPos(targetid, 1016.3893,-1314.6183,13.5469); SetPlayerVirtualWorld(targetid, 0); } PlayerTextDrawHide(targetid, AJTextDraw[targetid]); SendClientMessage(targetid, COLOR_RED, "Opuściłeś AdminJail."); return SendClientMessage(playerid, COLOR_RED, "Wypuściłeś gracza z AdminJail."); } AJPlayer(targetid, PlayerName(playerid), reason, time); return 1; } CMD:ban (playerid, params[]) { if(UserCache[pUID[playerid]][uRank] != 3) return 1; new targetid, reason[128], time; if(sscanf(params, "ris[128]", targetid, time, reason)) return SendClientMessage(playerid, COLOR_GRAY, "Poprawne użycie: /ban [ID/Część nazwy gracza] [czas] [powód]"); if(!IsPlayerConnected(targetid)) return SendClientMessage(playerid, COLOR_GRAY, "Ten gracz nie jest podłączony do serwera."); if(!pUID[targetid]) return SendClientMessage(playerid, COLOR_GRAY, "Ten gracz nie jest zalogowany."); if(time < 1 || time > 30) return SendClientMessage(playerid, COLOR_GRAY, "Wartość blokady postaci musi mieścić się w przedziale 1-30 dni. "); return BanPlayer(targetid, PlayerName(playerid), reason, time); } stock SetPlayerFreeVW(playerid) { for(new i=0; i<=GetPlayerPoolSize();i++) { if(IsPlayerConnected(i)) { if(GetPlayerVirtualWorld(i) == GetPlayerVirtualWorld(playerid)) { SetPlayerVirtualWorld(playerid, GetPlayerVirtualWorld(i)-1); } } } } stock SetPlayerAJPos(playerid) { SetPlayerPos(playerid, 1175.3094,-1179.7953,87.0432); } cmd:to (playerid, params[]) { if(UserCache[pUID[playerid]][uRank] == 0) { return 1; } new targetid; if(sscanf(params, "r", targetid)) { return SendClientMessage(playerid, COLOR_GRAY, "Poprawne użycie: /to [ID/Część nazwy gracza]"); } if(playerid == targetid) { return SendClientMessage(playerid, COLOR_GRAY, "Nie możesz przeteleportować się do samego siebie."); } if(!IsPlayerConnected(targetid)) { return SendClientMessage(playerid, COLOR_GRAY, "Ten gracz nie jest podłączony do serwera."); } if(!pUID[targetid]) { return SendClientMessage(playerid, COLOR_GRAY, "Ten gracz nie jest zalogowany."); } SetPlayerFreeVW(playerid); new Float:X, Float:Y, Float:Z; GetPlayerPos(targetid, X, Y, Z); SetPlayerPos(playerid, X, Y+1, Z); SetPlayerVirtualWorld(playerid, GetPlayerVirtualWorld(targetid)); new str[64]; format(str, sizeof(str), "~y~%s ~w~Przeteleportowal sie do Ciebie.", PlayerName(playerid)); TextDrawForPlayerEx(targetid, 1, str, 5000); format(str, sizeof(str), "Przeteleportowales sie do ~y~%s~w~.", PlayerName(targetid)); TextDrawForPlayerEx(playerid, 1, str, 5000); return 1; } cmd:here (playerid, params[]) { if(UserCache[pUID[playerid]][uRank] < 2) { return 1; } new targetid; if(sscanf(params, "r", targetid)) { return SendClientMessage(playerid, COLOR_GRAY, "Poprawne użycie: /here [ID/Część nazwy gracza]"); } if(playerid == targetid) { return SendClientMessage(playerid, COLOR_GRAY, "Nie możesz przeteleportować się do samego siebie."); } if(!IsPlayerConnected(targetid)) { return SendClientMessage(playerid, COLOR_GRAY, "Ten gracz nie jest podłączony do serwera."); } if(!pUID[targetid]) { return SendClientMessage(playerid, COLOR_GRAY, "Ten gracz nie jest zalogowany."); } SetPlayerFreeVW(targetid); new Float:X, Float:Y, Float:Z; GetPlayerPos(playerid, X, Y, Z); SetPlayerPos(targetid, X, Y+1, Z); SetPlayerVirtualWorld(targetid, GetPlayerVirtualWorld(playerid)); new str[64]; format(str, sizeof(str), "~y~%s ~w~Przeteleportowal Cie do siebie.", PlayerName(playerid)); TextDrawForPlayerEx(targetid, 1, str, 5000); format(str, sizeof(str), "Przeteleportowales ~y~%s~w~ do siebie.", PlayerName(targetid)); TextDrawForPlayerEx(playerid, 1, str, 5000); return 1; } cmd:opis (playerid, params[]) { new desc[128]; if(sscanf(params, "s[128]", desc)) return SendClientMessage(playerid, COLOR_GRAY, "Poprawne użycie: /opis [OPIS TWOJEJ POSTACI]"); if(!strcmp(desc, "usun", true) && pDesc[playerid][dIsDescOnPlayer] == true) { DestroyDynamic3DTextLabel(pDesc[playerid][dID]); SendClientMessage(playerid, COLOR_GRAY, "Usunięto opis."); pDesc[playerid][dIsDescOnPlayer] = false; return 1; } format(desc, sizeof(desc), strreplace(strreplace(desc, '(', '{'), ')', '}')); for(new i; i<=strlen(desc); i++) { if(i == 32 || i == 64 || i == 86 || i == 102 || i == 134) { for(new j=i; j<=strlen(desc); j++) { if(desc[j] == ' ') { strins(desc, "\n", j); break; } } } } if(pDesc[playerid][dIsDescOnPlayer] == true) UpdateDynamic3DTextLabelText(pDesc[playerid][dID], DESC_COLOR, desc); else { DestroyDynamic3DTextLabel(pDesc[playerid][dID]); pDesc[playerid][dID] = CreateDynamic3DTextLabel(desc, DESC_COLOR, 0.0, 0.0, 0.0-0.5, 6.0, playerid, INVALID_VEHICLE_ID, 1, -1, -1, -1); } SendClientMessage(playerid, COLOR_GRAY, "Ustawiono opis:"); SendClientMessage(playerid, DESC_COLOR, desc); pDesc[playerid][dIsDescOnPlayer] = true; return 1; } cmd:warn (playerid, params[]) { if(UserCache[pUID[playerid]][uRank] == 0) { return 1; } new targetid, reason[128]; if(sscanf(params, "rs[128]", targetid, reason)) { return SendClientMessage(playerid, COLOR_GRAY, "Poprawne użycie: /warn [ID/Część nazwy gracza] [ostrzeżenie]"); } if(playerid == targetid) { return SendClientMessage(playerid, COLOR_GRAY, "Nie możesz nadać sobie tej kary."); } if(!IsPlayerConnected(targetid)) { return SendClientMessage(playerid, COLOR_GRAY, "Ten gracz nie jest podłączony do serwera."); } if(!pUID[targetid]) { return SendClientMessage(playerid, COLOR_GRAY, "Ten gracz nie jest zalogowany."); } new str[128]; format(str, sizeof(str), "~r~Ostrzeznie~n~~w~Gracz: %s~n~Nadawca: %s~n~~y~%s", PlayerName(targetid), PlayerName(playerid), reason); TextDrawSetString(PenalityTextDraw, str); TextDrawShowForAll(PenalityTextDraw); if(PenalityTimer > 0) { KillTimer(PenalityTimer); } PenalityTimer = SetTimer("HidePenalityTextDraw", 15000, false); format(str, sizeof(str), "> Otrzymałeś karę(ostrzeżenie) od %s. Powód: %s", PlayerName(playerid), reason); SendClientMessage(targetid, COLOR_RED, str); return 1; } stock ShowDialogDoorCreate(playerid, yard) { new str[500]; format(str, sizeof(str), "Aby utworzyć nowe drzwi w tej strefie musisz wpisać poniżej wartości w formacie:\n\n[rodzaj drzwi do stworzenia] [metraż]\n\nGdzie rodzaj to: d - dla domu oraz b- dla biznesu\nMetraż - metraż budynku.\nMinimalny metraż w tej strefie: %dm2.\n\n"HEX_RED"Uwaga!\n\ Jeśli przed Tobą w grze nie znajdują się żadne drzwi, stworzenie ich w tym miejscu..\nzostanie usunięte przez Administrację bez żadnych zwrotów!", yard); ShowPlayerDialog(playerid, D_CREATEDOOR, DIALOG_STYLE_INPUT, "Stwórz nowe drzwi", str, "Stwórz", "Anuluj"); } stock GetPlayerDoorUID(playerid) { new playervw = GetPlayerVirtualWorld(playerid); for(new i=1; i 0) format(dinfo, sizeof(dinfo), "%s~n~~w~(Oplata za przejscie: ~g~~h~%d$~w~)~n~(nacisnij LALT+SPRINT aby wejsc)~n~(%d osob w srodku)", DoorCache[i][dName],DoorCache[i][dEnterCost], count); if(!DoorCache[i][dOpen]) format(dinfo, sizeof(dinfo), "%s~w~~n~(nacisnij LALT+SPRINT aby wejsc)~n~~r~(te drzwi sa zamkniete)", DoorCache[i][dName]); TextDrawForPlayerEx(playerid, 2, dinfo, 5000); return 1; } } } } return 1; } cmd:zamknij (playerid, params[]) { new vw = GetPlayerVirtualWorld(playerid); for(new i=1; i %s: %s ))", strreplace(PlayerName(targetid), '_', ' '), msg); if(UserCache[pUID[targetid]][uAFK]) format(str, sizeof(str), "(( > [AFK] %s: %s ))", strreplace(PlayerName(targetid), '_', ' '), msg); SendClientMessage(playerid, 0xFFD95BFF, str); format(str, sizeof(str), "(( %s: %s ))", strreplace(PlayerName(playerid), '_', ' '), msg); SendClientMessage(targetid, 0xFFB033FF, str); PlayerPlaySound(targetid, 5202, 0.0, 0.0, 0.0); PlayerMessageUID[targetid] = pUID[playerid]; return SetPlayerChatBubble(playerid, "(PW)", COLOR_ORANGE, 15, 3000); } cmd:cash (playerid, params[]) { if(UserCache[pUID[playerid]][uRank] < ADMINISTRATION) return 1; new targetid, money; if(sscanf(params, "ri", targetid, money)) return SendClientMessage(playerid, COLOR_GRAY, "Poprawne użycie: /cash [ID/Część nazwy gracza] [ilość]"); if(!IsPlayerConnected(targetid)) return SendClientMessage(playerid, COLOR_GRAY, "Ten gracz nie jest podłączony do serwera."); if(!pUID[targetid]) return SendClientMessage(playerid, COLOR_GRAY, "Ten gracz nie jest zalogowany."); new msg[256]; format(msg, sizeof(msg), "(( %s %s[%d] nadał graczowi %s[%d] $%d gotówki. ))", GetRankName(UserCache[pUID[playerid]][uRank]), PlayerName(playerid),playerid, PlayerName(targetid),targetid, money); SendMessageToAdmins(msg); return SetPlayerCash(targetid, money); } cmd:re (playerid, params[]) { new msg[128]; if(sscanf(params, "s[128]", msg)) return SendClientMessage(playerid, COLOR_GRAY, "Poprawne użycie: /re [wiadomość]"); for(new i=0;i<=GetPlayerPoolSize(); i++) { if(IsPlayerConnected(i)) { if(pUID[i] == PlayerMessageUID[playerid]) { if(UserCache[pUID[playerid]][uAJ]) { if(UserCache[pUID[i]][uRank]) { goto a; } return SendClientMessage(playerid, COLOR_GRAY, "Będąc w AdminJail możesz skontaktować się tylko z ekipą. Nie proś o zdjęcie kary bo raczej słusznie została ona nadana."); } a: new str[256]; format(str, sizeof(str), "(( %s: %s ))", strreplace(PlayerName(i), '_', ' '), msg); if(UserCache[pUID[i]][uAFK]) format(str, sizeof(str), "(( > [AFK] %s: %s ))", strreplace(PlayerName(i), '_', ' '), msg); SendClientMessage(playerid, 0xFFD95BFF, str); format(str, sizeof(str), "(( %s: %s ))", strreplace(PlayerName(playerid), '_', ' '), msg); SendClientMessage(i, 0xFFB033FF, str); PlayerPlaySound(i, 5202, 0.0, 0.0, 0.0); PlayerMessageUID[i] = pUID[playerid]; return SetPlayerChatBubble(playerid, "(PW)", COLOR_ORANGE, 15, 3000); } } } return SendClientMessage(playerid, COLOR_GRAY, "Nikt nie wysłał Ci wiadomości lub gracz wylogował się."); } stock ItemPath(itemid) { new path[64]; format(path, sizeof(path), FOLDER_ITEMS"%d.ini", itemid); return path; } stock LoadItems() { new name[128], count; for(new i=1;i= 20) return ShowDialogInfo(playerid, "W ekwipunku nie zmieści się aż tyle przedmiotów."); new type, val, val2, val3 ,name[128]; if(sscanf(params, "iiiis[128]", type, val, val2, val3, name)) return SendClientMessage(playerid, COLOR_GRAY, "Poprawne użycie: /ai [Typ] [wartość 1] [wartość 2] [wartość 3] [Nazwa]"); CreateItem(playerid, type, val, val2, val3, name); format(name, sizeof(name), "> Do twojego ekwipunku został dodany przedmiot "HEX_BLUE"%s"HEX_WHITE".", ItemCache[LastiUID-1][iName]); SendClientMessage(playerid, COLOR_WHITE, name); } return 1; } stock UseItem(playerid, itemuid) { SetPVarInt(playerid, "iUID", itemuid); if(!ItemCache[itemuid][iType]) return ShowDialogInfo(playerid, "Ten przedmiot służy do gry RolePlay i nie ma żadnych zastosowań skryptowych."); if(ItemCache[itemuid][iType]==1) { if(ItemCache[itemuid][iVal2] == 0) return SendClientMessage(playerid, COLOR_GRAY, "W tej broni skończyła się amunicja."); for(new i=1; i 0) { ShowDialogAnswer(playerid); return 1; } if(!ItemCache[itemuid][iActive]) { GameTextForPlayer(playerid, "~b~~h~telefon ~w~wlaczony", 3000, 4); PlayerPlaySound(playerid, 4202, 0.0, 0.0, 0.0); ItemCache[itemuid][iActive]=1; } ShowDialogPhone(playerid); } if(ItemCache[itemuid][iType] == 3) { for(new i=1; i= 10.0) return TextDrawForPlayerEx(playerid, 1, "Nie potrzebujesz leku, bo stan zdrowia twojej postaci jest dobry.", 5000); } else if(UserCache[pUID[playerid]][uHealth] < 10.0) { return ShowDialogInfo(playerid, "Twój stan zdrowia jest zbyt niski.\nUdaj się do apteki by zakupić lek."); } if(ItemCache[itemuid][iVal2] == 0) ApplyAnimation(playerid, "FOOD", "eat_burger", 4.1, 0, 0, 0, 0, 0, 0); else if(ItemCache[itemuid][iVal2] == 1) SetPlayerSpecialAction(playerid, 20); else if(ItemCache[itemuid][iVal2] == 2) SetPlayerSpecialAction(playerid, 21); else if(ItemCache[itemuid][iVal2] == 3) SetPlayerSpecialAction(playerid, 22); else if(ItemCache[itemuid][iVal2] == 4) SetPlayerSpecialAction(playerid, 23); if(floatround(UserCache[pUID[playerid]][uHealth])+ItemCache[itemuid][iVal] > 100) { UserCache[pUID[playerid]][uHealth]=100.0; SetPlayerHealth(playerid, 100); } else { UserCache[pUID[playerid]][uHealth] = UserCache[pUID[playerid]][uHealth]+ItemCache[itemuid][iVal]; SetPlayerHealth(playerid, UserCache[pUID[playerid]][uHealth]); } new msg[128]; format(msg, sizeof(msg), "spożywa %s.", ItemCache[itemuid][iName]); SendPlayerMe(playerid, msg); ItemCache[itemuid][iState] = 3; return 1; } if(ItemCache[itemuid][iType] == 5) { new Float:X, Float:Y, Float:Z; GetPlayerPos(playerid, X, Y, Z); new vw = GetPlayerVirtualWorld(playerid); for(new j=1; j < LastiUID; j++) { if(ItemCache[j][iState] == 0) { if(ItemCache[j][iActive]) { if(ItemCache[j][iOwner] == pUID[playerid]) { if(ItemCache[j][iType] == 5) { DestroyDynamicObject(ItemCache[j][iVal]); ItemCache[j][iActive] = 0; for(new i; i<=GetPlayerPoolSize(); i++) { if(IsPlayerConnected(i)) { if(IsPlayerInRangeOfPoint(i, 50, X, Y, Z)) { if(GetPlayerVirtualWorld(i) == vw) { StopAudioStreamForPlayer(i); } } } } } } } } } return ShowDialogBoomBox(playerid); } if(ItemCache[itemuid][iType] == 6) { new msg[128]; new rand = random(6); format(msg, sizeof(msg), "* %s wylosował liczbę %d (z 1-6) używając %s. *", RPName(playerid), rand+1, ItemCache[itemuid][iName]); if(UserCache[pUID[playerid]][uSex]) format(msg, sizeof(msg), "* %s wylosowała liczbę %d (z 1-6) używając %s. *", RPName(playerid), rand+1, ItemCache[itemuid][iName]); return SendPlayerMessageInRange(playerid, msg, DO_SHADE_1, DO_SHADE_2, DO_SHADE_3, DO_SHADE_4, DO_SHADE_5, DO_SHADE_6); } if(ItemCache[itemuid][iType] == 7) { for(new i=1; i 300) return TextDrawForPlayerEx(playerid, 1, "Ten pojazd jest w stanie uruchomic silnik~n~Naprawa jest niepotrzebna.", 3000); TextDrawForPlayerEx(playerid, 1, "Rozpoczynasz naprawe pojazdu.~n~Odegraj akcje RolePlay naprawy pojazdu.", 10000); PlayerRepairingVehicle[playerid][repairTime] = 30; ItemCache[itemuid][iActive] = 1; PlayerRepairingVehicle[playerid][repairTimer] = SetTimerEx("RepairingVehicle", 1000, true, "i", playerid); } return GameTextForPlayer(playerid, "~r~~h~spojrz na pojazd", 3000, 4); } if(ItemCache[itemuid][iType] == 10) { new Float:vx, Float:vy, Float:vz, vvw, pvw = GetPlayerVirtualWorld(playerid); for(new i=1; i<=GetVehiclePoolSize(); i++) { vvw = GetVehicleVirtualWorld(i); if(pvw == vvw) { GetVehiclePos(i, vx, vy, vz); if(IsPlayerInRangeOfPoint(playerid, 5.0, vx, vy, vz)) { new vuid = GetVehicleUID(i); new fuel = VehicleCache[vuid][vFuel]; if(VehicleCache[vuid][vEngine]) return ShowDialogInfo(playerid, "Silnik w tym pojeździe musi być zgaszony."); if(fuel + ItemCache[itemuid][iVal] > 100) return TextDrawForPlayerEx(playerid, 1, "W tym pojezdzie nie zmiesci sie az tyle paliwa.", 3000); if(IsPlayerInAnyVehicle(playerid)) return ShowDialogInfo(playerid, "Nie możesz użyć tej funkcji znajdując się w pojeździe."); VehicleCache[vuid][vFuel] += ItemCache[itemuid][iVal]; new str[128]; format(str, sizeof(str), "uzupełnia bak paliwa pojazdu marki %s", GetVehicleName(GetVehicleModel(i))); ApplyAnimation(playerid, "BD_FIRE", "wash_up", 4.1, 0, 0, 0, 0, 0, 0); ItemCache[itemuid][iState] = 3; return SendPlayerMe(playerid, str); } } } return TextDrawForPlayerEx(playerid, 1, "Nie znajdujesz sie w poblizu zadnego pojazdu.", 3000); } if(ItemCache[itemuid][iType] == 11) { new weapontoload = ItemCache[itemuid][iVal], list[256], info[64], count; for(new i=1; i Połączenie przychodzące", "1\t"HEX_GREEN"Odbierz\n2\t"HEX_RED"Odrzuć", "Wybierz", "Anuluj"); stock ShowDialogPhone(playerid) return ShowPlayerDialog(playerid, D_PHONE, DIALOG_STYLE_LIST, "Telefon", ""HEX_WHITE"1\t"HEX_GREEN"Kontakty"HEX_WHITE"\n2\t"HEX_BLUE"Skrzynka odbiorcza"HEX_WHITE"\n3\tZadzwoń pod numer\n4\tWyślij SMS\n5\t"HEX_RED"Wyłącz telefon", "Wybierz", "Anuluj"); stock ShowDialogUseWeap(playerid) { return ShowPlayerDialog(playerid, D_USE_WEAP, DIALOG_STYLE_INPUT, "Użycie broni", ""HEX_WHITE"Napisz z/do którego wyjmujesz/chowasz swoją broń.\nNp. Z kabury/do kabury.", "Użyj", "Anuluj"); } public OnPlayerWeaponShot(playerid, weaponid, hittype, hitid, Float:fX, Float:fY, Float:fZ) { new bool:ischeater=true; for(new i=1;i 0) { KillTimer(PenalityTimer); } PenalityTimer = SetTimer("HidePenalityTextDraw", 15000, false); format(str, sizeof(str), "> Otrzymałeś SPoints (%d) od %s. Powód: %s", sp, PlayerName(playerid), reason); SendClientMessage(targetid, COLOR_GREEN, str); UserCache[pUID[targetid]][uSP] += sp; SetPlayerScore(targetid, UserCache[pUID[targetid]][uSP]); return 1; } CMD:kick (playerid, params[]) { if(UserCache[pUID[playerid]][uRank] == 0) return 1; new targetid, reason[128]; if(sscanf(params, "rs[128]", targetid, reason)) { return SendClientMessage(playerid, COLOR_GRAY, "Poprawne użycie: /kick [ID/Część nazwy gracza] [powód]"); } if(targetid == playerid) { return SendClientMessage(playerid, COLOR_GRAY, "Nie możesz zkickować samego siebie!"); } if(!IsPlayerConnected(targetid)) { return SendClientMessage(playerid, COLOR_GRAY, "Takiego gracza nie ma na serwerze."); } if(!pUID[targetid]) { return SendClientMessage(playerid, COLOR_GRAY, "Ten gracz nie jest zalogowany."); } KickPlayer(targetid, PlayerName(playerid), reason); return 1; } stock GetPlayerFreeSlot(playerid) { new puid = pUID[playerid]; if(UserCache[puid][uGroup] == 0) return 1; else if(UserCache[puid][uGroup2] == 0) return 2; else if(UserCache[puid][uGroup3] == 0) return 3; else return 0; } public OnPlayerClickTextDraw(playerid, Text:clickedid) { PlayerTextDrawHide(playerid, Group[playerid]); PlayerTextDrawHide(playerid, Group2[playerid]); PlayerTextDrawHide(playerid, Group3[playerid]); PlayerTextDrawHide(playerid, GroupLabel[playerid]); pChoosingTxd[playerid] = 0; return 0; } CMD:login (playerid, params[]) { return LogoutPlayer(playerid); } CMD:mmat (playerid, params[]) { new objectid=GetPlayerObjectID(playerid); if(!objectid) return SendClientMessage(playerid, COLOR_GRAY, "Nie edytujesz żadnego obiektu."); new color, modelid, txdname[128], texturename[128], index, type; if(type == 16 || type < -1) return SendClientMessage(playerid, COLOR_GRAY, "Nieprawdiłowy index. Poprawny przedział index'u: [-1 do 16]"); sscanf(params, "ii", index, type); new uid = GetObjectUID(objectid); if(type == 0) { if(sscanf(params, "iixis[128]s[128]",index, type ,color, modelid, txdname, texturename)) return SendClientMessage(playerid, COLOR_GRAY, "Poprawne użycie: /mmat [typ] [index] [color] [modelid] [txdname] [texturename]"); SetDynamicObjectMaterial(objectid, index, modelid,txdname, texturename, color); TextureCache[LasttUID][tTxdname] = txdname; TextureCache[LasttUID][tTexturename] = texturename; TextureCache[LasttUID][tColor] = color; TextureCache[LasttUID][tModelid] = modelid; TextureCache[LasttUID][tObjectUID] = uid; TextureCache[LasttUID][tIndex] = index; TextureCache[LasttUID][tType] = type; TextureCache[LasttUID][tBold] = 0; TextureCache[LasttUID][tMaterialsize] = 0; TextureCache[LasttUID][tFontsize] = 0; TextureCache[LasttUID][tAlignment] = 0; TextDrawForPlayerEx(playerid, 1, "Textura zmieniona.",3000); } else if(type == 1) { new fontsize, materialsize, bold, backcolor, alignment; if(sscanf(params, "iiiiixxis[128]s[128]", index, type, materialsize, fontsize ,bold, color, backcolor, alignment, txdname, texturename)) return SendClientMessage(playerid, COLOR_GRAY, "Poprawne użycie: /mmat [index] [typ] [fontsize] [materialsize] [bold] [color] [backcolor] [txdname] [texturename]"); SetDynamicObjectMaterialText(objectid, index, texturename, materialsize, txdname, fontsize, bold, color, backcolor, alignment); TextureCache[LasttUID][tTxdname] = txdname; TextureCache[LasttUID][tTexturename] = texturename; TextureCache[LasttUID][tColor] = color; TextureCache[LasttUID][tModelid] = modelid; TextureCache[LasttUID][tObjectUID] = uid; TextureCache[LasttUID][tIndex] = index; TextureCache[LasttUID][tType] = type; TextureCache[LasttUID][tBold] = bold; TextureCache[LasttUID][tMaterialsize] = materialsize; TextureCache[LasttUID][tFontsize] = fontsize; TextureCache[LasttUID][tAlignment] = alignment; TextureCache[LasttUID][tBackcolor] = backcolor; TextDrawForPlayerEx(playerid, 1, "Ustawiono napis.",3000); } LasttUID++; return 1; } CMD:pomoc (playerid, params[]) return ShowDialogHelp(playerid); stock ShowDialogHelp(playerid) return ShowPlayerDialog(playerid, D_HELP, DIALOG_STYLE_LIST, "Pomoc", ""HEX_WHITE"Przydatne komendy\n"HEX_BLUE"Statystyki\n"HEX_WHITE"Animacje", "Wybierz", "Anuluj"); stock ShowDialogCommands(playerid) return ShowPlayerDialog(playerid, D_COMMANDS, DIALOG_STYLE_LIST, "Pomoc > Przydatne komendy",""HEX_WHITE"Obiekty\nDrzwi\n"HEX_BLUE"Interakcja z graczem", "Wybierz", "Anuluj"); CMD:pay (playerid, params[]) { new targetid, amount; if(sscanf(params, "ri", targetid, amount)) return SendClientMessage(playerid, COLOR_GRAY, "Poprawne użycie: /pay [ID/Część nicku gracza] [ilość gotówki]"); if(!IsPlayerConnected(targetid) || !pUID[targetid]) return SendClientMessage(playerid, COLOR_GRAY,"Ten gracz nie jest, lub nie jest zalogowany do serwera."); new Float:X, Float:Y, Float:Z, pvw = GetPlayerVirtualWorld(playerid); GetPlayerPos(playerid, X, Y, Z); if(!IsPlayerInRangeOfPoint(targetid, 5.0, X, Y, Z) || GetPlayerVirtualWorld(targetid) != pvw) return SendClientMessage(playerid, COLOR_GRAY, "Gracz jest za daleko."); if(amount < 1) return SendClientMessage(playerid, COLOR_GRAY, "Możesz podać minimalnie 1$."); if(UserCache[pUID[playerid]][uCash] < amount) return SendClientMessage(playerid, COLOR_GRAY, "Nie posiadasz przy sobie tylu pieniędzy."); UserCache[pUID[targetid]][uCash] += amount; UserCache[pUID[playerid]][uCash] -= amount; GivePlayerMoney(playerid, -amount); GivePlayerMoney(targetid, amount); new msg[128]; format(msg, sizeof(msg), "> Podajesz %d$ dla gracza %s.", amount, strreplace(PlayerName(targetid), '_', ' ')); SendClientMessage(playerid, COLOR_BLUE, msg); format(msg, sizeof(msg), "> Otrzymujesz %d$ od gracza %s.", amount, strreplace(PlayerName(playerid), '_', ' ')); SendClientMessage(targetid, COLOR_BLUE, msg); format(msg, sizeof(msg), "podaje trochę gotówki %s.", strreplace(PlayerName(targetid), '_', ' ')); SendPlayerMe(playerid, msg); return ApplyAnimation(playerid, "dealer", "dealer_deal", 4.1, 0, 0, 0, 0, 0, 0); } stock ShowDialogChangeGroupColor(playerid) return ShowPlayerDialog(playerid, D_CHANGE_GROUP_COLOR, DIALOG_STYLE_INPUT, "Zmień kolor grupy", ""HEX_WHITE"Zmiana koloru grupy zmieni rzeczy tj. kolor służby, czatów grupowych.\nWpisz poniżej kolor HTML: np. {ff0000}FF0000", "Zatwierdź", "Anuluj"); CMD:m (playerid, params[]) { if(GroupCache[pDuty[playerid]][gType] != 1) return SendClientMessage(playerid, COLOR_GRAY, "Nie znajdujesz się na służbie odpowiedniej grupy by użyć tej komendy."); new text[128]; if(sscanf(params, "s[128]", text)) return SendClientMessage(playerid, COLOR_GRAY, "Poprawne użycie: /m [treść] by użyć megafonu"); new msg[128]; format(msg, sizeof(msg), "%s (megafon) :o< %s!!!", strreplace(PlayerName(playerid), '_', ' '), text); new pvw = GetPlayerVirtualWorld(playerid),Float:X, Float:Y, Float:Z; GetPlayerPos(playerid, X, Y, Z); for(new i; i<=GetPlayerPoolSize(); i++) { if(IsPlayerConnected(i)) { if(GetPlayerVirtualWorld(i) == pvw) { if(IsPlayerInRangeOfPoint(i, 100.0, X, Y, Z)) { SendClientMessage(i, 0xFFF000FF, msg); } } } } return 1; } CMD:kajdanki (playerid, params[]) { if(GroupCache[pDuty[playerid]][gType] != 1) return SendClientMessage(playerid, COLOR_GRAY, "Nie znajdujesz się na służbie odpowiedniej grupy by użyć tej komendy."); new targetid; if(sscanf(params, "r", targetid)) return SendClientMessage(playerid, COLOR_GRAY, "Poprawne użycie: /kajdanki [ID/Część nicku gracza] by skuć/odkuć gracza."); new msg[128]; if(GetPlayerSpecialAction(targetid) == SPECIAL_ACTION_CUFFED) { format(msg, sizeof(msg), "odkuwa kajdankami", strreplace(PlayerName(playerid), '_', ' '), strreplace(PlayerName(targetid), '_', ' ')); SetPlayerSpecialAction(targetid, 0); } else { format(msg, sizeof(msg), "skuwa", strreplace(PlayerName(playerid), '_', ' '), strreplace(PlayerName(targetid), '_', ' ')); SetPlayerSpecialAction(targetid, SPECIAL_ACTION_CUFFED); } SendPlayerMe(playerid, msg); return 1; } stock CreateSystemVehicle(model, color, color2, Float:PosX, Float:PosY, Float:PosZ, ownerid, VW, Float:angle) { VehicleCache[LastvUID][vUID] = LastvUID; VehicleCache[LastvUID][vModel] = model; VehicleCache[LastvUID][vColor] = color; VehicleCache[LastvUID][vColor2] = color2; VehicleCache[LastvUID][vVW] = VW; VehicleCache[LastvUID][vPosX] = PosX; VehicleCache[LastvUID][vPosY] = PosY; VehicleCache[LastvUID][vPosZ] = PosZ; VehicleCache[LastvUID][vAngle] = angle; VehicleCache[LastvUID][vState] = 0; VehicleCache[LastvUID][vOwner] = pUID[ownerid]; VehicleCache[LastvUID][vHP] = 1000.0; VehicleCache[LastvUID][vID] = 0; VehicleCache[LastvUID][vTimer] = 0; VehicleCache[LastvUID][vBonnet] = 0; VehicleCache[LastvUID][vDoors] = 0; VehicleCache[LastvUID][vBoot] = 0; VehicleCache[LastvUID][vLights] = 0; VehicleCache[LastvUID][vObjective] = 0; VehicleCache[LastvUID][vAlarm] = 0; VehicleCache[LastvUID][vOpen] = 0; VehicleCache[LastvUID][vFuel] = 100; VehicleCache[LastvUID][vRegister] = false; if(model == 481 ||model == 509 || model == 510) VehicleCache[LastvUID][vEngine] = 1; else VehicleCache[LastvUID][vEngine] = 0; LastvUID++; } CMD:ap(playerid, params[]) { if(UserCache[pUID[playerid]][uRank] >= ADMINISTRATION || pDuty[playerid] == 16) { new model, color, color2; if(sscanf(params, "iii", model, color, color2)) return SendClientMessage(playerid, COLOR_WHITE, "Poprawne użycie: /ap [model] [kolor] [kolor 2]"); new Float:X, Float:Y, Float:Z, Float:ang; GetPlayerPos(playerid, X, Y, Z); GetPlayerFacingAngle(playerid, ang); CreateSystemVehicle(model, color, color2, X, Y, Z, playerid, GetPlayerVirtualWorld(playerid), ang); SpawnVehicle(LastvUID-1); PutPlayerInVehicle(playerid, VehicleCache[LastvUID-1][vID], 0); } return 1; } stock ShowDialogVehicleOptions(playerid) return ShowPlayerDialog(playerid, D_V_OPTIONS, DIALOG_STYLE_LIST, "Zarządzaj pojazdem", ""HEX_WHITE"1\tOtwórz/zamknij maskę\n2\tOtwórz/zamknij bagażnik\n3\tZasuń/wysuń szyby\n-\n4\tPodpisz pojazd pod grupę\n5\tSprzedaj pojazd graczowi", "Wybierz", "Anuluj"); CMD:v (playerid, params[]) { new vid = GetPlayerVehicleID(playerid), vuid = GetVehicleUID(vid); new sub[32], uid; sscanf(params, "s[32]i", sub, uid); if(!Isnull(sub)) { if(!strcmp(sub, "namierz", true)) { if(pUID[playerid] == VehicleCache[uid][vOwner]) { if(VehicleCache[uid][vID] == 0) return SendClientMessage(playerid, COLOR_GRAY, "Ten pojazd nie jest zespawnowany."); DestroyDynamicMapIcon(MapIcon[playerid]); KillTimer(MapIconTimer[playerid]); MapIcon[playerid] = CreateDynamicMapIcon(VehicleCache[uid][vPosX], VehicleCache[uid][vPosY], VehicleCache[uid][vPosZ], 55,-1, 0, 0, playerid,-1, 3); MapIconTimer[playerid] = SetTimerEx("DestroyIcon", 5000*60, false, "i", playerid); return TextDrawForPlayerEx(playerid, 1, "Namierzono pojazd.~n~Pozycja pojazdu zostala zaznaczona na na mapie.", 5000); } return SendClientMessage(playerid, COLOR_GRAY, "Poprawne użycie: /v namierz [UID Twojego pojazdu widocznego pod /v]"); } if(!strcmp(sub, "z", true)) { new Float:vX, Float:vY, Float:vZ, veVW, pVW=GetPlayerVirtualWorld(playerid); for(new i=1; i<=GetVehiclePoolSize(); i++) { vuid = GetVehicleUID(i); GetVehiclePos(i, vX, vY, vZ); veVW = GetVehicleVirtualWorld(i); if(pVW == veVW) { if(IsPlayerInRangeOfPoint(playerid, 5.0, vX, vY, vZ)) { if(VehicleCache[vuid][vOwner] == pUID[playerid]) { ApplyAnimation(playerid, "BD_FIRE", "wash_up", 4.1, 0, 0, 0, 0, 0, 0); PlayerPlaySound(playerid, 24600, 0.0, 0.0, 0.0); if(VehicleCache[vuid][vOpen]) { SendPlayerMe(playerid, "zamyka pojazd."); VehicleCache[vuid][vOpen]=0; return TextDrawForPlayerEx(playerid, 1, "Pojazd ~r~zamkniety.", 3000); } else { SendPlayerMe(playerid, "otwiera pojazd."); VehicleCache[vuid][vOpen]=1; return TextDrawForPlayerEx(playerid, 1, "Pojazd ~g~otwarty.", 3000); } } } } } } } if(!Isnull(params)) { if(!strcmp(params, "info", true)) { new Float:X, Float:Y, Float:Z; for(new i=1; i<=GetVehiclePoolSize(); i++) { GetVehiclePos(i, X, Y, Z); if(IsPlayerInRangeOfPoint(playerid, 5.0, X, Y, Z)) { new info[256], vvuid = GetVehicleUID(i); format(info, sizeof(info), "Marka: ~y~%s~w~ Paliwo: ~y~%d/100~w~ Kolor: ~y~%d %d", GetVehicleName(GetVehicleModel(i)), VehicleCache[vvuid][vFuel], VehicleCache[vvuid][vColor], VehicleCache[vvuid][vColor2]); return TextDrawForPlayerEx(playerid, 0, info, 5000); } } } else if(!strcmp(params, "parkuj", true)) { if(IsPlayerInAnyVehicle(playerid)) { if(GetPlayerVehicleSeat(playerid) == 0) { if(VehicleCache[vuid][vOwner] == pUID[playerid]) { GetVehiclePos(vid, VehicleCache[vuid][vPosX], VehicleCache[vuid][vPosY], VehicleCache[vuid][vPosZ]); VehicleCache[vuid][vVW] = GetPlayerVirtualWorld(playerid); GetVehicleZAngle(vid, VehicleCache[vuid][vAngle]); return TextDrawForPlayerEx(playerid, 1, "Przeparkowano pojazd.", 3000); } else return TextDrawForPlayerEx(playerid, 1, "Nie posiadasz kluczy do tego pojazdu.", 1500); } } } else return SendClientMessage(playerid, COLOR_GRAY, "Tip: /v [parkuj] [z] [info]"); } if(VehicleCache[vuid][vOwner] == pUID[playerid]) return ShowDialogVehicleOptions(playerid); new list[2500], info[128], count; list = "#\tNazwa pojazdu\tStan techniczny\n"; for(new i=1; i 100) return SendClientMessage(playerid, COLOR_GRAY, "W tym pojeździe nie zmieści się tyle paliwa."); new price = fuel *2; if(UserCache[pUID[playerid]][uCash] < price) { new str[64]; format(str, sizeof(str), "Nie posiadasz %d$ gotówki by zatankować pojazd.", price); return SendClientMessage(playerid, COLOR_GRAY, str); } if(fuel < 1) return SendClientMessage(playerid, COLOR_GRAY, "Minimalnie możesz zatankować 1 litr."); if(VehicleCache[vuid][vEngine]) return ShowDialogInfo(playerid, "Silnik musi być zgaszony."); if(GetPlayerVehicleID(playerid) == j) return ShowDialogInfo(playerid, "Wysiądź z pojazdu."); VehicleCache[vuid][vFuel]+=fuel; UserCache[pUID[playerid]][uCash] -= price; GivePlayerMoney(playerid, -price); new str[128]; format(str, sizeof(str), "wkłada pistolet do baku pojazdu marki %s", GetVehicleName(GetVehicleModel(j))); SendPlayerMe(playerid, str); return ApplyAnimation(playerid, "BD_FIRE", "wash_up", 4.1, 0, 0, 0, 0, 0, 0); } } } } } } } } return TextDrawForPlayerEx(playerid, 1, "Nie znajdujesz sie przy dystrybutorze paliwa.", 3000); } CMD:mgate (playerid, params[]) { new val, Float:val2, Float:val3, Float:val4; if(sscanf(params, "ifff", val, val2, val3, val4)) return SendClientMessage(playerid, COLOR_GRAY, "Poprawne użycie: /mgate [0 - wyłącz, 1 - pozycja, 2 -rotacja] [wartość 2] [wartość 3] [wartość 4]"); if(!GetPlayerObjectID(playerid)) return TextDrawForPlayerEx(playerid, 1, "Musisz edytowac jakis obiekt.", 1500); new oid=GetPlayerObjectID(playerid), ouid = GetObjectUID(oid); if(val == 0) { ObjectCache[ouid][oGate] = 0; return TextDrawForPlayerEx(playerid, 1, "Usunieto brame.", 3000); } if(!ObjectCache[ouid][oGate] && val != 0) ObjectCache[ouid][oGate]=1; if(val == 1) { ObjectCache[ouid][oGateX] = val2; ObjectCache[ouid][oGateY] = val3; ObjectCache[ouid][oGateZ] = val4; return TextDrawForPlayerEx(playerid, 1, "Ustawiono brame.", 3000); } else if(val == 2) { ObjectCache[ouid][oGaterX] = val2; ObjectCache[ouid][oGaterY] = val3; ObjectCache[ouid][oGaterZ] = val4; return TextDrawForPlayerEx(playerid, 1, "Ustawiono brame.", 3000); } else return SendClientMessage(playerid, COLOR_GRAY, "Poprawne użycie: /mgate [0 - wyłącz, 1 - pozycja, 2 -rotacja] [wartość 2] [wartość 3] [wartość 4]"); } CMD:brama (playerid, params[]) { new pvw = GetPlayerVirtualWorld(playerid); new Float:ox, Float:oy, Float:oz, Float:rx, Float:ry, Float:rz; for(new i=1; ioldX && new_y+0.5>oldY && new_z+0.5>oldZ) { return UnSpawnVehicle(GetVehicleUID(vehicleid)); } GetVehiclePos(vehicleid, oldX, oldY, oldZ); if(!IsPosInRangeOfPos(new_x, new_y, new_z, oldX, oldY, oldZ, 2.0) && passenger_seat == 0) { VehicleAttackedByCheater[vehicleid] = true; return !AJPlayer(playerid, "System", "Veh hack (B)", 30); } else if(passenger_seat) { if(GetPlayerVehicleID(playerid) != vehicleid) { VehicleAttackedByCheater[vehicleid] = true; return !AJPlayer(playerid, "System", "Veh hack (A)", 30); } } return 1; } CMD:ado (playerid, params[]) { if(UserCache[pUID[playerid]][uRank] >= ADMINISTRATION || pDuty[playerid] == 16) { new msg[128]; if(sscanf(params, "s[128]", msg)) return SendClientMessage(playerid, COLOR_GRAY, "Poprawne użycie: /ado [treść]"); new msgtoall[128]; format(msgtoall, sizeof(msgtoall), "** %s **", msg); if(strlen(msgtoall) >= 64) { new temp1[128], temp2[128]; temp1 = msgtoall, temp2=msgtoall; strdel(temp1, 64, strlen(temp1)); strins(temp1, "...", strlen(temp1)); strdel(temp2, 0, 64); strins(temp2, "...", 0); SendClientMessageToAll(DO_SHADE_1, temp1); return SendClientMessageToAll(DO_SHADE_1, temp2); } return SendClientMessageToAll(DO_SHADE_1, msgtoall); } return 1; } CMD:aduty (playerid, params[]) { if(UserCache[pUID[playerid]][uRank] == 0) return 1; new msg[128]; if(aduty[playerid]) { format(msg, sizeof(msg), "~w~schodzisz ze sluzby:~n~~b~~h~~h~~h~%s", GetRankName(UserCache[pUID[playerid]][uRank])); aduty[playerid] = 0; } else { format(msg, sizeof(msg), "~w~wchodzisz na sluzbe:~n~~b~~h~~h~~h~%s", GetRankName(UserCache[pUID[playerid]][uRank])); aduty[playerid] = 1; } UpdatePlayerName(playerid); return GameTextForPlayer(playerid, msg, 3000, 4); } CMD:incognito (playerid, params[]) { if(UserCache[pUID[playerid]][uRank] < ADMINISTRATION) return 1; new name[MAX_PLAYER_NAME]; if(sscanf(params, "s[24]", name)) return SendClientMessage(playerid, COLOR_GRAY, "Poprawne użycie: /incognito [Nick / Tab ]"); if(strlen(name) > MAX_PLAYER_NAME) return SendClientMessage(playerid, COLOR_GRAY, "Wybrana nazwa jest za długa."); if(!strcmp(params, "tab", true)) { if(GetPlayerColor(playerid) == UNLOGGED_COLOR) { SendClientMessage(playerid, COLOR_GRAY, "Przywrócono widoczność na liście graczy."); SetPlayerColor(playerid, LOGGED_COLOR); return SetPlayerScore(playerid, UserCache[pUID[playerid]][uSP]); } SendClientMessage(playerid, COLOR_GRAY, "Ukryto widoczność na liście graczy."); SetPlayerColor(playerid, UNLOGGED_COLOR); return SetPlayerScore(playerid, 0); } for(new i; i<=GetPlayerPoolSize(); i++) { if(IsPlayerConnected(i)) { if(!strcmp(PlayerName(i), name, true)) { return SendClientMessage(playerid, COLOR_GRAY, "Jakiś gracz nosi już taką nazwę."); } } } SetPlayerName(playerid, name); new str[128]; format(str, sizeof(str), "Od teraz wszyscy widzą Cię jako %s.", name); SendClientMessage(playerid, COLOR_GRAY, str); return UpdatePlayerName(playerid); } public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid) { return KickPlayer(playerid, "System", "Interior change"); } stock AddActor(aname[], type, skinid, Float:X, Float:Y, Float:Z, Float:angle, VirtualWorld, animlib[], animname[]) { ActorCache[LastaUID][aUID] = LastaUID; ActorCache[LastaUID][aSkin] = skinid; ActorCache[LastaUID][aType] = type; ActorCache[LastaUID][aPosX] = X; ActorCache[LastaUID][aPosY] = Y; ActorCache[LastaUID][aPosZ] = Z; ActorCache[LastaUID][aAng] = angle; ActorCache[LastaUID][aVW] = VirtualWorld; new str[64]; format(str, sizeof(str), aname); ActorCache[LastaUID][aName] = str; new lib[32], anim[32]; format(lib, sizeof(lib), animlib); format(anim, sizeof(anim), animname); ActorCache[LastaUID][aAnimLib] = lib; ActorCache[LastaUID][aAnimName] = anim; ActorCache[LastaUID][aID] = CreateDynamicActor(skinid,X, Y, Z, angle, 1, 100.0, VirtualWorld, 0, -1); format(str, sizeof(str), "%s\n(aktor)", strreplace(aname, '_', ' ')); ActorCache[LastaUID][aLabel] = CreateDynamic3DTextLabel(str, PLAYER_NORMAL_COLOR, X,Y ,Z+1.1, 8.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 1, VirtualWorld, 0,-1); if(!Isnull(animlib)) ApplyActorAnimation(ActorCache[LastaUID][aID], animlib, animname, 4.1, 1, 0, 0, 0, 0); LastaUID++; return 1; } stock RemoveActor(auid) { DestroyDynamicActor(ActorCache[auid][aID]); ActorCache[auid][aType] = 0; ActorCache[auid][aID] = 0; DestroyDynamic3DTextLabel(ActorCache[auid][aLabel]); return 1; } CMD:aktorstworz (playerid, params[]) { if(UserCache[pUID[playerid]][uRank] < ADMINISTRATION) return 1; new skin, type, name[32]; if(sscanf(params, "iis[32]", skin, type, name)) return SendClientMessage(playerid, COLOR_GRAY, "Poprawne użycie: /astworz [Skin] [Rodzaj] [Nazwa]"); new Float:X, Float:Y, Float:Z; GetPlayerPos(playerid, X, Y, Z); new Float:ang; GetPlayerFacingAngle(playerid, ang); AddActor(name, type, skin, X, Y, Z, ang, GetPlayerVirtualWorld(playerid), "", ""); new msg[128]; format(msg, sizeof(msg), "Aktor został utworzony (ID: %d, UID: %d).", ActorCache[LastaUID-1][aID], ActorCache[LastaUID-1][aUID]); Streamer_Update(playerid); return SendClientMessage(playerid, COLOR_GRAY, msg); } stock GetActorUID(actorid) { for(new i=1; i 2) return SendClientMessage(playerid, COLOR_GRAY, "Owner musi znajdować się w przedziale 0-2."); new objectuid = GetObjectUID(objectid); if(ownertype == 1) { if(owner == 1) { if(UserCache[pUID[playerid]][uGroup] == 0) return SendClientMessage(playerid, COLOR_GRAY, "Pod tym slotem nie znajduje się żadna grupa."); else if(UserCache[pUID[playerid]][uGroup]) { if(UserCache[pUID[playerid]][uGroupMapper]) { ObjectCache[objectuid][oOwnerType] = 1; ObjectCache[objectuid][oOwner] = UserCache[pUID[playerid]][uGroup]; new msg[128]; format(msg, sizeof(msg), "Podpisano obiekt pod grupę %s (UID: %d)", GroupCache[UserCache[pUID[playerid]][uGroup]][gName],UserCache[pUID[playerid]][uGroup]); return SendClientMessage(playerid, COLOR_GRAY, msg); } return SendClientMessage(playerid, COLOR_GRAY, "Lider wybranej grupy nie nadał Tobie odpowiednich uprawnień do edycji obiektów należących do niej."); } if(UserCache[pUID[playerid]][uGroup2] == 0) return SendClientMessage(playerid, COLOR_GRAY, "Pod tym slotem nie znajduje się żadna grupa."); else if(UserCache[pUID[playerid]][uGroup2]) { if(UserCache[pUID[playerid]][uGroupMapper2]) { ObjectCache[objectuid][oOwnerType] = 1; ObjectCache[objectuid][oOwner] = UserCache[pUID[playerid]][uGroup2]; new msg[128]; format(msg, sizeof(msg), "Podpisano obiekt pod grupę %s (UID: %d)", GroupCache[UserCache[pUID[playerid]][uGroup2]][gName],UserCache[pUID[playerid]][uGroup2]); return SendClientMessage(playerid, COLOR_GRAY, msg); } return SendClientMessage(playerid, COLOR_GRAY, "Lider wybranej grupy nie nadał Tobie odpowiednich uprawnień do edycji obiektów należących do niej."); } if(UserCache[pUID[playerid]][uGroup3] == 0) return SendClientMessage(playerid, COLOR_GRAY, "Pod tym slotem nie znajduje się żadna grupa."); else if(UserCache[pUID[playerid]][uGroup3]) { if(UserCache[pUID[playerid]][uGroupMapper3]) { ObjectCache[objectuid][oOwnerType] = 1; ObjectCache[objectuid][oOwner] = UserCache[pUID[playerid]][uGroup3]; new msg[128]; format(msg, sizeof(msg), "Podpisano obiekt pod grupę %s (UID: %d)", GroupCache[UserCache[pUID[playerid]][uGroup3]][gName],UserCache[pUID[playerid]][uGroup3]); return SendClientMessage(playerid, COLOR_GRAY, msg); } return SendClientMessage(playerid, COLOR_GRAY, "Lider wybranej grupy nie nadał Tobie odpowiednich uprawnień do edycji obiektów należących do niej."); } } ObjectCache[objectuid][oOwnerType] = ownertype; if(owner == 0) ObjectCache[objectuid][oOwner] = 0; if(owner == 2) ObjectCache[objectuid][oOwner] = pUID[playerid]; return TextDrawForPlayerEx(playerid, 1, "Zmieniono uprawnienia do obiektu.", 3000); } return 1; } stock DestroyGroup(groupuid) { for(new i=1; i= ADMINISTRATION) { SendClientMessage(i, COLOR_DARKRED, message); } } } return 1; }