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

Wysłany: 2013-02-08, 19:40


lotar7777







Wiek: 31
Na forum: 5192 dni
Posty: 16
Nick w MP: ....

Piwa: 5

Respekt: 50

Witam. Chcia?em przerobi? system zapisu z strcmp na zcmd no ale mi to jako? nie wychodzi. Czyta?em jakie? tam poradniki no ale c?? opornie mi to idzie. Czy m?g?by mi kto? przerobi? jedna komend? i w skr?cie wyt?umaczy? jak to robi?? Tu komenda z jakiej? mapki:


Kod:


if(strcmp(cmd, "/wyplatap", true)==0)
{
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid, name, sizeof(name));
if(!strcmp(name,MozeDodawac,true) || !strcmp(name, MozeDodawac2,true) || !strcmp(name, SzefPolicja,true) || !strcmp(name, VSzefPolicja,true) || !strcmp(name, SzefMedyk,true) || !strcmp(name, VSzefMedyk,true) || !strcmp(name, SzefTaxi,true) || !strcmp(name, VSzefTaxi,true) || !strcmp(name, SzefPomoc,true) || !strcmp(name, VSzefPomoc,true) || !strcmp(name, SzefSanNews,true) || !strcmp(name, VSzefSanNews,true) ||
!strcmp(name, SzefGD,true) || !strcmp(name, VSzefGD,true) || !strcmp(name, SzefPT,true) || !strcmp(name, VSzefPT,true) || !strcmp(name, SzefDT,true) || !strcmp(name, VSzefDT,true))
{
new moneyplayer;
new moneyplus;
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_WHITE, "/wyplatap [ID gracza] [suma]");
} else {
moneyplayer = strval(tmp);
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_ADMIN, "Z?a waluta");
} else {
moneyplus = strval(tmp);
new moneyplayername[MAX_PLAYER_NAME];
GetPlayerName(moneyplayer,moneyplayername,sizeof(moneyplayername));
format(string, sizeof(string), "Szef %s (id:%d) dal %d$ graczowi %s (id: %d)",PlayerName(playerid),playerid, moneyplus, moneyplayername,giveplayerid);
printf(string);
format(string, sizeof(string), "Da?e? %d$ graczowi %s",moneyplus, moneyplayername);
SendClientMessage(playerid, COLOR_GREEN, string);
monej[moneyplayer]=monej[moneyplayer]+moneyplus;
GivePlayerMoney(moneyplayer, moneyplus);
} } return 1;}
return SendClientMessage(playerid, COLOR_WHITE, "Nie jeste? szefem !");
}


Postaw piwo autorowi tego posta
 

 
Wysłany: 2013-02-08, 19:49


Sillence







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

Piwa: 1517

Respekt: 416,3
Respekt: 416,3

Na zcmd + sscanf ? Czy tylko zcmd i strtok zostaje ? ;)

Postaw piwo autorowi tego posta
 

 
Wysłany: 2013-02-08, 20:36


KatieM







Wiek: 32
Na forum: 4868 dni
Posty: 82
Nick w MP: _DMCy

Piwa: 293

Respekt: 85

Ostrzeżeń: 20%
Kolego, pierwszy warunek ju? boli ....

http://gtao.pl.com/showthread.php?t=91354

iii

http://gtao.pl.com/showthread.php?t=120356

Tam jest wszystko co Ci do ?ycia potrzeba :)

Postaw piwo autorowi tego posta
 

 
Wysłany: 2013-02-08, 21:41


lotar7777







Wiek: 31
Na forum: 5192 dni
Posty: 16
Nick w MP: ....

Piwa: 5

Respekt: 50

"_FasteR_" napisał/a:

Na zcmd + sscanf ? Czy tylko zcmd i strtok zostaje ? ;)



A da?by? rade napisa? jeden przyk?ad zcmd + sscanf a drugi zcmd i strtok?

Postaw piwo autorowi tego posta
 

 
Wysłany: 2013-02-08, 22:46


KatieM







Wiek: 32
Na forum: 4868 dni
Posty: 82
Nick w MP: _DMCy

Piwa: 293

Respekt: 85

Ostrzeżeń: 20%
Je?eli podasz jaki? normalny kod to pewnie ?e pomog? ;)

@edit

dobra masz zCmd + sScanf

Kod:

CMD:wyplatap(playerid, params[])
{
if (/* warunek kto mo?e uzywa? komendy */)
return /* wiadomo?? je?eli nie jest tym kim? */

new targetPlayer, value;

if (sscanf (params, "id", targetPlayer, value))
return SendClientMessage(playerid, -1, "Wpisz: /wyplatap [id gracza] [suma]");

if (value < 10 || value > 100000)
return SendClientMessage(playerid, -1, "Wpisa?e? nie poprawn? warto??.");

new buf [ 256 ];
format (buf, sizeof (buf), "Szef %s (id: %d) da? %s (id: %d zap?ate %d $", \
GetPlayerNick(playerid), playerid, GetPlayerNick(targetPlayer), targetPlayer, value);

SendClientMessageToAll(-1, buf);

return GivePlayerMoney(targetPlayer, value), 1;
}


GetPlayerNick(playerid)
{
static pName[MAX_PLAYER_NAME];
pName[0] = 0;
GetPlayerName(playerid, pName, MAX_PLAYER_NAME);
return pName;
}


zrobi?em po swojemu bo na to co da?e? patrze? nie mog? :)

Postaw piwo autorowi tego posta
 

 
Wysłany: 2013-02-08, 23:23


Sillence







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

Piwa: 1517

Respekt: 416,3
Respekt: 416,3

ZCMD + Strtok( Zmienia si? tylko 1 linijka ;D )
Kod:

CMD:wyplatap(playerid, params[])
{
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid, name, sizeof(name));
if(!strcmp(name,MozeDodawac,true) || !strcmp(name, MozeDodawac2,true) || !strcmp(name, SzefPolicja,true) || !strcmp(name, VSzefPolicja,true) || !strcmp(name, SzefMedyk,true) || !strcmp(name, VSzefMedyk,true) || !strcmp(name, SzefTaxi,true) || !strcmp(name, VSzefTaxi,true) || !strcmp(name, SzefPomoc,true) || !strcmp(name, VSzefPomoc,true) || !strcmp(name, SzefSanNews,true) || !strcmp(name, VSzefSanNews,true) ||
!strcmp(name, SzefGD,true) || !strcmp(name, VSzefGD,true) || !strcmp(name, SzefPT,true) || !strcmp(name, VSzefPT,true) || !strcmp(name, SzefDT,true) || !strcmp(name, VSzefDT,true))
{
new moneyplayer;
new moneyplus;
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_WHITE, "/wyplatap [ID gracza] [suma]");
} else {
moneyplayer = strval(tmp);
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_ADMIN, "Z?a waluta");
} else {
moneyplus = strval(tmp);
new moneyplayername[MAX_PLAYER_NAME];
GetPlayerName(moneyplayer,moneyplayername,sizeof(moneyplayername));
format(string, sizeof(string), "Szef %s (id:%d) dal %d$ graczowi %s (id: %d)",PlayerName(playerid),playerid, moneyplus, moneyplayername,giveplayerid);
printf(string);
format(string, sizeof(string), "Da?e? %d$ graczowi %s",moneyplus, moneyplayername);
SendClientMessage(playerid, COLOR_GREEN, string);
monej[moneyplayer]=monej[moneyplayer]+moneyplus;
GivePlayerMoney(moneyplayer, moneyplus);
} } return 1;}
return SendClientMessage(playerid, COLOR_WHITE, "Nie jeste? szefem !");
}


Postaw piwo autorowi tego posta
 

 
Wysłany: 2013-02-08, 23:45


KatieM







Wiek: 32
Na forum: 4868 dni
Posty: 82
Nick w MP: _DMCy

Piwa: 293

Respekt: 85

Ostrzeżeń: 20%
Lepiej pisa? nowe komendy ni? przerabia? stare ;) jest to wygodniejsze i na pewno bardziej wiadomo o co w tym wszystkim chodzi. W ko?cu por?wnaj sobie m?j przyk?ad z tym kodem co poda?e? :) i wszystko jasne

