- Forum Serwera Wymiataczy[PSW] http://www.server-wymiataczy.pun.pl/index.php - Pawn http://www.server-wymiataczy.pun.pl/viewforum.php?id=8 - [PORADNIK]Komendy na style walki http://www.server-wymiataczy.pun.pl/viewtopic.php?id=16 |
dadas96 - 2011-04-28 21:41:47 |
Siemka. Napisałem ten poradnik dla początkujących, ponieważ sam kiedyś nim byłem, i wiem czym niektórzy mogą się interesować :D Jest to tutorial na to, jak napisać prostą komendę na zmianę stylów walki. Kod:#include <a_samp> To musi znajdować się na początku KAŻDEGO skryptu, mapki także :) Kod:#define COLOR_GREEN 0x33AA33AA Dajemy Enter, i wklepujemy to: Kod:public OnPlayerCommandText(playerid, cmdtext[]) To musi się znajdować ZAWSZE tam, gdzie będziemy wrzucali nasze komendy. Schemat wrzucania komend umieszczę na samym dole. Kod:if (strcmp(cmdtext, "/kungfu", true)==0) { Następnie wywołujemy co ma się stać po wpisaniu danej komendy. A jak wiemy mamy zrobić komendę na zmianę skina. Wklejamy to: Kod:SetPlayerFightingStyle(playerid, 6); ID 6 jest to ID stylu walki, wszystkie ID podam na dole arta. Kod:SendClientMessage(playerid, COLOR_GREEN, "Zmieniłeś styl walki na KungFu"); Tekst możemy zmienić:) Albo w ogóle usunąć tą linijkę, ale z tekstem jest ciekawiej :) Kod:return 1; } Teraz lecimy dalej, jak już pisałem, aby zmienić styl walki nie musimy pisać na nowo drugiej komendy, możemy skopiować wcześniejszy kod i zmienić ID stylu i zmienić treść tekstu która wywoła komendę. Oka no to do dzieła, umieszczę teraz gotowy kod na drugą komendę: Kod:if (strcmp(cmdtext, "/boxing", true)==0) { SetPlayerFightingStyle(playerid, 5); SendClientMessage(playerid, COLOR_GREEN, "Zmieniłeś styl walki na Boks"); return 1; } Zmieniłem ID na 5, id stylu bokserskiego, kod wywołujący ją pod cmd "/boxing" i tekst który wyświetli się nam po wpisaniu komendy, żeby nie pisać tyle, podam Wam kod z cała resztą komend: Kod:if (strcmp(cmdtext, "/normal", true)==0) { SetPlayerFightingStyle(playerid, 4); SendClientMessage(playerid, COLOR_GREEN, "Zmieniłeś styl walki na Normalny"); return 1; } if (strcmp(cmdtext, "/kneehead", true)==0) { SetPlayerFightingStyle(playerid, 7); SendClientMessage(playerid, COLOR_GREEN, "Zmieniłes styl walki na KneeHead"); return 1; } if (strcmp(cmdtext, "/grabkick", true)==0) { SetPlayerFightingStyle(playerid, 15); SendClientMessage(playerid, COLOR_GREEN, "Zmieniłeś styl walki na GrabKick"); return 1; } if (strcmp(cmdtext, "/elblow", true)==0) { SetPlayerFightingStyle(playerid, 26); SendClientMessage(playerid, COLOR_GREEN, "Zmieniłes styl walki na Elblow"); return 1; } To jest reszta kodu. Ale nie! To jeszcze nie koniec, dodatkowo zrobimy komendę którą zobaczymy dostępne style. Będzie można je ujrzeć po wpisaniu komendy "/stylew". Kod:if (strcmp(cmdtext,"/stylew", true)==0) Następnie co ma się stać po wpisaniu tej komendy, chcemy aby pokazała się lista stylów walki. Kod:SendClientMessage(playerid, COLOR_GREEN, ""); Ok, teraz wypiszmy tam nasze komendy, wpisujemy je w cudzysłowiu: Kod:SendClientMessage(playerid, COLOR_GREEN, "[color=red]TUTAJ WPISUJEMY NASZE KOMENDY[/color]"); Ta komenda wyświetli nam komendy w jednej linii, co zrobić aby pokazała nam się lista? Należy skopiować funkcję SendClientMessage: Kod:SendClientMessage(playerid, COLOR_GREEN, "/kungfu"); SendClientMessage(playerid, COLOR_GREEN, "TUTAJ WPISUJEMY DRUGĄ KOMENDĘ"); SendClientMessage(playerid, COLOR_GREEN, "TUTAJ TRZECIĄ"); I tak dalej i tak dalej... Kod:if (strcmp(cmdtext, "/kungfu", true)==0) { SetPlayerFightingStyle(playerid, 6); SendClientMessage(playerid, COLOR_GREEN, "Zmieniłes styl walki na KungFu"); return 1; } if (strcmp(cmdtext, "/boxing", true)==0) { SetPlayerFightingStyle(playerid, 5); SendClientMessage(playerid, COLOR_GREEN, "Zmieniłes styl walki na Boks"); return 1; } if (strcmp(cmdtext, "/normal", true)==0) { SetPlayerFightingStyle(playerid, 4); SendClientMessage(playerid, COLOR_GREEN, "Zmieniłeś styl walki na Normalny"); return 1; } if (strcmp(cmdtext, "/kneehead", true)==0) { SetPlayerFightingStyle(playerid, 7); SendClientMessage(playerid, COLOR_GREEN, "Zmieniłes styl walki na KneeHead"); return 1; } if (strcmp(cmdtext, "/grabkick", true)==0) { SetPlayerFightingStyle(playerid, 15); SendClientMessage(playerid, COLOR_GREEN, "Zmieniłeś styl walki na GrabKick"); return 1; } if (strcmp(cmdtext, "/elblow", true)==0) { SetPlayerFightingStyle(playerid, 26); SendClientMessage(playerid, COLOR_GREEN, "Zmieniłes styl walki na Elblow"); return 1; } if (strcmp(cmdtext,"/stylew", true)==0) { SendClientMessage(playerid, COLOR_GREEN, "--------------Style walki by Dadas96--------------"); SendClientMessage(playerid, COLOR_GREEN, "/normal, /kungfu, /boxing, /kneehead, /grabkick, /elblow"); return 1; } Wklejamy to w mapce do public'a public OnPlayerCommandText(playerid, cmdtext[]) |