Wysłany: 2013-02-08, 19:40
lotar7777
Wiek: 31 Na forum: 5191 dni Posty: 16
Nick w MP: ....
Piwa : 5
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 !");
}
Wysłany: 2013-02-08, 19:49
Sillence
Wiek: 26 Na forum: 5157 dni Posty: 1514
Nick w MP: Sillence
Piwa : 1517
Na zcmd + sscanf ? Czy tylko zcmd i strtok zostaje ?
Wysłany: 2013-02-08, 20:36
KatieM
Wiek: 32 Na forum: 4868 dni Posty: 82
Nick w MP: _DMCy
Piwa : 293
Wysłany: 2013-02-08, 21:41
lotar7777
Wiek: 31 Na forum: 5191 dni Posty: 16
Nick w MP: ....
Piwa : 5
"_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?
Wysłany: 2013-02-08, 22:46
KatieM
Wiek: 32 Na forum: 4868 dni Posty: 82
Nick w MP: _DMCy
Piwa : 293
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?
Wysłany: 2013-02-08, 23:23
Sillence
Wiek: 26 Na forum: 5157 dni Posty: 1514
Nick w MP: Sillence
Piwa : 1517
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 !");
}
Wysłany: 2013-02-08, 23:45
KatieM
Wiek: 32 Na forum: 4868 dni Posty: 82
Nick w MP: _DMCy
Piwa : 293
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
Wysłany: 2013-02-09, 10:19
lotar7777
Wiek: 31 Na forum: 5191 dni Posty: 16
Nick w MP: ....
Piwa : 5
"_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
Wysłany: 2013-02-09, 11:22
Sillence
Wiek: 26 Na forum: 5157 dni Posty: 1514
Nick w MP: Sillence
Piwa : 1517
Bo jak chcesz komend? w zcmd to musisz j? wynie?? gdzie? za public OnPlayerCommandText, czyli wrzu? j? do mapy gdzie? luzem
Tagi: strcmp :: zcmd
Anonymous
Na forum: 245 dni
Posty: 1
Anonymous Koniecznie zajrzyj na: