Re: [ TuT ] /pmignore , /pm , /pmunignore

Sekcia určená pre programovací jazyk pawn.

[ TuT ] /pmignore , /pm , /pmunignore

Poslaťod Radiss » Pon 07. Máj 2012 19:12:54

Dobrý večer, dnes přináším další TuToriál a to na příkazy /pm , /pmignore a /pmunignore
takže
Nahoru do módu či FS
Kód: Vybrať všetko
#define COLOR_RED 0xFF0000AA //DEFINICE BARVY
#define COLOR_YELLOW 0xFFFF00AA//Definice barvy
#define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, "")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1//definice DCMD

A
Kód: Vybrať všetko
new PM[MAX_PLAYERS];//Definice proměnné.

Nyní kdekoliv mimo public :
Kód: Vybrať všetko
stock PlayerName(playerid)
{
new pname[MAX_PLAYER_NAME];//definice PlayerName
GetPlayerName(playerid, pname, MAX_PLAYER_NAME);
return pname;
}

A Teď do :
Kód: Vybrať všetko
public OnPlayerCommandText(playerid, cmdtext[])
{
dcmd(pm,2,cmdtext);
dcmd(pmignore,8,cmdtext);
dcmd(pmunignore,10,cmdtext);
return 0;
}

A Třeba pod to :
Kód: Vybrať všetko
dcmd_pm(playerid,params[])
{
new id, duvod[64]; //definice textu a ID ( duvod proto , že jsem to použival i při AdminScriptu a zvykl jsem si nato :D)
new str[128]; //definice stringu
if(!IsPlayerConnected(id)) return SendClientMessage(playerid, 0xFF0000FF, "Hráč není na serveru!"); //pokud hrač není na serveru pošle zpráva

if(sscanf(params, "uz", id, duvod)) return SCM(playerid,0xFF0000AA,"Použití: /pm ID TEXT"); //pokud je něco zle -||-
if(PM[id] == 1) return SCM(playerid,COLOR_RED,"Hráč má vypnutý příjem PM Zpráva!"); // Toto je /pmignore. Takže pokud má hráč Ingore tak zprávu neodešle
else //ale
if(PM[id] == 0) //pokud nemá ignore pošle PM
format(str,128,"New PM od %s --> %s" ,PlayerName(playerid), duvod); // a tadyk to je :)
SendClientMessage(id,0xFFEE00FF,str);
format(str,128,"PM pro %s --> %s",PlayerName(id), duvod); // ... :)
SendClientMessage(playerid,0xFFEE00FF,str);
return 1;
}

Třebas pod to :
Kód: Vybrať všetko
dcmd_pmignore(playerid, params[])
{
#pragma unused params
if(PM[playerid] == 1) return SCM(playerid,COLOR_RED, "Již máš PMIGNORE !!");
else
if(PM[playerid] == 0)
PM[playerid] == 1;
SCM(playerid,COLOR_RED,"PMignore aktivováno!");
return 1;
}

A Znovu pod to :
Kód: Vybrať všetko
dcmd_pmunignore(playerid, params[])
{
#pragma unused params
if(PM[playerid] == 0) return SCM(playerid, COLOR_RED,"Naco deaktivovat PMignore když jej nemáš activováno ? /pmignore");
else
if(PM[playerid] == 1)
pm[playerid] = 0;
return 1;
}

Pokud jste našli chybu nebo vám něco nejde --> NAPIŠTE DO KOMENTŮ :) !
Jinak prosím hodnoťte , komentujte , NENADÁVEJTE ! Bitch please :D .:)
Naposledy upravil Radiss dňa Pia 11. Máj 2012 19:35:38, celkovo upravené 1
Radiss
Nováčik
Nováčik
 
Príspevky: 37
Registrovaný: Ned 25. Dec 2011 21:53:14

Re: [ TuT ] /pmignore , /pm , /pmunignore

Poslaťod [W]_h1sp3_[R] » Uto 08. Máj 2012 7:50:37

public OnPlayerCommandText(playerid, cmdtext[])
{
dcmd(pm,2,cmdtext);
dcmd(pmignore,8,cmdtext);
dcmd/pmunignore,10,cmdtext); ???
return 0;
}


Já pawnu teda nerozumim ale, když sem se nato díval nemělo by tam bejt místo / závorka nebo _ ?
Obrázok
Obrázok užívateľa
[W]_h1sp3_[R]
Junior
Junior
 
Príspevky: 237
Registrovaný: Sob 30. Okt 2010 11:43:30

Re: [ TuT ] /pmignore , /pm , /pmunignore

Poslaťod Michael » Uto 08. Máj 2012 9:27:20

dcmd(pmunignore,10,cmdtext);

Takhle to má být
Obrázok užívateľa
Michael
Senior
Senior
 
Príspevky: 843
Registrovaný: Sob 02. Apr 2011 9:07:35

Re: [ TuT ] /pmignore , /pm , /pmunignore

Poslaťod Radiss » Str 09. Máj 2012 19:42:34

Opraveno sry ! :)
Radiss
Nováčik
Nováčik
 
