Zaloguj się by uzyskać pełen dostęp. Nie masz jeszcze konta? Założ je już teraz w kilka sekund.

Wysłany: 2013-03-10, 16:47


Sillence







Wiek: 26
Na forum: 5157 dni
Posty: 1514
Nick w MP: Sillence

Piwa: 1517

Respekt: 416,3
Respekt: 416,3

Siemka zrobi?em sobie cmd mute:
Kod:

Cuted by Kopcioo


Nie jest ona do ko?ca dopracowana, ale nie dzia?a mi pow?d a mianowicie jak wpisuj? "za spam" to zawsze wyskakuje mi cyfra 0 ? Czym to mo?e by? spowodowane ? Piwa :)

Ostatnio zmieniony przez Sillence 2013-03-11, 19:36, w całości zmieniany 1 raz  
Postaw piwo autorowi tego posta
 

 
Wysłany: 2013-03-10, 16:56


Combacior







Wiek: 29
Na forum: 5795 dni
Posty: 1516

Piwa: 2161

Respekt: 1060
Respekt: 1060

Ostrzeżeń: 20%
Formatujesz pow?d jako strval (tzn. integer, tzn. liczba) a pow?d nie jest liczb?, tylko stringiem (ci?giem znak?w). Ci?g znak?w formatujesz jako %s, a nie jako %d co mo?na zauwa?y? jako b??d. Drugi b??d to jest

Kod:

tmp = strtok(cmdtext, idx);
powod = strval(tmp);


Sformatuj tablic? powod poprawnie, lub nie formatuj jej w og?le i jako parametr pow?d daj tmp.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2013-03-10, 16:59


Sillence







Wiek: 26
Na forum: 5157 dni
Posty: 1514
Nick w MP: Sillence

Piwa: 1517

Respekt: 416,3
Respekt: 416,3

Ca?y czas myli mi si? to "%s %d"itp... ;) Ale i tak dzi?ki ju? dzia?a :) A teraz ju? nie b?d? zak?ada? owego tematu jak zrobi? aby w czasie by?a blokada Liter od A do Z tylko Cyfry :)

Postaw piwo autorowi tego posta
 

 
Wysłany: 2013-03-10, 19:06


Combacior







Wiek: 29
Na forum: 5795 dni
Posty: 1516

Piwa: 2161

Respekt: 1060
Respekt: 1060

Ostrzeżeń: 20%
Kod:

stock IsNumeric(const string[])
{
new length=strlen(string);
if(length==0) return false;
for (new i = 0; i < length; i++)
{
if
(
(string[i] > '9' || string[i] < '0' && string[i]!='-' && string[i]!='+') // Not a number,'+' or '-'
|| (string[i]=='-' && i!=0) // A '-' but not at first.
|| (string[i]=='+' && i!=0) // A '+' but not at first.
) return false;
}
if(length == 1 && (string[0]=='-' || string[0] == '+')) return false;
return true;
}


U?ycie

Kod:

if(!IsNumeric(jakastablica)) return print("tablica nie zawiera liczb");


Postaw piwo autorowi tego posta
 

 
Wysłany: 2013-03-10, 19:37


Sillence







Wiek: 26
Na forum: 5157 dni
Posty: 1514
Nick w MP: Sillence

Piwa: 1517

Respekt: 416,3
Respekt: 416,3

Ale nie wiem czemu musz? tablic? wpisa? w "", bo inaczej wyskakuje error a i tak nie dzia?a ;/

Postaw piwo autorowi tego posta
 

 
Wysłany: 2013-03-10, 19:40


IgrexolonO







Wiek: 34
Na forum: 6809 dni
Posty: 1386

Piwa: 1062

Respekt: 651,8
Respekt: 651,8Respekt: 651,8

"Kopcioo" napisał/a:

Ale nie wiem czemu musz? tablic? wpisa? w "", bo inaczej wyskakuje error a i tak nie dzia?a ;/


Kod:

if(isnumeric(text))


je?li wpiszesz " " zamiast tablicy, to deklarujesz jaki? tekst dla funkcji - nie tablice.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2013-03-10, 19:48


Sillence







Wiek: 26
Na forum: 5157 dni
Posty: 1514
Nick w MP: Sillence

Piwa: 1517

Respekt: 416,3
Respekt: 416,3

Ale wtedy wskakuje mi b??d:
Kod:

error 035: argument type mismatch (argument 1)


A robi? tak:
Kod:

if(IsNumeric(czas)){
.........
return 1;
}


Postaw piwo autorowi tego posta
 

 
Wysłany: 2013-03-10, 19:50


IgrexolonO







Wiek: 34
Na forum: 6809 dni
Posty: 1386

Piwa: 1062

Respekt: 651,8
Respekt: 651,8Respekt: 651,8

Kod:

stock IsNumeric( const szString[ ] )
{
if ( !szString[ 0 ] )
return false;

new
iLength = strlen( szString ),
i
;

if ( szString[ 0 ] == '-' && szString[ 1 ] )
i = 1;

for ( ; i < iLength; i++ )
{
if ( !( '0' <= szString[ i ] <= '9' ) )
return false;
}

return true;
}


