Page 1 of 4

set_task: ant spawn kartoja/nekartoja

Posted: 2011 Jan 29 16:27
by xFrostas
Maža set_task pomokėlė pradentiems scriptinti.

Taigi jai jūs norite, kad jūsų sugalvoto task nekartotų pvz:

Code: Select all

 // Ham includas.#include <hamsandwich> // Jau tikriausiai žinote jog ji visada iškviečiama kai paleidžiamas pluginas.public plugin_init(){    // Registruojam event'ą    RegisterHam(Ham_Spawn, "player", "Ham_PlayerSpawn", 1)} // Spawn eventpublic Ham_PlayerSpawn(id){    // Jai žaidėjas gyvas jam task neveiks    if (is_user_alive(id))        return     // Task    set_task(5.0, "Tekstas", id)} // Task funkcijapublic Tekstas(id){    // Task (Tekstas)    client_print(id, print_center, "Tu matysi mane tik 1 karta :P")}
Štai tokiu atveju task'ą "Zinute" parodys tik vieną kartą po 5s nuo žaidėjo spawn ir jos daugiau nekartos.

Jai norite jog kartotų pvz:

Code: Select all

// Ham includas.#include <hamsandwich> // Jau tikriausiai žinote jog ji visada iškviečiama kai paleidžiamas pluginas.public plugin_init(){    // Registruojam event'ą    RegisterHam(Ham_Spawn, "player", "Ham_PlayerSpawn", 1)} // Spawn eventaspublic Ham_PlayerSpawn(id){    // Jai žaidėjas gyvas jam task neveiks    if (is_user_alive(id))        return     // Task (kartojimo eilutė)    set_task(5.0, "Tekstas", id, "", 0, "b")} // Task funkcijapublic Tekstas(id){    // Task (Tekstas)    client_print(id, print_center, "Tu matysi mane kas 5s. :P")}
O štai tokiu atveju task'ą "Zinute" kartos kas 5s. nuo žaidėjo spawn.

P.S. Kartojimo task'ą labai gerai yra naudoti kai norite laikyti žinutę visą roundą pvz reklamą, skelbimą. tiesiog kartokite ne kas 5.0 o kas 0.1, nesikartojančią task patogu kai norite parašyti kokį įspėjimą ar kąnors panašaus.

P.S.S. Galite naudoti ne print, galite naudoti ir hud message.

Šis gidas priklauso Amxmodx.lt forumui.
Bet koks šios informacijos platinimas be autoriaus sutikimo yra griežtai draudžiamas.

Re: set_task: ant spawn kartoja/nekartoja

Posted: 2011 Jan 29 16:48
by zirualas
Manau reikėtu pateikti ir ką rašyti prie public plugin_init() ir ,kad reike

Code: Select all

#include <hamsandwich>
.

Re: set_task: ant spawn kartoja/nekartoja

Posted: 2011 Jan 29 16:56
by xFrostas
Gerai ;]

Re: set_task: ant spawn kartoja/nekartoja

Posted: 2011 Jan 29 20:04
by aaarnas
Toks pastebėjimas. Ham_Spawn yra ne eventas, o hamsandwich forwardas. Eventai yra čia: http://wiki.alliedmods.net/Half-Life_1_Game_Events

Beje jei Ham_Spawn forwarde tikrini ar žaidėjas yra negyvas, tai toks atvejis man atrodo gali būti tik tada, kai žaidėjas prisijungia į spectate. Bet šito gerai nežinau. Netikrinau.

Be to manau vertėtų aprašyti dar a flagą:

Code: Select all

set_task(5.0, "Tekstas", id, _, _, "a", 15)
Šitaip bus iškviečiamas "Tekstas" 15 kartų kas 5 sekundes.

Manu jei jau rašai apie task, galima aprašyti apie jį viską ir visas jo gudrybes :]

Re: set_task: ant spawn kartoja/nekartoja

Posted: 2011 Jan 29 20:46
by xFrostas
nu parašiau tiek kiek pats žinojau neesu tavo lygio prokolkas, ir visko nežinau ;]

Re: set_task: ant spawn kartoja/nekartoja

Posted: 2011 Jan 29 21:03
by aaarnas
Niekas negimė mokėdamas. Aš taip pat.

Re: set_task: ant spawn kartoja/nekartoja

Posted: 2011 Jan 29 21:17
by beast
Pritariu nuomonei, kad rašyti pamokas reikia tik tada, kai jau pats apie aprašomą elementą supranti viską ir gali tai pateikti. Nes dabar daug ko trūksta. Čia tik šiaip, kad šio skyrelio kokybė būtų kuo geresnė.

Re: set_task: ant spawn kartoja/nekartoja

Posted: 2011 Feb 06 14:20
by kesiukas
Tai kad cia is vis nei vieno plugino nesucompilina.

Re: set_task: ant spawn kartoja/nekartoja

Posted: 2011 Feb 06 20:18
by aaarnas
kesiukas wrote:Tai kad cia is vis nei vieno plugino nesucompilina.
Nes čia ne pluginas, o skriptas(kodo dalis). Nėra #include <amxmodx>

Re: set_task: ant spawn kartoja/nekartoja

Posted: 2011 Feb 06 20:56
by xFrostas
kesiukas wrote:Tai kad cia is vis nei vieno plugino nesucompilina.
Nebūtina kurti jog sukompilintu, tiesiog parašai kodą ir tiek. (dar galima parašyti jam naudojamus dalykus ten pvz forward'us, event'us, bibliotekas ir t.t)