GTA Közösség - A magyar GTA fórum

San Andreas Multiplayer (SA-MP) => SA-MP: Szerverfejlesztés => Szkript kérések => A témát indította: herban - 2010. december 20. - 20:28:48

Cím: Gyors segítség kéne
Írta: herban - 2010. december 20. - 20:28:48
Hello
Ez elég bonyolult hiba lenne..
Íme:
 
forward SettingPlayerTeam(killerid);

 

public SettingPlayerTeam(killerid)
{
  for(new playerid; playerid < 200; playerid++)
  SetPlayerTeam(playerid, gTeam[playerid]);
 
  return 1;
}

 


if (strcmp(\"/gangwar\", cmdtext, true) == 0)
{
SetTimerEx(\"SettingPlayerTeam\",10,1,\"i\",playerid);
return 1;
}

 
Ez ugye az amikor az azonos csapatba lévõ játékosok egymást lövik és nem megy az életük
De ha kilépek akkor se megy az élete a játékosnak
Vmi megoldás?
Elõre is kösz
Cím: Gyors segítség kéne
Írta: TengeriMalac - 2010. december 20. - 20:46:29
Gyors segítség, Készpénzben
ChuckNorris: Te tényleg kiszámíthatatlan vagy,valamikor segítesz,valamikor meg bunkóskodsz,komolyan nemértelek....
FlatMaN: Mikor voltam kiszámítható? xD
Cím: Gyors segítség kéne
Írta: herban - 2010. december 20. - 21:08:01
:mistrust: ennél értelmesebbet nem találtál?.......
Cím: Gyors segítség kéne
Írta: BeNiBoY - 2010. december 21. - 06:31:30
killtimer?
Cím: Gyors segítség kéne
Írta: KowaZ - 2010. december 21. - 10:09:39

public SettingPlayerTeam(killerid)
{
  for(new playerid; playerid < 200; playerid++)
  SetPlayerTeam(playerid, gTeam[playerid]);
  return 1;
}

 
[/quote]
Ez a kód már maga alapvetõen hibás. A killerid-t ugyanis sehol sem használod.
És miért kell századmásodpercenként/függvényhívás beállítani a játékosok csapatát ugyanarra, ami már amúgy is a csapatuk? Ennek azt kellene eredményeznie, hogy nem tudják lelõni egymást?
Kowalski
Cím: Gyors segítség kéne
Írta: Iceaac - 2010. december 21. - 13:47:36
Azt szeretnéd, hogy a paranccsal minden játékos csapata át legyen állítva a gTeam változó értékére? Csak mert nem írtál semmi egyebet...
 
if (!strcmp(\"/gangwar\", cmdtext, true))
{
for(new i; i < szerver_slotok_szama; i++) if(IsPlayerConnected(i)) SetPlayerTeam(i, gTeam);
return 1;
}
Cím: Gyors segítség kéne
Írta: herban - 2010. december 21. - 14:39:01
Azt akarom, hogy az azonos csapatba lévõ játékosok egymást lövik akkor ne menjen az életük.
De ez mükõdik is, csak ezt a halhatatlanságot nem lehet megszünteti(se killtimerrel)
Cím: Gyors segítség kéne
Írta: Iceaac - 2010. december 21. - 15:21:56
Milyen halhatatlanságot?
Cím: Gyors segítség kéne
Írta: herban - 2010. december 21. - 15:43:54
hát mikor kilépsz a gangwarból akkor lövöd a másik játékost és nem megy az élete
Vagyis azt kéne megoldani hogy menjen az élete
 
 for(new playerid; playerid < 200; playerid++)  SetPlayerTeam(playerid, gTeam[playerid]);

 
Ennek az ellentetje
Cím: Gyors segítség kéne
Írta: KowaZ - 2010. december 21. - 15:46:38
Idézetet írta: herban date=1292942634\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"4768\" data-ipsquote-contentclass=\"forums_Topic
hát mikor kilépsz a gangwarból akkor lövöd a másik játékost és nem megy az élete
Vagyis azt kéne megoldani hogy menjen az élete
 
 for(new playerid; playerid < 200; playerid++)  SetPlayerTeam(playerid, gTeam[playerid]);

 
Ennek az ellentetje
 
Most munkaidõm van, de 5kor végzek és utána megcsinálom. Úgy megfelel?
Kowalski
Cím: Gyors segítség kéne
Írta: herban - 2010. december 21. - 15:59:26
Persze..
És köszönöm
Cím: Gyors segítség kéne
Írta: Iceaac - 2010. december 21. - 16:39:13
De most az az egy játékos lépjen ki, vagy mindenki?
Cím: Gyors segítség kéne
Írta: herban - 2010. december 21. - 17:17:06
Nos, leírom mégegyszer egy picit érthetõbben
Van egy gangwar mode és a team kill ellen azt kéne csinálni hogy ha azonos csapatba(gTeam) lévõ játékosok lövik egymást akkor ne menjen az életük
És ha vki beírja pl. /exitdm akkor utána normálisan menni fog le az élete
Cím: Gyors segítség kéne
Írta: KowaZ - 2010. december 21. - 17:28:06
forward AntiTeamKill();
new bool:gPlayerImmunity[MAX_PLAYERS];
public AntiTeamKill() { for (new i = 0; i < MAX_PLAYERS; i++) if (IsPlayerConnected(i) && gPlayerImmunity) SetPlayerTeam(i, gPlayerTeam); return 1; }
stock ToggleFriendlyFire(playerid, bool:toggle) { gPlayerImmunity[playerid] = !toggle; }

 
Hirtelen ezt dobtam össze. A ToggleFriendlyFire(playerid, true) engedélyezi, hogy lelõjjék a csapattársai. Szóval mikor háború lesz, akkor a lényeg, hogy kikapcsold a résztvevõknek így: ToggleFriendlyFire(playerid, false)
A játékmód elindításakor pedig hívd meg a SetTimer függvényt az alábbi módon:
 
SetTimer(\"AntiTeamKill\", 10, 1);

 
Nem teszteltem semmit, szóval nem garantált a siker. (Ja és az OnPlayerDisconnect-nél is engedélyezd, hogy lõhessék.)
Kowalski
Cím: Gyors segítség kéne
Írta: herban - 2010. december 21. - 18:01:22
De és ha kikapcsolom akkor lõhetik egymást a csapat társaK?
Cím: Gyors segítség kéne
Írta: KowaZ - 2010. december 21. - 18:23:46
Idézetet írta: herban date=1292950882\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"4768\" data-ipsquote-contentclass=\"forums_Topic
De és ha kikapcsolom akkor lõhetik egymást a csapat társaK?
 
Hát elméletileg. Akinek kikapcsoltad, arra nem lesz hatással a szkript, tehát õ is lõheti a csapattársát, meg a csapattársai is lõhetik õt.
De azt javaslom, hogy teszteld le és utána ha nem jó akkor oszd meg a tapasztalataid.
Kowalski
Cím: Gyors segítség kéne
Írta: herban - 2010. december 27. - 15:15:10
És hogy lehet kikapcsolni hogy ne legyen örök élete a játékosnak?
Cím: Gyors segítség kéne
Írta: KowaZ - 2010. december 27. - 15:27:34
Idézetet írta: KowaZ date=1292948886\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"4768\" data-ipsquote-contentclass=\"forums_Topic
A ToggleFriendlyFire(playerid, true) engedélyezi, hogy lelõjjék a csapattársai.
 
Kowalski
Cím: Gyors segítség kéne
Írta: herban - 2011. január 23. - 21:54:11
De ez gTeam-al megy?
Cím: Gyors segítség kéne
Írta: KowaZ - 2011. január 29. - 11:50:23
igen...
KowaZ