Also ein Filterscript, mit dem ein O-Amt mitglied fahrzeuge mit /opark als "Abgeschleppt" bestötigen kann?
Beiträge von CaptainKevin
-
-
1. Ein Befehel
2. einen String formatieren
3. eine Schleife durch alle Leute machen und abfragen, in welcher Frak sie sind
4. Den String ausgeben -
3390 xD
Und ich dachte, ich bin mit meinen 3gh und 8 GB Arbeitsspeicher schnell -..- -
public OnPlayerDeath(playerid,killerid,reason)
{
SetPlayerScore(killerid,GetPlayerScore(killerid)+1);
SetPVarInt(playerid,"Level",GetPVarInt(playerid,"Level")+1);
SpielerSpeichern(playerid);
return 1;
}/e: Mit Dini Speicherung hinzugefügt
-
ocmd:givemoneyall(playerid,params[])
{
new anzahl;
if(adminabfrage)return SendClientMessage(playerid,Rot,"Kein Admin");
if(sscanf(params,"d",anzahl))return SendClientMessage(playerid,Gelb,"Verwendung: /givemoneyall anzahl");
for(new i=0; i<MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
GivePlayerMoney(playerid,anzahl);
}
}
return 1;
} -
if(newstate==PLAYER_STATE_DRIVER)
{
for(new i=0; i<sizeof yakuzacar; i++)//anpassen
{
if(GetPlayerVehicleID(playerid)==yakuzacar[i])//anpassen
{
if(GetPVarInt(playerid,"Fraktion")!=4)//fraktion anpassen
{
RemovePlayerFromVehicle(playerid);
SendClientMessage(playerid,Rot,"Du hast keine Schlüssel für dieses Fahrzeug.");
}
}
}
}
Pass dir das mal an -
Deshalb hab ich ja dazu geschrieben: MIT ERKLÄRUNG
Wer lesen kann ist klar im Vorteil.B2T: Hier im Forum gibt es ein Tutorial für ein Dynamischen FraktionsCar System.
Ich blick da aber nicht durch -
if(!isPlayerInFrakt(playerid,Frakid))
//E: Oder: if(GetPVarInt(playerid,"Fraktion") != Frakid)
-
Per SMS bezahlen? Easy!
Mit Boko SMS.
Oder, wenn ich dir 10€ bei nem Spiel aufladen soll oder so kA -
Dr.Scripter, wenn ich bei dir auch per SMS bezahlen kann,
dann möchte, dass du mir mal erklärst, wie du das gescriptet hat.
Mit Autohaussystem. Ich bin zu doof lol :O -
Dann beantwortet mir eins: Warum ging es gestern und heute noch?
Ich benutze den Code seit Monaten. Immer nur so. Nie war was falsch.
Und dein Code ist auch falsch eingerückt -
Wie im Titel oben schon beschrieben, habe ich ein Problem mit SSCANF.
Ich habe diesen Befehl hier:
ocmd:spawn(playerid,params[])
{
if(!isAdmin(playerid,1))return SendClientMessage(playerid,Rot,Aerror);
new pID, string[128], alevel[128];
if(sscanf(params,"u",pID))return SendClientMessage(playerid,Gelb,"Verwendung: /spawn [Playerid]");
if(!IsPlayerConnected(pID))return SendClientMessage(playerid,Rot,Oerror);
switch(GetPVarInt(playerid,"Adminlevel"))
{
case 1:{alevel="Supporter";}
case 2:{alevel="Moderator";}
case 3:{alevel="Administrator";}
case 4:{alevel="Super Admin";}
case 5:{alevel="Manager";}
case 6:{alevel="Leiter";}
}
format(string,128,"%s %s hat den Spieler %s gespawnt.",alevel,GetName(playerid),GetName(pID));
SendClientMessageToAll(Rot,string);
SpawnPlayer(pID);
return 1;
}
Und den SScanf code:
stock sscanf(string[],format[],{Float,_}:...){if(string[0]==0||(string[0]==1&&string[1]==0)){return format[0];}new formatPos=0,stringPos=0,paramPos=2,paramCount=numargs(),delim=' ';while(string[stringPos]&&string[stringPos]<=' '){stringPos++;}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('0'<=ch<='9'){num=(num * 10) + (ch - '0');}else{return -1;}}
while((ch=string[stringPos])>' '&&ch!=delim);setarg(paramPos,0,num * neg);}case'h','x':{new num=0,ch=string[stringPos];do{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));}default:{return -1;}}}while((ch=string[stringPos])>' '&&ch!=delim);setarg(paramPos,0,num);}case'c':{setarg(paramPos,0,string[stringPos++]);}
case'f':{new changestr[16],changepos=0,strpos=stringPos;while(changepos<16&&string[strpos]&&string[strpos]!=delim){changestr[changepos++]=string[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(string,format[formatPos],false,stringPos))==-1){if(format[end + 1]){
return -1;}return 0;}format[end]='\'';stringPos=ch + (end - formatPos);formatPos=end + 1;}case'u':{new end=stringPos - 1,id=0,bool:num=true,ch;while((ch=string[++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
string[end]='\0';num=false;new name[MAX_PLAYER_NAME];id=end - stringPos;foreach (Player,playerid){GetPlayerName(playerid,name,sizeof (name));if(!strcmp(name,string[stringPos],true,id)){setarg(paramPos,0,playerid);num=true;break;}}if(!num){setarg(paramPos,0,INVALID_PLAYER_ID);}string[end]=ch;
#if defined __SSCANF_FOREACH__
#endif
}stringPos=end;}case's','z':{new i=0,ch;if(format[formatPos]){while((ch=string[stringPos++])&&ch!=delim){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]!=delim&&string[stringPos]>' '){stringPos++;}while(string[stringPos]&&(string[stringPos]==delim||string[stringPos]<=' ')){stringPos++;}paramPos++;}do
{if((delim=format[formatPos++])>' '){if(delim=='\''){while((delim=format[formatPos++])&&delim!='\'') {}}else if(delim!='z'){return delim;}}}while(delim>' ');return 0;}
Wenn ich compilen will kommt das:
C:\Users\Smith Fmily\Desktop\0.3eR2 - MySQL\gamemodes\WOGD.pwn(687) : warning 217: loose indentation
C:\Users\Smith Fmily\Desktop\0.3eR2 - MySQL\gamemodes\WOGD.pwn(687) : warning 217: loose indentation
C:\Users\Smith Fmily\Desktop\0.3eR2 - MySQL\gamemodes\WOGD.pwn(687) : warning 217: loose indentation
C:\Users\Smith Fmily\Desktop\0.3eR2 - MySQL\gamemodes\WOGD.pwn(688) : warning 217: loose indentation
C:\Users\Smith Fmily\Desktop\0.3eR2 - MySQL\gamemodes\WOGD.pwn(688) : warning 217: loose indentation
C:\Users\Smith Fmily\Desktop\0.3eR2 - MySQL\gamemodes\WOGD.pwn(689) : warning 217: loose indentation
C:\Users\Smith Fmily\Desktop\0.3eR2 - MySQL\gamemodes\WOGD.pwn(689) : warning 217: loose indentation
C:\Users\Smith Fmily\Desktop\0.3eR2 - MySQL\gamemodes\WOGD.pwn(690) : warning 217: loose indentation
C:\Users\Smith Fmily\Desktop\0.3eR2 - MySQL\gamemodes\WOGD.pwn(690) : warning 217: loose indentation
C:\Users\Smith Fmily\Desktop\0.3eR2 - MySQL\gamemodes\WOGD.pwn(690) : warning 217: loose indentation
C:\Users\Smith Fmily\Desktop\0.3eR2 - MySQL\gamemodes\WOGD.pwn(695) : warning 217: loose indentation
C:\Users\Smith Fmily\Desktop\0.3eR2 - MySQL\gamemodes\WOGD.pwn(695) : warning 217: loose indentation
C:\Users\Smith Fmily\Desktop\0.3eR2 - MySQL\gamemodes\WOGD.pwn(698) : warning 217: loose indentation
C:\Users\Smith Fmily\Desktop\0.3eR2 - MySQL\gamemodes\WOGD.pwn(698) : warning 217: loose indentation
C:\Users\Smith Fmily\Desktop\0.3eR2 - MySQL\gamemodes\WOGD.pwn(698) : warning 217: loose indentation
C:\Users\Smith Fmily\Desktop\0.3eR2 - MySQL\gamemodes\WOGD.pwn(698) : warning 217: loose indentation
C:\Users\Smith Fmily\Desktop\0.3eR2 - MySQL\gamemodes\WOGD.pwn(698) : warning 217: loose indentation
C:\Users\Smith Fmily\Desktop\0.3eR2 - MySQL\gamemodes\WOGD.pwn(698) : warning 217: loose indentation
C:\Users\Smith Fmily\Desktop\0.3eR2 - MySQL\gamemodes\WOGD.pwn(699) : warning 217: loose indentation
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase19 Warnings.
Warum? Info: Aerror und Oerror sind Texte, die ich oben definiert habe. Wenn ich sie rausnehme, kommt immer noch das selbe. -
Ich finds gut.
9/10.
Der eine Punkt, der dir fehlt, ist, weil da zu wenig Beleuchtung ist. (ohh man, fette Rechtschreibfehler)
Aber ich finde die Map gut. Mach noch mehr und ich benutze sie -
Warum nimmst du 3 Variablen? Du musst immer nur "x,y,z" benutzen.
Nicht "xx,yy,zz".
Verbessere es mal und versuche ob das jetzt geht. -
Warum? Erstelle die Fahrzeuge doch per Gamemode und dann
lasst die PosA in deine belibige Richtung zeigen. -
LoL? Alles falsch....
if(strcmp("/enter", cmdtext, true) == 0)
{
if(IsPlayerInRangeOfPoint(playerid,2,1555.4998,-1675.5679,16.1953))
{
SetPlayerPos(playerid,288.9064,171.3878,1007.1794);
SetPlayerInterior(playerid,3);
return 1;
}
return 1;
} -
Hey, du benutzt dort den Befehl aus meinem Tutorial, finde ich toll
Ich mach dir den Befehl und erkläre dir den.
ocmd:delall(playerid,params[])
{
if(isPlayerAnAdmin(playerid,4))
{
for(new i=0; i<MAX_VEHICLES; i++)
{
DestroyVehicle(i);
}
}
return 1;
}
Als 1. brauchst du eine Schleife, dir durch alle Fahrzeuge geht.
Dannach musst du sie ja nur löschen -
Warum setzt du beim verdecken des Tags 2x Playerid?
Du musst schon angeben, wem du es nicht mehr zeigen möchtest.
Versuch mal
ShowPlayerNameTagForPlayer(i,playerid,false); -
ocmd:a(playerid,params[])
{
if(!isPlayerAnAdmin(playerid,1))return SendClientMessage(playerid,Rot,"Du bist kein Admin.");
new text[400];
if(sscanf(params,"s",text))return SendClientMessage(playerid,Grau,"Benutzung: /a [Text]");
new string[128];
if(GetPVarInt(playerid,"Adminlevel")==1) {format(string,sizeof(string),"**(AdminChat) Test - Supporter %s: %s.**", SpielerName(playerid),text);}
else if(GetPVarInt(playerid,"Adminlevel")==2) {format(string,sizeof(string),"**(AdminChat) Supporter %s: %s.**",SpielerName(playerid),text);}
else if(GetPVarInt(playerid,"Adminlevel")==3) {format(string,sizeof(string),"**(AdminChat) Full - Supporter %s: %s.**",SpielerName(playerid),text);}
else if(GetPVarInt(playerid,"Adminlevel")==4) {format(string,sizeof(string),"**(AdminChat) Moderator %s: %s.**",SpielerName(playerid),text);}
else if(GetPVarInt(playerid,"Adminlevel")==5) {format(string,sizeof(string),"**(AdminChat) Test - Admin %s: %s.**",SpielerName(playerid),text);}
else if(GetPVarInt(playerid,"Adminlevel")==6) {format(string,sizeof(string),"**(AdminChat) Admin %s: %s.**",SpielerName(playerid),text);}
else if(GetPVarInt(playerid,"Adminlevel")==7) {format(string,sizeof(string),"**(AdminChat) Mapper %s: %s.**",SpielerName(playerid),text);}
else if(GetPVarInt(playerid,"Adminlevel")==8) {format(string,sizeof(string),"**(AdminChat) Scripter %s: %s.**",SpielerName(playerid),text);}
else if(GetPVarInt(playerid,"Adminlevel")==9) {format(string,sizeof(string),"**(AdminChat) Co - Projektleiter %s: %s.**",SpielerName(playerid),text);}
else if(GetPVarInt(playerid,"Adminlevel")==10) {format(string,sizeof(string),"**(AdminChat) Projektleiter %s: %s.**",SpielerName(playerid),text);}
print("-----");
print(string);
for(new i=0; i<MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
if(isPlayerAnAdmin(i,GetPVarInt(playerid,"Adminlevel")))
{
SendClientMessage(i,Gelb,string);
}
}
}
return 1;
} -
Du musst die Vehicle ID abfragen und dann dem entsprechend
einen Dialog anlegen oder eine Abfrage stellen