wie mache ich eine /f chat oder für admin /a
geht das mit     for oder
kann mir jemand einen script geben
MFG Piet
/f chat
- SylpheedW
- Geschlossen
- Erledigt
											
										
					Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!
Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link				
		
		- 
			
- 
			Verschiedene Callbacks (Admin / Fraktionsabfragen), 
 for-Schleifen beim CMD 
- 
			for(new pID; pID<MAX_PLAYERS; pID++) 
 {
 if(IsPlayerConnected(playerid) && FRAKTION[pID] == FRAKTION[playerid])
 {
 SendClientMessage(...);
 }
 }Ergänzen musst du eigentlich nurnoch FRAKTION.. 
 pID steht in der For-Schleife für jede SpielerID, die wir durchgehen, die Playerid ist die ID der Person, die den Text losschickt.Musst es in einen CMD einbauen, oder du baust ne externe Funktion 
 stock SendFamilyMessage(playerid,text[])
 {
 for(new pID; pID<MAX_PLAYERS; pID++)
 {
 if(IsPlayerConnected(playerid) && FRAKTION[pID] == FRAKTION[playerid])
 {
 SendClientMessage(pID,FARBE,text);
 }
 }
 }
- 
			aber wie mache ich das ich habe ja PVar und dann mit for ?? 
 und ich benutze dafür ocmd
- 
			Musst das noch für dich individuell einstellen: 
 ocmd:f(playerid,params[])
 {
 new text[128];
 if(sscanf(params,"s",text))return SendClientMessage(playerid,Rot,"/f [Text]");
 format(text,sizeof(text),"Member %s: %s",SpielerName(playerid),text);
 for(new i=0; i<GetMaxPlayers(); i++)
 {
 if(IsPlayerConnected(i))
 {
 if(IsPlayerInFrakt(i,GetPVarInt(playerid,"Fraktion")))
 {
 SendClientMessage(i,Hellblau,text);
 }
 }
 }
 return 1;
 }und für admin: 
 ocmd:a(playerid,params[])
 {
 new text[128];
 if(sscanf(params,"s",text))return SendClientMessage(playerid,Rot,"/f [Text]");
 format(text,sizeof(text),"Member %s: %s",SpielerName(playerid),text);
 for(new i=0; i<GetMaxPlayers(); i++)
 {
 if(IsPlayerConnected(i))
 {
 if("AdminAbfrage"(i,GetPVarInt(playerid,"Beruf")))
 {
 SendClientMessage(i,Hellblau,text);
 }
 }
 }
 return 1;
 }brauchst dafür dini und ocmd 
- 
			aber wie soll ich das if(IsPlayerInFrakt(i,GetPVarInt(playerid,"Fraktion"))) definieren 
 die pvar stimmt aber ich bekomme den error
 C:\Dokumente und Einstellungen\Server\Desktop\samp03csvr_R5_win32\gamemodes\cut.pwn(128) : error 017: undefined symbol "IsPlayerInFrakt"
 Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase1 Error. 
- 
			Wie hast du denn IsPlayerInFrakt definiert? So, IsPlayerInFrakt oder so, isPlayerInFrakt? 
- 
			wei meinst du das 
 in meinem script habe ich das nirgendwo
 ich mache ja selfmade
- 
			Hey hier einmal der ocmd Befeh für den F Chatl : ocmd:f(playerid,params[]) 
 {
 new text[128];
 if(sscanf(params,"s",text))return SendClientMessage(playerid,COLOR_TOMATO,"/f [text]");
 format(text,sizeof(text),"%s: %s",SpielerName(playerid),text);
 for(new i=0; i<GetMaxPlayers(); i++)
 {
 if(IsPlayerConnected(i))
 {
 if(isPlayerInFrakt(i,GetPVarInt(playerid,"Fraktion")))
 {
 SendClientMessage(i,COLOR_F,text);
 }
 }
 }
 return 1;
 }Befehl für A Chat : ocmd:a(playerid,params[]) 
 {
 new text[128];
 if(!isPlayerAnAdmin(playerid,1))return 1;
 if(sscanf(params,"s",text))return SendClientMessage(playerid,COLOR_TOMATO,"/a [Text]");
 format(text,sizeof(text),"<<Admin %s: %s>>",SpielerName(playerid),text);
 for(new i=0;i<GetMaxPlayers();i++)
 {
 if(IsPlayerConnected(i))
 {
 if(isPlayerAnAdmin(i,1))
 {
 SendClientMessage(i,COLOR_TOMATO,text);
 }
 }
 }
 return 1;
 }Speichern : 
 stock SpielerSpeichern(playerid)
 {
 if(GetPVarInt(playerid,"loggedin")==1)
 {
 new Spielerdatei[64];
 new name[MAX_PLAYER_NAME];
 GetPlayerName(playerid,name,sizeof(name));
 format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
 dini_IntSet(Spielerdatei,"Level",GetPlayerScore(playerid));
 dini_IntSet(Spielerdatei,"Geld",GetPlayerMoney(playerid));
 dini_IntSet(Spielerdatei,"Adminlevel",GetPVarInt(playerid,"Adminlevel"));
 dini_IntSet(Spielerdatei,"Fraktion",GetPVarInt(playerid,"Fraktion"));
 }
 return 1;
 }Laden : 
 stock LoadAccount(playerid)
 {
 new Spielerdatei[64];
 new name[MAX_PLAYER_NAME];
 GetPlayerName(playerid,name,sizeof(name));
 format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
 SetPlayerScore(playerid,dini_Int(Spielerdatei,"Level"));
 GivePlayerMoney(playerid,dini_Int(Spielerdatei,"Geld"));
 SetPVarInt(playerid,"Adminlevel",dini_Int(Spielerdatei,"Adminlevel"));
 SetPVarInt(playerid,"Fraktion",dini_Int(Spielerdatei,"Fraktion"));
 SetPVarInt(playerid,"loggedin",1);
 return 1;
 }Dazu musst du das auch noch ganz unten ins Script machen stock isPlayerInFrakt(playerid,fraktid) 
 {
 if(GetPVarInt(playerid,"Fraktion")==fraktid)return 1;
 return 0;
 }stock isPlayerAnAdmin(playerid,rang) 
 {
 if(GetPVarInt(playerid,"Adminlevel")>=rang)return 1;
 return 0;
 }/edit IsPlayerAnAdmin hinzugefügt etc. 
- 
			wie überprüfst du denn, ob das ein admin b.z.w. ein FraktionsMember ist? 
- 
			ein login register system habe ich ja auch mit dini schon 
 aber ich frage die frak mit
 GetPVarInt(playerid, "Fraktion")
 //und rang
 GetPVarInt(playerid, "Frak-Rang")
 habe bis jetzt
 aber ja es geht jetzt wegen dem
 stock von is Player in frak
 da ich den nicht hatte
 DankePS:dein Login ist wie mein 
 ist doch auch das von MrMonat oder?// edit habe versucht es mit szock zu nutzen um später den rang anzuzeigen bekomme aber 1 error 
 hier der script
 ocmd:f(playerid,params[])
 {
 new text[128];
 if(GetPVarInt(playerid, "Frak-Rang") >1)return SendClientMessage(playerid,BLAU,"/f: Du bist in keiner Fraktion");
 if(sscanf(params,"u",text))return SendClientMessage(playerid,BLAU,"/f [Text]");
 Frak(playerid, text);//zeile 124
 return 1;
 }stock Frak(playerid, text) 
 {
 new pname[MAX_PLAYER_NAME];
 new tring[128];
 GetPlayerName(playerid,pname,sizeof(pname));
 format(tring,sizeof(tring),"Member %s: %s", pname, text);
 for(new i=0; i<GetMaxPlayers(); i++)
 {
 if(IsPlayerConnected(i))
 {
 if(isPlayerInFrakt(i,GetPVarInt(playerid,"Fraktion")))
 {
 SendClientMessage(i,BLAU,tring);
 }
 }
 }
 return 1;
 }
 und dieser error
 C:\Dokumente und Einstellungen\Server\Desktop\samp03csvr_R5_win32\gamemodes\cut.pwn(124) : error 035: argument type mismatch (argument 2)
 Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase1 Error. 
 woran kann das liegen
 argument 2 ist ja text aber was ist daran falsch
- 
			stock isPlayerInFrakt(playerid,fraktid) 
 {
 if(GetPVarInt(playerid,"Fraktion")==fraktid)return 1;
 return 0;
 }einfach bei deinen stocks einfügen  müsste klappen müsste klappen
- 
			es geht aber alle aus der fraktion bekommen nur eine lehre zeile 
 statt dem text
 wisst ihr warum
- 
			  breadfish.deHat das Thema geschlossen.
 
		 
		
		
	