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

San Andreas Multiplayer (SA-MP) => SA-MP: Szerverfejlesztés => A témát indította: CANNONN - 2012. Június 24. - 17:34:13

Cím: Örök élet elleni "védelem"
Írta: CANNONN - 2012. Június 24. - 17:34:13
Sziasztok!
Gondolom senki sem szereti ha örök élettel mászkálnak a szerverén, ezért kitaláltam, hogy írok egy kódot ez ellen.
Tehát a lényeg, hiába van örök élete az illetõnek, akkor is megy le az élete.
A kód szabadon átírható, terjeszthetõ.
 

public OnPlayerGiveDamage(playerid, damagedid, Float: amount, weaponid)
{
   new Float: elet, Float: pancel;
   GetPlayerArmour(damagedid, pancel);
   GetPlayerHealth(damagedid, elet);
   if(pancel == 0) return SetPlayerHealth(damagedid, elet-amount);
   return 1;
}

 
Cheater mentes játékot kívánok mindenkinek!
Cím: Örök élet elleni "védelem"
Írta: instant - 2012. Június 24. - 17:36:25
ha lesz idõm tesztelem ! .:D
jó lett am
Cím: Örök élet elleni "védelem"
Írta: TengeriMalac - 2012. Június 24. - 17:40:09
Egész jó, csak egy baj van.. Ha van páncélmellénye, akkor is az életét veszi le.
Ha ezt megoldod, akkor tökéletes.
Cím: Örök élet elleni "védelem"
Írta: CANNONN - 2012. Június 24. - 17:49:22
Idézetet írta: TengeriMalac date=1340552409\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"23298\" data-ipsquote-contentclass=\"forums_Topic
Egész jó, csak egy baj van.. Ha van páncélmellénye, akkor is az életét veszi le.
Ha ezt megoldod, akkor tökéletes.
 
Ha az életét leviszi nullára, meghal.
Cím: Örök élet elleni "védelem"
Írta: Zsolesszka - 2012. Június 24. - 17:55:57
De ha örök élete van, akkor mit számít ha a meglévõ életpontjaiból levonsz valamennyit?
Tárolni kellene az élet pontjait a játékosoknak, majd annak az értéket állítgatni az OnPlayerGiveDamage alatt, majd az alapján beállítani az életpontjait.
Ez alapján még ki is lehet szûrni, hogy mire vegyen le életet, és mire nem a játékosnak.
Cím: Örök élet elleni "védelem"
Írta: CANNONN - 2012. Június 24. - 17:59:54
Idézetet írta: ɐʞzssǝlosz date=1340553357\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"23298\" data-ipsquote-contentclass=\"forums_Topic
De ha örök élete van, akkor mit számít ha a meglévõ életpontjaiból levonsz valamennyit?
Tárolni kellene az élet pontjait a játékosoknak, majd annak az értéket állítgatni az OnPlayerGiveDamage alatt, majd az alapján beállítani az életpontjait.
Ez alapján még ki is lehet szûrni, hogy mire vegyen le életet, és mire nem a játékosnak.
 
Levon annyit, amennyit amúgy is levonna, végül 0-ra kerül és meghal.
Gyors, erõs fegyverrel még akkor is mûködik, ha a játékos életét folyamatosan feltölti egy idõzítõ, de idõzítõs megoldást nem igen használnak a csalások, szerintem.
Cím: Örök élet elleni "védelem"
Írta: TengeriMalac - 2012. Június 24. - 21:27:22
Arra céloztam, hogy ha egy tisztességes, nem csaló játékos valamicske elõnnyel akar indulni, például egy DM szerveren, ami tartalmazza ezt a kódot, akkor semmit nem ér vele, mert hiány csak a páncélját sebeznék, de a kód miatt az életét is ugyanúgy viszik, szoval ez így kicsit unfair szerintem.
Ezért írtam, hogy meg lehetne oldani úgy, hogy elõször a páncélmellényét viszi le a script, mint alap esetben, után pedig az életét.
Egyszerûbben, mivel az örökélet úgyis csak akkor hat, ha nincs páncélja az illetõnek.
 
new Float:pArmor;
GetPlayerArmour(playerid, pArmor);
if(pArmor == 0.0) {
    //te kódod
}

 


