Du verstehst nicht was ich will ...
Spieler == 3 Wanted´s
Cop == GIBT 6 Wanted´s
Spieler == NUN 9 Wanted´s
Ich will das der Spieler aber NUR Maximal 6 Wanteds haben kann.
Nun besser ;D ?
Du verstehst nicht was ich will ...
Spieler == 3 Wanted´s
Cop == GIBT 6 Wanted´s
Spieler == NUN 9 Wanted´s
Ich will das der Spieler aber NUR Maximal 6 Wanteds haben kann.
Nun besser ;D ?
Nein, ich meine z.b. der Spieler hat 3 Wanteds und ein Cop gibt dem Spieler 6 dann gehen die Wanteds des Spielers auf 9 wie mache ich das anders?
mein jetziger Code:
ocmd:su(playerid,params[])
{
if(SpielerInfo[playerid][pFraktion] == 1||SpielerInfo[playerid][pFraktion] == 2||SpielerInfo[playerid][pFraktion] == 3){
if(OnDuty[playerid] ==1){
new pID,stk,grund[128],string[128];
if(sscanf(params,"uis",pID,stk,grund))return SendClientMessage(playerid,WEIß,"Nutze: /su [ID] [Anzahl] [Grund]");
if(SpielerInfo[pID][pWanted]>=6){
SendClientMessage(playerid,WEIß,"Der Spieler kann nicht mehr als 6 Wanteds bekommen");
}
if(IsPlayerConnected(pID)){
if(SpielerInfo[pID][pJail]==0){
if(SpielerInfo[pID][pFraktion] == 1||SpielerInfo[pID][pFraktion] == 2||SpielerInfo[pID][pFraktion] == 3){
if(stk>1&&stk<6){
GetPlayerName(playerid,sendername,sizeof(sendername));
GetPlayerName(pID,giveplayer,sizeof(giveplayer));
format(string,sizeof(string),"Du hast ein Verbrechen begangen: %s. Von %s",grund,sendername);
SendClientMessage(pID,HELLROT,string);
format(string,sizeof(string),"Vergebene Wanteds: %d. Neues Wantedlevel: %d",stk,SpielerInfo[pID][pWanted]);
SendClientMessage(pID,GELB,string);
SetPlayerWantedLevel(pID,GetPlayerWantedLevel(pID)+stk);SavePlayer(pID);
for(new i=0; i <MAX_PLAYERS; i++){
if(IsACop(i)){
format(string,sizeof(string),"HQ: Alle Einheiten: Reporter: %s, vergebene Wanteds: %d",sendername,stk);
SendClientMessage(i,BLAU,string);
format(string,sizeof(string),"HQ: Grund: %s, Verbrecher: %s, Aktuelle Wanted´s: %d",grund,giveplayer,SpielerInfo[pID][pWanted]);
SendClientMessage(i,BLAU,string);
}
}
return 1;
}else SendClientMessage(playerid,WEIß,"Nur zwischen 1 bis 6 Wanteds dürfen vergeben werden");
}else SendClientMessage(playerid,WEIß,"Du darfst keine Polizisten anklagen");
}else SendClientMessage(playerid,WEIß,"Der Spieler ist im Gefängnis");
}else SendClientMessage(playerid,WEIß,"Der Spieler ist nicht Online");
}else SendClientMessage(playerid,WEIß,"Du bist nicht im Dienst");
}
return 1;
}
SetPlayerWantedLevel(pID,GetPlayerWantedLevel(pID)+stk);
Danke voll vergessen aber demnoch ist meine Frage offen geblieben.
Abend,
ich hab gerade einen /su CMD gescriptet der einem Spieler erlaubt einem anderen Spieler Wanted´s zu geben.
nur wie mache ich das der wen der Spieler z.b. 1 Wanted hat und der Cop 6 gibt das die Wanteds nicht auf 7 hochrutschen?
Code:
ocmd:su(playerid,params[])
{
if(SpielerInfo[playerid][pFraktion] == 1||SpielerInfo[playerid][pFraktion] == 2||SpielerInfo[playerid][pFraktion] == 3){
if(OnDuty[playerid] ==1){
new pID,stk,grund[128],string[128];
if(sscanf(params,"uis",pID,stk,grund))return SendClientMessage(playerid,WEIß,"Nutze: /su [ID] [Anzahl] [Grund]");
if(SpielerInfo[pID][pWanted]>=6){
SendClientMessage(playerid,WEIß,"Der Spieler kann nicht mehr als 6 Wanteds bekommen");
}
if(IsPlayerConnected(pID)){
if(SpielerInfo[pID][pJail]==0){
if(SpielerInfo[pID][pFraktion] == 1||SpielerInfo[pID][pFraktion] == 2||SpielerInfo[pID][pFraktion] == 3){
GetPlayerName(playerid,sendername,sizeof(sendername));
GetPlayerName(pID,giveplayer,sizeof(giveplayer));
format(string,sizeof(string),"Du hast ein Verbrechen begangen: %s. Von %s",grund,sendername);
SendClientMessage(pID,HELLROT,string);
format(string,sizeof(string),"Vergebene Wanteds: %d. Neues Wantedlevel: %d",stk,SpielerInfo[pID][pWanted]);
SendClientMessage(pID,GELB,string);
for(new i=0; i <MAX_PLAYERS; i++){
if(IsACop(i)){
format(string,sizeof(string),"HQ: Alle Einheiten: Reporter: %s, vergebene Wanteds: %d",sendername,stk);
SendClientMessage(i,BLAU,string);
format(string,sizeof(string),"HQ: Grund: %s, Verbrecher: %s, Aktuelle Wanted´s: %d",grund,giveplayer,SpielerInfo[pID][pWanted]);
SendClientMessage(i,BLAU,string);
}
}
return 1;
}else SendClientMessage(playerid,WEIß,"Du darfst keine Polizisten anklagen");
}else SendClientMessage(playerid,WEIß,"Der Spieler ist im Gefängnis");
}else SendClientMessage(playerid,WEIß,"Der Spieler ist nicht Online");
}else SendClientMessage(playerid,WEIß,"Du bist nicht im Dienst");
}
return 1;
}
vlt weil die Fraktionsangaben über den String gehören?? oder irre ich mich
Ich habs so
new jtext[20];
if(SpielerInfo[playerid][pJob] == 0) { jtext = "Keinen"; }
else if(SpielerInfo[playerid][pJob] == 1) { jtext = "Detektiv";}
else if(SpielerInfo[playerid][pJob]==2){jtext="Anwalt";}
else if(SpielerInfo[playerid][pJob]==3){jtext="Transporter";}
else if(SpielerInfo[playerid][pJob]==4){jtext="Waffendealer";}
Hier aus dem GF das ich mal verwendet hab.
if(strcmp(cmdtext, "/startbonus", true) == 0)
{
if(IsPlayerInRangeOfPoint(playerid,3.0,1129.2798,-1450.6230,15.7969))
{
if(IsPlayerConnected(playerid))
{
if (PlayerInfo[playerid][pStartbonus] == 0)
{
SendClientMessage(playerid, COLOR_GOLD, "Du hast deinen StartBonus erhalten.");
SendClientMessage(playerid, COLOR_GOLD, "Level 3, 50.000$, Führerschein, Motorradschein und einen Personalausweis");
SendClientMessage(playerid, COLOR_GOLD, "(Scheine kannst du dir in der Stadthalle kaufen.)");
GivePlayerMoney(playerid, 50000);
PlayerInfo[playerid][pLevel] = 3;
PlayerInfo[playerid][pCarLic] = 1;
PlayerInfo[playerid][pMotoLic] = 1;
PlayerInfo[playerid][pOwnPerso] = 1;
PlayerInfo[playerid][pStartbonus] = 1;
}
else SendClientMessage(playerid, COLOR_GRAD1, "Du hast deinen StartBonus schon erhalten");
}
}
else SendClientMessage(playerid, COLOR_GRAD1, "Du bist nicht bei dem /startbonus punkt(der ist am Noobspawn");
return 1;
}
Dann muss ich fast alle meine CMD´s updaten kann mir nicht jemand einfach die neue sscanf schicken?
//edit2
gibts eigentlich ein Deutsches gut erklärtes TuT zu sscanf?
//edit
Hab nun die sscanf die hatte ich vorher auch drinne
stock sscanf(sstring[], format[], {Float,_}:...)
{
#if defined isnull
if (isnull(sstring))
#else
if (sstring[0] == 0 || (sstring[0] == 1 && sstring[1] == 0))
#endif
{
return format[0];
}
#pragma tabsize 4
new
formatPos = 0,
sstringPos = 0,
paramPos = 2,
paramCount = numargs(),
delim = ' ';
while (sstring[sstringPos] && sstring[sstringPos] <= ' ')
{
sstringPos++;
}
while (paramPos < paramCount && sstring[sstringPos])
{
switch (format[formatPos++])
{
case '\0':
{
return 0;
}
case 'i', 'd':
{
new
neg = 1,
num = 0,
ch = sstring[sstringPos];
if (ch == '-')
{
neg = -1;
ch = sstring[++sstringPos];
}
do
{
sstringPos++;
if ('0' <= ch <= '9')
{
num = (num * 10) + (ch - '0');
}
else
{
return -1;
}
}
while ((ch = sstring[sstringPos]) > ' ' && ch != delim);
setarg(paramPos, 0, num * neg);
}
case 'h', 'x':
{
new
num = 0,
ch = sstring[sstringPos];
do
{
sstringPos++;
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 = sstring[sstringPos]) > ' ' && ch != delim);
setarg(paramPos, 0, num);
}
case 'c':
{
setarg(paramPos, 0, sstring[sstringPos++]);
}
case 'f':
{
new changestr[16], changepos = 0, strpos = sstringPos;
while(changepos < 16 && sstring[strpos] && sstring[strpos] != delim)
{
changestr[changepos++] = sstring[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(sstring, format[formatPos], false, sstringPos)) == -1)
{
if (format[end + 1])
{
return -1;
}
return 0;
}
format[end] = '\'';
sstringPos = ch + (end - formatPos);
formatPos = end + 1;
}
case 'u':
{
new
end = sstringPos - 1,
id = 0,
bool:num = true,
ch;
while ((ch = sstring[++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
sstring[end] = '\0';
num = false;
new
name[MAX_PLAYER_NAME];
id = end - sstringPos;
foreach (Player, playerid)
{
GetPlayerName(playerid, name, sizeof (name));
if (!strcmp(name, sstring[sstringPos], true, id))
{
setarg(paramPos, 0, playerid);
num = true;
break;
}
}
if (!num)
{
setarg(paramPos, 0, INVALID_PLAYER_ID);
}
sstring[end] = ch;
#if defined __SSCANF_FOREACH__
#undef foreach
#undef __SSCANF_FOREACH__
#endif
}
sstringPos = end;
}
case 's', 'z':
{
new
i = 0,
ch;
if (format[formatPos])
{
while ((ch = sstring[sstringPos++]) && ch != delim)
{
setarg(paramPos, i++, ch);
}
if (!i)
{
return -1;
}
}
else
{
while ((ch = sstring[sstringPos++]))
{
setarg(paramPos, i++, ch);
}
}
sstringPos--;
setarg(paramPos, i, '\0');
}
default:
{
continue;
}
}
while (sstring[sstringPos] && sstring[sstringPos] != delim && sstring[sstringPos] > ' ')
{
sstringPos++;
}
while (sstring[sstringPos] && (sstring[sstringPos] == delim || sstring[sstringPos] <= ' '))
{
sstringPos++;
}
paramPos++;
}
do
{
if ((delim = format[formatPos++]) > ' ')
{
if (delim == '\'')
{
while ((delim = format[formatPos++]) && delim != '\'') {}
}
else if (delim != 'z')
{
return delim;
}
}
}
while (delim > ' ');
return 0;
}
hmm hab keinen Dl link gefunden
Ich hab nicht wirklich ahnung von sscanf aber habe das im script
stock sscanf(string[],format[],{Float,_}:...){
new formatPos=0,stringPos=0,paramPos=2,paramCount=numargs();
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(ch>='0'&&ch<='9'){num=(num*10)+(ch-'0');}else{return 1;}
}while((ch=string[stringPos])&&ch!=' ');setarg(paramPos,0,num*neg);}
case 'h','x':{
new ch,num=0;while((ch=string[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));}
case ' ':{break;}default:{return 1;}}
}setarg(paramPos,0,num);}
case 'c':{setarg(paramPos,0,string[stringPos++]);}
case 'f':{
new tmp[25];
strmid(tmp,string,stringPos,stringPos+sizeof(tmp)-2);
setarg(paramPos,0,_:floatstr(tmp));}
case 's','z':{
new i=0,ch;
if(format[formatPos]){
while ((ch=string[stringPos++])&&ch!=' '){
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]!=' '){stringPos++;}
while(string[stringPos]==' '){stringPos++;}
paramPos++;}
while(format[formatPos]=='z')formatPos++;
return format[formatPos];
}
Tag,
Ich hab ein problem mit meinem Selfmade es wird bei wirklich jedem CMD (wo man eine ID angibt) immer ID 0 ausgesucht (anfangs hatte ich das Problem nicht)
Beispiel CMD´s
ocmd:kick(playerid,params[])
{
new pID,grund[128],string[128];
if(!isPlayerAnAdmin(playerid,1))
if(sscanf(params,"ui",pID,grund))return SendClientMessage(playerid,WEIß,"Nutze: /kick [ID] [Grund]");
format(string,sizeof(string),"AdmCmd: %s wurde von %s gekickt. Grund: %s",SpielerName(pID),SpielerName(playerid),grund);
SendClientMessageToAll(ROT,string);
Kick(playerid);
return 1;
}
ocmd:ban(playerid,params[])
{
new pID,grund[128],string[128];
if(!isPlayerAnAdmin(playerid,1))
if(sscanf(params,"ui",pID,grund))return SendClientMessage(playerid,WEIß,"Nutze: /ban [ID] [Grund]");
format(string,sizeof(string),"AdmCmd: %s wurde von %s gebannt. Grund: %s",SpielerName(pID),SpielerName(playerid),grund);
SendClientMessageToAll(ROT,string);
SpielerInfo[pID][pGebannt] = 1;
return 1;
}
MFG
ZitatIch bezweifel das dies der echte Grex ist
Alles anzeigenNein..
1. Er heißt "Julian Schulze" und nicht "Tim Schulze".
2. Julian betrügt niemanden.
3. In seiner Beschreibung in Skype steht Middleman??? das heißt Mittelmann glaub mir das ist er nicht
MfG
//EDIT 3 ist da xD
Falsch Grex heißt (laut seinem Impressum) "Julian Merker"
ZitatIch bezweifel das dies der echte Grex ist
Vorallem weil Grex nicht "Tim" heißt sondern "Julian"
ocmd:o(playerid,params[])
{
new string[128];
if(sscanf(params,"s",string))return SendClientMessage(playerid,COLOR_GREY,"Nutze: /o [MESSAGE]");
if(isPlayerAnAdmin(playerid,1)){
format(string,sizeof(string),"{B9FF00}(( Supporter %s : %s ))",SpielerName(playerid),string);
}
if(isPlayerAnAdmin(playerid,500)){
format(string,sizeof(string),"{EBFF00}(( Moderator %s : %s ))",SpielerName(playerid),string);
}
if(isPlayerAnAdmin(playerid,1000)){
format(string,sizeof(string),"{FFC800}(( High-Supporter %s : %s ))",SpielerName(playerid),string);
}
if(isPlayerAnAdmin(playerid,1500)){
format(string,sizeof(string),"{FFA000}(( Admin %s : %s ))",SpielerName(playerid),string);
}
if(isPlayerAnAdmin(playerid,2000)){
format(string,sizeof(string),"{FF6E00}(( High-Admin %s : %s ))",SpielerName(playerid),string);
}
if(isPlayerAnAdmin(playerid,2011)){
format(string,sizeof(string),"{FF0069}(( Stellv.Porjektleiter %s : %s ))",SpielerName(playerid),string);
}
if(isPlayerAnAdmin(playerid,2012)){
format(string,sizeof(string),"{FF0019}(( Projektleiter %s : %s ))",SpielerName(playerid),string);
}
SendClientMessageToAll(COLOR_OOC,string);
return 1;
}
Mein dad hat früher beides gemacht und wen du Berufs lastkraftwagenfahrer bist bist du nur am WE zuhause also weniger Zeit für Freunde und Familie.
Damit darf man nur auf Privat Gelände Fahren! Ohne Führerschein!
Man darf mit JEDEM Fahrzeug auf Privat gelände fahren (ohne führerschein!) also kannst du z.b. wen du ne Erlaubniss hast auf einem großem privaten gelände zu fahren darfst du auch z.b nen 40Tonner fahren auf Privat gelände darf man fahren was man will
Und man darf ein Fahrzeug nur auf der Straße fahren wen es verkehrstauglich ist d.h. bremsen usw muss es haben.
Der Compiler schmiert nur ab wen man etwas gescriptet hat (was nicht richtig geht)
Es ist schön zu sehen das SA-MP wieder richtig ins laufen kommt in sachen Entwicklung.
Die beiden neuen Funktionen werden hoffentlich nicht die einzigsten bleiben.
Ich freue mich schon darauf was bis zur Final Version alles hinzu kommt.
Zunno
Aufjedenfall soviel wie ich durchs lesen verstanden habe neue Models / objecte
Ich find den neuen Dialog doof meinermeinung nach passt das nicht
Suche nen DL für 3.3.5a pls per pm schicken
Du brauchst die 0.3d Includes ...