Szerző Téma: Kill_Streak avagy egy kis matek a 3-mal és 5-tel osztható számok világából  (Megtekintve 1504 alkalommal)

+4 Show voters
Hát elsõnek is lássuk a kódot:
[pawn]#include <a_samp>
#define hejho(%0) ((%0) + ((%0) * 2) / 3) //Mivel nem találtam neki értelmes nevet ezt adtam neki \"hejho\" :D.
new
KillingSpree[MAX_PLAYERS];
public
OnPlayerConnect(playerid)
{
KillingSpree[playerid] = 0;
return 1;
}
public
OnPlayerDeath(playerid, killerid, reason)
{
KillingSpree[playerid] = 0;
if(killerid != INVALID_PLAYER_ID)
{
   KillingSpree[killerid]++;
   if(!(KillingSpree[killerid] % 3) && KillingSpree[killerid] != 0)
   {
      new
         score = hejho(KillingSpree[killerid]),
         money = score * 1000,
         str[128];
      GetPlayerName(killerid, str, sizeof str);
      format(str, sizeof str, \"Kill Streak!! %s  Kills: %d | Jutalma: %d$ pénz + %d Score\", str, KillingSpree[killerid], money, score);
      SendClientMessageToAll(0xFF0606FF, str);
      GivePlayerMoney(killerid, money);
      SetPlayerScore(killerid, score);
   }
}
return 1;
}[/pawn]
Hát ez megvolna, 34 sor, remélem átláthatóra sikeredett.
Itt egy kis leírás errõl, mi is lenne valójában:
A szkript lényege hogy 3 ölésenként szöveget ír ki a chat-be és ennek megfelelõen jutalmazza a játékost.
Ha tehát egy játékos elér egy adott Kill Streak-et 3-at, 6-ot, 9-et, és így tovább akkor ennek megfelelõen 5, 10, 15, score pontot és 5000, 10000, 15000, ... pénzt ad.
Most itt jött képbe egy apró macro utasítás mert valahogyan a 3 kill-bõl 5-öt kellett varázsolni a 6 killbõl 10-et, 9 killbõl 15-öt és így tovább.
A macro utasítás ez lenne értelmes név hiányában \"hejho\"-nak neveztem el. Bocsánat érte.
[pawn]#define hejho(%0) ((%0) + ((%0) * 2) / 3)[/pawn]
Röviden e 3 eset matematikai leírásával tudnám szemléltetni mûködését:
3 + ((3 * 2)  / 3) = 5
6 + ((6 * 2)  / 3) = 10
9 + ((9 * 2)  / 3) = 15
Ez alapján lehet a 3-mal osztható számokból 5-tel osztható számokat varázsolni.
Így sikerült a score pontokat létrehozni, a pénz jutalom ezek után 1000-el való szorzással kapható meg.
Remélem e kis leírás/Fs segít pár emberkének hogyan alkamazzunk egy kis logikát szkriptünkben ha ilyen periodikusan (szakaszosan) ismétlõdõ dologgal találkozunk.
E kis szösszenetet instant [FS]Killstreak szkriptje miatt írtam.
« Utoljára szerkesztve: 2011. november 12. - 18:22:11 írta APC »

Nem elérhető instant

  • 2778
  • ZzzzzZ
    • Profil megtekintése
Kill_Streak avagy egy kis matek a 3-mal és 5-tel osztható számok világából
« Válasz #1 Dátum: 2011. szeptember 05. - 21:27:23 »
0 Show voters
jó lett

Kill_Streak avagy egy kis matek a 3-mal és 5-tel osztható számok világából
« Válasz #2 Dátum: 2011. szeptember 07. - 10:34:30 »
0 Show voters
Szép lett, szerintem felhasználom

Nem elérhető Norby

  • 1575
    • Profil megtekintése
Kill_Streak avagy egy kis matek a 3-mal és 5-tel osztható számok világából
« Válasz #3 Dátum: 2011. szeptember 07. - 13:58:07 »
0 Show voters
Nagyon jó lett :)

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal