Balkan SA:MP

PAWN skriptanje, gamemodovi, filterskripte, include fajlovi, mape, pluginovi => Razgovor u vezi PAWN - skriptanja => Temu započeo: ShadowNET poslato Februar 14, 2016, 13:08:48 POSLE PODNE

Naslov: [SAVET] Broj Telefona
Poruka od: ShadowNET poslato Februar 14, 2016, 13:08:48 POSLE PODNE
O kakvom savjetu se radi:Pravim system mobilnih telefona i sad napravio sam da kada igrac u marketu kupi mobilni dobije dobije i broj telefona (random 6 sefara) koje odma spremam u enum.
Detaljan opis savjeta:E kod komande /call zelim da se igrac poziva po broju telefona.Kako to da uradim?
Komentar:Ako pozivam preko ID onda samo napravim varijablu i GetPlayerName i ostale provere i onda zovem.Ali kako da pronalazi igraca po broju telefona...
Naslov: Odg: [SAVET] Broj Telefona
Poruka od: K ROSE poslato Februar 14, 2016, 13:23:22 POSLE PODNE
[pawn]new string[128],sendername[MAX_PLAYER_NAME],phonenumb,giveplayerid;
      GetPlayerName(playerid, sendername,sizeof(sendername));
      if(sscanf(params,"d",phonenumb))
      {
         SCM(playerid, COLOR_GRAD2, "Koriscenje: /call [BrojTelefona]");
         SCM(playerid, COLOR_GRAD2, "SAVJET: /calllist (za listu vaznih brojeva)");
         return 1;
      }[/pawn]


[pawn]foreach(Player, i)
      {
         if(IsPlayerConnected(i))
         {
            if(PlayerInfo[pPnumber] == phonenumb && phonenumb != 0)
            {
               giveplayerid = i;
               Mobile[playerid] = giveplayerid;
               if(giveplayerid != INVALID_PLAYER_ID)
               {
                  if(PhoneOnline[giveplayerid] > 0)
                  {
                     SCM(playerid, COLOR_GREY, "Pozvani korisnik trenutno nije dostupan ili je iskljucio telefon.");
                     return 1;
                  }
                  if(Mobile[giveplayerid] == 255)
                  {
                     format(string, sizeof(string), "Vas mobilni telefon zvoni, kucajte (/pickup) da bi se javili CallerID: %s", sendername);
                     SCM(giveplayerid, COLOR_LIGHTBLUE, string);
                     GetPlayerName(giveplayerid, sendername, sizeof(sendername));
                     RingTone[giveplayerid] = 10;
                     format(string, sizeof(string), "* %s'ov telefon zvoni.", sendername);
                     SCM(playerid, COLOR_WHITE, "SAVJET: Koristite T da bi pricali preko telefona, kucajte /hangup da bi prekinuli.");
                     ProxDetector(30.0, i, string, COLOR_CHAT1,COLOR_CHAT2,COLOR_CHAT3,COLOR_CHAT4,COLOR_CHAT5);
                     CellTime[playerid] = 1;
                     return 1;
                  }
               }
            }
         }
      }
      SCM(playerid, TEAM_CYAN_COLOR, "Birate nepostojeci broj, pozovite sluzbu...");
   }
   return 1;[/pawn]


Eto ti pa prilagodi svom modu.
Naslov: Odg: [SAVET] Broj Telefona
Poruka od: ShadowNET poslato Februar 14, 2016, 13:53:29 POSLE PODNE
Nemogu bas da se snadjem u ovom tvom kudu.
Moze li mi neko dati primer kako se radi...

Ovko sam ja nesto uradio do sada...
ALi ne znam dalje
[pawn]CMD:call(playerid, params[])
{   //Provere pozivaoca
   if(!IsPlayerConnected(playerid)) return SCM(playerid, Error, "Prvo se konektuj na server");
   if(PlayerInfo[playerid][pLogin] == 0) return SCM(playerid, Error, "PRvo se uloguj na server");
   if(PlayerInfo[playerid][pTelefon] == 0) return SCM(playerid, Error, "Nemas Mobilni telefon.Idi u market i kupi...");
   if(PlayerInfo[playerid][pKredit] < 1) return SCM(playerid , Error, "Nemas dovoljno kredita da obavis poziv");
   //Varijable
   new pozivalac[MAX_PLAYER_NAME], primalac[MAX_PLAYER_NAME], idprimaoca, brojprimaoca, brojpozivaoca, poruka[100];
   //Proveravam pravilnost komande
   if(sscanf(params, "d", brojprimaoca)) return SCM(playerid, Siva, "[Greska] Koristite: {DD6F00}/call [Broj Telefona]");
   //Definisem varijable
   GetPlayerName(playerid, pozivalac, sizeof(pozivalac));
   GetPlayerName(idprimaoca, primalac, sizeof(primalac));
   if(brojprimaoca == PlayerInfo[idprimaoca][pBrojTelefona])[/pawn]
Naslov: Odg: [SAVET] Broj Telefona
Poruka od: K ROSE poslato Februar 14, 2016, 14:16:30 POSLE PODNE
Kako se ne možeš snaci ako si "skripter"
Kod je jednostavan, i ne vjerujem da ima ikakav bolji primjer od navedenog, i ako ima opet je to sve isto.
Naslov: Odg: [SAVET] Broj Telefona
Poruka od: ShadowNET poslato Februar 14, 2016, 14:27:57 POSLE PODNE
Netrazim ceo kod niti nista posebno samo pojasnjenje kako da pomocu broja telefona pronalazim id igraca...
Naslov: Odg: [SAVET] Broj Telefona
Poruka od: K ROSE poslato Februar 14, 2016, 14:37:50 POSLE PODNE
Foreach ide kroz sve online igrace na serveru, dakle ovdje imas provjeru

[pawn]if(PlayerInfo[pPnumber] == phonenumb && phonenumb != 0)[/pawn]

Ako je igracev broj jednak vrijednosti koju si ukucao onda se poziva taj broj i sanjim mozes da pricas.

Sada u dole navedenom primjeru iz GetPlayerName funkcije uzima ID od korisnika ciji si broj ukucao.

Sada ispod koristi ovo:

[pawn]new string[28], giveplayerid, giveplayer[MAX_PLAYER_NAME];
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
format(string, sizeof(string), "Igracev id kojeg ste pozvali je %s",giveplayerid);
SCM(playerid, COLOR_ORANGE,string);[/pawn]

Dakle uz pomoc toga možeš da saznaš koji je igracev ID

Probaj skontati nešto i sam, procitaj uputstvo na wikipediji u vezi GetPlayerName
https://wiki.sa-mp.com/wiki/GetPlayerName
Naslov: Odg: [SAVET] Broj Telefona
Poruka od: [CH] Michael poslato Februar 14, 2016, 15:38:08 POSLE PODNE
napravis provjeru tog broja da prodje loop i tko ima taj broj ispise..