Wysłany: 2012-06-07, 11:54
mortal
Wiek: 35 Na forum: 5112 dni Posty: 12
Siemka mam taki problem gdy? mam taka komende
Kod: if(!strcmp(cmd, "/explode", true)){
new bum[256];
bum = strtok(cmdtext, idx);
if(Admin[playerid] == 1 || HeadAdmin[playerid] == 1)
if(!strlen(bum)){
SendClientMessage(playerid, COLOR_WHITE, "ERROR: U?yj: /explode [id gracza]");
return 1;}
if(Admin[playerid] == 1 || HeadAdmin[playerid] == 1){
new Float:x,Float:y,Float:z;
new gracz = strval(bum);
GetPlayerPos(gracz, x,y,z);
CreateExplosion(x,y,z,6,2);
CreateExplosion(x,y,z,6,2);
}else
SendClientMessage(playerid,COLOR_WHITE,"ERROR: Nieprawid?owa komenda");
return 1;}
i chcia? bym do niej doda? info kt?re m?wi mi jakiego gracza wysadzi?em oraz error ktory m?wi ?e nie ma gracza o takim ID (je?li nie ma go w grze)
mam tu takie kody (nie wiem czy dobre) ale gdzie je wstawi?
Kod: format(string, sizeof(string), "ERROR: Z?e ID", giveplayerid);
SendClientMessage(playerid, COLOR_WHITE, string);
format(string, sizeof(string), "Wysadzi?e? gracza %s w powietrze",PlayerName(playerid));
SendClientMessageToAll(COLOR_GREEN,string);
Wysłany: 2012-06-07, 13:22
kurczak1324
Wiek: 29 Na forum: 5819 dni Posty: 202
Nick w MP: Izzy
Piwa : 671
mortal , nie u?ywaj strcmp, lepsze jest zcmd.
Kod: CMD:explode(playerid, params[])
{
new id, string[128];
if(sscanf(params, "d", id)) return SendClientMessage(playerid, 0xFF0000AA, "U?yj: /explode [id]");
if(!IsPlayerConnected(id)) return SendClientMessage(playerid, 0xFF0000AA, "Nie ma takiego gracza na serwerze...");
{
format(string,sizeof string, "Wysadzi?e? %s", PlayerName(id));
SendClientMessage(playerid,0xFFFFFF,string);
GetPlayerPos(id, x,y,z);
CreateExplosion(x,y,z,6,2);
CreateExplosion(x,y,z,6,2);
return 1;
}
}
Prawd? jest fakt i? na jesten parameter, nie trzeba u?ywac sscanfa.
Wysłany: 2012-06-07, 13:34
mortal
Wiek: 35 Na forum: 5112 dni Posty: 12
a to jest jaka? du?a r?znica miedzy komendami strcmp a zcmd? i czy moge miec w mapie np kilka komend z zcmd i kilka z strcmp?
Wysłany: 2012-06-07, 13:37
ToxiC.
Wiek: 28 Na forum: 5246 dni Posty: 3792
Piwa : 8590
mortal , nie mo?esz mie?. Jeden system komend w mapie powinien by?
Wysłany: 2012-06-07, 13:43
mortal
Wiek: 35 Na forum: 5112 dni Posty: 12
to ja chyba zostane juz przy tym strcmp bo mam w tym napisane eiele komend i nie chce mi sie ich przerabiac skoro dzialaja
a co do tej komendy to mogl by ktos przerobic ta komende od kurczak1324 na taka jak ja podalem w 1 poscie i zeby dziala?a tylko na te rangi?
if(Admin[playerid] == 1 || HeadAdmin[playerid] == 1)
i jezeli by sie dalo to czy moglo by to byc z opisem bo chcia? bym sie tego jakos sam tez nauczyc
[ Dodano : 2012-06-07, 16:16 ]
OK po kilkunastu pr?bach wko?cu uda?o mi si? i poprawi?em sw?j kod wzoruj?c sie na kodzie od kurczak1324
Dzieki za pomoc
Temat mo?na zamkn??...
Wysłany: 2012-06-07, 20:12
kurczak1324
Wiek: 29 Na forum: 5819 dni Posty: 202
Nick w MP: Izzy
Piwa : 671
mortal , robisz bardzo ?le!! ZCMD jest szybsze od strcmp, a cz??? strcmp mo?esz wrzuci? do ZCMD. Poza tym strcmp bardzo ?atow si? przeraba na ZCMD. Co do przerobiana cmd to dodaj pod komend?:
Kod: if(Admin[playerid] == 1 || HeadAdmin[playerid] == 1){
//tu co si? dzieje jak gracz ma admina
}else{
//tu sie dzieje co? jak gracz nie ma admina
}
Wysłany: 2012-06-07, 21:59
mortal
Wiek: 35 Na forum: 5112 dni Posty: 12
kurczak1324 , moze ja sie nie znam dobrze na tym ale jak dla mnie to nie jest takie proste przerobic komendy itp.. masz np taka komende
jest to przypadkowa komenda z jakiegos innego poradnika
Kod: if(strcmp(cmd, "/givecash", true) == 0) {
//new tmp[256];
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_WHITE, "WPISZ: /givecash [idgracza] [kwota]");
return 1;
}
giveplayerid = strval(tmp);
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) {
SendClientMessage(playerid, COLOR_WHITE, "WPISZ: /givecash [idgracza] [kwota]");
return 1;
}
moneys = strval(tmp);
if (IsPlayerConnected(giveplayerid)) {
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
playermoney = GetPlayerMoney(playerid);
if (moneys > 0 && playermoney >= moneys) {
GivePlayerMoney(playerid, (0 - moneys));
GivePlayerMoney(giveplayerid, moneys);
format(string, sizeof(string), "%s odda?e? graczowi (id: %d), $%d pieni?dzy.", giveplayer,giveplayerid, moneys);
SendClientMessage(playerid, COLOR_YELLOW, string);
format(string, sizeof(string), "Otrzyma?e? $%d pieni?dzy od gracza %s (id: %d).", moneys, sendername, playerid);
SendClientMessage(giveplayerid, COLOR_YELLOW, string);
printf("%s(playerid:%d) has transfered %d to %s(playerid:%d)",sendername, playerid, moneys, giveplayer, giveplayerid);
}
else {
SendClientMessage(playerid, COLOR_YELLOW, "Nieprawid?owa kwota transakcji.");
}
}
else {
format(string, sizeof(string), "%d nie ma takiego gracza!", giveplayerid);
SendClientMessage(playerid, COLOR_YELLOW, string);
}
return 1;
}
i teraz jak by to mialo wygladac w zcmd? bo niby ok ze dodac to
Kod: if(Admin[playerid] == 1 || HeadAdmin[playerid] == 1){
//tu co si? dzieje jak gracz ma admina
}else{
//tu sie dzieje co? jak gracz nie ma admina
}
tylko pytanie gdzie... bo jak wczesniej probowalem cos takiego zrobic ze to
Kod: if(Admin[playerid] == 1 || HeadAdmin[playerid] == 1){
dawalem zaraz pod
Kod: if(strcmp(cmd, "/givecash", true) == 0) {
a to
Kod: }else{
//tu sie dzieje co? jak gracz nie ma admina
}
na koncu mapy to mi komenda nie dziala wcale choc pod wzgledem kodu nie ma errorow
ja mam taka zasade ze zrobie sobie jedna komende i potem wzoruje sie na niej i zamieniam i podstawiam co trzeba i jakos to leci bo ja glownie szukam gotowych komend i je przerabiam ale z takim kodem jak jest ten /givecash to nie wiem jak bo w nim juz sa te warunki else a jak dam kolejny to sie cala komenda pieprzy
Tagi: komenda
Anonymous
Na forum: 245 dni
Posty: 1
Anonymous Koniecznie zajrzyj na: