Skripta koju koristim: pa sada za sada nemam to
Detaljan opis problema: ovako hocu da uradim da kad kucam slotovi da izadze u dialogu slot 1 slot 2 slot 3 slot 4 kad bi kupio tih stvari hocu da mi ispisuje imenom na slot 1 koju sam kupio
slot 1 vec ne postoi zbog toga sto sam kupio toys ali hocu slot 1 kad bi kupio vec da ispisuje primjer: TOYS ID: 13334 - imenom RolCaps1 https://www.google.com/search?q=toys++samp&biw=1920&bih=979&tbm=isch&imgil=o_Azv78wgtasqM%253A%253BjyR8S9_VqACFuM%253Bhttp%25253A%25252F%25252Fng-gaming.net%25252Fforums%25252Fshowthread.php%25253F42478-GOLD-vip-toylist&source=iu&pf=m&fir=o_Azv78wgtasqM%253A%252CjyR8S9_VqACFuM%252C_&usg=__-E4xfnGHafLvRywJX0fPfi_5vvY%3D&ved=0ahUKEwjUqd6F36rNAhWDSBQKHQvkDoQQyjcIKQ&ei=PqlhV9SSJYORUYvIu6AI#imgrc=mwny5o-nbRqKUM%3A
Dio skripte: /
Neke slike/video za lakse dobivanje pomoci(neobavezno): /
Gledaj za pocetak nam treba skripta toga za toys. Kad das to onda ti mozemo pomoci. Isto tako nisam te bas najbolje razumeo sta ti hoces ustvari..
selection onaj plugin imas.
ne razumete me? ta se skripta lako radi nego imenom fali u dialogu
format(string,sizeof(string), "Slot1: %s \nSlot2: %s\nSlot3 %s\nSlot4 %s\nSlot5 %s ");
SPD(playerid,TOYSMENU1, DIALOG_STYLE_LIST, "Odaberi", string, "Kupi", "Izlaz");
slot 1 - SetPlayerAttachedObject(playerid, 1, 19317, 2, 0.1,0.04,0.0,60.0,85.0,25.0,1.0,1.0,1.0);
id toy- 19317
kad bi stavio taj id hocu da mi ispisuje na format slot 1 toy imenom
Ako sam te bas dobro razumeo ti bi ovako nesto...
Uzecu taj id za primer.
new
ime[4];
if (19317) { ime = "Text"; }
format(string, sizeof(string), "Slot1: %s" ime); // Na serveru ce u slotu 1 pisati Text jer smo to gore definisali
Citat: â–... â–† â–ˆ Rudimental â–ˆ â–† â–... poslato Jun 15, 2016, 23:25:19 POSLE PODNE
Ako sam te bas dobro razumeo ti bi ovako nesto...
Uzecu taj id za primer.
new
ime[4];
if (19317) { ime = "Text"; }
format(string, sizeof(string), "Slot1: %s" ime); // Na serveru ce u slotu 1 pisati Text jer smo to gore definisali
da ali kako da uradim svih objekta da bude ovako vec imam oko 200 kako cu da nazivam svih ovako?
A sto ti to nebi uradio preko mSelection ? Ako vec imas 200 objekata ja bi u mSelection uradio da sam na tvom mestu :D
mselection? pa to je toys necu sa mselection vec imam sistema u dialogu
Pa nista onda radi tih 200 objekata na taj nacin na koji sam ti napisao. :D Mada po meni je ono bolje i jednostavnije imas slike imas sve a malo toga treba da definises ali kako hoces...
Citat: â–... â–† â–ˆ Rudimental â–ˆ â–† â–... poslato Jun 16, 2016, 16:49:38 POSLE PODNE
Pa nista onda radi tih 200 objekata na taj nacin na koji sam ti napisao. :D Mada po meni je ono bolje i jednostavnije imas slike imas sve a malo toga treba da definises ali kako hoces...
nece to sta si dao daje erora ] [
Normalno da ti daje errore ako si tako podesio kako sam ti poslao to je bio samo primer, scripta nema odakle da cita te brojeve niti zna sta ce sa njima i eto ti errora :D
Ne znam bas kako si sve to zamislio i sta posle sa tim ja ti mogu reci evo 2 nacina kako da to uradis, ako radis sa prvim nacinom onda definises tako kako sam ti poslao ali umesto tog broja on mora da cita iz nekog fajla taj broj pa posle onda radi jos sta hoces sa tim. Znaci trebala bi ti neka baza podataka gde bi definisao te ID-ove objekata...
A drugi nacin evo mozes ovako nesto da uradis.
Ovo negde na vrhu scripte kod ostalih enum-a mozes staviti.
enum AttachmentEnum
{
attachmodel,
attachname[24]
}
new AttachmentObjects[][AttachmentEnum] = {
{ID objekta, "Text"},
{ID objekta, "Text"},
{ID objekta, "Text"} // na zadnji ne stavljas zarez
};
A ovo ti ide kod dialoga.
for(new x; x < sizeof(AttachmentObjects); x++)
{
format(string, sizeof(string), "%s%s\n", string, AttachmentObjects[x][attachname]);
}
Citat: â–... â–† â–ˆ Rudimental â–ˆ â–† â–... poslato Jun 17, 2016, 15:20:22 POSLE PODNE
Normalno da ti daje errore ako si tako podesio kako sam ti poslao to je bio samo primer, scripta nema odakle da cita te brojeve niti zna sta ce sa njima i eto ti errora :D
Ne znam bas kako si sve to zamislio i sta posle sa tim ja ti mogu reci evo 2 nacina kako da to uradis, ako radis sa prvim nacinom onda definises tako kako sam ti poslao ali umesto tog broja on mora da cita iz nekog fajla taj broj pa posle onda radi jos sta hoces sa tim. Znaci trebala bi ti neka baza podataka gde bi definisao te ID-ove objekata...
A drugi nacin evo mozes ovako nesto da uradis.
Ovo negde na vrhu scripte kod ostalih enum-a mozes staviti.
enum AttachmentEnum
{
attachmodel,
attachname[24]
}
new AttachmentObjects[][AttachmentEnum] = {
{ID objekta, "Text"},
{ID objekta, "Text"},
{ID objekta, "Text"} // na zadnji ne stavljas zarez
};
A ovo ti ide kod dialoga.
for(new x; x < sizeof(AttachmentObjects); x++)
{
format(string, sizeof(string), "%s%s\n", string, AttachmentObjects[x][attachname]);
}
brate stavio sam to ali nz do cega je problem svaki put ucitava jedan item ja kupujem drugog ono ucita onaj koju sam imao kad kucam na njega objekta e novi sta sam kupio do cega bi bilo
Taj drugi primer sam ti izvukao iz FS sto postavlja objekte na igraca to mi je prvo palo na pamet pa reko da ti odatle izvucem ali nisam ti bas sve izvukao niti mozda objasnio kako neke stvari funkcionisu tako da je najbolje da ti to sam vidis pa ces razumeti :D
Evo ti FS za objekte ona ima tu slicnost sto ti hoces ili ti taj drugi primer koji sam ti slao http://pastebin.com/aspbDXFd
Citat: â–... â–† â–ˆ Rudimental â–ˆ â–† â–... poslato Jun 17, 2016, 16:26:31 POSLE PODNE
Taj drugi primer sam ti izvukao iz FS sto postavlja objekte na igraca to mi je prvo palo na pamet pa reko da ti odatle izvucem ali nisam ti bas sve izvukao niti mozda objasnio kako neke stvari funkcionisu tako da je najbolje da ti to sam vidis pa ces razumeti :D
Evo ti FS za objekte ona ima tu slicnost sto ti hoces ili ti taj drugi primer koji sam ti slao http://pastebin.com/aspbDXFd
Hvala puno brate kapirao sam i uradio sam sistem kako treba hvalati ali izvini ovako jel mozemo srediti jedna skripta anti weapon nez do cega je ne radi da ne otvrim dr temu pa tu da sredimo
[pawn]
new weaponid = GetPlayerWeapon(playerid);
new ammo;
// new Float:Health;
//GetPlayerHealth(playerid,Health);
new name[MAX_PLAYER_NAME];
if(weaponid == 19 || weaponid == 20 || weaponid == 44 || weaponid == 45 || weaponid == 35 || weaponid == 36 || weaponid == 37 || weaponid == 38)
{ // weapon hack
new string2[512];
GetPlayerName(playerid, name, sizeof(name));
format(string2, sizeof(string2), "AntiCheat(DR-ING): %s e isklucen od server Pricina: Weapon Hack", name);
SendClientMessageToAll(COLOR_NICERED, string2);
AntiCheatLog(string2);
SetTimerEx("KickAC",10, false, "i", playerid);
return 1;
}
imam i timera je na 100, ali ne radi nz do cega je to je to [/pawn]
Ajde sredicemo jos i to. Ja bi to ovako uradio verovatno imas neki public od tajmera pa da ti ne pravim sada sve... Znaci tamo gde koristis SetTimer ne SetTimerEx imas public to verovatno znas godilo bi da uzmes neki brzi tajmer primer 1 sekunda i u njegov public ovo ubacis, ja cu dodati i foreach ti ako u publicu vec imas definisano za foreach ne treba ponovo.
foreach (Player, i)
{
if (GetPlayerWeapon(i) > 0)
{
new
weaponid = GetPlayerWeapon(i),
string2[128];
if (weaponid == 19 || weaponid == 20 || weaponid == 44 || weaponid == 45 || weaponid == 35 || weaponid == 36 || weaponid == 37 || weaponid == 38)
{ // weapon hack
format(string2, sizeof(string2), "AntiCheat(DR-ING): %s e isklucen od server Pricina: Weapon Hack", GetName(i));
SendClientMessageToAll(COLOR_NICERED, string2);
AntiCheatLog(string2);
SetTimerEx("KickAC", 500, false, "d", i);
}
}
}
I evo ti stock GetName to je mnogo bolje i jednostavnije nego da uvek radis kao sto si ti uradio.
stock GetName(playerid)
{
new pName[MAX_PLAYER_NAME];
GetPlayerName(playerid, pName, MAX_PLAYER_NAME);
return pName;
}
I to bi bilo to naravno ovaj anticheat ce kikovati igraca samo ako ima ova oruzja sto si ti definisao mozda to znas a mozda i ne pa mislis da ce kikovati za sve zivo sto se uzme preko cita ali ovo ce kikovati samo za ova oruzje bilo da je preko cita ili ovako da ih igrac dobije.
Citat: â–... â–† â–ˆ Rudimental â–ˆ â–† â–... poslato Jun 17, 2016, 16:54:04 POSLE PODNE
Ajde sredicemo jos i to. Ja bi to ovako uradio verovatno imas neki public od tajmera pa da ti ne pravim sada sve... Znaci tamo gde koristis SetTimer ne SetTimerEx imas public to verovatno znas godilo bi da uzmes neki brzi tajmer primer 1 sekunda i u njegov public ovo ubacis, ja cu dodati i foreach ti ako u publicu vec imas definisano za foreach ne treba ponovo.
foreach (Player, i)
{
if (GetPlayerWeapon(i) > 0)
{
new
weaponid = GetPlayerWeapon(i),
string2[128];
if (weaponid == 19 || weaponid == 20 || weaponid == 44 || weaponid == 45 || weaponid == 35 || weaponid == 36 || weaponid == 37 || weaponid == 38)
{ // weapon hack
format(string2, sizeof(string2), "AntiCheat(DR-ING): %s e isklucen od server Pricina: Weapon Hack", GetName(i));
SendClientMessageToAll(COLOR_NICERED, string2);
AntiCheatLog(string2);
SetTimerEx("KickAC", 500, false, "d", i);
}
}
}
I evo ti stock GetName to je mnogo bolje i jednostavnije nego da uvek radis kao sto si ti uradio.
stock GetName(playerid)
{
new pName[MAX_PLAYER_NAME];
GetPlayerName(playerid, pName, MAX_PLAYER_NAME);
return pName;
}
I to bi bilo to naravno ovaj anticheat ce kikovati igraca samo ako ima ova oruzja sto si ti definisao mozda to znas a mozda i ne pa mislis da ce kikovati za sve zivo sto se uzme preko cita ali ovo ce kikovati samo za ova oruzje bilo da je preko cita ili ovako da ih igrac dobije.
kako da uradim svih oruzje da kikuje to sam uzmeo iz ednog moda zato sta ja sam radio moj sistem pa se bugirao
Imas na google koliko hoces toga :D uglavnom definicije koje su kao tvoje nesto tipa
[pawn]if (weaponid == 19)[/pawn]
Znaci da ce kikovati uvek kada igrac ima to oruzje nebitno kako je dosao do njega...