Ovako ja sad zelim napraviti npr kad dodjem na jedan odredjeno mesto da mi se pojavi text onaj http://wiki.sa-mp.com/wiki/GameTextStyle (http://wiki.sa-mp.com/wiki/GameTextStyle) i kad odem sa te pozicije da nestane ili da stoji kratko i nestane ? Molim vas pomozite mi ...
Pa imas parametar u kojem odredujes kolko dugo da stoji.
Pa u kom smislu da napravim sve to sa tekstom daj mi neki primer
kolko ja znam ima
SetGameModeText(playerid, "ovo je taj text", 5000);
ovo "5000" bi trebo biti tvoj broj koji mjenjaš ako hoces da ostane duže izražen je u milisekundama kao i sve ostalo
da ali gde se stavlja to kako range of point
pronadji tut za isplayerinarea funkciju, te ce ti tu, sve dok si na jednom mjestu, stojati taj tekst, a kada odes odatle, tekst ce nestat ;)....
Dajte mi napravite neku najprostiju molim vas ...
Citat: .::David Skrbic::. poslato Septembar 12, 2010, 21:09:56 POSLE PODNE
Dajte mi napravite neku najprostiju molim vas ...
samo da te pitam. Da li ti zelis da npr. ako je neko u podrucju npr. citavog aera, da mu pise npr. Na aeur ste ili nesto sl.?? Ako to oces, reci da ti objasnim, odnosno uputim :D
evo recimo ovako ja dodjem na jedan pickup koji napravim recimo za enter i pojavi mi se text styl 4 ovako Baza GPF i tako nes i kad odem nestane
pa jednostano stavis, da ti se pokaze 5-10 sekundi :D
JEBOTE jer nekontas ja pitam da li moze neko da mi stavi primer znam i ja da postavim na 10 sec i to ali meni treba primer gde sta stavim kako to izgleda? u PAWNU
ispod "public CustomPickups" stavis:
if(PlayerToPoint(2.0,i,x,y,z))
{
SetGameModeText(playerid, "text koj zelis", 5000);
}
ako vec imas nesto ispod dodaj ispred "if" = "else if"
i to je to...Ako sam te dobro razumio ;)
Da pojasnim na sta mislim ...
1. Dodjem do ulaza baze na pickup kod entera
2. Pojavi mi se tekst na ovu foru http://wiki.sa-mp.com/wroot/images2/1/13/Game-text-type3.jpg (http://wiki.sa-mp.com/wroot/images2/1/13/Game-text-type3.jpg)
3. Kad odem sa pickupa ili kad prodje pet sec ono da nestane ...
Nadam se da sam dobro pojasnio...
Citat: .::David Skrbic::. poslato Septembar 12, 2010, 22:04:38 POSLE PODNE
Da pojasnim na sta mislim ...
1. Dodjem do ulaza baze na pickup kod entera
2. Pojavi mi se tekst na ovu foru http://wiki.sa-mp.com/wroot/images2/1/13/Game-text-type3.jpg (http://wiki.sa-mp.com/wroot/images2/1/13/Game-text-type3.jpg)
3. Kad odem sa pickupa ili kad prodje pet sec ono da nestane ...
Nadam se da sam dobro pojasnio...
E pa tocno to sam ti sad i napisao :-\
Edit: Ako zelis mjenjati boju texta dodas samo ispred teog texta naprimjer:
zuto:
SetGameModeText(playerid, "~y~ovo je taj text", 5000);
zeleno:
SetGameModeText(playerid, "~g~ovo je taj text", 5000);
plavo
SetGameModeText(playerid, "~b~ovo je taj text", 5000);
ovako treba ti rpvo kako napraviti text
http://wiki.sa-mp.com/wiki/TextDrawCreate (http://wiki.sa-mp.com/wiki/TextDrawCreate)
poslej toga napraviš areu
http://wiki.sa-mp.com/wiki/Areacheck (http://wiki.sa-mp.com/wiki/Areacheck)
ili ako zelis mozes i preko piskupa
http://wiki.sa-mp.com/wiki/Pickup_help (http://wiki.sa-mp.com/wiki/Pickup_help)
-http://wiki.sa-mp.com/wiki/OnPlayerPickUpPickup (http://wiki.sa-mp.com/wiki/OnPlayerPickUpPickup)
i kad plajer uđe u piskup startaš timer koji poziva funkciju
TextDrawHideForPlayer(playerid, Textdraw[playerid]); (http://wiki.sa-mp.com/wiki/TextDrawHideForPlayer)
ps. umjesto komande samo slozis timer koji bi refresao ako si u areji
evo primjera kako bi mogao napraviti
PS nisam stucan u pawnu nisam jako dugo skriptao
forward EndTextDraw();
new Text:PickupTextdraw;
public OnGameModeInit() {
PickupTextdraw = TextDrawCreate(240.0,580.0,"Pickup Pokupljen");
textpickup = CreatePickup(2894, 1, X, Y, Z, -1);
return 1;
}
public OnPlayerPickUpPickup(playerid, pickupid) {
if(pickupid == textpickup)
TextDrawShowForPlayer(playerid,PickupTextdraw);
SetTimer("EndTextDraw",3000,false);
return 1;
}
public EndTextDraw() {
TextDrawHideForPlayer(playerid, PickupTextdraw);
}
Nadam se da sam pomogao
EDIT #3
aa evo naletio na ovo kad listao kroz viki
http://wiki.sa-mp.com/wiki/GameTextForPlayer (http://wiki.sa-mp.com/wiki/GameTextForPlayer)
sad ovo kaj sam bio zakoplicirao mozes laganije sloziti
npr:
public OnGameModeInit() {
textpickup = CreatePickup(2894, 1, X, Y, Z, -1);
return 1;
}
public OnPlayerPickUpPickup(playerid, pickupid) {
if(pickupid == textpickup) GameTextForPlayer(playerid, Pickup Pokupljen, 3000, 3);
return 1;
}
al za ono tvoje kad odeš s njega da odma netsane malo ću posurfat po viki možda ima nekaj korisnok
EDIT #4
jbg mogao bi nekako složiti ali bi bilo jako sjebano i jako bi ti koćilo skriptu nad više playera
najednotavnije ti je da složš kao na ovom drugo primjeru
puno lakše ćeš napraviti, a i nije potrebno dodano koplicirati
nije to mta da imas puno Callbacks
ovo je samp i imas samo par komada osim ako nemaš volje raditi svoje
Citat: â–º|Slick|Crack|â—,, poslato Septembar 12, 2010, 21:50:59 POSLE PODNE
ispod "public CustomPickups" stavis:
if(PlayerToPoint(2.0,i,x,y,z))
{
SetGameModeText(playerid, "text koj zelis", 5000);
}
ako vec imas nesto ispod dodaj ispred "if" = "else if"
i to je to...Ako sam te dobro razumio ;)
Kad sam to uradio ja complite i izadje eror i jedna greska...
D:\Server BY David\BETA\SRP 3.0b (Najnoviji)\gamemodes\larp.pwn(68640) : warning 213: tag mismatch
D:\Server BY David\BETA\SRP 3.0b (Najnoviji)\gamemodes\larp.pwn(68642) : error 017: undefined symbol "playerid"
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
1 Error.
evo ga to ...
else if(IsPlayerInRangeOfPoint(2.0,i,1462.1191,-1013.2958,26.8438))
{
SetGameModeText(playerid, "Banka da udjes klikni enter!", 5000);
}
Za waring znam samo uklonim i ali ostane taj error?
ovaj dodaj ta skripta najde playerovo ime :P i onda ubacis plajerovo ime funkciju
GetPlayerName(playerid, name, sizeof(name));
playerid2 = GetPlayerName(playerid, name, sizeof(name));
else if(IsPlayerInRangeOfPoint(2.0,i,1462.1191,-1013.2958,26.8438))
{
SetGameModeText(playerid2, "Banka da udjes klikni enter!", 5000);
}
si probao sa time?
Cek de to stavim get player name?
Koji k***c ti tu radis?????
1. Neznas koristiti funkciju IsPlayerInRangeOfPoint
2. Kakav SetGameModeText trebe lupa po glavi????????
3. I kako ces prikazati taj "text" koji nisi uspio napraviti "playerid"-u kad ga nemas definirano. Moras ga prikazati "i"-u
A kakve sve [cenzura]osti ovdje na ovom forumu necu vidjet, haha, setgamemodetext -.-
Znaci ovako, slozis neki timer, i da u tom timeru, u tom callbacku da provjeri uvijek dali je igrac na tom i tom mjestu, ako je, onda mu prikaze text(npr. na 5 sec), ako nije, return..
znaci
SetTimer("nekitimer",1000,1);
forward nekitimer();
public nekitimer()
{
foreach(Player,i)
{
if(IsPlayerInRangeOfPoint(i,10.0,x,y,z))
{
GameTextForPlayer(i, "Vi sada stojite tu!", 5000, 4);
return 1;
}
return 1;
}
}
Napomena: Ovo je samo PRIMJER, i trebas foreach funkciju od y_lessa za ovo
else if(IsPlayerInRangeOfPoint(2.0,i,1462.1191,-1013.2958,26.8438))
{
SetGameModeText(i, "Banka da udjes klikni enter!", 5000);
}
To stavi i radit ce!
AAAAAAAAAAA opet ovaj SetGameModeText haha, ja sam mu dobro poslao, ne lupetaj ;)
Da slick ne lupetaj, opet ima ovaj SetGameModeText i jos nije ispravljena greska s IsPlayerInRangeOfPoint
Citat: LordShigi poslato Septembar 13, 2010, 16:18:41 POSLE PODNE
Da slick ne lupetaj, opet ima ovaj SetGameModeText i jos nije ispravljena greska s IsPlayerInRangeOfPoint
Ajde ti pametni uzmi lepo i stavi mi kako treba samo spamas nedajes primer igracima tebi treba skinuti smoda :-\ I SAD MI RECITE STA DA ISKORISTIM I MOLIM VAS NELUPETAJTE PO TEMAMA!
EDIT KAD uradim po ovome :
else if(IsPlayerInRangeOfPoint(2.0,i,1462.1191,-1013.2958,26.8438))
{
SetGameModeText(i, "Banka da udjes klikni enter!", 5000);
}
izadje error i waring
D:\Server BY David\BETA\SRP 3.0b (Najnoviji)\gamemodes\larp.pwn(68374) : warning 213: tag mismatch
D:\Server BY David\BETA\SRP 3.0b (Najnoviji)\gamemodes\larp.pwn(68376) : error 035: argument type mismatch (argument 1)
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
1 Error.
daj em add na MSN henix@Windowslive.com ili na x-f: hidrian ( 1 ti je mjesto x-fire a onda MSN :P nemoj na obadvoej dodavat )
David a da radis mozda po mome pa ti nebi bilo errora?
Citat: .::David Skrbic::. poslato Septembar 13, 2010, 18:30:52 POSLE PODNE
Citat: LordShigi poslato Septembar 13, 2010, 16:18:41 POSLE PODNE
Da slick ne lupetaj, opet ima ovaj SetGameModeText i jos nije ispravljena greska s IsPlayerInRangeOfPoint
Ajde ti pametni uzmi lepo i stavi mi kako treba samo spamas nedajes primer igracima tebi treba skinuti smoda :-\ I SAD MI RECITE STA DA ISKORISTIM I MOLIM VAS NELUPETAJTE PO TEMAMA!
EDIT KAD uradim po ovome :
else if(IsPlayerInRangeOfPoint(2.0,i,1462.1191,-1013.2958,26.8438))
{
SetGameModeText(i, "Banka da udjes klikni enter!", 5000);
}
izadje error i waring
D:\Server BY David\BETA\SRP 3.0b (Najnoviji)\gamemodes\larp.pwn(68374) : warning 213: tag mismatch
D:\Server BY David\BETA\SRP 3.0b (Najnoviji)\gamemodes\larp.pwn(68376) : error 035: argument type mismatch (argument 1)
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
1 Error.
Dao ti je dobar primjer, a ti se i dalje pravis glup, kakav gamemodetext te sora, eto ti ako se pogubis quote od onog sto trebas napraviti
Citat: LuKsA poslato Septembar 13, 2010, 13:18:21 POSLE PODNE
A kakve sve [cenzura]osti ovdje na ovom forumu necu vidjet, haha, setgamemodetext -.-
Znaci ovako, slozis neki timer, i da u tom timeru, u tom callbacku da provjeri uvijek dali je igrac na tom i tom mjestu, ako je, onda mu prikaze text(npr. na 5 sec), ako nije, return..
znaci
SetTimer("nekitimer",1000,1);
forward nekitimer();
public nekitimer()
{
foreach(Player,i)
{
if(IsPlayerInRangeOfPoint(i,10.0,x,y,z))
{
GameTextForPlayer(i, "Vi sada stojite tu!", 5000, 4);
return 1;
}
return 1;
}
}
Napomena: Ovo je samo PRIMJER, i trebas foreach funkciju od y_lessa za ovo
Takoder, ako nemas foreach, skini ga jednostavno i includaj, ali ako to neznas zamjenis foreach sa
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
i dodas jos } na kraju
Citat: LuKsA poslato Septembar 13, 2010, 13:18:21 POSLE PODNE
A kakve sve [cenzura]osti ovdje na ovom forumu necu vidjet, haha, setgamemodetext -.-
Znaci ovako, slozis neki timer, i da u tom timeru, u tom callbacku da provjeri uvijek dali je igrac na tom i tom mjestu, ako je, onda mu prikaze text(npr. na 5 sec), ako nije, return..
znaci
SetTimer("nekitimer",1000,1);
forward nekitimer();
public nekitimer()
{
foreach(Player,i)
{
if(IsPlayerInRangeOfPoint(i,10.0,x,y,z))
{
GameTextForPlayer(i, "Vi sada stojite tu!", 5000, 4);
return 1;
}
return 1;
}
}
Napomena: Ovo je samo PRIMJER, i trebas foreach funkciju od y_lessa za ovo
sa tvojim ovi errori
D:\Server BY David\BETA\SRP 3.0b (Najnoviji)\gamemodes\larp.pwn(76883) : error 017: undefined symbol "foreach"
D:\Server BY David\BETA\SRP 3.0b (Najnoviji)\gamemodes\larp.pwn(76885) : error 017: undefined symbol "i"
D:\Server BY David\BETA\SRP 3.0b (Najnoviji)\gamemodes\larp.pwn(76887) : error 017: undefined symbol "i"
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
3 Errors.
Omfg, ti znas citat, si pohadao prvih 4 razreda? Citaj sta sam sve napisao, post po post :S
Jer mi mozes redom napraviti postupak gde sta ide ... I ja nisam pohado jesam pohadjao ...
recimo
na kraj skripte to public
public nekitimer()
{
foreach(Player,i)
{
if(IsPlayerInRangeOfPoint(i,10.0,x,y,z))
{
GameTextForPlayer(i, "Vi sada stojite tu!", 5000, 4);
return 1;
}
return 1;
}
}
i tako nekako da mi objasnis de sta ide
Isuse jesi li ti mentalno izazvan. SVE ali bas SVE ti je dao. Samo bacis u skriptu i to je to.
Opce ne citas moje postove a? Dok sam govorio da mozes zamjeniti sa for(new.....
Ajde ovako cu ti sad
SetTimer("nekitimer",1000,1);//TO IDE POD ONGAMEMODEINIT
forward nekitimer();//TO IDE NA KRAJ SKRIPTE
public nekitimer()//ISTO NA KRAJ SKRIPTE
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
if(IsPlayerInRangeOfPoint(i,10.0,x,y,z))
{
GameTextForPlayer(i, "Vi sada stojite tu!", 5000, 4);
return 1;
}
}
}
return 1;
}
Jasno je sad?.. ovo if(IsPlayerInRangeOfPoint(i,10.0,x,y,z)) to promjenis X Y i Z
Citat: LuKsA poslato Septembar 13, 2010, 19:45:30 POSLE PODNE
Opce ne citas moje postove a? Dok sam govorio da mozes zamjeniti sa for(new.....
Ajde ovako cu ti sad
SetTimer("nekitimer",1000,1);//TO IDE POD ONGAMEMODEINIT
forward nekitimer();//TO IDE NA KRAJ SKRIPTE
public nekitimer()//ISTO NA KRAJ SKRIPTE
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
if(IsPlayerInRangeOfPoint(i,10.0,x,y,z))
{
GameTextForPlayer(i, "Vi sada stojite tu!", 5000, 4);
return 1;
}
}
}
return 1;
}
Jasno je sad?.. ovo if(IsPlayerInRangeOfPoint(i,10.0,x,y,z)) to promjenis X Y i Z
RESPECT ! Puno ti hvala to je to i sad ako recimo hocu belu boju teksta samo stavim ~w~ ili ~b~ ;D
Da, imas ~w~ ~b~ ~l~ - light(svjetlije), ~r~ ~y~...