Masz. Funkcja Combaciora do kosza.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2013-03-10, 19:52


Sillence







Wiek: 26
Na forum: 5157 dni
Posty: 1514
Nick w MP: Sillence

Piwa: 1517

Respekt: 416,3
Respekt: 416,3

Co dziwne dalej to samo...

Postaw piwo autorowi tego posta
 

 
Wysłany: 2013-03-10, 19:54


IgrexolonO







Wiek: 34
Na forum: 6809 dni
Posty: 1386

Piwa: 1062

Respekt: 651,8
Respekt: 651,8Respekt: 651,8

Kod:

public OnPlayerText(playerid, text[])
{
if(Bankmenu[playerid])
{
if(IsNumeric(text))
{
SendClientMessage(playerid,0,"Zbigniewie najdroszrzy m u j");
}
}
return 1;
}


Pami?taj o takich ?adnych dw?ch > [] przy "text".

Postaw piwo autorowi tego posta
 

 
Wysłany: 2013-03-10, 19:56


Sillence







Wiek: 26
Na forum: 5157 dni
Posty: 1514
Nick w MP: Sillence

Piwa: 1517

Respekt: 416,3
Respekt: 416,3

W onplayertext dzia?a ale ja chc? zrobi? w komendzie to ju? nie dzia?a.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2013-03-10, 19:57


IgrexolonO







Wiek: 34
Na forum: 6809 dni
Posty: 1386

Piwa: 1062

Respekt: 651,8
Respekt: 651,8Respekt: 651,8

"Kopcioo" napisał/a:

W onplayertext dzia?a ale ja chc? zrobi? w komendzie to ju? nie dzia?a.


:facepalm: No to poka? komende.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2013-03-10, 19:59


Sillence







Wiek: 26
Na forum: 5157 dni
Posty: 1514
Nick w MP: Sillence

Piwa: 1517

Respekt: 416,3
Respekt: 416,3

Zobacz nazw? tematu i 1 post.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2013-03-10, 20:16


Quis

Wszechwiedzący






Wiek: 31
Na forum: 5146 dni
Posty: 464
Nick w MP: Quis

Piwa: 1110

Respekt: 325
Respekt: 325Respekt: 325Respekt: 325

"czas" ma zdefiniowany jako int, nie tablica. Co mu da ta funkcja?

Spr?buj z takim warunkiem:
Kod:

if(czas <= 0)


Je?li kto? poda znak nie liczb?, to funkcja "strval" zamieni j? na 0.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2013-03-10, 20:25


Sillence







Wiek: 26
Na forum: 5157 dni
Posty: 1514
Nick w MP: Sillence

Piwa: 1517

Respekt: 416,3
Respekt: 416,3

Dzia?a teraz ale tak wygl?da ca?a cmd:
Kod:

if(strcmp(cmd, "/mute", true) == 0) {
new czas;
tmp = strtok(cmdtext, idx);
giveplayerid = strval(tmp);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_WHITE, "SERVER:/mute [id] [czas] [pow?d]");
return 1;
}
tmp = strtok(cmdtext, idx);
czas = strval(tmp);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_WHITE, "SERVER:/mute [id] [czas] [pow?d]");
return 1;
}
strmid(tmp, cmdtext, 8, strlen(cmdtext));
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_WHITE, "SERVER:/mute [id] [czas] [pow?d]");
return 1;
}
if (!IsPlayerConnected(giveplayerid)){
SendClientMessage(playerid, COLOR_WHITE, "Nie ma takiego gracza !");
return 1;
}
if(czas <= 0)
return SendClientMessage(playerid, COLOR_WHITE, "Nie poda?e? cyfry!");
new string[256];
format(string, sizeof(string), "Administrator %s uciszy? ci? na czas %d min za: %s",PlayerName(playerid), czas, tmp);
SendClientMessage(giveplayerid, CZ, string);
format(string, sizeof(string), "Administrator %s uciszy? gracza %s na czas %d min za: %s",PlayerName(playerid),PlayerName(giveplayerid), czas, tmp);
SendClientMessageToAll(CZ, string);
MuteTimer[playerid]= SetTimerEx("UnMute",czas*60000,0,"i",giveplayerid);
Muted[giveplayerid]=1;
return 1;
}

I teraz wszystko ?adnie wy?wietla, ale wy?wietla w powodzie, cyfr? jak? wpisa?em jako czas oraz pow?d czyli normalny tekst. Dlaczego tak jest ?

[ Dodano: 2013-03-10, 20:28 ]
Czyli np:
"Administrator Kopcioo Uciszy? gracza Kopcioo na 1 min za: 1 test"

Postaw piwo autorowi tego posta
 

 
Tagi: komenda :: mute
Anonymous





Na forum: 245 dni
Posty: 1



Anonymous Koniecznie zajrzyj na:






Skocz do:  
Wyświetl posty z ostatnich:   
GTAONLINE.PL » JĘZYKI PROGRAMOWANIA » PAWN Ten temat jest zablokowany bez możliwości zmiany postów lub pisania odpowiedzi

Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Dodaj temat do Ulubionych
Wersja do druku