Kuka mind 2
Lehet megtaláltam majd írok.
Hali! Adok egy példát, próbáld ki:
A teleport része:[pawn]#include <a_samp>
#define COLOR_WHITE 0xFFFFFF00
#define COLOR_GREEN 0x33AA3300
public OnPlayerCommandText(playerid, cmdtext[])
{
if (strcmp(\"/race1\", cmdtext, true, 10) == 0) //ez csak példa
{
new pName[MAX_PLAYER_NAME],
string[128];
SetPlayerInterior(playerid,0);
SetPlayerPos ( playerid, 0.0,0.0,0.0 );
GetPlayerName(playerid, pName, sizeof(pName));
format(string, sizeof(string), \"%s elment versenyezni: Race 1 (/race1)\", pName,playerid);
SendClientMessageToAll(COLOR_GREEN, string);
SendClientMessage(playerid,COLOR_WHITE,\"Verseny indítása: /startrace , csak akkor jó a verseny ha mindenki beírta!\");
return 1;
}
if (strcmp(\"/startrace\", cmdtext, true, 10) == 0)
{
if(IsPlayerInRangeOfPoint(playerid, 10.0, 606.7758,1366.5536,11.8151)) //Én a teleportnál szoktam az indítást engedélyezni
{
new pName[MAX_PLAYER_NAME],
string[128];
SetPlayerRaceCheckpoint(playerid, 0,567.1627,1368.0428,16.0224,412.0462,1366.4456,8.9520,10.0); // a verseny 1. checkpointja
SetPVarInt(playerid, \"Race1\", 1);
GetPlayerName(playerid, pName, sizeof(pName));
format(string, sizeof(string), \"%s elindította a versenyt: Race 1 (/startrace)\", pName,playerid);
SendClientMessageToAll(COLOR_GREEN, string);
return 1;
}
else
{
SendClientMessage(playerid,COLOR_WHITE,\"Nem tudod elindítani a versenyt, túl messze vagy!(Ideális hely: a verseny teleportja)\");
}
}
return 0;
}[/pawn]
Ha egy játékos áthalad a checkpointon:[pawn]public OnPlayerEnterRaceCheckpoint(playerid)
{
//Race 1
switch(GetPVarInt(playerid, \"Race1\"))
{
case 1:
{
DisablePlayerRaceCheckpoint(playerid);
switch(GetPVarInt(playerid, \"RACE\"))
{
case 0:SetPlayerRaceCheckpoint(playerid,0,1711.329589,-2677.840820,5.613423,1473.779663,-2677.772216,11.493198,15); //A kezdõ checkpoint, ezt használtuk a teleportnál is!
case 1:SetPlayerRaceCheckpoint(playerid,0,1473.779663,-2677.772216,11.493198,1215.790039,-2441.505859,9.236960,15); //A következõ checkpoint
case 2:SetPlayerRace...... //És így tovább, amíg el nem fogy, az utolsó után még kell egy case, ebbe irod bele, hogy az utolsó checkpoint áthaladása után mi történjen
case 10:
{
new string[64];
static Ranks;
GetPlayerName(playerid, string, MAX_PLAYER_NAME);
switch(++Ranks)
{
case 1: format(string, sizeof string, \"~r~%s ~b~nyerte a versenyt! (S-Cup1)\", string);
case 2: format(string, sizeof string, \"~r~%s ~b~II.helyett lett! (S-Cup1)\", string);
case 3: format(string, sizeof string, \"~r~%s ~b~III.helyezett lett! (S-Cup1)\", string);
}
DeletePVar(playerid, \"Race1\");
DeletePVar(playerid, \"RACE\");
SendClientMessageToAll(COLOR_GREEN, string);
return GivePlayerMoney(playerid, Ranks * 10000000);
}
}
return SetPVarInt(playerid, \"RACE\", GetPVarInt(playerid, \"RACE\") + 1);
}
}
return 1;
}
[/pawn]
Röviden és tömören ez a verseny rendszer:
-kiírja az elsõ három helyezett nevét és automatikusan díjazza õket (jelen esetben pénzzel)
-a versenyt csak adott helyen lehet elindítani (jelen esetben a teleport helye)
-ahhoz, hogy másnak is menjen a verseny, minden egyes résztvevõnek el kell indítania a versenyt (/startrace)
Az elsõ kettõ változtatható: nem pénzt ad, hanem pontot vagy mindkettõt, nem adott helyrõl indíthat a játékos versenyt, hanem akár bárhonnan(de sztem az nagy hülyeség lenne)
Remélem hasznodra fog válni! Üdv, Fecsii
(
ha tetszett a leírás, nyomj egy Like-ot )