GTA Közösség - A magyar GTA fórum
San Andreas Multiplayer (SA-MP) => SA-MP: Szerverfejlesztés => Segítségkérés => A témát indította: .:Secur:. - 2011. november 13. - 15:28:39
-
Sziasztok!
Pls adjatok egy olyan scriptet amivel checkpointokat lehet csinálni.
Odateleportálok valahova egy paranccsal és megjelennnek a chechpointok.
-
Lehet velem van a baj de ezt a teleportálós részét nem értem. Kifejtenéd bõvebben?
-
Lehet velem van a baj de ezt a teleportálós részét nem értem. Kifejtenéd bõvebben?
Ezt én sem értem.
-
Egy parancs hatására megjelennek a checkpointok. (a parancs teleportként szolgál, csak elindítja a checkpointokat.)
Tehát ez egy verseny lenne ha odateleportálok egy helyre a verseny kezdõpontjához akkor megjelenik az elsõ checkpoint utánn ha belementem a következõ stb...
-
Sztem tölts le egy verseny FS-t, azok checkpoointtal mûködnek meg teleport is van hozzájuk stb.
-
Nézegettem de nem találtam megfelelõt, linkelnél? pls
-
http://forum.sa-mp.com/showthread.php?t=241681&highlight=rrace
http://forum.sa-mp.com/showthread.php?t=143764&highlight=rrace
Én eddig ezekt használtam, vagyis ezeket ismerem, hogy neked jók e nemtom. Nézegesd :D
-
Kuka mind 2 :P
Lehet megtaláltam majd írok.
-
Kuka mind 2 :P
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 8)
(ha tetszett a leírás, nyomj egy Like-ot ;D)
-
Fecsii úr ment a Pm!
Köszi, de segíts :D
Témát zárom szerintem valahogy összekapírgáljuk.