Másik pedig, amit nem értek, hogy ha amount ugye lebegõpontos, és ha lekéred, vagy megváltoztatod a játékos életét, az is lebegõpontos, szoval minek kerekíted floutrounddal.
Építõ Kritika xD
Cím: Örök élet elleni "védelem"
Írta: CANNONN - 2012. Június 24. - 21:41:49
Idézetet írta: TengeriMalac date=1340566042\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"23298\" data-ipsquote-contentclass=\"forums_Topic
Arra céloztam, hogy ha egy tisztességes, nem csaló játékos valamicske elõnnyel akar indulni, például egy DM szerveren, ami tartalmazza ezt a kódot, akkor semmit nem ér vele, mert hiány csak a páncélját sebeznék, de a kód miatt az életét is ugyanúgy viszik, szoval ez így kicsit unfair szerintem.
Ezért írtam, hogy meg lehetne oldani úgy, hogy elõször a páncélmellényét viszi le a script, mint alap esetben, után pedig az életét.
Egyszerûbben, mivel az örökélet úgyis csak akkor hat, ha nincs páncélja az illetõnek.
 
new Float:pArmor;
GetPlayerArmour(playerid, pArmor);
if(pArmor == 0.0) {
    //te kódod
}

 


Másik pedig, amit nem értek, hogy ha amount ugye lebegõpontos, és ha lekéred, vagy megváltoztatod a játékos életét, az is lebegõpontos, szoval minek kerekíted floutrounddal.
Építõ Kritika xD
 

Ezért írtam, hogy meg lehetne oldani úgy, hogy elõször a páncélmellényét viszi le a script, mint alap esetben, után pedig az életét.[/quote]
Milyen igazad van, erre nem is gondoltam, bõvítek.
 
Másik pedig, amit nem értek, hogy ha amount ugye lebegõpontos, és ha lekéred, vagy megváltoztatod a játékos életét, az is lebegõpontos, szoval minek kerekíted floutrounddal.[/quote]
Már nem is tudom, de valamilyen teszteléshez így volt ideális, ezért hagyhattam így.
Cím: Örök élet elleni "védelem"
Írta: Zsolesszka - 2012. Június 25. - 08:59:06
Leírom másképp, úgy látom nem vetted ki a lényeget.
Ha a csalónak 1000000000000 az élet pontja akkor ez a dolog levonja belõle azt amennyivel visszatér az OnPlayerGiveDamage.
Akkor mennyit ér a jelenlegi kódod?
Cím: Örök élet elleni "védelem"
Írta: TengeriMalac - 2012. Június 25. - 09:03:58
Idézetet írta: ɐʞzssǝlosz date=1340607546\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"23298\" data-ipsquote-contentclass=\"forums_Topic
Leírom másképp, úgy látom nem vetted ki a lényeget.
Ha a csalónak 1000000000000 az élet pontja akkor ez a dolog levonja belõle azt amennyivel visszatér az OnPlayerGiveDamage.
Akkor mennyit ér a jelenlegi kódod?
 

if(elet > 100) SetPlayerHealth(damagedid, 100.0 - amount);
Cím: Örök élet elleni "védelem"
Írta: DrAkE - 2012. Június 25. - 09:08:49
Nagyon egyszerû a megoldás:
 

