27.05.2012, 17:11
Audi_Quattrix, sorry. I am a newbie. Your code doesn't work. Here's my gamemode's code:
What's wrong? Oh, here is what Pawno says:
Код:
//---------------------------------------------------------- // // GRAND LARCENY 1.0 // A freeroam gamemode for SA-MP 0.3 // //---------------------------------------------------------- #include <a_samp> #include <core> #include <float> #include "../include/gl_common.inc" #include "../include/gl_spawns.inc" #include "../include/dini.inc" #pragma tabsize 0 //---------------------------------------------------------- #define COLOR_WHITE 0xFFFFFFFF #define COLOR_NORMAL_PLAYER 0xFF4444FF #define CITY_LOS_SANTOS 0 #define CITY_SAN_FIERRO 1 #define CITY_LAS_VENTURAS 2 #define SERVER_USER_FILE "save/%s.ini" new total_vehicles_from_files=0; // Class selection globals new gPlayerCitySelection[MAX_PLAYERS]; new gPlayerHasCitySelected[MAX_PLAYERS]; new gPlayerLastCitySelectionTick[MAX_PLAYERS]; new Text:txtClassSelHelper; new Text:txtLosSantos; new Text:txtSanFierro; new Text:txtLasVenturas; //---------------------------------------------------------- main() { print("\n---------------------------------------"); print("Running Grand Larceny - by the SA-MP team\n"); print("---------------------------------------\n"); } //---------------------------------------------------------- public OnPlayerConnect(playerid) { GameTextForPlayer(playerid,"~w~Grand Larceny",3000,4); SendClientMessage(playerid,COLOR_WHITE,"Welcome to {88AA88}G{FFFFFF}rand {88AA88}L{FFFFFF}arceny"); // class selection init vars gPlayerCitySelection[playerid] = -1; gPlayerHasCitySelected[playerid] = 0; gPlayerLastCitySelectionTick[playerid] = GetTickCount(); //SetPlayerColor(playerid,COLOR_NORMAL_PLAYER); gPlayerLogged[playerid] = 0; new name[MAX_PLAYER_NAME], file[256]; GetPlayerName(playerid, name, sizeof(name)); format(file, sizeof(file), SERVER_USER_FILE, name); if (!dini_Exists(file)) { ShowPlayerDialog(playerid, 1, DIALOG_STYLE_INPUT, "Your account is not Registered", "Password:", "Register", "Leave"); } if(fexist(file)) { ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, "Account is registered", "Password:", "Login", "Leave"); return 1; } //---------------------------------------------------------- public OnPlayerSpawn(playerid) { if(IsPlayerNPC(playerid)) return 1; new randSpawn = 0; SetPlayerInterior(playerid,0); TogglePlayerClock(playerid,0); ResetPlayerMoney(playerid); GivePlayerMoney(playerid, 30000); // if they ever return to class selection make them city // select again first gPlayerHasCitySelected[playerid] = 0; if(CITY_LOS_SANTOS == gPlayerCitySelection[playerid]) { randSpawn = random(sizeof(gRandomSpawns_LosSantos)); SetPlayerPos(playerid, gRandomSpawns_LosSantos[randSpawn][0], gRandomSpawns_LosSantos[randSpawn][1], gRandomSpawns_LosSantos[randSpawn][2]); SetPlayerFacingAngle(playerid,gRandomSpawns_LosSantos[randSpawn][3]); } else if(CITY_SAN_FIERRO == gPlayerCitySelection[playerid]) { randSpawn = random(sizeof(gRandomSpawns_SanFierro)); SetPlayerPos(playerid, gRandomSpawns_SanFierro[randSpawn][0], gRandomSpawns_SanFierro[randSpawn][1], gRandomSpawns_SanFierro[randSpawn][2]); SetPlayerFacingAngle(playerid,gRandomSpawns_SanFierro[randSpawn][3]); } else if(CITY_LAS_VENTURAS == gPlayerCitySelection[playerid]) { randSpawn = random(sizeof(gRandomSpawns_LasVenturas)); SetPlayerPos(playerid, gRandomSpawns_LasVenturas[randSpawn][0], gRandomSpawns_LasVenturas[randSpawn][1], gRandomSpawns_LasVenturas[randSpawn][2]); SetPlayerFacingAngle(playerid,gRandomSpawns_LasVenturas[randSpawn][3]); } //SetPlayerColor(playerid,COLOR_NORMAL_PLAYER); SetPlayerSkillLevel(playerid,WEAPONSKILL_PISTOL,200); SetPlayerSkillLevel(playerid,WEAPONSKILL_PISTOL_SILENCED,200); SetPlayerSkillLevel(playerid,WEAPONSKILL_DESERT_EAGLE,200); SetPlayerSkillLevel(playerid,WEAPONSKILL_SHOTGUN,200); SetPlayerSkillLevel(playerid,WEAPONSKILL_SAWNOFF_SHOTGUN,200); SetPlayerSkillLevel(playerid,WEAPONSKILL_SPAS12_SHOTGUN,200); SetPlayerSkillLevel(playerid,WEAPONSKILL_MICRO_UZI,200); SetPlayerSkillLevel(playerid,WEAPONSKILL_MP5,200); SetPlayerSkillLevel(playerid,WEAPONSKILL_AK47,200); SetPlayerSkillLevel(playerid,WEAPONSKILL_M4,200); SetPlayerSkillLevel(playerid,WEAPONSKILL_SNIPERRIFLE,200); GivePlayerWeapon(playerid,WEAPON_COLT45,100); //GivePlayerWeapon(playerid,WEAPON_MP5,100); //TogglePlayerClock(playerid, 1); return 1; } //---------------------------------------------------------- public OnPlayerDeath(playerid, killerid, reason) { new playercash; if(killerid == INVALID_PLAYER_ID) { ResetPlayerMoney(playerid); } else { playercash = GetPlayerMoney(playerid); if(playercash > 0) { GivePlayerMoney(killerid, playercash); ResetPlayerMoney(playerid); } } return 1; } //---------------------------------------------------------- ClassSel_SetupCharSelection(playerid) { if(gPlayerCitySelection[playerid] == CITY_LOS_SANTOS) { SetPlayerInterior(playerid,11); SetPlayerPos(playerid,508.7362,-87.4335,998.9609); SetPlayerFacingAngle(playerid,0.0); SetPlayerCameraPos(playerid,508.7362,-83.4335,998.9609); SetPlayerCameraLookAt(playerid,508.7362,-87.4335,998.9609); } else if(gPlayerCitySelection[playerid] == CITY_SAN_FIERRO) { SetPlayerInterior(playerid,3); SetPlayerPos(playerid,-2673.8381,1399.7424,918.3516); SetPlayerFacingAngle(playerid,181.0); SetPlayerCameraPos(playerid,-2673.2776,1394.3859,918.3516); SetPlayerCameraLookAt(playerid,-2673.8381,1399.7424,918.3516); } else if(gPlayerCitySelection[playerid] == CITY_LAS_VENTURAS) { SetPlayerInterior(playerid,3); SetPlayerPos(playerid,349.0453,193.2271,1014.1797); SetPlayerFacingAngle(playerid,286.25); SetPlayerCameraPos(playerid,352.9164,194.5702,1014.1875); SetPlayerCameraLookAt(playerid,349.0453,193.2271,1014.1797); } } //---------------------------------------------------------- // Used to init textdraws of city names ClassSel_InitCityNameText(Text:txtInit) { TextDrawUseBox(txtInit, 0); TextDrawLetterSize(txtInit,1.25,3.0); TextDrawFont(txtInit, 0); TextDrawSetShadow(txtInit,0); TextDrawSetOutline(txtInit,1); TextDrawColor(txtInit,0xEEEEEEFF); TextDrawBackgroundColor(txtClassSelHelper,0x000000FF); } //---------------------------------------------------------- ClassSel_InitTextDraws() { // Init our observer helper text display txtLosSantos = TextDrawCreate(10.0, 380.0, "Los Santos"); ClassSel_InitCityNameText(txtLosSantos); txtSanFierro = TextDrawCreate(10.0, 380.0, "San Fierro"); ClassSel_InitCityNameText(txtSanFierro); txtLasVenturas = TextDrawCreate(10.0, 380.0, "Las Venturas"); ClassSel_InitCityNameText(txtLasVenturas); // Init our observer helper text display txtClassSelHelper = TextDrawCreate(10.0, 415.0, " Press ~b~~k~~GO_LEFT~ ~w~or ~b~~k~~GO_RIGHT~ ~w~to switch cities.~n~ Press ~r~~k~~PED_FIREWEAPON~ ~w~to select."); TextDrawUseBox(txtClassSelHelper, 1); TextDrawBoxColor(txtClassSelHelper,0x222222BB); TextDrawLetterSize(txtClassSelHelper,0.3,1.0); TextDrawTextSize(txtClassSelHelper,400.0,40.0); TextDrawFont(txtClassSelHelper, 2); TextDrawSetShadow(txtClassSelHelper,0); TextDrawSetOutline(txtClassSelHelper,1); TextDrawBackgroundColor(txtClassSelHelper,0x000000FF); TextDrawColor(txtClassSelHelper,0xFFFFFFFF); } //---------------------------------------------------------- ClassSel_SetupSelectedCity(playerid) { if(gPlayerCitySelection[playerid] == -1) { gPlayerCitySelection[playerid] = CITY_LOS_SANTOS; } if(gPlayerCitySelection[playerid] == CITY_LOS_SANTOS) { SetPlayerInterior(playerid,0); SetPlayerCameraPos(playerid,1630.6136,-2286.0298,110.0); SetPlayerCameraLookAt(playerid,1887.6034,-1682.1442,47.6167); TextDrawShowForPlayer(playerid,txtLosSantos); TextDrawHideForPlayer(playerid,txtSanFierro); TextDrawHideForPlayer(playerid,txtLasVenturas); } else if(gPlayerCitySelection[playerid] == CITY_SAN_FIERRO) { SetPlayerInterior(playerid,0); SetPlayerCameraPos(playerid,-1300.8754,68.0546,129.4823); SetPlayerCameraLookAt(playerid,-1817.9412,769.3878,132.6589); TextDrawHideForPlayer(playerid,txtLosSantos); TextDrawShowForPlayer(playerid,txtSanFierro); TextDrawHideForPlayer(playerid,txtLasVenturas); } else if(gPlayerCitySelection[playerid] == CITY_LAS_VENTURAS) { SetPlayerInterior(playerid,0); SetPlayerCameraPos(playerid,1310.6155,1675.9182,110.7390); SetPlayerCameraLookAt(playerid,2285.2944,1919.3756,68.2275); TextDrawHideForPlayer(playerid,txtLosSantos); TextDrawHideForPlayer(playerid,txtSanFierro); TextDrawShowForPlayer(playerid,txtLasVenturas); } } //---------------------------------------------------------- ClassSel_SwitchToNextCity(playerid) { gPlayerCitySelection[playerid]++; if(gPlayerCitySelection[playerid] > CITY_LAS_VENTURAS) { gPlayerCitySelection[playerid] = CITY_LOS_SANTOS; } PlayerPlaySound(playerid,1052,0.0,0.0,0.0); gPlayerLastCitySelectionTick[playerid] = GetTickCount(); ClassSel_SetupSelectedCity(playerid); } //---------------------------------------------------------- ClassSel_SwitchToPreviousCity(playerid) { gPlayerCitySelection[playerid]--; if(gPlayerCitySelection[playerid] < CITY_LOS_SANTOS) { gPlayerCitySelection[playerid] = CITY_LAS_VENTURAS; } PlayerPlaySound(playerid,1053,0.0,0.0,0.0); gPlayerLastCitySelectionTick[playerid] = GetTickCount(); ClassSel_SetupSelectedCity(playerid); } //---------------------------------------------------------- ClassSel_HandleCitySelection(playerid) { new Keys,ud,lr; GetPlayerKeys(playerid,Keys,ud,lr); if(gPlayerCitySelection[playerid] == -1) { ClassSel_SwitchToNextCity(playerid); return; } // only allow new selection every ~500 ms if( (GetTickCount() - gPlayerLastCitySelectionTick[playerid]) < 500 ) return; if(Keys & KEY_FIRE) { gPlayerHasCitySelected[playerid] = 1; TextDrawHideForPlayer(playerid,txtClassSelHelper); TextDrawHideForPlayer(playerid,txtLosSantos); TextDrawHideForPlayer(playerid,txtSanFierro); TextDrawHideForPlayer(playerid,txtLasVenturas); TogglePlayerSpectating(playerid,0); return; } if(lr > 0) { ClassSel_SwitchToNextCity(playerid); } else if(lr < 0) { ClassSel_SwitchToPreviousCity(playerid); } } //---------------------------------------------------------- public OnPlayerRequestClass(playerid, classid) { if(IsPlayerNPC(playerid)) return 1; if(gPlayerHasCitySelected[playerid]) { ClassSel_SetupCharSelection(playerid); return 1; } else { if(GetPlayerState(playerid) != PLAYER_STATE_SPECTATING) { TogglePlayerSpectating(playerid,1); TextDrawShowForPlayer(playerid, txtClassSelHelper); gPlayerCitySelection[playerid] = -1; } } return 0; } //---------------------------------------------------------- public OnGameModeInit() { SetGameModeText("Grand Larceny"); ShowPlayerMarkers(PLAYER_MARKERS_MODE_GLOBAL); ShowNameTags(1); SetNameTagDrawDistance(40.0); EnableStuntBonusForAll(0); DisableInteriorEnterExits(); SetWeather(2); SetWorldTime(11); //ManualVehicleEngineAndLights(); //LimitGlobalChatRadius(300.0); ClassSel_InitTextDraws(); // Player Class AddPlayerClass(1,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1); AddPlayerClass(2,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1); AddPlayerClass(269,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1); AddPlayerClass(270,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1); AddPlayerClass(271,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1); AddPlayerClass(272,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1); AddPlayerClass(47,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1); AddPlayerClass(48,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1); AddPlayerClass(49,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1); AddPlayerClass(50,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1); AddPlayerClass(51,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1); AddPlayerClass(52,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1); AddPlayerClass(53,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1); AddPlayerClass(54,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1); AddPlayerClass(55,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1); AddPlayerClass(56,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1); AddPlayerClass(57,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1); AddPlayerClass(58,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1); AddPlayerClass(68,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1); AddPlayerClass(69,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1); AddPlayerClass(70,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1); AddPlayerClass(71,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1); AddPlayerClass(72,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1); AddPlayerClass(73,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1); AddPlayerClass(75,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1); AddPlayerClass(76,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1); AddPlayerClass(78,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1); AddPlayerClass(79,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1); AddPlayerClass(80,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1); AddPlayerClass(81,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1); AddPlayerClass(82,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1); AddPlayerClass(83,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1); AddPlayerClass(84,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1); AddPlayerClass(85,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1); AddPlayerClass(87,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1); AddPlayerClass(88,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1); AddPlayerClass(89,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1); AddPlayerClass(91,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1); AddPlayerClass(92,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1); AddPlayerClass(93,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1); AddPlayerClass(95,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1); AddPlayerClass(96,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1); AddPlayerClass(97,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1); AddPlayerClass(98,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1); AddPlayerClass(99,1759.0189,-1898.1260,13.5622,266.4503,-1,-1,-1,-1,-1,-1); // SPECIAL total_vehicles_from_files += LoadStaticVehiclesFromFile("vehicles/trains.txt"); total_vehicles_from_files += LoadStaticVehiclesFromFile("vehicles/pilots.txt"); // LAS VENTURAS total_vehicles_from_files += LoadStaticVehiclesFromFile("vehicles/lv_law.txt"); total_vehicles_from_files += LoadStaticVehiclesFromFile("vehicles/lv_airport.txt"); total_vehicles_from_files += LoadStaticVehiclesFromFile("vehicles/lv_gen.txt"); // SAN FIERRO total_vehicles_from_files += LoadStaticVehiclesFromFile("vehicles/sf_law.txt"); total_vehicles_from_files += LoadStaticVehiclesFromFile("vehicles/sf_airport.txt"); total_vehicles_from_files += LoadStaticVehiclesFromFile("vehicles/sf_gen.txt"); // LOS SANTOS total_vehicles_from_files += LoadStaticVehiclesFromFile("vehicles/ls_law.txt"); total_vehicles_from_files += LoadStaticVehiclesFromFile("vehicles/ls_airport.txt"); total_vehicles_from_files += LoadStaticVehiclesFromFile("vehicles/ls_gen_inner.txt"); total_vehicles_from_files += LoadStaticVehiclesFromFile("vehicles/ls_gen_outer.txt"); // OTHER AREAS total_vehicles_from_files += LoadStaticVehiclesFromFile("vehicles/whetstone.txt"); total_vehicles_from_files += LoadStaticVehiclesFromFile("vehicles/bone.txt"); total_vehicles_from_files += LoadStaticVehiclesFromFile("vehicles/flint.txt"); total_vehicles_from_files += LoadStaticVehiclesFromFile("vehicles/tierra.txt"); total_vehicles_from_files += LoadStaticVehiclesFromFile("vehicles/red_county.txt"); printf("Total vehicles from files: %d",total_vehicles_from_files); return 1; } //---------------------------------------------------------- public OnPlayerUpdate(playerid) { if(!IsPlayerConnected(playerid)) return 0; // changing cities by inputs if( !gPlayerHasCitySelected[playerid] && GetPlayerState(playerid) == PLAYER_STATE_SPECTATING ) { ClassSel_HandleCitySelection(playerid); return 1; } // No weapons in interiors if(GetPlayerInterior(playerid) != 0 && GetPlayerWeapon(playerid) != 0) { SetPlayerArmedWeapon(playerid,0); // fists return 0; // no syncing until they change their weapon } // Don't allow minigun if(GetPlayerWeapon(playerid) == WEAPON_MINIGUN) { Kick(playerid); return 0; } /* No jetpacks allowed if(GetPlayerSpecialAction(playerid) == SPECIAL_ACTION_USEJETPACK) { Kick(playerid); return 0; }*/ /* For testing animations if(GetPlayerAnimationIndex(playerid)) { new animlib[32]; new animname[32]; new msg[128+1]; GetAnimationName(GetPlayerAnimationIndex(playerid),animlib,32,animname,32); format(msg, 128, "anim: %s %s", animlib, animname); SendClientMessage(playerid, 0xFFFFFFFF, msg); } else { SendClientMessage(playerid, 0xFFFFFFFF, "No Anim"); }*/ return 1; } public OnPlayerDisconnect(playerid, reason) { new name[MAX_PLAYER_NAME], file[256]; GetPlayerName(playerid, name, sizeof(name)); format(file, sizeof(file), SERVER_USER_FILE, name); if(gPlayerLogged[playerid] == 1) { dini_IntSet(file, "Score", PlayerInfo[playerid][pScore]); dini_IntSet(file, "Money", PlayerInfo[playerid][pCash]); dini_IntSet(file, "Admin",PlayerInfo[playerid][pAdmin]); dini_IntSet(file, "Kills",PlayerInfo[playerid][pKills]); dini_IntSet(file, "Deaths",PlayerInfo[playerid][pDeaths]); dini_IntSet(file, "Muted",PlayerInfo[playerid][pMuted]); } gPlayerLogged[playerid] = 0; //----------------------------------------------------------
Код:
D:\Серверы\EDUC\gamemodes\grandlarc.pwn(62) : error 017: undefined symbol "gPlayerLogged" D:\Серверы\EDUC\gamemodes\grandlarc.pwn(62) : warning 215: expression has no effect D:\Серверы\EDUC\gamemodes\grandlarc.pwn(62) : error 001: expected token: ";", but found "]" D:\Серверы\EDUC\gamemodes\grandlarc.pwn(62) : error 029: invalid expression, assumed zero D:\Серверы\EDUC\gamemodes\grandlarc.pwn(62) : fatal error 107: too many error messages on one line Compilation aborted.Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase 4 Errors.