Szerző Téma: Spawn váltás  (Megtekintve 507 alkalommal)

Spawn váltás
« Dátum: 2013. augusztus 29. - 13:28:27 »
0 Show voters
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?

Nem elérhető BoOy

  • 3209
  • 2013-as év szkriptere
    • Profil megtekintése
Spawn váltás
« Válasz #1 Dátum: 2013. augusztus 29. - 14:37:45 »
0 Show voters
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;
}

Spawn váltás
« Válasz #2 Dátum: 2013. augusztus 29. - 15:14:01 »
0 Show voters
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...
« Utoljára szerkesztve: 2013. augusztus 29. - 15:30:42 írta speti9603 »

Nem elérhető BoOy

  • 3209
  • 2013-as év szkriptere
    • Profil megtekintése
Spawn váltás
« Válasz #3 Dátum: 2013. augusztus 29. - 15:29:09 »
0 Show voters
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]
« Utoljára szerkesztve: 2013. augusztus 31. - 19:26:37 írta ZyZu »

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal