ScriptingPomoce dotyczące pisania pluginów w Pawnie, funkcje, cs_get, set, warunki i pętle, które pozwolą napisać Ci Twój wymarzony plugin do gry Counter-Strike!
Mam wszystko tak jak tu : http://volta-sq.pl/pluginy-amxx-28/6...tml#post225477 , ale mam problem. Zmieniłem sobie komendę "wyslij <gracz> <iloscPD>" na "givepd <gracz> <iloscPD>" i z tym nie ma problemu. Do tej pory wszytko działało, gdy kupiło się Pokemona Legendę to się go od razu dostawało, ale jest pewniem problem. Wychaczyłem pewien bug. Po wpisaniu "givepd janusz -1000" graczowi o nicku janusz zostały usunięte -1000 PD, a za to mi dodane 1000. Tak wygląda mój public Send:
Spoiler:
public Send(id){
static args[256];
read_args(args, 255);
remove_quotes(args);
Aby rozwiązać ten bug z wysyłaniem, to w public Send, dodałem
Spoiler:
if(iPD < 1)
return PLUGIN_HANDLED;
Po dodaniu, wszystko pięknie się skompilowało, wgrałem ten plugin i wchodzę na serwa. Dodałem sobie 600 PD i chciałem zobaczyć czy wszytko działa. Z kupowaniem Expa i Pralki nie było problemów, ale z kupnem legend owszem. Gdy wybrałem jakąś legendę do kupienia, na dole pisało "[PD]Kupiłeś np. Mew" , ale go nie dostałem. Ten dodatek co dodałem ma jakiś wpływ na kupowanie legend. Nie wiem jaki i dlatego zwracam się do was. Jeśli potraficie to poprawić to będę bardzo wdzięczny.
Nadal nie mogę kupić legendy. Gdy piszę /pd otwiera mi się menu. Wybieram "Kup Lepsza Legende", chcę kupić Mew, wybieram go, ale go nie dostaję. Piszę na dole [PD] Kupiles Mew. , ale nie dostaję go i nie mam go przy sobie.
Wiesz co, jeżeli nadal nie możesz dostać legendy, a pojawia Ci się informacja że już go masz, to znaczy że plugin wykonuje poprawnie swoje założenia.
Podpowiem Ci co możesz sprawdzić:
Sprawdź logi serwera, poszukaj komendy Poke_Give_Poke(id, 151, 1);
Sprawdź czy komenda Poke_Give_Poke(id, 151, 1); jest możliwa do wykonania z linii komend serwera, albo czy plugin pokemod pobsługuje taką komendę, bo może po prostu być tak, że plugin wysyła komendę na konsolę serwera, a ta komenda dla tej wersji pokemoda wygląda nieco inaczej i w efekcie jest ignorowana przez plugin pokemoda, a komunikat wyświetla Ci się swoją drogą..
Spójrz, chodzi mi o ten wycinek:
Spoiler:
case 1:
{
new pd_player = pd[id]
new costgoodlegend = get_pcvar_num(g_pPayGoodLegend)
Jeszcze, jak ściągnąłem o to : http://volta-sq.pl/pluginy-amxx-28/6...tml#post225477 i wgrałem na serwer bez żadnych zmian w tym pluginie to można było kupić legende. Działało to bez problemów.
W miejsce 'id' wstawić numer gracza? O jaki numer chodzi ?
Dodane po 1 4 minuty:
Dhair, ja mam Pokemoda Season 2 by Hib i ten pokemod psługuje się tą komendą.
podaj mi na pw link skąd mogę ściągnąć tą wersję pokemoda co Ty masz (potrzebuję .sma i includy do tego) i jak będę w domu to sobie to całe skompiluje i potestuje na serwerze w trybie online i dam Ci tu znać jak już znajdę w czym problem.
Problem tkwi w tym, że ten plugin z którym masz problemy, rozdaje pokemony poprzez odwoływanie się do numerów pokemonów, a nie do ich bezpośrednich nazw.
Z kolei plugin pokemoda odwołuje się do nazw pokemonów a nie do ich numerów. Tutaj jest konflikt. Dlatego nie dostajesz pokemonów, bo polecenie Poke_Give_Poke(id, 151, 1); nie jest rozpoznawalne przez tę wersję moda.
Zoptymalizowałem kod pluginu, aby działał z twoją wersją pokemona.
Kwestia jest taka, że sprawdziłem to tylko na kupowaniu pierwszej legendy - Mew. Sprawdź pozostałe. W razie dalszych problemów - pisz.
Kod w spoilerze:
public pdmenu(id)
{
new menu = menu_create("\rPokemon Dolar Menu:", "pdmenu_wybierz")
new cost = get_pcvar_num(g_pPayXp)
new costgoodlegend = get_pcvar_num(g_pPayGoodLegend)
new costlowlegend = get_pcvar_num(g_pPayLowLegend)
new costrandom = get_pcvar_num(g_pPayRandom)
static String[128];
menu_display(id, menu, 0)
return PLUGIN_HANDLED
}
case 4:
{
new pd_player = pd[id]
new cost = get_pcvar_num(g_pPayRandom)
new minexp = get_pcvar_num(g_pRandomXpMin)
new maxexp = get_pcvar_num(g_pRandomXpMax)
public pdmenu(id)
{
new menu = menu_create("\rPokemon Dolar Menu:", "pdmenu_wybierz")
new cost = get_pcvar_num(g_pPayXp)
new costgoodlegend = get_pcvar_num(g_pPayGoodLegend)
new costlowlegend = get_pcvar_num(g_pPayLowLegend)
new costrandom = get_pcvar_num(g_pPayRandom)
static String[128];
menu_display(id, menu, 0)
return PLUGIN_HANDLED
}
case 4:
{
new pd_player = pd[id]
new cost = get_pcvar_num(g_pPayRandom)
new minexp = get_pcvar_num(g_pRandomXpMin)
new maxexp = get_pcvar_num(g_pRandomXpMax)