Jump to content

kell94_cz

Uživatel
  • Příspěvků

    181
  • Registrován

  • Aktivní

  • Vítězných dnů

    1

Everything posted by kell94_cz

  1. Tento callback byl od SA-MP verze 0.3 zrušen pokud chceš na serveru soukromé zprávy musíš si to udělat klasicky vytvořit si na to příkaz nebo si to udělat třeba přes dialog to už je na tobě takže ten public vymaž.
  2. public OnPlayerCommandText(playerid, cmdtext[]) { if(!strcmp(cmdtext,"/mitte",true)) { SetPlayerPos(playerid,0.0,0.0,3.0); return 1; } if(!strcmp(cmdtext,"/mitte2",true)) { SetPlayerPos(playerid,0.0,0.0,4.0); return 1; } return 0; }
  3. Když už něco děláš tak si napřed otevři všechno co k tomu budeš potřebovat ne jenom program pawno ale také wikinu, pawno.cz popřípadě také můžeš oficiální fórum. http://wiki.sa-mp.com/wiki/UsePlayerPedAnims
  4. Zkus na to klikat vícekrát za sebou mě to také nešlo hned na poprvé asi něco dělají.
  5. Tady to máš. http://forum.sa-mp.com/showthread.php?t=102865
  6. Tak už nic předběhl jsi mě tento příspěvek můžete smazat někdo z moderátorů prosím už je zbytečný děkuji.
  7. Pokud se nepletu tak oba dva dialogy máš definované jako HouseEnter1 a HouseLeave1 ale v ShowPlayerDialog máš jenom HouseEnter a HouseLeave a další chyba je že maximální ID dialogu které můžeš zadat je 32767 a ty tam máš použitá ID dialogů 36948 a 36950.
  8. kell94_cz

    pomoc Loterie

    Nejspíš je to blbost ale zkus ten public OnDialogResponse ukončit takto: return 1; } return 0; }
  9. QWER udělal funkci na reconnect je na jeho pastebinu kdyby jsi to ještě náhodou potřeboval. http://pastebin.com/56FtkAii
  10. Ne že by ti nešel switch ale problém je v tom že maximální ID dialogu je 32767 a ty tam máš 82458 takže proto ti to nejde dej si tam nějaké jiné ID dialogu hlavně ne větší než 32767.
  11. No tak si dáš třeba do příkazu nebo nevím kde to chceš mít. SetVehicleToRespawn(GetPlayerVehicleID(playerid));
  12. http://wiki.sa-mp.com/wiki/SetVehicleToRespawn
  13. #include <a_samp> #define SCM SendClientMessage #define SPD ShowPlayerDialog #define DIALOG_GPS 1999 #define B 0xFFFFFFFF #define R 0xFF0000C8 public OnPlayerCommandText(playerid, cmdtext[]) { if(strcmp("/gps",cmdtext,true,10) == 0) //Zadáš příkaz. { SPD(playerid,DIALOG_GPS,DIALOG_STYLE_LIST,"GPS","Gangy\nBude\nZrušit GPS","Ok","Konec"); //Zobrazí se první dialog s výběrem. return 1; } return 0; } public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) { if(dialogid == DIALOG_GPS) //První dialog. { if(response) //Když klikne na první tlačítko. { if(listitem == 0) SPD(playerid,1789,DIALOG_STYLE_LIST,"Duuihfu","Hiahf\nHashfuh\nJfuauf","Ok","Konec"); //Když klikne na první položku tak se mu zobrazí další dialog. if(listitem == 1) SPD(playerid,1888,DIALOG_STYLE_LIST,"Jfuhahf","Ihuiafh\nUhuaisufh","Ok","Konec"); //Když klikne na druhou položku tak se mu zobrazí další dialog. if(listitem == 2) DisablePlayerCheckpoint(playerid); //Když klikne na třetí položku tak se mu zruší GPS checkpoint. } return 1; } if(dialogid == 1789) //Druhý dialog. { if(response) //První tlačítko. { if(listitem == 0) //Když klikne na první položku. { SCM(playerid,0xFFFFFFC8,"GPS byla zapnuta"); //Zobrazí se hráčovi zpráva. SetPlayerCheckpoint(playerid,2977.7834,-1810.0948,36.1990,3.0); //Nastaví se hráčovi checkpoint. } if(listitem == 1) //Když klikne na druhou položku. { SCM(playerid,0xFFFFFFC8,"GPS byla zapnuta"); //Zobrazí se mu zpráva. SetPlayerCheckpoint(playerid,souřadnice); //Nastavení checkpointu souřadnice si doplň sám jaké chceš. } if(listitem == 2) //Třetí položka. { SCM(playerid,0xFFFFFFC8,"GPS byla zapnuta"); //Zobrazí se zpráva. SetPlayerCheckpoint(playerid,souřadnice); //Nastavení checkpointu. } } return 1; } if(dialogid == 1888) //Třetí dialog. { if(response) //První tlačítko. { if(listitem == 0) //První položka. { SCM(playerid,0xFFFFFFC8,"GPS byla zapnuta"); //Zobrazí se zpráva. SetPlayerCheckpoint(playerid,souřadnice); //Nastavení checkpointu. } if(listitem == 1) //Druhá položka. { SCM(playerid,0xFFFFFFC8,"GPS byla zapnuta"); //Zobrazí se zpráva. SetPlayerCheckpoint(playerid,souřadnice); //Nastavení checkpointu. } } return 1; } return 0; } Jinak ten error ti to tam házelo protože už tam jednou public OnDialogResponse máš.
  14. Jednoduše máš tam příkaz /gps tak ho zadáš a zobrazí se ti dialog s těmi položkami co chceš v OnDialogResponse máš co se stane když klikne na první položku atd... a ty tam máš že se hráči odešle zpráva a nastaví se mu CP tak to vymažeš a místo toho tam dáš další dialog ShowPlayerDialog zase s položkami co tam chceš takže např. pro to povolání hasič, policie, atd... no a pak uděláš zase v OnDialogResponse co se stane když na nějakou tu položku klikne takže když klikne třeba na položku policie tak mu vypíšeš tu zprávu a nastavíš hráči ten CP všechno nic víc nepotřebuješ kdyby jsi nevěděl i tak jak to udělat napiš ale zkus si to napřed sám třeba to zvládneš.
  15. kell94_cz

    pomoc BAN

    COMMAND:ban(playerid, params[]) { new string[128],id,dovod[50]; if(alevel[playerid] < 1) return SCM(playerid,RED,"[ ! ] Nemáš dostatečné Admin Práva"); if(sscanf(params,"iz",id,dovod)) return SCM(playerid,RED,"Použi: /ban [ID] [Dovod]"); if(!IsPlayerConnected(id)) return SCM(playerid,RED,"Hráč s týmto id neni online"); format(string,sizeof(string),"Administrátor %s zabanoval hráča %s [Dovod: %s]",PlayerName(playerid),PlayerName(id),dovod); SCMTA(Admin,string); BanEx(id,string); return 1; } U důvodu musíš mít vždy počet znaků velikost pole kolik toho můžeš napsat žádný strval v tom jsi měl chybu a ještě jsi tam měl zbytečně tu proměnnou new id = strval(params[0]); stačí normálně jenom new id; a hotovo no a ještě jsi tam měl tu nadbytečnou proměnnou new ID; ta je tam zbytečná.
  16. kell94_cz

    pomoc Admin System

    Ještě jenom taková informace že je zbytečné používat string s velikostí pole 256 na takový text jako máš ty.
  17. kell94_cz

    pomoc Admin System

    Jen pro upřesnění tak jsem si toho všiml ale napsal jsem to takto blbě no myslel jsem to tak že to ukážu na příkladu to se omlouvám já za mojí blbost radši už radit nebudu a nechám to na ostatních.
  18. kell94_cz

    pomoc Admin System

    Ten admin lvl to dá tobě protože tam máš playerid musíš si tam dát tu proměnnou new promenna = strval(params) a pak místo playerid tam dáš promenna.
  19. Proč by jsi měl mít ve FS dvakrát ten samý public stačí ty věci z druhého FS z toho publicu překopírovat do toho kterého chceš a to je všechno. No a k druhému problému to máš jednoduché hráč napíše /help tak mu zobrazíš dialog funkcí ShowPlayerDialog tam dáš vše co chceš aby se v dialogu zobrazilo no pak v OnDialogResponse musíš udělat zbytek co se vykoná potom když klikne na nějakou tu položku v menu takže např. to radio hráč si vybere položku radio tak mu zobrazíš další dialog zase funkce ShowPlayerDialog a tam si dáš ty položky rádií co chceš aby tam byly no a další krok to kliknutí když potvrdí spustí se mu rádio když dá zpět no tak jednoduše zase zobrazíš ten samí dialog funkcí ShowPlayerDialog a dáš tam to stejné co se v HELP má zobrazit. Potřebné věci máš tady: http://wiki.sa-mp.com/wiki/ShowPlayerDialog http://wiki.sa-mp.com/wiki/OnDialogResponse Příkaz snad udělat umíš.
  20. Nemáš tam funkci pro zrušení checkpointu ty ho jenom v příkazu nastavíš ale pak ho v závěru až dojede hráč na místo tak ho nesmažeš musíš tam dát ještě funkci DisablePlayerRaceCheckpoint navíc používáš špatný callback měl by jsi použít callback OnPlayerEnterRaceCheckpoint.
  21. Zkontroluj si závorky máš je blbě tak si to zkus opravit.
  22. kell94_cz

    pomoc Pickupy

    #include <a_samp> new zbrane; new pickup; public OnFilterScriptInit() { CreateVehicle(568, 1633.5126, 1847.9034, 10.5822, 156.0000, -1, -1, 100); CreateVehicle(568, 1630.2224, 1848.5150, 10.9364, 156.0000, -1, -1, 100); //zbrane zbrane = CreatePickup(356, 23, 1630.1580,1795.9274,10.8203, -1); pickup = CreatePickup(...); //CreatePickup si vyplň sám pokud nevíš jak tak tady to máš. http://wiki.sa-mp.com/wiki/CreatePickup. return 1; } //-------------------------------------------------------------------------------------------------------------------------------- public OnPlayerPickUpPickup(playerid, pickupid) { //zbrane if (pickupid == zbrane) { GivePlayerWeapon(playerid, 31, 1000); GivePlayerWeapon(playerid, 26, 1000); GivePlayerWeapon(playerid, 23, 1000); GivePlayerWeapon(playerid, 29, 1000); GivePlayerWeapon(playerid, 33, 1000); GivePlayerWeapon(playerid, 35, 1000); GivePlayerWeapon(playerid, 39, 1000); GivePlayerWeapon(playerid, 43, 1000); SendClientMessage(playerid, 0xFFFFFFAA, "[ {00FF00}!{FFFFFF} ] Našel jsi sadu zbrani!"); } if(pickupid == pickup) { //Tady si vyplň co se stane když vejde na pickup např. jak máš předtím že se hráči dají zbraně. } return 1; }
  23. Už jsem ti to upravil.
  24. Vzal jsem to z mého starého FS co mám u sebe už se tomu moc nevěnuji tak jsem rád že jsem mu aspoň nějak takhle poradil a ten důvod ten jsem přehlédl to se omlouvám až budu doma tak to upravím ještě aby tam byl i ten důvod a díky za radu a za upozornění na chybu nekopíroval jsem to z FS ale psal jsem to tak jsem se přehmátl tak to taky pak opravím.
  25. Nahoru mezi new: new KOdpocet; Mezi forwardy: forward EOdpocet(); Do OnPlayerCommandText: dcmd(odpocet,7,cmdtext); Někam mimo publicy: dcmd_odpocet(playerid, params[]) { new string[128],cas,duvod[50]; if(sscanf(params,"iz",cas,duvod)) return SendClientMessage(playerid,-1,"Použití: /odpocet [0 - 60] [ DŮVOD ]"); if(cas < 0 || cas > 60) return SendClientMessage(playerid,-1,"Rozmezí [0 - 60]"); if(KOdpocet > 0) return SendClientMessage(playerid,-1,"Odpočet již probíhá."); format(string,sizeof(string),"%s spustil odpočet na %d sekund.",PlayerName(playerid),cas); SendClientMessageToAll(-1,string); KOdpocet = cas; SetTimer("EOdpocet",1000,false); return true; } Někam dolů: public EOdpocet() { new string[128]; if(KOdpocet > 0) { format(string,sizeof(string),"~g~%d",KOdpocet); GameTextForAll(string,1000,4); KOdpocet--; SetTimer("EOdpocet",1000,false); }else{ GameTextForAll("~r~!START!",2000,4); } } Pokud nemáš stock PlayerName tak někam dolů si dej tohle pokud tam teda nemáš jiný stock na zjišťování nicku: stock PlayerName(playerid) { new name[MAX_PLAYER_NAME]; GetPlayerName(playerid,name,MAX_PLAYER_NAME); return name; } Pokud nemáš stock sscanf tak někam dolů: stock sscanf(string[], format[], {Float,_}:...) { #if defined isnull if (isnull(string)) #else if (string[0] == 0 || (string[0] == 1 && string[1] == 0)) #endif { return format[0]; } #pragma tabsize 4 new formatPos = 0, stringPos = 0, paramPos = 2, paramCount = numargs(), delim = ' '; while (string[stringPos] && string[stringPos] <= ' ') { stringPos++; } while (paramPos < paramCount && string[stringPos]) { switch (format[formatPos++]) { case '\0': { return 0; } case 'i', 'd': { new neg = 1, num = 0, ch = string[stringPos]; if (ch == '-') { neg = -1; ch = string[++stringPos]; } do { stringPos++; if ('0' <= ch <= '9') { num = (num * 10) + (ch - '0'); } else { return -1; } } while ((ch = string[stringPos]) > ' ' && ch != delim); setarg(paramPos, 0, num * neg); } case 'h', 'x': { new num = 0, ch = string[stringPos]; do { stringPos++; switch (ch) { case 'x', 'X': { num = 0; continue; } case '0' .. '9': { num = (num << 4) | (ch - '0'); } case 'a' .. 'f': { num = (num << 4) | (ch - ('a' - 10)); } case 'A' .. 'F': { num = (num << 4) | (ch - ('A' - 10)); } default: { return -1; } } } while ((ch = string[stringPos]) > ' ' && ch != delim); setarg(paramPos, 0, num); } case 'c': { setarg(paramPos, 0, string[stringPos++]); } case 'f': { new changestr[16], changepos = 0, strpos = stringPos; while(changepos < 16 && string[strpos] && string[strpos] != delim) { changestr[changepos++] = string[strpos++]; } changestr[changepos] = '\0'; setarg(paramPos,0,_:floatstr(changestr)); } case 'p': { delim = format[formatPos++]; continue; } case '\'': { new end = formatPos - 1, ch; while ((ch = format[++end]) && ch != '\'') {} if (!ch) { return -1; } format[end] = '\0'; if ((ch = strfind(string, format[formatPos], false, stringPos)) == -1) { if (format[end + 1]) { return -1; } return 0; } format[end] = '\''; stringPos = ch + (end - formatPos); formatPos = end + 1; } case 'u': { new end = stringPos - 1, id = 0, bool:num = true, ch; while ((ch = string[++end]) && ch != delim) { if (num) { if ('0' <= ch <= '9') { id = (id * 10) + (ch - '0'); } else { num = false; } } } if (num && IsPlayerConnected(id)) { setarg(paramPos, 0, id); } else { #if !defined foreach #define foreach(%1,%2) for (new %2 = 0; %2 < MAX_PLAYERS; %2++) if (IsPlayerConnected(%2)) #define __SSCANF_FOREACH__ #endif string[end] = '\0'; num = false; new name[MAX_PLAYER_NAME]; id = end - stringPos; foreach (Player, playerid) { GetPlayerName(playerid, name, sizeof (name)); if (!strcmp(name, string[stringPos], true, id)) { setarg(paramPos, 0, playerid); num = true; break; } } if (!num) { setarg(paramPos, 0, INVALID_PLAYER_ID); } string[end] = ch; #if defined __SSCANF_FOREACH__ #undef foreach #undef __SSCANF_FOREACH__ #endif } stringPos = end; } case 's', 'z': { new i = 0, ch; if (format[formatPos]) { while ((ch = string[stringPos++]) && ch != delim) { setarg(paramPos, i++, ch); } if (!i) { return -1; } } else { while ((ch = string[stringPos++])) { setarg(paramPos, i++, ch); } } stringPos--; setarg(paramPos, i, '\0'); } default: { continue; } } while (string[stringPos] && string[stringPos] != delim && string[stringPos] > ' ') { stringPos++; } while (string[stringPos] && (string[stringPos] == delim || string[stringPos] <= ' ')) { stringPos++; } paramPos++; } do { if ((delim = format[formatPos++]) > ' ') { if (delim == '\'') { while ((delim = format[formatPos++]) && delim != '\'') {} } else if (delim != 'z') { return delim; } } } while (delim > ' '); return 0; } Definici pro dcmd doufám máš a pokud ne tak tady je: #define dcmd(%1,%2,%3) if((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, ""))) || (((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1
×
×
  • Create New...