Gta San Andreas MultiPlayer (samp) HUN
Navigation
     
Account
Felhasznlnv:

Jelsz:
SgSg
Regisztrci
Elfelejtettem a jelszt
     
Kp
Szerver
Legyen ennek a weboldalnak sajt samp szervere?

Igen
Nem
Szavazs llsa
Lezrt szavazsok
     
Friss

Utols mdosts
2013 mj. 19.
12:17

 

     
Ms weblapok
 SA:MP Frum
SA:MP Wiki
Google

     

PAWN Eszkzk
     
Paramterek(sscanf s dcmd)

Hali
Most lerom nektek hogyan kell paramteres parancsokat kszteni. (Pl.: /parancs [playerid] vagy /parancs [szveg] stb.)

Ezeket a parancsokat strtokkal vagy sscanf-al lehet megoldani
n az sscanfot s dcmd-t ajnlom mert pofon egyszer

Elszr is a pawnoba be kell ezt illesztennk
s ezt is (kb a mod elejre):

#define dcmd(%1,%2,%3) if (!strcmp((%3)[1], #%1, true, (%2)) && ((((%3)[(%2) + 1] == '\0') && (dcmd_%1(playerid, ""))) || (((%3)[(%2) + 1] == ' ') && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1

Majd ezutn egy j sorba rjuk

dcmd_heal(playerid, params[])
{
new giveplayerid; //ez lesz a msik jtkos
if (sscanf(params, "u", giveplayerid)) SendClientMessage(playerid, 0xFF0000AA, "Hasznlat: /heal [playerid]");
else if (giveplayerid == INVALID_PLAYER_ID) SendClientMessage(playerid, 0xFF0000AA, "Hiba: Nincs ilyen jtkos!");
else{
new name[MAX_PLAYER_NAME],string[200];
GetPlayerName(playerid, name, sizeof(name));
format(string, sizeof string, "%s feltlttte valakinek az lett", name);
   SendClientMessageToAll(0xFF0000AA,string);
                SetPlayerHealth(playerid, 100);
}
return 1;
}
 
Magyarzat: 
if (sscanf(params, "u", giveplayerid)) - A giveplayerid-t rtesszk az U betre azaz egy jtkosid-re
else if (giveplayerid == INVALID_PLAYER_ID) - Hogyha a msik jtkos azaz a giveplayerid nem ltezik

Ilyenkor most a giveplayerid lesz mindig a msik jtkos s a playerid pedig az aki berta a /heal parancsot

pl.: SendClientMessage(giveplayerid, szn, "Cs"); - Ilyenkor annak a jtkosnak kldi el akinek bertad a parancs utn az id-jt
SendClientMessage(playerid, szin, "Kldtl valakinek egy Cs zenetet"); - Ezt pedig annak a jtkosnak rja ki aki berta a parancsot

Pirossal kijelltem az U bett mert azt t lehet rni msra ha nem pont jtkos id-t akarsz, hanem plul egy szmot vagy szveget

Betk/karakterek Adat tpus Plda
d Egsz szm Pnz
i Egsz szm Pnz
c Karakter Egy karakter
u Jtkos ID / Nv Jtkos
s Szveg / karakterlnc  Brmilyen hosszsg szveg pl.: /elad [zenet]
h Hexa szm Szn
x Hexa szm Szn
f Float Koordinta
z Indok Pldul egy /ban vagy /kick parancsnl az indok
 

Ha megvagy akkor ezutn az OnPlayerCommandText-hez rakd a return 0; -val egyvonalba rakjuk ezt

dcmd(heal, 4, cmdtext);

Az a piros ngyes azt jelzi hogy a parancs 4 betbl ll
Teht mondjuk egy REPORT parancssnl gy nzne ki: dcmd(report, 6, cmdtext);
Mivel a "report" sz 6 betbl ll


s itt a vgeredmny: KATT


Pldul egy PM-nl ([playerid] [zenet])

dcmd_pm(playerid, params[])
{
new giveplayerid, mess[200]; //ez lesz a msik jtkos
if (sscanf(params, "us", giveplayerid, mess)) SendClientMessage(playerid, 0xFF0000AA, "Hasznlat: /pm [playerid] [zenet]");
else if (giveplayerid == INVALID_PLAYER_ID) SendClientMessage(playerid, 0xFF0000AA, "Hiba: Nincs ilyen jtkos!");
else{
new name[MAX_PLAYER_NAME],string[200];
GetPlayerName(playerid, name, sizeof(name));
format(string, sizeof string, "[PM]%s:%s", name, mess);
   SendClientMessage(giveplayerid, 0xFF0000AA,string);
   SendClientMessage(playerid, 0xFF0000AA, "PM elkldve!");
}
return 1;
}

s persze le ne felejtsk az onplayercommandtext-nl a:    dcmd(pm, 2, cmdtext);  -et
Magyarzat: 
 

US - Az U a jtkos id, az S pedig a szveg

Remlem segtettem ;)

Tltsd le a nagy pldt itt

 

4 hozzszls
Idzet
2011.03.16. 13:55
Maffia

Hello..Azt meglehet oldani hogy kiirja hogy kit healeztl fel???Elre is ksz

 

Idzet
2010.08.24. 21:53
ELEM

 Kszi a vlaszt :D

Idzet
2010.08.24. 18:22
maarkmaki

 Rcon admin:

dcmd_heal(playerid, params[])

{
new giveplayerid; //ez lesz a msik jtkos
if (sscanf(params, "u", giveplayerid)) SendClientMessage(playerid, 0xFF0000AA, "Hasznlat: /heal [playerid]");
else if (giveplayerid == INVALID_PLAYER_ID) SendClientMessage(playerid, 0xFF0000AA, "Hiba: Nincs ilyen jtkos!");
else{
                if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, 0xFF0000AA, "Nem vagy admin!");
new name[MAX_PLAYER_NAME],string[200];
GetPlayerName(playerid, name, sizeof(name));
format(string, sizeof string, "%s feltlttte valakinek az lett", name);
   SendClientMessageToAll(0xFF0000AA,string);
}
return 1;
}
if(!IsPlayerAdmin(playerid)) - Ha NEM admin (Felkiltjelet ne feledjtek)

Csak egy bizonyos gteam (Pl.: Van 2 csapat tegyk fel, TEAM_EGY, TEAM_KETTO)
s ezt akkor csak a TEAM_EGY hasznlhatja

dcmd_heal(playerid, params[])
{
new giveplayerid; //ez lesz a msik jtkos
if (sscanf(params, "u", giveplayerid)) SendClientMessage(playerid, 0xFF0000AA, "Hasznlat: /heal [playerid]");
else if (giveplayerid == INVALID_PLAYER_ID) SendClientMessage(playerid, 0xFF0000AA, "Hiba: Nincs ilyen jtkos!");
else{
                if(gTeam[playerid] != TEAM_EGY) return SendClientMessage(playerid, 0xFF0000AA, "Nem vagy a TEAM_EGY csapatban!");
new name[MAX_PLAYER_NAME],string[200];
GetPlayerName(playerid, name, sizeof(name));
format(string, sizeof string, "%s feltlttte valakinek az lett", name);
   SendClientMessageToAll(0xFF0000AA,string);
}
return 1;
}

if(gTeam[playerid] != TEAM_EGY) - Hogy ha a jtkos NEM a TEAM_EGY csapatban van

if(gTeam[playerid] == TEAM_EGY) - Hogy ha a jkos a TeAM_EGY csapatban van
if(gTeam[playerid] == TEAM_EGY || gTeam[playerid] == TEAM_KETTO) - Hogyha a jtkos a TEAM_EGY vagy a TEAM_KETTO csapatban van

Idzet
2010.08.24. 16:17
ELEM

 s olyat hogy lehet, hogy egy parancsot csak admin/gTeam tudja hasznlni, pl a health...

     
Nzettsg
Induls: 2010-02-26
     
PAWN/Szkriptek
     
Tutorialok
     
ra
     
Chat
Krlek, felesleges dolgokat ne rj a chatbe!
Nv:

zenet:
:)) :) :@ :? :(( :o :D ;) 8o 8p 8) 8| :( :'( ;D :$
     

Elkészítem születési horoszkópod és ajándék 3 éves elõrejelzésed. Utána szóban minden kérdésedet megbeszéljük! Kattints    *****    Könyves oldal - egy jó könyv, elrepít bárhová - Könyves oldal    *****    20 éve jelent meg a Nintendo DS! Emlékezzünk meg ról, hisz olyan sok szép perccel ajándékozott meg minket a játékaival!    *****    Ha érdekelnek az animék,mangák,videojátékok, japán és holland nyelv és kultúra, akkor látogass el a személyes oldalamra.    *****    Dryvit, hõszigetelés! Vállaljuk családi házak, nyaralók és egyéb épületek homlokzati szigetelését! 0630/583-3168 Hívjon!    *****    Könyves oldal - Ágica Könyvtára - ahol megnézheted milyen könyveim vannak, miket olvasok, mik a terveim...    *****    Megtörtént Bûnügyekkel foglalkozó oldal - magyar és külföldi esetek.    *****    Why do all the monsters come out at night? - Rose Harbor, a város, ahol nem a természetfeletti a legfõbb titok - FRPG    *****    A boroszkányok gyorsan megtanulják... Minden mágia megköveteli a maga árát. De vajon mekkora lehet ez az ár? - FRPG    *****    Alkosd meg a saját karaktered, és irányítsd a sorsát! Vajon képes lenne túlélni egy ilyen titkokkal teli helyen? - FRPG    *****    Mindig tudnod kell, melyik kikötõ felé tartasz. - ROSE HARBOR, a mi városunk - FRPG    *****    Akad mindannyijukban valami közös, valami ide vezette õket, a delaware-i aprócska kikötõvárosba... - FRPG    *****    boroszkány, vérfarkas, alakváltó, démon és angyal... szavak, amik mind jelentenek valamit - csatlakozz közénk - FRPG    *****    Why do all the monsters come out at night? - Rose Harbor, a város, ahol nem a természetfeletti a legfõbb titok - FRPG    *****    why do all monsters come out at night - FRPG - Csatlakozz közénk! - Írj, és éld át a kalandokat!    *****    CRIMECASESNIGHT - Igazi Bûntényekkel foglalkozó oldal    *****    Figyelem, figyelem! A második vágányra karácsonyi mese érkezett! Mesés karácsonyt kíván mindenkinek: a Mesetáros    *****    10 éves a Haikyuu!! Ennek alkalmából részletes elemzést olvashatsz az anime elsõ évadáról az Anime Odyssey blogban!    *****    Ismerd meg az F-Zero sorozatot, a Nintendo legdinamikusabb versenyjáték-szériáját! Folyamatosan bõvülõ tartalom.    *****    Advent a Mesetárban! Téli és karácsonyi mesék és színezõk várnak! Nézzetek be hozzánk!