07.06.2012, 04:41
Код:
/* Basic Freeroam Gamemode Script by Chris' */ #include <a_samp> // Credits SAMP team #include <dudb> // Draco Blue #include "../include/gl_common.inc" #define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, "")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1 #pragma unused ret_memcpy #define COLOR_GREY 0xAFAFAFAA #define COLOR_GREEN 0x00FF00C8 #define COLOR_RED 0xFF0000AA #define COLOR_YELLOW 0xFFFF00AA #define COLOR_PINK 0xFF66FFAA #define COLOR_BLUE 0x3A47DEFF #define COLOR_TAN 0xBDB76BAA #define COLOR_PURPLE 0x800080AA #define COLOR_WHITE 0xFFFFFFAA #define COLOR_LIGHTBLUE 0x33CCFFAA #define COLOR_ORANGE 0xFF9900AA #define COLOR_INDIGO 0x1E90FFAA #define COLOR_BLACK 0x00000000 #define COLOR_DARKGREY 0x696969FF new PlayerColors[200] = { 0xFF8C13FF,0xC715FFFF,0x20B2AAFF,0xDC143CFF,0x6495EDFF,0xf0e68cFF,0x778899FF,0xFF1493FF,0xF4A460FF, 0xEE82EEFF,0xFFD720FF,0x8b4513FF,0x4949A0FF,0x148b8bFF,0x14ff7fFF,0x556b2fFF,0x0FD9FAFF,0x10DC29FF, 0x534081FF,0x0495CDFF,0xEF6CE8FF,0xBD34DAFF,0x247C1BFF,0x0C8E5DFF,0x635B03FF,0xCB7ED3FF,0x65ADEBFF, 0x5C1ACCFF,0xF2F853FF,0x11F891FF,0x7B39AAFF,0x53EB10FF,0x54137DFF,0x275222FF,0xF09F5BFF,0x3D0A4FFF, 0x22F767FF,0xD63034FF,0x9A6980FF,0xDFB935FF,0x3793FAFF,0x90239DFF,0xE9AB2FFF,0xAF2FF3FF,0x057F94FF, 0xB98519FF,0x388EEAFF,0x028151FF,0xA55043FF,0x0DE018FF,0x93AB1CFF,0x95BAF0FF,0x369976FF,0x18F71FFF, 0x4B8987FF,0x491B9EFF,0x829DC7FF,0xBCE635FF,0xCEA6DFFF,0x20D4ADFF,0x2D74FDFF,0x3C1C0DFF,0x12D6D4FF, 0x48C000FF,0x2A51E2FF,0xE3AC12FF,0xFC42A8FF,0x2FC827FF,0x1A30BFFF,0xB740C2FF,0x42ACF5FF,0x2FD9DEFF, 0xFAFB71FF,0x05D1CDFF,0xC471BDFF,0x94436EFF,0xC1F7ECFF,0xCE79EEFF,0xBD1EF2FF,0x93B7E4FF,0x3214AAFF, 0x184D3BFF,0xAE4B99FF,0x7E49D7FF,0x4C436EFF,0xFA24CCFF,0xCE76BEFF,0xA04E0AFF,0x9F945CFF,0xDCDE3DFF, 0x10C9C5FF,0x70524DFF,0x0BE472FF,0x8A2CD7FF,0x6152C2FF,0xCF72A9FF,0xE59338FF,0xEEDC2DFF,0xD8C762FF, 0xD8C762FF,0xFF8C13FF,0xC715FFFF,0x20B2AAFF,0xDC143CFF,0x6495EDFF,0xf0e68cFF,0x778899FF,0xFF1493FF, 0xF4A460FF,0xEE82EEFF,0xFFD720FF,0x8b4513FF,0x4949A0FF,0x148b8bFF,0x14ff7fFF,0x556b2fFF,0x0FD9FAFF, 0x10DC29FF,0x534081FF,0x0495CDFF,0xEF6CE8FF,0xBD34DAFF,0x247C1BFF,0x0C8E5DFF,0x635B03FF,0xCB7ED3FF, 0x65ADEBFF,0x5C1ACCFF,0xF2F853FF,0x11F891FF,0x7B39AAFF,0x53EB10FF,0x54137DFF,0x275222FF,0xF09F5BFF, 0x3D0A4FFF,0x22F767FF,0xD63034FF,0x9A6980FF,0xDFB935FF,0x3793FAFF,0x90239DFF,0xE9AB2FFF,0xAF2FF3FF, 0x057F94FF,0xB98519FF,0x388EEAFF,0x028151FF,0xA55043FF,0x0DE018FF,0x93AB1CFF,0x95BAF0FF,0x369976FF, 0x18F71FFF,0x4B8987FF,0x491B9EFF,0x829DC7FF,0xBCE635FF,0xCEA6DFFF,0x20D4ADFF,0x2D74FDFF,0x3C1C0DFF, 0x12D6D4FF,0x48C000FF,0x2A51E2FF,0xE3AC12FF,0xFC42A8FF,0x2FC827FF,0x1A30BFFF,0xB740C2FF,0x42ACF5FF, 0x2FD9DEFF,0xFAFB71FF,0x05D1CDFF,0xC471BDFF,0x94436EFF,0xC1F7ECFF,0xCE79EEFF,0xBD1EF2FF,0x93B7E4FF, 0x3214AAFF,0x184D3BFF,0xAE4B99FF,0x7E49D7FF,0x4C436EFF,0xFA24CCFF,0xCE76BEFF,0xA04E0AFF,0x9F945CFF, 0xDCDE3DFF,0x10C9C5FF,0x70524DFF,0x0BE472FF,0x8A2CD7FF,0x6152C2FF,0xCF72A9FF,0xE59338FF,0xEEDC2DFF, 0xD8C762FF,0xD8C762FF }; new file[512]; enum Info { AdminLevel, Cash, Score, } new AccountInfo[MAX_PLAYERS][Info]; public OnGameModeInit() { SetGameModeText("RP|Freeroam|Fun Gaming"); AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0); LoadStaticVehiclesFromFile("vehicles/trains.txt"); LoadStaticVehiclesFromFile("vehicles/pilots.txt"); LoadStaticVehiclesFromFile("vehicles/lv_law.txt"); LoadStaticVehiclesFromFile("vehicles/lv_airport.txt"); LoadStaticVehiclesFromFile("vehicles/lv_gen.txt"); LoadStaticVehiclesFromFile("vehicles/sf_law.txt"); LoadStaticVehiclesFromFile("vehicles/sf_airport.txt"); LoadStaticVehiclesFromFile("vehicles/sf_gen.txt"); LoadStaticVehiclesFromFile("vehicles/ls_law.txt"); LoadStaticVehiclesFromFile("vehicles/ls_airport.txt"); LoadStaticVehiclesFromFile("vehicles/ls_gen_inner.txt"); LoadStaticVehiclesFromFile("vehicles/ls_gen_outer.txt"); LoadStaticVehiclesFromFile("vehicles/whetstone.txt"); LoadStaticVehiclesFromFile("vehicles/bone.txt"); LoadStaticVehiclesFromFile("vehicles/flint.txt"); LoadStaticVehiclesFromFile("vehicles/tierra.txt"); LoadStaticVehiclesFromFile("vehicles/red_county.txt"); return 1; } public OnGameModeExit() { return 1; } public OnPlayerRequestClass(playerid, classid) { SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746); SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746); SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746); return 1; } public OnPlayerConnect(playerid) { new string[256]; new name[MAX_PLAYER_NAME]; GetPlayerName(playerid, name, sizeof(name)); format(file, sizeof(file), "Accounts/%s.ini", name); if (!dini_Exists(file)) { format(string, sizeof(string), "Welcome: %s\n This account is not registered\nPlease register", name); ShowPlayerDialog(playerid, 3333, DIALOG_STYLE_INPUT, "Welcome", string, "Register", "Leave"); } if(fexist(file)) { format(string, sizeof(string), "Welcome: %s\n This account is registered\nPlease Login", name); ShowPlayerDialog(playerid, 3334, DIALOG_STYLE_INPUT, "Hello", string, "Login", "Leave"); } return 1; } public OnPlayerDisconnect(playerid, reason) { new name[24]; GetPlayerName(playerid,name,24); GetPlayerName(playerid, name, sizeof(name)); format(file,sizeof(file),"Accounts/%s.ini",name); if(dini_Exists(file)) { dini_IntSet(file,"Cash",GetPlayerMoney(playerid)); dini_IntSet(file,"Score",GetPlayerScore(playerid)); dini_IntSet(file,"AdminLevel", AccountInfo[playerid][AdminLevel]); return 1; } return 1; } public OnPlayerSpawn(playerid) { return 1; } public OnPlayerDeath(playerid, killerid, reason) { return 1; } public OnVehicleSpawn(vehicleid) { return 1; } public OnVehicleDeath(vehicleid, killerid) { return 1; } public OnPlayerText(playerid, text[]) { return 1; } public OnPlayerCommandText(playerid, cmdtext[]) { dcmd(makeadmin, 9, cmdtext); dcmd(parch, 5, cmdtext); dcmd(jetpack, 7, cmdtext); dcmd(fstyle, 6, cmdtext); dcmd(randomcolor, 11, cmdtext); dcmd(stats, 5, cmdtext); dcmd(commands, 8, cmdtext); return 0; } public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger) { return 1; } public OnPlayerExitVehicle(playerid, vehicleid) { return 1; } public OnPlayerStateChange(playerid, newstate, oldstate) { return 1; } public OnPlayerEnterCheckpoint(playerid) { return 1; } public OnPlayerLeaveCheckpoint(playerid) { return 1; } public OnPlayerEnterRaceCheckpoint(playerid) { return 1; } public OnPlayerLeaveRaceCheckpoint(playerid) { return 1; } public OnRconCommand(cmd[]) { return 1; } public OnPlayerRequestSpawn(playerid) { return 1; } public OnObjectMoved(objectid) { return 1; } public OnPlayerObjectMoved(playerid, objectid) { return 1; } public OnPlayerPickUpPickup(playerid, pickupid) { return 1; } public OnVehicleMod(playerid, vehicleid, componentid) { return 1; } public OnVehiclePaintjob(playerid, vehicleid, paintjobid) { return 1; } public OnVehicleRespray(playerid, vehicleid, color1, color2) { return 1; } public OnPlayerSelectedMenuRow(playerid, row) { return 1; } public OnPlayerExitedMenu(playerid) { return 1; } public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid) { return 1; } public OnPlayerKeyStateChange(playerid, newkeys, oldkeys) { return 1; } public OnRconLoginAttempt(ip[], password[], success) { return 1; } public OnPlayerUpdate(playerid) { return 1; } public OnPlayerStreamIn(playerid, forplayerid) { return 1; } public OnPlayerStreamOut(playerid, forplayerid) { return 1; } public OnVehicleStreamIn(vehicleid, forplayerid) { return 1; } public OnVehicleStreamOut(vehicleid, forplayerid) { return 1; } public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) { if (dialogid == 3333) { new name[MAX_PLAYER_NAME], string[128]; GetPlayerName(playerid, name, sizeof(name)); format(file, sizeof(file), "Accounts/%s.ini", name); if(!response) return Kick(playerid); if(!strlen(inputtext)) return ShowPlayerDialog(playerid, 3333, DIALOG_STYLE_INPUT, "Welcome", "This account its not registered\nPlease register", "Register", "Leave"); dini_Create(file); dini_IntSet(file, "Password", udb_hash(inputtext)); dini_IntSet(file, "AdminLevel",AccountInfo[playerid][AdminLevel] = 0); dini_IntSet(file, "Cash",AccountInfo[playerid][Cash] = 5000); dini_IntSet(file, "Score",AccountInfo[playerid][Score] = 0); format(string, 400, "You successfuly registered as %s", name, inputtext); SendClientMessage(playerid,COLOR_WHITE, string); } if (dialogid == 3334) { new name[MAX_PLAYER_NAME]; GetPlayerName(playerid, name, sizeof(name)); format(file, sizeof(file), "Data/users/%s.ini", name); if(!response) return Kick(playerid); if (!strlen(inputtext)) return ShowPlayerDialog(playerid, 3334, DIALOG_STYLE_INPUT, "Welcome", "This account is registered\nPlease login", "Login", "Leave"); new tmp; tmp = dini_Int(file, "Password"); if(udb_hash(inputtext) != tmp) { SendClientMessage(playerid,COLOR_RED, "You have entered an incorrect password"); ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, "Welcome", "This account is registered\nPlease login", "Login", "Leave"); } else { SetPlayerMoney(playerid, dini_Int(file, "Cash")); SetPlayerScore(playerid, dini_Int(file, "Score")); AccountInfo[playerid][AdminLevel] = dini_Int(file, "AdminLevel"); SendClientMessage(playerid,COLOR_ORANGE, "You successfuly logged in"); SetPlayerPos(playerid, 2020.0795,1342.9370,10.8130); } } if(dialogid == 2221) { if(response) { switch(listitem) { case 0: { SetPlayerFightingStyle (playerid, FIGHT_STYLE_BOXING); } case 1: { SetPlayerFightingStyle (playerid, FIGHT_STYLE_KUNGFU); } case 2: { SetPlayerFightingStyle (playerid, FIGHT_STYLE_KNEEHEAD); } case 3: { SetPlayerFightingStyle (playerid, FIGHT_STYLE_GRABKICK); } case 4: { SetPlayerFightingStyle (playerid, FIGHT_STYLE_ELBOW); } } } } return 1; } public OnPlayerClickPlayer(playerid, clickedplayerid, source) { return 1; } dcmd_makeadmin(playerid, params[]) { new id, lvl, string[256], name[MAX_PLAYER_NAME], PlayerName[MAX_PLAYER_NAME]; if(IsPlayerConnected(id)) { if(AccountInfo[playerid][AdminLevel] >= 5 || IsPlayerAdmin(playerid)) { if(!sscanf(params, "ui", id, lvl)) { if((lvl >= 1 && lvl <= 5) || lvl == 0) { format(file,sizeof(file),"Accounts/%s.ini",id); GetPlayerName(playerid, name, sizeof(name)); GetPlayerName(id, PlayerName, sizeof(PlayerName)); format(string, sizeof(string), "You are now Admin level %d thanks to %s", lvl, name); SendClientMessage(id, COLOR_RED, string); format(string, sizeof(string), "You gave %d an admin level %s", PlayerName, lvl); SendClientMessage(playerid, COLOR_WHITE, string); dini_IntSet(file,"AdminLevel", lvl); AccountInfo[id][AdminLevel] = lvl; return 1; } else return SendClientMessage(playerid, COLOR_RED, "ERROR: Admin level cant go higher that 5 and lower that 1"); } else return SendClientMessage(playerid, COLOR_RED, "USAGE: /makeadmin [PlayerId/PartOfName] [AdminLevel]"); } else return SendClientMessage(playerid, COLOR_RED, "You must be RCON loged in to use this command"); } else return SendClientMessage(playerid, COLOR_RED, "ERROR: Player Is Not Connected"); } dcmd_parch(playerid, params[]) { #pragma unused params GivePlayerWeapon(playerid, 46, 1); return 1; } dcmd_jetpack(playerid, params[]) { #pragma unused params SetPlayerSpecialAction(playerid, SPECIAL_ACTION_USEJETPACK); return 1; } dcmd_fstyle(playerid, params[]) { #pragma unused params ShowPlayerDialog(playerid, 2221, DIALOG_STYLE_LIST, "Fighting Styles:", "Boxing\nKung Fu\nKneeHead\nGrabKick\nElbow", "Select","Cancel"); return 1; } dcmd_randomcolor(playerid, params[]) { #pragma unused params new rand = random(sizeof(PlayerColors)); SetPlayerColor(playerid, PlayerColors[rand]); return 1; } dcmd_stats(playerid, params[]) { #pragma unused params format(file, sizeof(file), "AdminLevel: %d\nScore: %d\nMoney: %d", AccountInfo[playerid][AdminLevel], GetPlayerScore(playerid), GetPlayerMoney(playerid)); ShowPlayerDialog(playerid, 2223, DIALOG_STYLE_MSGBOX, "Player stats",file,"Close",""); return 1; } dcmd_commands(playerid, params[]) { #pragma unused params if(!IsPlayerAdmin(playerid)) { ShowPlayerDialog(playerid, 2224, DIALOG_STYLE_MSGBOX, "Server Commands","Player Commands: /parch, /jetpack, /randomcolor, /stats", "Close",""); } else { ShowPlayerDialog(playerid, 2224, DIALOG_STYLE_MSGBOX, "Server Commands","Player Commands: /parch, /jetpack, /randomcolor, /stats\nAdmin Commands: /makeadmin", "Close",""); } return 1; } stock sscanf(string[], format[], {Float,_}:...) // Thanks to ****** { new formatPos = 0, stringPos = 0, paramPos = 2, paramCount = numargs(); while (paramPos < paramCount && string[stringPos]) { switch (format[formatPos++]) { case '\0': { return 0; } case 'i', 'd': { new neg = 1, num = 0, ch = string[stringPos]; if (ch == '-') { neg = -1; ch = string[++stringPos]; } do { stringPos++; if (ch >= '0' && ch <= '9') { num = (num * 10) + (ch - '0'); } else { return 1; } } while ((ch = string[stringPos]) && ch != ' '); setarg(paramPos, 0, num * neg); } case 'h', 'x': { new ch, num = 0; while ((ch = string[stringPos++])) { switch (ch) { case 'x', 'X': { num = 0; continue; } case '0' .. '9': { num = (num << 4) | (ch - '0'); } case 'a' .. 'f': { num = (num << 4) | (ch - ('a' - 10)); } case 'A' .. 'F': { num = (num << 4) | (ch - ('A' - 10)); } case ' ': { break; } default: { return 1; } } } setarg(paramPos, 0, num); } case 'c': { setarg(paramPos, 0, string[stringPos++]); } case 'f': { new tmp[25]; strmid(tmp, string, stringPos, stringPos+sizeof(tmp)-2); setarg(paramPos, 0, _:floatstr(tmp)); } case 's', 'z': { new i = 0, ch; if (format[formatPos]) { while ((ch = string[stringPos++]) && ch != ' ') { setarg(paramPos, i++, ch); } if (!i) return 1; } else { while ((ch = string[stringPos++])) { setarg(paramPos, i++, ch); } } stringPos--; setarg(paramPos, i, '\0'); } default: { continue; } } while (string[stringPos] && string[stringPos] != ' ') { stringPos++; } while (string[stringPos] == ' ') { stringPos++; } paramPos++; } while (format[formatPos] == 'z') formatPos++; return format[formatPos]; }
Код:
D:\SAMP Work\pawno\include\../include/gl_common.inc(75) : error 021: symbol already defined: "strtok" D:\SAMP Work\pawno\include\../include/gl_common.inc(134) : error 021: symbol already defined: "isNumeric" Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase 2 Errors.