Príspevky: 37
Registrovaný: Ned 25. Dec 2011 21:53:14

Re: [ TuT ] /pmignore , /pm , /pmunignore

Poslaťod Michael » Štv 10. Máj 2012 15:25:14

A když už jsme u toho dcmd, nahoru napiš

Kód: Vybrať všetko
#define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, "")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1


//Edit: Definice dcmd
Obrázok užívateľa
Michael
Senior
Senior
 
Príspevky: 843
Registrovaný: Sob 02. Apr 2011 9:07:35

Re: [ TuT ] /pmignore , /pm , /pmunignore

Poslaťod Radiss » Pia 11. Máj 2012 19:35:05

Ou :D Taková chyba  :o  :( -- Opraveno !
Radiss
Nováčik
Nováčik
 
Príspevky: 37
Registrovaný: Ned 25. Dec 2011 21:53:14

Re: [ TuT ] /pmignore , /pm , /pmunignore

Poslaťod QWER » Pia 11. Máj 2012 21:00:37

chýba sscanf
Všetci sú netopieri iba ja som Batman
Obrázok užívateľa
QWER
Nováčik
Nováčik
 
Príspevky: 65
Registrovaný: Pia 02. Jan 2009 7:49:32

Re: [ TuT ] /pmignore , /pm , /pmunignore

Poslaťod Spencer » Ned 03. Jún 2012 14:14:21

Radiss píše:dcmd_pmignore(playerid, params[])
{
#pragma unused params
if(PM[playerid] == 1)
{
PM[playerid] == 0;
SCM(playerid,COLOR_RED,"PMignore deaktivováno!");
}
else
{
PM[playerid] == 1;
SCM(playerid,COLOR_RED,"PMignore aktivováno!");
}
return 1;
}


Chýbali ti zátvorky a kľudne to stačí dať do 1 príkazu.
Spencer
Nováčik
Nováčik
 
Príspevky: 6
Registrovaný: Pia 01. Jún 2012 16:16:05

Re: [ TuT ] /pmignore , /pm , /pmunignore

Poslaťod FireMaN[ » Uto 12. Jún 2012 6:07:01

Až na tie chyby...ale dobrý TuT ;)
Obrázok
Obrázok užívateľa
FireMaN[
Nováčik
Nováčik
 
Príspevky: 117
Registrovaný: Str 06. Jún 2012 16:07:44

Re: [ TuT ] /pmignore , /pm , /pmunignore

Poslaťod KarTooN » Štv 14. Jún 2012 8:46:37

Kód: Vybrať všetko
else //ale
if(PM[id] == 0)

else neznamená "ale"... else znamená "nebo" a máš tam else if, takže to znamená "nebo pokud"
v tvém případě stačilo else a ne else if, protože tam jiná hodnota nemohla být... pokud by bylo třeba ale

if(Podminka == 1)//pokud je hodnota 1
{
}
else if(Podminka == 2)//nebo pokud je hodnota 2
{
}
else//nebo - pokud není hodnota 1,2... tj. pokud má jakékoliv jiné číslo, než 1, nebo 2
{
}
Obrázok
KarTooN
Super člen
Super člen
 
Príspevky: 1320
Registrovaný: Pon 27. Jún 2011 9:49:07
Bydlisko: Opava
Obľúbený server?: PTPM

Re: [ TuT ] /pmignore , /pm , /pmunignore

Poslaťod .MGT]Solitaire » Štv 09. Máj 2013 19:39:25

Pekne vypracovane. Vyuzijem na amaterskom servery ;) taky se zacinam ucit pawn ;)
Obrázok
Obrázok užívateľa
.MGT]Solitaire
Vo výslužbe
Vo výslužbe
 
Príspevky: 696
Registrovaný: Pon 29. Apr 2013 16:59:45

Re: Re: [ TuT ] /pmignore , /pm <ID> <TEXT> , /pmunignore

Poslaťod TheRohlikar » Sob 18. Máj 2013 12:48:16

Zbytečné dva příkazy - "/pmignore" a "/pmuingore".. |-(

+

dcmd_pmignore(playerid, params[])
{
#pragma unused params
if(PM[playerid] == 1) return SCM(playerid,COLOR_RED, "Již máš PMIGNORE !!");
else
if(PM[playerid] == 0)
PM[playerid] == 1;
SCM(playerid,COLOR_RED,"PMignore aktivováno!");
return 1;
}


dcmd_pmunignore(playerid, params[])
{
#pragma unused params
if(PM[playerid] == 0) return SCM(playerid, COLOR_RED,"Naco deaktivovat PMignore když jej nemáš activováno ? /pmignore");
else
if(PM[playerid] == 1)
pm[playerid] = 0;
return 1;
}
TheRohlikar
Junior
Junior
 
Príspevky: 260
Registrovaný: Pon 11. Júl 2011 8:55:27
Bydlisko: Borek
Obľúbený server?: PTPM


Späť na Pawn

Kto je on-line

Užívatelia prezerajúci fórum: Žiadny registrovaný užívateľ nie je prítomný a 1 hosť