Hrb™ 48 Odesláno: 22. Říjen, 2012 Share Odesláno: 22. Říjen, 2012 Zdravím, rozhodl jsem se udělat svůj první mini Tutorial / script. Velice se to hodí pro anti-team kill. Nemusíte už lidi za to třeba kickovat. Takže přejdeme k obsahu. Obsah: Úvod, vysvětlení Krok za krokem při tvorbě anti- team killu Konečná podoba anti-team killu 1. Úvod, vysvětlení public OnPlayerTakeDamage(playerid, issuerid, Float: amount, weaponid) public OnPlayerTakeDamage - název publicu playerid - hráč, na kterém je způsobena újma na zdraví issuerid - hráč, který působí újmu na zdraví 2. hráči Float: amount - hodnota zdraví nebo vesty, která byla ubrána weaponid - ID zbraně, která způsobila újmu na zdraví 2. Krok za krokem při tvorbě anti-team killu public OnPlayerTakeDamage(playerid, issuerid, Float: amount, weaponid) // začneme tím, že si v pawnu najdeme tento public. Pokud zde není, tak ho vložte takto mezi ostatní publicy. { if(issuerid != INVALID_PLAYER_ID) // podmínka, pokud nemá hráč co dělá újmu na zdraví neplatné ID. (Nevím, jak to přesně přeložit.) { if(VašeProměnná[playerid] == VašeProměnná[issuerid] ) // pokud proměnné obou hráčů souhlasí. Místo VašeProměnná se dejte Vaši proměnnou třeba pro zaměstnání nebo jiní. (GetPlayerTeam, ..) { new Float:hp; // vytvoříme si proměnnou pro hráčovo zdraví GetPlayerHealth(playerid, hp); // zjistíme si původní zdraví hráče, který přichází o životy SetPlayerHealth(playerid, hp); // nastavíme mu zpět přesný počet zdraví, který měl před ztrátou zdraví. } // uzavřeme otevřené { } // uzavřeme otevřené { return 1; // konec publicu } Když by jste třeba použili jak je: SetPlayerHealth(playerid, hp); toto: SetPlayerHealth(playerid, hp + amount); Tak to hráči nastaví zpět původní zdraví + ještě zdraví, které ztratil. Může se taky hodit pro anti-kill zónu u warpů. Stačí dat podmínku pokud je v daném radiusu: if(IsPlayerInRangeOfPoint(playerid,1, X, Y, Z )) // 1 - radius (u zón třeba 15.) X,Y,Z - pozice, odkud bude radius. (X, Y a Z si můžeme představit jako střed kruhu.) Konečná podoba: public OnPlayerTakeDamage(playerid, issuerid, Float: amount, weaponid) { if(issuerid != INVALID_PLAYER_ID) { if ( VašeProměnná[playerid] == VašeProměnná [issuerid] ) { new Float:hp; GetPlayerHealth(playerid, hp); SetPlayerHealth(playerid, hp); } } return 1; } Doufám, že se bude hodit. Pokud najdete chybu, prosím opravte mě. Děkuji. 3 Link to comment Share on other sites More sharing options...
EEEE 8 Odesláno: 23. Říjen, 2012 Share Odesláno: 23. Říjen, 2012 Teamkill sa dá obmedziť jedným riadkom, tak načo takýto script ? http://wiki.sa-mp.com/wiki/SetPlayerTeam 1 Link to comment Share on other sites More sharing options...
Hrb™ 48 Odesláno: 23. Říjen, 2012 Author Share Odesláno: 23. Říjen, 2012 O tom vím taky, ale co když mu chceš k tomu napsat zprávu nebo udělat tu zónu u warpů? A navíc, u toho co si poslal tě sice nemůže zabít zbraněmi, ale nožem ano a že by toto byl nějaký velký script, tak to mi nepříjde. Link to comment Share on other sites More sharing options...
EEEE 8 Odesláno: 23. Říjen, 2012 Share Odesláno: 23. Říjen, 2012 Zmienil som niečo o tom, že ten script je veľký ? Link to comment Share on other sites More sharing options...
Hrb™ 48 Odesláno: 23. Říjen, 2012 Author Share Odesláno: 23. Říjen, 2012 Teamkill sa dá obmedziť jedným riadkom, tak načo takýto script ? Přebral jsem si to tak, že si narážel na velikost scriptu. Link to comment Share on other sites More sharing options...
Petr 44 Odesláno: 2. Listopad, 2012 Share Odesláno: 2. Listopad, 2012 Chyba new Float:hp; GetPlayerHealth(playerid, hp); » SetPlayerHealth(playerid, hp); « Link to comment Share on other sites More sharing options...
Hrb™ 48 Odesláno: 2. Listopad, 2012 Author Share Odesláno: 2. Listopad, 2012 Chyba new Float:hp; GetPlayerHealth(playerid, hp); » SetPlayerHealth(playerid, hp); « A jaká prosím? Nic nevidím. Link to comment Share on other sites More sharing options...
Petr 44 Odesláno: 2. Listopad, 2012 Share Odesláno: 2. Listopad, 2012 No, v GetPlayerHealth zjistíš hodnotu HP a tu nastavíš, takže se ta hodnota nezmění, výše píšeš toto: "// nastavíme mu zpět přesný počet zdraví, který měl před ztrátou zdraví." což je blbost Mělo by to být tak, jak jsi psal pak pár řádků pod tím: SetPlayerHealth(playerid, hp + amount); Link to comment Share on other sites More sharing options...
Hrb™ 48 Odesláno: 2. Listopad, 2012 Author Share Odesláno: 2. Listopad, 2012 Taky jsem si to nejdříve myslel, ale amount je v tomto případě počet zdraví který ztratil. Takže když dáš to, co si psal, tak mu to vrátí jeho zdraví co měl před zásahem + zdraví na víc, které při tom ztratil. Testoval jsem to a je to tak. Link to comment Share on other sites More sharing options...
Petr 44 Odesláno: 2. Listopad, 2012 Share Odesláno: 2. Listopad, 2012 Tak jsem to vyzkoušel na localhostu a máš pravdu. Link to comment Share on other sites More sharing options...
P@trovic_ 0 Odesláno: 4. Listopad, 2012 Share Odesláno: 4. Listopad, 2012 ono by sa to dalo použiť ako admin príkaz ne? D Link to comment Share on other sites More sharing options...
Hrb™ 48 Odesláno: 4. Listopad, 2012 Author Share Odesláno: 4. Listopad, 2012 Admin příkaz? Jak to myslíš? Link to comment Share on other sites More sharing options...
P@trovic_ 0 Odesláno: 4. Listopad, 2012 Share Odesláno: 4. Listopad, 2012 že hračovy nastaví aby nikoho nemohol zraniť Link to comment Share on other sites More sharing options...
Petr 44 Odesláno: 4. Listopad, 2012 Share Odesláno: 4. Listopad, 2012 že hračovy nastaví aby nikoho nemohol zraniť SetPlayerHealth(playerid, 9999999); a nemusíš se srát s celým scriptem. Link to comment Share on other sites More sharing options...
P@trovic_ 0 Odesláno: 4. Listopad, 2012 Share Odesláno: 4. Listopad, 2012 SetPlayerHealth(playerid, 9999999); a nemusíš se srát s celým scriptem. to mu nastaví životy ... Link to comment Share on other sites More sharing options...
Hrb™ 48 Odesláno: 4. Listopad, 2012 Author Share Odesláno: 4. Listopad, 2012 to mu nastaví životy ... No však. Ale to mu nastaví tak velký životy, že bude chvilu trvat než ho někdo zabije. Link to comment Share on other sites More sharing options...
Petr 44 Odesláno: 4. Listopad, 2012 Share Odesláno: 4. Listopad, 2012 Počkat, on chtěl, aby on nikoho nemohl zabít. Jo tak to bys musel přes ten script v prvním příspěvku Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now