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: speti9603 - 2013. augusztus 29. - 13:28:27

Cím: Spawn váltás
Írta: speti9603 - 2013. augusztus 29. - 13:28:27
Sziasztok, abban szeretném segítségeteket kérni, hogy hogyan tudom azt megcsinálni ha vannak csapatok, és ha mondjuk egy adott csapat uralja mondjuk az Area51-et akkor minden spawnnál megkérdezze hogy melyiket akarod kiválasztani spawnolási helynek, akkor oda telézze ha övék a terület. Megcsináltam úgy ahogy de mikor nem övék a terület akkor is odatelézi. De ha elfoglalták akkor nem telézi oda...
Valaki tudna segíteni, hogy hogyan tudom ezt megcsinálni, vagy lekérni valahogy a terület adatait?
Cím: Spawn váltás
Írta: BoOy - 2013. augusztus 29. - 14:37:45
Használj változókat.
Például:
Az elsõ csapatnak legyen az értéke 0, és defináljuk TEAM_KATONA-ként.
A másodiknak csapatnak legyen az értéke 1, és defináljuk TEAM_MENTOS-ként.
A harmadiknak csapatnak legyen az értéke 2, és defináljuk TEAM_CIVIL-ként.
Csapatok beállítása:
 
SetPlayerTeam(playerid,TEAM_KATONA);
SetPlayerTeam(playerid,TEAM_MENTOS);
SetPlayerTeam(playerid,TEAM_CIVIL);

 
Számozzuk meg az alap spawn helyeknek hogy melyik csapathoz valóak:
area51= TEAM_KATONA
sfkorhaz= TEAM_MENTOS
lsgetto= TEAM_CIVIL
Teljes szkript:
 
#include <a_samp>
#include <sscanf2>
#include <zcmd>
#define TEAM_KATONA 0
#define TEAM_MENTOS 1
#define TEAM_CIVIL 2
enum data
{
Float:x,
Float:y,
Float:z,
team
}
new Float:area51[][data] =
{
{0.0,0.2,4.0,TEAM_KATONA},
{0.0,1.3,4.0,TEAM_KATONA},
{0.0,3.5,4.0,TEAM_KATONA}
};
new Float:sfkorhaz[][data] =
{
{0.0,0.2,4.0,TEAM_MENTOS},
{0.0,1.3,4.0,TEAM_MENTOS},
{0.0,3.5,4.0,TEAM_MENTOS}
};
new Float:lsgetto[][data] =
{
{0.0,0.2,4.0,TEAM_CIVIL},
{0.0,1.3,4.0,TEAM_CIVIL},
{0.0,3.5,4.0,TEAM_CIVIL}
};
public OnGameModeInit()
{
AddPlayerClass(29, 1958.33, 1343.12, 15.36, 269.15, 26, 36, 28, 150, 0, 0); //Katona
    AddPlayerClass(32, 1958.33, 1343.12, 15.36, 269.15, 26, 36, 28, 150, 0, 0); //Mentõs
    AddPlayerClass(10, 1958.33, 1343.12, 15.36, 269.15, 26, 36, 28, 150, 0, 0); //Civil
return 1;
}
CMD:area51(playerid,params[])
{
new sor;
if(sscanf(params,\"d\",sor)) return SendClientMessage(playerid,-1,\"HASZNÁLAT: /area51 (0-2)\");
if(sor > 3) return SendClientMessage(playerid,-1,\"HASZNÁLAT: /area51 (0-2)\");
new teamid = GetPlayerTeam(playerid);
if(area51[sor][team] != teamid) return SendClientMessage(playerid,-1,\"Nem elérhetõ a spawn hely a csapatod számára\");
else
{
    SetPlayerPos(playerid,area51[sor]
  • ,area51[sor][y],area51[sor][z]);

}
return 1;
}
CMD:sfkorhaz(playerid,params[])
{
new sor;
if(sscanf(params,\"d\",sor)) return SendClientMessage(playerid,-1,\"HASZNÁLAT: /sfkorhaz (0-2)\");
if(sor > 3) return SendClientMessage(playerid,-1,\"HASZNÁLAT: /sfkorhaz (0-2)\");
new teamid = GetPlayerTeam(playerid);
if(sfkorhaz[sor][team] != teamid) return SendClientMessage(playerid,-1,\"Nem elérhetõ a spawn hely a csapatod számára\");
else
{
    SetPlayerPos(playerid,sfkorhaz[sor]
  • ,sfkorhaz[sor][y],sfkorhaz[sor][z]);

}
return 1;
}
CMD:lsgetto(playerid,params[])
{
new sor;
if(sscanf(params,\"d\",sor)) return SendClientMessage(playerid,-1,\"HASZNÁLAT: /lsgetto (0-2)\");
if(sor > 3) return SendClientMessage(playerid,-1,\"HASZNÁLAT: /lsgetto (0-2)\");
new teamid = GetPlayerTeam(playerid);
if(lsgetto[sor][team] != teamid) return SendClientMessage(playerid,-1,\"Nem elérhetõ a spawn hely a csapatod számára\");
else
{
    SetPlayerPos(playerid,lsgetto[sor]
  • ,lsgetto[sor][y],lsgetto[sor][z]);

}
return 1;
}
public OnPlayerRequestClass(playerid,classid)
{
if(classid == 0)
{
SetPlayerTeam(playerid,TEAM_KATONA);
}
if(classid == 1)
{
SetPlayerTeam(playerid,TEAM_MENTOS);
}
if(classid == 2)
{
    SetPlayerTeam(playerid,TEAM_CIVIL);
}
return 1;
}
Cím: Spawn váltás
Írta: speti9603 - 2013. augusztus 29. - 15:14:01
Hát nem tudom ez egy kicsit nagyon más, mint az enyém, de viszont megpróbálkoztam vele, de van egy kis gond. Az hogy amikor kiválasztom akkor amikor nem az övék a terület akkor oda telézi õt de kiírja h nem a tiétek, viszont ha az övék akkor meg kiírja h a tiétek de nem telézik oda...
Cím: Spawn váltás
Írta: BoOy - 2013. augusztus 29. - 15:29:09
ez csak egy példaszkript volt, én se így gondoltam, csak ebbe benne vannak a fontos cuccok.
pm-be küldd el a szkriptet, aztán majd leírod h. hogy oldottam(oldottuk) meg.
[mod]Ne PM -ben intézzétek mivel lehet másnak is szüksége lesz erre a kódra![/mod]