was für einen fehler
Beiträge von Tround
- 
					
- 
					klar   
 solange die include im script eingebunden ist
- 
					ich würds dir empfehlen^^ 
- 
					was der spieler in den input dialog eingegeben hat wird im response public mit inputtext[] ausgelesen. erstmal schaun ob eine zahl eingegeben wurde mit if(!IsNumeric(inputtext))return ShowPlayerDialog... 
 (is numeric überprüft ob überhaupt eine zahl eingegeben wurde .. http://pastebin.com/3G94dnAw)die auswahl begrenzen auf skins 0-299 if(strval(inputtext)<0||strval(inputtext)>299)return ShowPlayerDialog... 
 (mit strval wird der string inputtext[] in einen integer umgewandelt)und natürlich 
 SetPlayerSkin(playerid,strval(inputtext));
- 
					public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) mit inputtext wird ausgelesen was der spieler in den input dialog eingegen hat 
 if(dialogid==dialog_buydrugs)
 {
 if(response==1)
 {
 if(listitem==0)return ShowPlayerDialog(playerid,dialog_buyweed,DIALOG_STYLE_INPUT,"Weed","Ray: Wieviel Gramm darf's denn sein, mein Lieber?","Kaufen","Abbrechen");
 }
 }
 if(dialogid==dialog_buyweed)
 {
 if(response==1)
 {
 GivePlayerMoney(playerid,-strval(inputtext)*15);//mit strval den inputtext string in ein integer umwandeln und mit dem weed preis multiplizieren
 return 1;
 }
 }man sollte dann natürlich auch noch so abfragen machen wie: hat der spieler genug geld 
 if(GetPlayerMoney(playerid)<strval(inputtext))return blais das eingegebene eine zahl (den stock gibts überall im inet) 
 if(!IsNumeric(inputtext))return bladie eingabe begrenzen damit man nicht ins minus kann 
 if(strval(inputtext)<1||strval(inputtext)>100)return bla
- 
					das menü nicht über den pickup öffnen sondern per befehl oder per tastendruck. 
 oder vlcht ne variable setzten wie z.b.new waffenmenuoffen[MAX_PLAYERS]; if(pickupid == waffen) 
 {
 if(waffenmenuoffen[playerid]==1)return 0;
 ShowPlayerDialog(playerid, 1,DIALOG_STYLE_LIST, "Laden", "Deagle 2500$\nM4 4000$\nSniper 4000$\nmp5 3000$\nShotgun 3000$\nRüstung 2000$\nLeben 200$" , "ok", "abbrechen");
 waffenmenuoffen[playerid]=1;
 }und beim dialog response 
 if(response==0)return waffenmenuoffen[playerid]=0;
 oder wenn eine waffe gekauft wird bei response 1
- 
					ich vermute mal das liegt an dem pickup. 
 wenn du in dem pickup stehen bleibst öffnet sich das menü die ganze zeit neu..
 denk ich mal
- 
					warum "uI" obwohl beides integer sind ? 
 if(sscanf(params,"ui",Farbe1,Farbe2))
- 
					tut mir leid das ich einen kleine fehler übersehen habe aber dennoch ist euer code falsch.. 
 das hat mit dem beschriebenen fehler absolut nichts zutun ..
- 
					benutzt du die mysql stocks von maddin? 
- 
					kann man ein system auch einfach auf einem testserver vorstellen ohne den code zu zeigen? 
- 
					bei if abfragen geht er für jede abfrage einzeln durch aber bei switch case kann er direk dort hinspringen wos nötig ist.. von daher bei vielen if abragen durchaus schneller.. 
 würrd ich mal so behaupten
- 
					@ Crocky 
 hast du 0.3x ? wenn ja kann das gar nicht klappen
- 
					hier die antwort auf deine pn damit es auch andere nachlesen können wenn sie danach suchen.. habe es bei mir so gelöst: ocmd:kick(playerid,params[]) 
 {
 new pID, reason[128],string[128];
 if(sscanf(params,"us",pID,reason))return SendClientMessage(playerid,0xFFFA00FF,"/kick [id] [grund]");
 format(string,sizeof(string),"AdmCmd: %s wurde von %s gekickt. Grund: %s",Spielername(pID),Spielername(playerid),reason);
 SendClientMessageToAll(0xFFFA00FF,string);
 SetTimerEx("kickban",100,0,"ii",pID,1);
 return 1;
 }
 forward kickban(playerid,bankick);
 public kickban(playerid,bankick)
 {
 switch(bankick)
 {
 case 1:return Kick(playerid);
 case 2:return Ban(playerid);
 }
 return 1;
 }case 1 für kick 
 case 2 für ban
- 
					das liegt an dem neuesten update von samp 
 Important Note: As of SA-MP 0.3x, any message sent to the player with SendClientMessage before Kick() will not be displayed for them.
 bedeutet Kick() und Ban() werden zuerst aufgerufen egal in welcher reihenfolge gescriptet wurde..
 einfach einen timer setzen und den spieler nach ein paar ms kicken um noch den namen auslesen zu können und den spieler abzuspeichern
- 
					wieso KillTimer(500000); obwohl du gar keinen timer erstellt hast mit dem namen 500000 ???? if(strcmp(cmd, "/tor", true) == 0) 
 {
 if(pInfo[playerid][fraktion] >= 1)
 {
 if(IsPlayerInRangeOfPoint(playerid, 5.0, 1547.27, -1627.73, 15.32))
 {
 MoveObject(LSPDTor, 1547.27, -1627.73, 15.12, 6.0);//aufmachen
 SetTimer("torpublic",10000,0);//timer von 10 sek mit repeat 0
 }
 }
 return 1;
 }
 forward torpublic();
 public torpublic()
 {
 MoveObject(LSPDTor, 1547.27, -1627.73, 15.32, 6.0);//zumachen
 return 1;
 }
- 
					nein 
- 
					
- 
					zu 1: 
 if(sscanf(params,"s",pID,str))return SendClientMessage(playerid,Farbe_Grau,"Benutze: /unban [Name]");
 dort steht nur ein "s" für einen string aber du hast 2 params angegeben..zu 2: 
 seit dem neuesten samp update wird Kick oder Ban immer zuerst ausgeführt egal in welcher reihenfolge gescriptet wird..
 daher mit einem kleinen timer den spieler später kicken damit man noch vorher den namen auslesen kann und eine nachricht schicken kann.. sowie den spieler gebannt abspeichern..
- 
					GetPVarInt ist für integer gedacht.. was du suchst ist vermutlich GetPVarString 
 http://wiki.sa-mp.com/wiki/GetPVarString
 
		 
		
		
	