Postaw piwo autorowi tego posta
 

 
Wysłany: 2013-02-09, 10:19


lotar7777







Wiek: 31
Na forum: 5192 dni
Posty: 16
Nick w MP: ....

Piwa: 5

Respekt: 50

"_FasteR_" napisał/a:

ZCMD + Strtok( Zmienia si? tylko 1 linijka ;D )
Kod:

CMD:wyplatap(playerid, params[])
{
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid, name, sizeof(name));
if(!strcmp(name,MozeDodawac,true) || !strcmp(name, MozeDodawac2,true) || !strcmp(name, SzefPolicja,true) || !strcmp(name, VSzefPolicja,true) || !strcmp(name, SzefMedyk,true) || !strcmp(name, VSzefMedyk,true) || !strcmp(name, SzefTaxi,true) || !strcmp(name, VSzefTaxi,true) || !strcmp(name, SzefPomoc,true) || !strcmp(name, VSzefPomoc,true) || !strcmp(name, SzefSanNews,true) || !strcmp(name, VSzefSanNews,true) ||
!strcmp(name, SzefGD,true) || !strcmp(name, VSzefGD,true) || !strcmp(name, SzefPT,true) || !strcmp(name, VSzefPT,true) || !strcmp(name, SzefDT,true) || !strcmp(name, VSzefDT,true))
{
new moneyplayer;
new moneyplus;
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_WHITE, "/wyplatap [ID gracza] [suma]");
} else {
moneyplayer = strval(tmp);
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_ADMIN, "Z?a waluta");
} else {
moneyplus = strval(tmp);
new moneyplayername[MAX_PLAYER_NAME];
GetPlayerName(moneyplayer,moneyplayername,sizeof(moneyplayername));
format(string, sizeof(string), "Szef %s (id:%d) dal %d$ graczowi %s (id: %d)",PlayerName(playerid),playerid, moneyplus, moneyplayername,giveplayerid);
printf(string);
format(string, sizeof(string), "Da?e? %d$ graczowi %s",moneyplus, moneyplayername);
SendClientMessage(playerid, COLOR_GREEN, string);
monej[moneyplayer]=monej[moneyplayer]+moneyplus;
GivePlayerMoney(moneyplayer, moneyplus);
} } return 1;}
return SendClientMessage(playerid, COLOR_WHITE, "Nie jeste? szefem !");
}



A czemu jak wklej? to twoje do mapki to mi wywala errory?

Kod:


C:\Users\Kamil\Desktop\99747.pwn(112) : warning 201: redefinition of constant/macro (symbol "CMD")
C:\Users\Kamil\Desktop\99747.pwn(18717) : warning 215: expression has no effect
C:\Users\Kamil\Desktop\99747.pwn(18717) : error 001: expected token: ";", but found ":"
C:\Users\Kamil\Desktop\99747.pwn(18717) : error 029: invalid expression, assumed zero
C:\Users\Kamil\Desktop\99747.pwn(18717) : error 017: undefined symbol "wyplatap"
C:\Users\Kamil\Desktop\99747.pwn(18717) : fatal error 107: too many error messages on one line

Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase


4 Errors.




"KatieM" napisał/a:

Lepiej pisa? nowe komendy ni? przerabia? stare ;) jest to wygodniejsze i na pewno bardziej wiadomo o co w tym wszystkim chodzi. W ko?cu por?wnaj sobie m?j przyk?ad z tym kodem co poda?e? :) i wszystko jasne


Hm popr?buje mo?e mi co? z tego wyjdzie. Wielkie dzi?ki.

Ostatnio zmieniony przez lotar7777 2013-02-09, 20:01, w całości zmieniany 1 raz  
Postaw piwo autorowi tego posta
 

 
Wysłany: 2013-02-09, 11:22


Sillence







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

Piwa: 1517

Respekt: 416,3
Respekt: 416,3

Bo jak chcesz komend? w zcmd to musisz j? wynie?? gdzie? za public OnPlayerCommandText, czyli wrzu? j? do mapy gdzie? luzem ;)

Postaw piwo autorowi tego posta
 

 
Tagi: strcmp :: zcmd
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