Ez a szekció lehetővé teszi a felhasználó által írt összes hozzászólás megtekintését. Vedd figyelembe, hogy csak azokba a fórumokba írt hozzászólásokat látod, amelyekhez hozzáférésed van. 46
Leírások/Útmutatók / Pénzcheat elleni védelem« Dátum: 2012. január 10. - 14:56:31 »Idézetet írta: ɐʞzssǝlosz date=1326128183\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"15403\" data-ipsquote-contentclass=\"forums_Topic A kódban szereplõ timer nem viszi magával a játékos id-ket, így a kód csak a 0 ID-vel jelölt játékosnak mûködik.Tegnap nem igazán voltam a toppon, köszi hogy kijavítottad. kurta: erre nem is gondoltam és a ban szerintem is túlzás, az én módomban is úgy van hogy nullázza a pénzt, meg a változót is. De ez már szerintem meg tudja oldani mindenki magának. 47
Segítségkérés / Ha megegyszer lekerem a jarmuvet az torlodjon.« Dátum: 2012. január 09. - 17:19:09 »
Basszus ma mindent elrontok..
A return azért kell oda, ha teljesül az állításunk akkor a jármû törlésével tér vissza és így az alatta levõ sorok nem futnak le. 48
Leírások/Útmutatók / Pénzcheat elleni védelem« Dátum: 2012. január 09. - 17:16:50 »
Hoppá..
Az elején leírtam hogy létrehozzuk a változót, de nem is hoztam létre. 49
Segítségkérés / Ha megegyszer lekerem a jarmuvet az torlodjon.« Dátum: 2012. január 09. - 15:45:27 »
[pawn]new vehicle[MAX_PLAYERS];
CMD:infernus(playerid) { if(vehicle[playerid] > 0) DestroyVehicle(vehicle); new Float:x, Float:y, Float:z; GetPlayerPos(playerid, x, y, z); vehicle[playerid] = CreateVehicle(411, x, y, z, 0.0, 10, 10, 60); PutPlayerInVehicle(playerid, vehicleid, 0); return 1; } public OnPlayerConnect(playerid) { vehicle[playerid] = 0; return 1; } [/pawn] 51
Leírások/Útmutatók / Pénzcheat elleni védelem« Dátum: 2012. január 09. - 14:43:11 »
Igen, tényleg kihagytam, köszönöm.
Javítva. 52
Leírások/Útmutatók / Pénzcheat elleni védelem« Dátum: 2012. január 09. - 14:36:14 »
Mivel sok olyan megoldás született már a pénzcheat elleni védelemre hogy pl ha a játékos pénze nagyobb x milliónál akkor bannoljuk (amivel semmit sem érünk, mert lehet tisztességesen szerezte a pénzt, lehet csak néhány ezret cheatel..), ezért mutatok erre egy jó megoldást:
Elõször is létrehozunk egy változót amiben a játékosok pénzét tároljuk: [pawn]new cash[MAX_PLAYERS];[/pawn] Most létrehozunk két függvényt, amivel a játékosok pénzét állíthatjuk: [pawn]stock GivePlayerCash(playerid, ammount) { cash[playerid] += amount; GivePlayerMoney(playerid, ammount); }[/pawn] [pawn]stock SetPlayerCash(playerid, ammount) { cash[playerid] = ammont; GivePlayerMoney(playerid, ammount); }[/pawn] Mind a két függvény ugyan úgy mûködik, mint az erre megírt sa:mp függvények, csak annyi különbséggel hogy amikor növeljük a pénzét akkor a változójának az értékét is növeljük. Most pedig jön az ellenõrzés: [pawn] forward CheckCash(); public OnFilterScripInit() { SetTimer(\"CheckCash\", 1000, true); return 1; } public CheckCash() { for(new forplayerid, maxp = GetMaxPlayers(); forplayerid < maxp; forplayerid++) { if(IsPlayerConnected(forplayerid)) { if(cash[forplayerid] != GetPlayerMoney(forplayerid)) { SendClientMessage(forplayerid, -1, \"Pénz cheat használata miatt bannoltunk!\"); Ban(forplayerid); } } } return 1; } [/pawn] Elõször is létrehoztuk a CheckCash callback-et. Utána amikor betöltjük a filterscriptet elindítunk egy timert. A timer másodpercenként lefuttatja a CheckCash-t. A CheckCash arra szolgál hogy leellenõrizzük hogy a játékos változójának az összege és a játékos valódi pénze megegyezik-e. Ha nem egyezik meg akkor kiírunk neki egy üzenetet és utána bannoljuk (a ban legyen mindig az utolsó mûvelet, mert különben az elõtte lévõ részek nem történnek meg. Pl nem küldi el neki az üzenetet). Remélem érthetõ volt, itt az egész FS: [pawn]#include <a_samp> forward CheckCash(); new cash[MAX_PLAYERS]; #if defined FILTERSCRIPT #else main() { print(\"\\n--------------------------------------\"); print(\" Anti Cheat betöltve!\"); print(\"--------------------------------------\\n\"); } #endif public OnFilterScriptInit() { print(\"\\n--------------------------------------\"); print(\" Anti Cheat betöltve!\"); print(\"--------------------------------------\\n\"); SetTimer(\"CheckCash\", 1000, true); return 1; } public OnFilterScriptExit() { return 1; } public CheckCash() { for(new forplayerid, maxp = GetMaxPlayers(); forplayerid < maxp; forplayerid++) { if(IsPlayerConnected(forplayerid)) { if(cash[forplayerid] != GetPlayerMoney(forplayerid)) { SendClientMessage(forplayerid, -1, \"Pénz cheat használata miatt bannoltunk!\"); Ban(forplayerid); } } } return 1; } stock GivePlayerCash(playerid, ammount) { cash[playerid] += amount; GivePlayerMoney(playerid, ammount); } stock SetPlayerCash(playerid, ammount) { cash[playerid] = ammont; GivePlayerMoney(playerid, ammount); }[/pawn] 53
Segítségkérés / Zene Tárhely« Dátum: 2012. január 08. - 11:00:05 »
Még sose használtam ezt a függvényt, de szerintem datáról lassan fogja betölteni.
Használd a dropbox-ot, vagy a solidfiles.com-ot 54
Segítségkérés / Kocsi Rendszer Kérdések« Dátum: 2012. január 04. - 08:15:19 »
A módodban elõször a megvásárolható kocsikat töltsd be és utána a többit. És amikor beszáll a kocsiba akkor kérdezd le hogy létezik-e olyan id-jû fájl, mint ami a kocsi id-je. Ha nem akkor nem vásárolható meg, ha van akkor kérdezd le hogy eladó-e stb...
55
Segítségkérés / jelszó kicsillagozása« Dátum: 2012. január 03. - 19:05:09 »Idézetet írta: N@rbirock date=1325611166\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"15199\" data-ipsquote-contentclass=\"forums_Topic nem ugy van hanem dialogalAkkor most komolyan, ha dialoggal van megcsinálva akkor hogy nem tudod megtalálni ?? 56
Segítségkérés / MsqL HIBA« Dátum: 2012. január 03. - 18:19:16 »
Ahhoz hogy mysql mûködjön kell egy mysql szerver.
WAMP-ot vagy Apache-t ajánlom. Létre kell hoznod benne egy mysql adatbázist, azon belül pedig a táblákat amibe mented az adatokat (ezt mind megteheted phpmyadmin-on keresztül). Ha megvagy vele akkor az FS elején a definíciókat kitöltöd a megfelelõ adatokkal és mûködik is. 57
Segítségkérés / jelszó kicsillagozása« Dátum: 2012. január 03. - 18:15:41 »
Akkor valószínûleg úgy van megcsinálva hogy /register jelszó
Olvasd el a leírást amit linkeltem és rájössz hogyan kell megcsinálni. 58
Segítségkérés / Vajon mûködne? ( OnPlayerStateChange )« Dátum: 2012. január 03. - 18:14:23 »
Így lehet a legkönnyebben kideríteni hogy mûködik-e vagy nem: Leteszteled
Egyébként ha jól emlékszem (nem vagyok benne 100%-ig biztos) akkor az strcmp-be mindenképpen ki kell rakni a true/false értéket, ami azt jelzi hogy különbséget tegyen-e a kis és nagybetûk között. [pawn]if(!strcmp(dini_Get(String,\"Tulaj\"),tulaj, true))[/pawn] 59
Segítségkérés / Drift szerver« Dátum: 2012. január 03. - 18:08:22 »
-Legyen rajta egy jó sebességmérõ, ami nem akad
-Drift pont mérõ -Legyen legalább 20-25 pálya + teleport -Ha egyedi ötletet akarsz akkor: legyenek megvásárolható kocsik, amit ment a szerver és ezeket lehessen tuningolni is (amit úgyszintén ment a szerver) A többit már leírta IXT 60
Segítségkérés / jelszó kicsillagozása« Dátum: 2012. január 03. - 18:04:32 »
Mivel 600 soros a scriptje, ezért gondolom hogy még csak most kezdte el írni..
Itt egy leírás a dialogokról: http://sampforum.hu/index.php?topic=11685.0 |