public OnPlayerConnect(playerid)
{
SetPVarFloat(playerid, \"elet\", 100.0);
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
DeletePVar(playerid, \"elet\");
return 1;
}
public OnPlayerGiveDamage(playerid, damagedid, Float: amount, weaponid)
{
new
Float:pancel,
Float:elet = GetPVarFloat(damagedid, \"elet\");
GetPlayerArmour(damagedid, pancel);
if(pancel == 0.0)
{
if((elet - amount) <= 0)
   SetPlayerHealth(damagedid, 0);
else
SetPVarFloat(damagedid, \"elet\", elet - amount);
}
return 1;
}

 
Éppen nem teszteltem.
U.I.: Javítva egy kicsit.
Cím: Örök élet elleni "védelem"
Írta: Zsolesszka - 2012. Június 25. - 09:10:19
Akkor újabb magyarázat:
Ha te beállítod a fenti kóddal az életét 100-ra.
És az OnPlayerGiveDamage alatt levon annyit amennyivel visszatér.
A csaló hackje visszateszi az életpontját újból 100000000000-re, akkor állandóan csak
 
SetPlayerHealth(damagedid, 100 - amount);

 
életpontja lesz.
Edit:
DrAkE megoldása már egy kis útmutató lenne. :D
Cím: Örök élet elleni "védelem"
Írta: TengeriMalac - 2012. Június 25. - 09:19:32
Idézetet írta: ɐʞzssǝlosz date=1340608219\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"23298\" data-ipsquote-contentclass=\"forums_Topic
Akkor újabb magyarázat:
Ha te beállítod a fenti kóddal az életét 100-ra.
És az OnPlayerGiveDamage alatt levon annyit amennyivel visszatér.
A csaló hackje visszateszi az életpontját újból 100000000000-re, akkor állandóan csak
 
SetPlayerHealth(damagedid, 100 - amount);

 
életpontja lesz.
Edit:
DrAkE megoldása már egy kis útmutató lenne. :D
 
De ha nem teszi vissza, akkor mûködik.


DrAkE kódja jó, de sztem lehetne simán is állítani az életét, mert az is meglátszik, ha visszateszi a cheat.
Furcsa lenne, hogy full az élete a cheat miatt, és firtelen csak ugy meghal :D
Cím: Örök élet elleni "védelem"
Írta: CANNONN - 2012. Június 25. - 09:37:13
A csaló hackje visszateszi az életpontját újból 100000000000[/quote]
De ilyet nem szoktak. :D
Cím: Örök élet elleni "védelem"
Írta: DrAkE - 2012. Június 25. - 09:37:54
Hirtelen? Épp az a jó, ha hirtelen meghal, nem kellene csalni a szerveren...
Illetve a sobeit automatán rakja vissza az életet...
Cím: Örök élet elleni "védelem"
Írta: TengeriMalac - 2012. Június 25. - 09:39:44
Idézetet írta: DrAkE date=1340609874\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"23298\" data-ipsquote-contentclass=\"forums_Topic
Hirtelen? Épp az a jó, ha hirtelen meghal, nem kellene csalni a szerveren...
Illetve a sobeit automatán rakja vissza az életet...
 
Mondjuk. Igaz.
Amugy nem nagyon értek a s0beithez.  :angel:
Cím: Örök élet elleni "védelem"
Írta: CANNONN - 2012. Június 25. - 09:41:19
Idézetet írta: DrAkE date=1340609874\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"23298\" data-ipsquote-contentclass=\"forums_Topic
Hirtelen? Épp az a jó, ha hirtelen meghal, nem kellene csalni a szerveren...
Illetve a sobeit automatán rakja vissza az életet...
 
Pedig sobeittel tesztelve, nem rakja vissza az életét.
Adminscriptel is teszteltem, ha 1 másodpercenként visszaállítja a játékos életét 10000-re, még akkor is le lehet lõni gyorsabb fegyverrel.
Cím: Örök élet elleni "védelem"
Írta: Zsolesszka - 2012. Június 25. - 11:36:36
Idézetet írta: TengeriMalac date=1340608772\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"23298\" data-ipsquote-contentclass=\"forums_Topic
Furcsa lenne, hogy full az élete a cheat miatt, és firtelen csak ugy meghal :D
 
Az meg idegesítõ hogy lövi az ember azt baszik megdögleni. Inkább legyen fura. :D:D
Cím: Örök élet elleni "védelem"
Írta: Sramm - 2012. Június 26. - 16:12:36
Idézetet írta: Cannonn date=1340553594\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"23298\" data-ipsquote-contentclass=\"forums_Topic


De ha örök élete van, akkor mit számít ha a meglévõ életpontjaiból levonsz valamennyit?
Tárolni kellene az élet pontjait a játékosoknak, majd annak az értéket állítgatni az OnPlayerGiveDamage alatt, majd az alapján beállítani az életpontjait.
Ez alapján még ki is lehet szûrni, hogy mire vegyen le életet, és mire nem a játékosnak.
 
Levon annyit, amennyit amúgy is levonna, végül 0-ra kerül és meghal.
Gyors, erõs fegyverrel még akkor is mûködik, ha a játékos életét folyamatosan feltölti egy idõzítõ, de idõzítõs megoldást nem igen használnak a csalások, szerintem.
 
[/quote]
De ha 99999999999999999999999999-ra állítod az életét, vonhatsz belõle 10-eket...
Cím: Örök élet elleni "védelem"
Írta: Monti - 2012. Június 26. - 16:30:38
megy a + ! Jólett :)
Cím: Örök élet elleni "védelem"
Írta: lackos888 - 2012. Június 26. - 16:43:25
S0beitnél így mûködik örök élet:
100-ra állítja mindig az életét az embernek ha be van kapcsolva.
Én úgy csináltam az anticheatemben, hogy mikor vki givez damaget valakinek, megnézi hogy lement-e az élete, ha nem akkor kickeli.Ennyi, és bevált, kipróbáltuk sobeittel is:D
Cím: Örök élet elleni "védelem"
Írta: Yakuza™ - 2012. Június 27. - 22:43:18
ez jól jött a szeróba......