Skripta koju koristim: moja licna
Detaljan opis problema: napravio sam sistem bilborda i sve je super malo sam kopao po modovima editovao i radi ali kada kucam na primer /bilbord asd ne desi se nista skine golde ali se ne promeni text
Dio skripte:/
Neke slike/video za lakse dobivanje pomoci(neobavezno): nemam ali dacu ako treba
Pawno kod: CMD:bilbord(playerid, params[])
{
if(PlayerInfo[playerid][xLevel] < 6) return SCM(playerid, SIVA, "Morate biti 6+ lvl");
if(bilbas == 1 && PlayerInfo[playerid][ xHiac ] < 1) return SCM(playerid, SIVA, "Neki bilbord je vec napisan, sacekajte malo");
//if(!IsPlayerInRangeOfPoint(playerid, 10, 1519.19, -1725.64, 11.59) && !IsPlayerInRangeOfPoint(playerid, 10, 1473.17, -1042.98, 21.70) && !IsPlayerInRangeOfPoint(playerid, 10, 1232.87, -924.13, 40.62) && !IsPlayerInRangeOfPoint(playerid, 10, 1185.61, -1388.17, 11.17) &&
//!IsPlayerInRangeOfPoint(playerid, 10, 1583.20, -2309.10, 11.42)) return SCM(playerid, SIVA, "Nisi blizu bilborda");
new bilt[60];
if(sscanf(params, "s[128]", bilt)) return SCM(playerid, -1, "{0B83E6}[{FFFFFF}BMHP{0B83E6}]{FFFFFF} Koristi: {F3FF02}/bilbord [text]");
new is1=0;
new r=0;
while(strlen(bilt[is1]))
{
if('0'<=bilt[is1]<='9')
{
new is2=is1+1;
new p=0;
while(p==0)
{
if('0'<=bilt[is2]<='9'&&strlen(bilt[is2])) is2++;
else
{
strmid(strR[r],bilt,is1,is2,255);
if(strval(strR[r])<255) r++;
is1=is2;
p=1;
}
}
}
is1++;
}
if(r>=4)
{
//new spamstr[200];
//new namespamer[MAX_PLAYER_NAME];
//GetPlayerName(playerid, namespamer, sizeof(namespamer));
//format(spamstr,sizeof(spamstr), "[WARNING!!] %s je pokusao da reklamira na /BILBORD, text: %s", namespamer, bilt);
//ABroadCast(ZUTA, spamstr, 1);
//for(new z=0;z<r;z++)
//{
//new pr2;
//while((pr2=strfind(bilt,strR[i],true))!=-1) for(new i=pr2,j=pr2+strlen(strR[i]);i<j;i++) bilt[i]='*');
//return 1;
//}
}
if( strlen( params ) > 38 ) return GRESKA( playerid, "Ne moze vise 50 karaktera." );
if(PlayerInfo[playerid][xZlato] < 1) return SCM(playerid, SIVA, "Nemas 1g zlata");
if(IsPlayerInRangeOfPoint(playerid, 10, 1519.19, -1725.64, 11.59))
{
SetDynamicObjectMaterialText(bill1, 0, bilt, 130, "Arial", 24, 0, 0xFFFFFFAA, -16777216, 1);
}
if(IsPlayerInRangeOfPoint(playerid, 10, 1473.17, -1042.98, 21.70))
{
SetDynamicObjectMaterialText(bill3, 0, bilt, 130, "Arial", 24, 0, 0xFFFFFFAA, -16777216, 1);
}
if(IsPlayerInRangeOfPoint(playerid, 10, 1232.87, -924.13, 40.62))
{
SetDynamicObjectMaterialText(bill4, 0, bilt, 130, "Arial", 24, 0, 0xFFFFFFAA, -16777216, 1);
}
if(IsPlayerInRangeOfPoint(playerid, 10, 1185.61, -1388.17, 11.17))
{
SetDynamicObjectMaterialText(bill5, 0, bilt, 130, "Arial", 24, 0, 0xFFFFFFAA, -16777216, 1);
}
if(IsPlayerInRangeOfPoint(playerid, 10, 1583.20, -2309.10, 11.42))
{
SetDynamicObjectMaterialText(bill6, 0, bilt, 130, "Arial", 24, 0, 0xFFFFFFAA, -16777216, 1);
}
bilbas = 1;
SCMF(playerid, CRVENA, "Dali ste 1 GOLD za ime bilborda ' %s '.",bilt);
PlayerInfo[playerid][xZlato]-= 1;
//SetTimer("SkiniBilb", 30000, 0);
return 1;
}
Nesto na brzaka, sto sti stavio // ako ne posle kad dodjem pregledacu ceo kod, i potrudi se da postavljeas u [pawno][/pawno] :)
ovo je moja kopija
[pawn]CMD:bilbord(playerid, params[])
{
if(PlayerInfo[playerid][xLevel] < 6) return SCM(playerid, SIVA, "Morate biti 6+ lvl");
if(bilbas == 1 && PlayerInfo[playerid][ xHiac ] < 1) return SCM(playerid, SIVA, "Neki bilbord je vec napisan, sacekajte malo");
//if(!IsPlayerInRangeOfPoint(playerid, 10, 1519.19, -1725.64, 11.59) && !IsPlayerInRangeOfPoint(playerid, 10, 1473.17, -1042.98, 21.70) && !IsPlayerInRangeOfPoint(playerid, 10, 1232.87, -924.13, 40.62) && !IsPlayerInRangeOfPoint(playerid, 10, 1185.61, -1388.17, 11.17) &&
//!IsPlayerInRangeOfPoint(playerid, 10, 1583.20, -2309.10, 11.42)) return SCM(playerid, SIVA, "Nisi blizu bilborda");
new bilt[60];
if(sscanf(params, "s[128]", bilt)) return SCM(playerid, -1, "{0B83E6}[{FFFFFF}BMHP{0B83E6}]{FFFFFF} Koristi: {F3FF02}/bilbord [text]");
new is1=0;
new r=0;
while(strlen(bilt[is1]))
{
if('0'<=bilt[is1]<='9')
{
new is2=is1+1;
new p=0;
while(p==0)
{
if('0'<=bilt[is2]<='9'&&strlen(bilt[is2])) is2++;
else
{
strmid(strR[r],bilt,is1,is2,255);
if(strval(strR[r])<255) r++;
is1=is2;
p=1;
}
}
}
is1++;
}
if(r>=4)
{
//new spamstr[200];
//new namespamer[MAX_PLAYER_NAME];
//GetPlayerName(playerid, namespamer, sizeof(namespamer));
//format(spamstr,sizeof(spamstr), "[WARNING!!] %s je pokusao da reklamira na /BILBORD, text: %s", namespamer, bilt);
//ABroadCast(ZUTA, spamstr, 1);
//for(new z=0;z<r;z++)
//{
//new pr2;
//while((pr2=strfind(bilt,strR,true))!=-1) for(new i=pr2,j=pr2+strlen(strR);i<j;i++) bilt='*');
//return 1;
//}
}
if( strlen( params ) > 38 ) return GRESKA( playerid, "Ne moze vise 50 karaktera." );
if(PlayerInfo[playerid][xZlato] < 1) return SCM(playerid, SIVA, "Nemas 1g zlata");
if(IsPlayerInRangeOfPoint(playerid, 10, 1519.19, -1725.64, 11.59))
{
SetDynamicObjectMaterialText(bill1, 0, bilt, 130, "Arial", 24, 0, 0xFFFFFFAA, -16777216, 1);
}
if(IsPlayerInRangeOfPoint(playerid, 10, 1473.17, -1042.98, 21.70))
{
SetDynamicObjectMaterialText(bill3, 0, bilt, 130, "Arial", 24, 0, 0xFFFFFFAA, -16777216, 1);
}
if(IsPlayerInRangeOfPoint(playerid, 10, 1232.87, -924.13, 40.62))
{
SetDynamicObjectMaterialText(bill4, 0, bilt, 130, "Arial", 24, 0, 0xFFFFFFAA, -16777216, 1);
}
if(IsPlayerInRangeOfPoint(playerid, 10, 1185.61, -1388.17, 11.17))
{
SetDynamicObjectMaterialText(bill5, 0, bilt, 130, "Arial", 24, 0, 0xFFFFFFAA, -16777216, 1);
}
if(IsPlayerInRangeOfPoint(playerid, 10, 1583.20, -2309.10, 11.42))
{
SetDynamicObjectMaterialText(bill6, 0, bilt, 130, "Arial", 24, 0, 0xFFFFFFAA, -16777216, 1);
}
bilbas = 1;
SCMF(playerid, CRVENA, "Dali ste 1 GOLD za ime bilborda ' %s '.",bilt);
PlayerInfo[playerid][xZlato]--;
//SetTimer("SkiniBilb", 30000, 0);
return 1;
}[/pawn]
A ovo je orginal
[pawn]CMD:bilbord(playerid, params[])
{
if(PI[playerid][pLevel] < 6) return SCM(playerid, SIVA, "Morate biti 6+ lvl");
if(bilbas == 1 && PI[playerid][pAGS] < 1) return SCM(playerid, SIVA, "Neki bilbord je vec napisan, sacekajte malo");
if(!IsPlayerInRangeOfPoint(playerid, 10, 1519.19, -1725.64, 11.59) && !IsPlayerInRangeOfPoint(playerid, 10, 1473.17, -1042.98, 21.70) && !IsPlayerInRangeOfPoint(playerid, 10, 1232.87, -924.13, 40.62) && !IsPlayerInRangeOfPoint(playerid, 10, 1185.61, -1388.17, 11.17) &&
!IsPlayerInRangeOfPoint(playerid, 10, 1583.20, -2309.10, 11.42)) return SCM(playerid, SIVA, "Nisi blizu bilborda");
new bilt[60];
if(sscanf(params, "s[128]", bilt)) return SCM(playerid, -1, "{0B83E6}[{FFFFFF}AG:RP{0B83E6}]{FFFFFF} CMD | {F3FF02}/bilbord [text]");
new is1=0;
new r=0;
while(strlen(bilt[is1]))
{
if('0'<=bilt[is1]<='9')
{
new is2=is1+1;
new p=0;
while(p==0)
{
if('0'<=bilt[is2]<='9'&&strlen(bilt[is2])) is2++;
else
{
strmid(strR[r],bilt,is1,is2,255);
if(strval(strR[r])<255) r++;
is1=is2;
p=1;
}
}
}
is1++;
}
if(r>=4)
{
new spamstr[200];
new namespamer[MAX_PLAYER_NAME];
GetPlayerName(playerid, namespamer, sizeof(namespamer));
format(spamstr,sizeof(spamstr), "[WARNING!!] %s je pokusao da reklamira na /BILBORD, text: %s", namespamer, bilt);
ABroadCast(ZUTA, spamstr, 1);
for(new z=0;z<r;z++)
{
new pr2;
while((pr2=strfind(bilt,strR[z],true))!=-1) for(new i=pr2,j=pr2+strlen(strR[z]);i<j;i++) bilt='*';
return 1;
}
}
if(strlen(bilt) > 50) return SCM(playerid, SIVA, "Ne moze vise od 50 znakova");
if(PI[playerid][pZlato] < 1) return SCM(playerid, SIVA, "Nemas 1g zlata");
if(IsPlayerInRangeOfPoint(playerid, 10, 1519.19, -1725.64, 11.59))
{
SetDynamicObjectMaterialText(bill1, 0, bilt, 130, "Arial", 24, 0, 0xFFFFFFAA, -16777216, 1);
}
if(IsPlayerInRangeOfPoint(playerid, 10, 1473.17, -1042.98, 21.70))
{
SetDynamicObjectMaterialText(bill3, 0, bilt, 130, "Arial", 24, 0, 0xFFFFFFAA, -16777216, 1);
}
if(IsPlayerInRangeOfPoint(playerid, 10, 1232.87, -924.13, 40.62))
{
SetDynamicObjectMaterialText(bill4, 0, bilt, 130, "Arial", 24, 0, 0xFFFFFFAA, -16777216, 1);
}
if(IsPlayerInRangeOfPoint(playerid, 10, 1185.61, -1388.17, 11.17))
{
SetDynamicObjectMaterialText(bill5, 0, bilt, 130, "Arial", 24, 0, 0xFFFFFFAA, -16777216, 1);
}
if(IsPlayerInRangeOfPoint(playerid, 10, 1583.20, -2309.10, 11.42))
{
SetDynamicObjectMaterialText(bill6, 0, bilt, 130, "Arial", 24, 0, 0xFFFFFFAA, -16777216, 1);
}
bilbas = 1;
SCMF(playerid, SIVA, "Dali ste 1G GOLD-A za ime bilborda ' %s '.",bilt);
PI[playerid][pZlato]--;
SetTimer("SkiniBilb", 500000, 0);
return 1;
}[/pawn]
Napravio si samo jednu proveru da li se igrac nalazi kod bilborta a imas 5-6 provera ako je igrac na tom mestu da se na taj bilbord postavi taj text.
Kopiraj sa drugog moda i eto
Nije svrha kopirati sa drugog moda, mozda nisu iste definicije! :D
Javi mi se na Facebook (http://fb.com/MaraneLLoDSM)
Sredio sam to ipak je bilo to sto ja nisam hteo da bude inrangeofpoint pa sam sve definicije InRangeOfPoint jednostavno izbacio vezao bilborde da bi bilo kada jedan ukuca /bilbord izmeni ih sve na 30min i to je to
Tako stavljaj i kada budes dodavao da ti se ne bi desavalo isto.