-
Sziasztok
Láttam egy szerveren egy olyan DM parancsot hogy amikor beírtuk akkor be teleportált a DM zónába és ami a lényeg hogy onnantól kezdve ha egy golyó eltalált azonnal meghaltam. Nekem is kellene egy ilyen parancs de fogalmam sincs hogy hogyan kell ezt meg csinálni.
Köszi elõre is a segítséget
-
Én szerintem úgy lehet megcsinálni hogy ha be írja hogy /xyz akkor Be teleportálja az illetõt és le veszi az életét mondjuk 10-20 ra!
-
Ha megadod a koordinátákat, akkor megcsinálom!
-
Azon a szerveren ahol voltam ott nem ment le az élet csak ha belém lõttek egyet akkor azonnal meghaltam hiába 100 hp-m volt. És nekem a parancs úgy kell hogyha be írom akkor \"be kapcsolja ezt a dolgot\".
-
new OneHit[MAX_PLAYERS];
ha a játékos elteleportál:
if(OneHit[playerid] == 0) {
OneHit[playerid] = 1;
// a játékos belépett a dm re
} else if(OneHit[playerid] == 1) {
OneHit[playerid] = 0;
//a játékos újra beírta a parancsot belépés után, akkor lépjen ki.
public OnPlayerTakeDamage alá
if(issuerid != INVALID_PLAYER_ID && OneHit[playerid] == 1) { // ha a játékost megsebezte egy játékos és ha egylövés módba van
SetPlayerHealth(playerid, 0);
}
-
CMD:dm(playerid, params[])
{
if(GetPVarInt(playerid, \"dm\") == 0)
{
//ide a poziciót, ahova rakja. SetPlayerPos(...
//SetPlayerInterior... csak ha szükséges
SetPVarInt(playerid, \"dm\", 1);
ResetPlayerWeapons(playerid);
GivePlayerWeapon(playerid, 23, 250);
SendClientMessage(playerid, -1, \"El lettél teleportálva a DM zónába! Ha egyszer meglõnek meghalsz!\");
}
else {
SendClientMessage(playerid, -1, \"Te már bent vagy a DM zónában\");
}
return 1;
}
public OnPlayerGiveDamage(playerid, damagedid, Float: amount, weaponid)
{
if(GetPVarInt(playerid, \"dm\") == 1)
{
SetPlayerHealth(damagedid, 0.0);
}
return 1;
}
public OnPlayerDeath( playerid, killerid, reason )
{
//ide ugyanazt a poziciót, amit följebb raktál. SetPlayerPos(...
SendClientMessage(playerid,-1, \"Meghaltál, ezért vissza lettél helyezve a DM zónába!\");
return 1;
}
CMD:dmki(playerid, params[])
{
if(GetPVarInt(playerid, \"dm\") == 1)
{
//ide azt a poziciót ahova rakja miútán kilépett SetPlayerPos(...
//interiort, csak ha szükséges
SetPVarInt(playerid, \"dm\", 0);
ResetPlayerWeapons(playerid);
SendClientMessage(playerid, -1, \"Kiléptél a DM zónából!\");
}
else {
SendClientMessage(playerid, -1, \"Te már bent vagy a DM zónában\");
}
return 1;
}
tessék, remélem érthetõ.
-
CMD:dm(playerid, params[])
{
if(GetPVarInt(playerid, \"dm\") == 0)
{
//ide a poziciót, ahova rakja. SetPlayerPos(...
//SetPlayerInterior... csak ha szükséges
SetPVarInt(playerid, \"dm\", 1);
ResetPlayerWeapons(playerid);
GivePlayerWeapon(playerid, 23, 250);
SendClientMessage(playerid, -1, \"El lettél teleportálva a DM zónába! Ha egyszer meglõnek meghalsz!\");
}
else {
SendClientMessage(playerid, -1, \"Te már bent vagy a DM zónában\");
}
return 1;
}
public OnPlayerGiveDamage(playerid, damagedid, Float: amount, weaponid)
{
if(GetPVarInt(playerid, \"dm\") == 1)
{
SetPlayerHealth(damagedid, 0.0);
}
return 1;
}
public OnPlayerDeath( playerid, killerid, reason )
{
//ide ugyanazt a poziciót, amit följebb raktál. SetPlayerPos(...
SendClientMessage(playerid,-1, \"Meghaltál, ezért vissza lettél helyezve a DM zónába!\");
return 1;
}
CMD:dmki(playerid, params[])
{
if(GetPVarInt(playerid, \"dm\") == 1)
{
//ide azt a poziciót ahova rakja miútán kilépett SetPlayerPos(...
//interiort, csak ha szükséges
SetPVarInt(playerid, \"dm\", 0);
ResetPlayerWeapons(playerid);
SendClientMessage(playerid, -1, \"Kiléptél a DM zónából!\");
}
else {
SendClientMessage(playerid, -1, \"Te már bent vagy a DM zónában\");
}
return 1;
}
tessék, remélem érthetõ.
Nos ez érthetõnek érthetõ csak nem egészen mûködik :D
Elõször is, nem mûködik az egy lövéstõl rögtön meghalsz dolog, a másik meg amikor meg öltem vkit nem teleportálta vissza a DM-be, amikor meg vissza akart teleportálni meg csak annyit írt hogy Te már DM-be vagy.
Nah de mind egy nekem nem kell így túl bonyolítani... nekem elég csak annyi hogyha be írom pl.: /dm akkor be kapcsol ez az egy lövéstõl meghalok, ha meg meghalok akkor kikapcsol.
Ha ennyi megoldható akkor köszönöm :)
-
Tessék:
#include <a_samp>
#include <zcmd>
CMD:dmki(playerid)
{
if(GetPVarInt(playerid, \"dm\") == 0) return SendClientMessage(playerid, -1, \"Te egyetlen DM-ben sem vagy bent!\");
SetPVarInt(playerid, \"dm\", 0);
ResetPlayerWeapons(playerid);
SpawnPlayer(playerid);
SendClientMessage(playerid, -1, \"Kiléptél a DM zónából!\");
return 1;
}
CMD:dm(playerid)
{
if(GetPVarInt(playerid, \"dm\") == 1) return SendClientMessage(playerid, -1, \"Te már bent vagy a DM zónában\");
//ide a poziciót, ahova rakja. SetPlayerPos(...
//SetPlayerInterior... csak ha szükséges
SetPVarInt(playerid, \"dm\", 1);
ResetPlayerWeapons(playerid);
GivePlayerWeapon(playerid, 23, 250);
SendClientMessage(playerid, -1, \"El lettél teleportálva a DM zónába! Ha egyszer meglõnek meghalsz!\");
return 1;
}
public OnPlayerSpawn(playerid)
{
if(GetPVarInt(playerid, \"dm\") == 1)
{
ResetPlayerWeapons(playerid);
GivePlayerWeapon(playerid, 23, 250);
switch(random(3))
{
case 0: SetPlayerPos(playerid, 0, 0, 0);// Ide a DM poz-t (1.-t)
case 1: SetPlayerPos(playerid, 0, 0, 0);// Ide a DM poz-t (2.-at)
case 2: SetPlayerPos(playerid, 0, 0, 0);// Ide a DM poz-t (3.-at)
}
}
return 1;
}
public OnPlayerGiveDamage(playerid, damagedid, Float: amount, weaponid)
{
if(GetPVarInt(playerid, \"dm\") == 1)
{
SetPlayerHealth(damagedid, 0);
}
return 1;
}
-
Nos meg találtam a gamemode-t... GroX készítette: http://sampforum.hu/index.php?topic=3975.0 és abba van egy paintball pálya /pbblue, /pbred és /pbneutral-ból áll. És ott is így van ahogy én leírtam.
Flash verziója az mûködik de ha lelõttem valakit a kill listán nem az szerepelt hogy én le lõttem egy ak-val XY-t hanem XY meghalt, meg ha egyszer beírtam /dm onnantól kezdve nem lehetett kikapcsolni az egy lövéstõl meghalást csak ha kilétem.
Próbáltam kiszedni GroX modjából de nem találtam a sort xd