📄 party.pwn
字号:
#define COLOR_YELLOW 0xFFFFFF00
#define COLOR_RED 0xAA3333AA
#define COLOR_GREEN 0x33AA33AA
#define COLOR_RED 0xAA3333AA
#include <a_samp>
#define COLOR_GREY 0xAFAFAFAA
#define COLOR_GREEN 0x33AA33AA
#define COLOR_RED 0xAA3333AA
#define COLOR_WHITE 0xFFFFFFAA
#define COLOR_BLUE 0x0000BBAA
#define COLOR_LIGHTBLUE 0x33CCFFAA
#define COLOR_ORANGE 0xFF9900AA
#define COLOR_DARKRED 0xAA993333
forward SetPlayerRandomSpawn(playerid);
new RacePos[100];
new Racing[100];
new UsedTime[100];
new PlayerCheckpoint[100];
new Max_Race_Checkpoints[100];
new RaceName[100][40];
new PlayerVehicle[100];
new Leave[100];
new Float:PP[100][3];
new BuyingVehicle[100];
new gPlayerName[MAX_PLAYERS][MAX_PLAYER_NAME];
new Float:TelePos[MAX_PLAYERS][6];
new Float:gPlayerSpawns[20][3] = {
{-2322.0549,-1642.8920,483.7031},
{-2322.7957,-1633.2157,483.7031},
{-2334.2141,-1630.1287,483.7019},
{-2341.1689,-1617.4656,483.6934},
{-2333.5391,-1605.5143,483.7260},
{-2331.4568,-1589.1626,483.6739},
{-2315.8369,-1602.4508,483.8932},
{-2306.5674,-1614.3538,483.8746},
{-2297.4663,-1625.9435,483.7693},
{-2292.3601,-1642.2018,483.6408},
{-2340.1316,-1635.2090,483.7031},
{-2336.6370,-1650.2369,483.7031},
{-2326.5286,-1663.8792,483.4105},
{-2313.8933,-1676.6284,482.4492},
{-2299.8877,-1685.3866,482.8250},
{-2293.0471,-1668.6022,482.9759},
{-2280.1477,-1681.8484,481.4114},
{-2261.6379,-1695.9274,480.4292},
{-2248.3677,-1707.7699,480.2510},
{-2260.2224,-1738.1313,487.4398}
};
new gSpeedo[MAX_PLAYERS];
#define Swim 1
#define Climb 2
enum pInfo
{
pAdmin,
};
new PlayerInfo[MAX_PLAYERS][pInfo];
enum CheckpointsInfos
{
Float:Area_X_min,
Float:Area_Y_min,
Float:Area_X_max,
Float:Area_Y_max,
Float:X,
Float:Y,
Float:Z,
Float:Size,
Code
}
new Checkpoints[][CheckpointsInfos] =
{
{-1653.1918,1240.0662,-1641.0389,1366.1766,-1642.7905,1308.6926,7.0283,4.0,Swim},
{2406.67,-1740.00,2520.00,-1653.33,2508.8918,-1680.0179,13.5469,3.0,Climb}
};
enum RaceInfos
{
Float:Race_X,
Float:Race_Y,
Float:Race_Z,
Float:Race_Size
}
new SwimRaceCheckpoints[][RaceInfos] =
{
{-1634.0348,1316.4496,-0.2639,4.0},
{-1600.9899,1316.7117,-0.9541,4.0},
{-1605.0488,1326.6338,-0.6951,4.0},
{-1623.2435,1336.1388,-0.3587,4.0},
{-1616.8738,1349.9258,-0.6762,4.0},
{-1582.2592,1340.5729,-0.7069,4.0},
{-1538.8409,1350.0507,-0.9505,4.0},
{-1506.9891,1375.1693,3.7691,4.0}
};
new ClimbRaceCheckpoints[][RaceInfos] =
{
{2515.4912,-1677.0439,13.9094,3.0},
{2520.1533,-1695.2303,18.8929,3.0},
{2505.6648,-1695.5879,17.9575,3.0},
{2507.8804,-1719.9810,18.5821,3.0},
{2499.7742,-1704.1531,21.5095,3.0},
{2526.7126,-1679.4686,19.9302,3.0},
{2526.9678,-1659.2706,20.1221,3.0},
{2517.0115,-1644.3138,19.1339,3.0},
{2498.9216,-1641.1895,18.4940,3.0},
{2485.9055,-1647.4132,17.7824,3.0},
{2468.8857,-1641.2837,18.4245,3.0},
{2450.8066,-1638.2264,18.3506,3.0}
};
main()
{
print("\n------------------------------------------");
print(" 巴比伦之恋 V1.3 ");
print(" Created by CNH.FA[China] and [Cn]ACCA");
print(" QQ:CNH.FA[China] 290594927 ");
print(" QQ:[Cn]ACCA 236969324 ");
print(" 发现任何BUG可以联系作者 ");
print("------------------------------------------\n");
}
public OnPlayerConnect(playerid)
{
SendClientMessage(playerid, 0xFFFFFFAA, " 欢迎来到这个巴比伦之恋 V1.3 ~地图由 CNH.FA[China] 和 [Cn]ACCA 制作");
SendClientMessage(playerid, COLOR_BLUE, " 首先打 /rule 查看应该遵守的规则,否则后果自负");
SendClientMessage(playerid, COLOR_BLUE, " 其次 /help 查看有关这个地图的帮助!");
SendClientMessage(playerid, COLOR_BLUE, " 此地图严禁作弊!!!也不需要作弊,一旦发现有作弊嫌疑者请PM管理员");
SendClientMessage(playerid, 0xFFFFFF, " 祝你获得这个游戏的乐趣!");
GivePlayerMoney(playerid, 10000);
SetPlayerColor(playerid,0xFFFFFF00);
new welcome[256];
GetPlayerName(playerid,gPlayerName[playerid], MAX_PLAYER_NAME);
format(welcome,sizeof(welcome),"~w~Welcome ~y~%s~n~~w~to ~r~Love in Babylon~w~ map!",gPlayerName[playerid]);
GameTextForPlayer(playerid,welcome,5000,5);
RacePos[playerid] = Racing[playerid] = UsedTime[playerid] = PlayerCheckpoint[playerid] = Max_Race_Checkpoints[playerid] = RaceName[playerid][0] = PlayerVehicle[playerid] = Leave[playerid] = BuyingVehicle[playerid] = 0;
return 1;
}
public OnPlayerEnterCheckpoint(playerid)
{
new string[256];
new Float:fMinutes;
new Minutes;
new Seconds;
new finishedin = UsedTime[playerid];
if(finishedin){
fMinutes = finishedin/60;
Minutes = floatround(fMinutes, floatround_floor);
Seconds = finishedin-(Minutes*60);}
if(Racing[playerid])
{
if(RacePos[playerid] == Max_Race_Checkpoints[playerid]-1)
{
DisablePlayerCheckpoint(playerid);
format(string,256," %s使用时间%d分%d秒完成了%s!",ReturnPlayerName(playerid),Minutes,Seconds,RaceName[playerid]);
SendClientMessageToAll(COLOR_YELLOW,string);
BestTimeUpdate(playerid,RaceName[playerid]);
RacePos[playerid] = Racing[playerid] = UsedTime[playerid] = Max_Race_Checkpoints[playerid] = RaceName[playerid][0] = 0;
}
else
{
RacePos[playerid]++;
DisablePlayerCheckpoint(playerid);
switch(Max_Race_Checkpoints[playerid])
{
case sizeof(SwimRaceCheckpoints):SetPlayerCheckpoint(playerid,SwimRaceCheckpoints[RacePos[playerid]][Race_X],SwimRaceCheckpoints[RacePos[playerid]][Race_Y],SwimRaceCheckpoints[RacePos[playerid]][Race_Z],SwimRaceCheckpoints[RacePos[playerid]][Race_Size]);
case sizeof(ClimbRaceCheckpoints):SetPlayerCheckpoint(playerid,ClimbRaceCheckpoints[RacePos[playerid]][Race_X],ClimbRaceCheckpoints[RacePos[playerid]][Race_Y],ClimbRaceCheckpoints[RacePos[playerid]][Race_Z],ClimbRaceCheckpoints[RacePos[playerid]][Race_Size]);
}
format(string,256,"~w~%d/%d",RacePos[playerid],Max_Race_Checkpoints[playerid]);
GameTextForPlayer(playerid,string,5000,6);
}
return 1;
}
switch(GetPlayerCheckpoint(playerid))
{
case Swim:SendClientMessage(playerid,COLOR_YELLOW," 输入/swim s开始比赛.");
case Climb:SendClientMessage(playerid,COLOR_YELLOW," 输入/climb s开始比赛.");
}
return 1;
}
public OnPlayerRequestClass(playerid, classid)
{
SetPlayerFacingAngle(playerid,0.0);
SetPlayerPos(playerid,-2314.3652,-1651.1600,483.7031);
SetPlayerCameraPos(playerid,-2317.5166,-1646.0105,483.7031);
SetPlayerCameraLookAt(playerid,-2314.3652,-1651.1600,483.7031);
PlayerPlaySound(playerid, 1185, 99, 99, 99);
return 1;
}
public OnPlayerSpawn(playerid)
{
SetPlayerHealth(playerid, 100);//立即出生2
SetPlayerInterior(playerid,0);
GameTextForPlayer(playerid,"Enjoy your stay, and have fun!",3,1);
GetMaxPlayers();
SetWorldTime(08);
GivePlayerWeapon(playerid, 4, 0);
GivePlayerWeapon(playerid, 43, 10000);
PlayerPlaySound(playerid, 1186, 99, 99, 99);
new name[256];
GetPlayerName(playerid, name, sizeof(name));
SendClientMessage(playerid, COLOR_RED, " /tele查看可用的指令!");
RacePos[playerid] = Racing[playerid] = UsedTime[playerid] = PlayerCheckpoint[playerid] = Max_Race_Checkpoints[playerid] = RaceName[playerid][0] = 0;
SetPlayerRandomSpawn(playerid);
return 1;
}
//---------------------随机出生系统--------------------
public SetPlayerRandomSpawn(playerid)
{
new rand = random(sizeof(gPlayerSpawns));
SetPlayerPos(playerid, gPlayerSpawns[rand][0], gPlayerSpawns[rand][1], gPlayerSpawns[rand][2]);
return 1;
}
//-----------------------END-----------------
public OnPlayerDeath(playerid, killerid, reason)
{
new name[256];
GetPlayerName(playerid, name, sizeof(name));
SendDeathMessage(killerid, playerid, reason);
SpawnPlayer(playerid);//立即出生1
return 1;
}
//--------------防抢车--------------------------
public OnPlayerStateChange(playerid, newstate, oldstate)
{
switch (newstate){
case PLAYER_STATE_ONFOOT:
{
PlayerVehicle[playerid] = -1;
}
case PLAYER_STATE_DRIVER:
{
PlayerVehicle[playerid] = GetPlayerVehicleID(playerid);
for(new i=0; i<MAX_PLAYERS; i++) {
if (PlayerVehicle[playerid] == PlayerVehicle[i] && playerid != i) {
RemovePlayerFromVehicle(i);
GameTextForPlayer(i,"~r~You Got Jacked!!!",5000,5);
SendClientMessage(i,0x0066CCFF,"抢车BUG发生 你被挤下车~~");
}
}
switch(PlayerVehicle[playerid])
{
case 119..150:if(BuyingVehicle[playerid])Leave[playerid] = 1;
}
}
}
return 1;
}
public OnPlayerCommandText(playerid,cmdtext[])
{
if(strcmp(cmdtext,"/comingsoon",true)==0)
{
SendClientMessage(playerid,COLOR_GREY," 这些东西是下个版本要加上去的:");
SendClientMessage(playerid,COLOR_GREY," 1.在线GM求助系统");
SendClientMessage(playerid,COLOR_GREY," 2.保密,给玩家们一个惊喜");
return 1;
}
if(strcmp(cmdtext,"/p1",true)==0)
{
SendClientMessage(playerid,COLOR_GREEN," 游戏恢复正常了!");
TogglePlayerControllable(playerid, 1);
SetPlayerColor(playerid,COLOR_WHITE);
return 1;
}
if(strcmp(cmdtext,"/pause",true)==0)
{
SendClientMessage(playerid,COLOR_GREEN,"---------------------------------------");
SendClientMessage(playerid,COLOR_GREEN,"| 游戏暂停!");
SendClientMessage(playerid,COLOR_GREEN,"| 输入/p1恢复!");
SendClientMessage(playerid,COLOR_GREEN,"| 或者你可以使用其他方法,");
SendClientMessage(playerid,COLOR_GREEN,"| 按Esc键");
SendClientMessage(playerid,COLOR_GREEN,"---------------------------------------");
TogglePlayerControllable(playerid, 0);
SetPlayerColor(playerid,COLOR_ORANGE);
return 1;
}
if(strcmp(cmdtext,"/cls",true)==0)
{
SendClientMessage(playerid,COLOR_GREY," ");
SendClientMessage(playerid,COLOR_GREY," ");
SendClientMessage(playerid,COLOR_GREY," ");
SendClientMessage(playerid,COLOR_GREY," ");
SendClientMessage(playerid,COLOR_GREY," ");
SendClientMessage(playerid,COLOR_GREY," ");
SendClientMessage(playerid,COLOR_GREY," ");
SendClientMessage(playerid,COLOR_GREY," ");
SendClientMessage(playerid,COLOR_GREY," ");
SendClientMessage(playerid,COLOR_GREY," ");
return 1;
}
if (strcmp(cmdtext, "/lock", true)==0)
{
if(IsPlayerInAnyVehicle(playerid))
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -