haha.. neues script machen.. lololol
einfach mit den neuen includes compilen????
Beiträge von Tround
-
-
warum so einen unglaublich riesigen string
new dString[5000];edit:verstehe
edit 2:
hab deine lösung .. das problem ist das die strings zu groß sind..
#define DIALOG_CREATEHAUS 1234
new dString[5000];
new estring[10][100];
ocmd:createhaus(playerid,params[])
{
if(admin(playerid,6))return keinadmin(playerid);
for(new i=0;i<10;i++)
{
format(estring[i],100,"ID: %i, Name: %s, InteriorID: %i\n",i,sname(playerid),i);
strcat(dString,estring[i]);
}
ShowPlayerDialog(playerid,DIALOG_CREATEHAUS,DIALOG_STYLE_LIST,"Interiorauswahl",dString,"Auswählen","Abbrechen");
info(playerid,dString);
return 1;
}
mach die strings global und nicht im befehl selbst -
if(strcmp(cmd, "/fill", true) == 0 || strcmp(cmd, "/fillcar", true) == 0)
{
if(IsPlayerConnected(playerid))
{
for(new b = 0; b < sizeof(TankeInfo); b++)//bedeutet alles was hier drunter in der klammer steht wird so oft ausgeführt wie die größe von tankeinfo
{
if(IsPlayerInRangeOfPoint(playerid,10.0,1004.1221,-940.8615,41.9956))
{
if(IsANoTachoVehicle(GetPlayerVehicleID(playerid)))
{
SendClientMessage(playerid,COLOR_GRAD1,"Du kannst dein Fahrrad nicht Auftanken!");//wenn du also aufm fahrrad sitzt müsste die nachricht mehrmals kommen
}
else
{
SetTimer("Fillup",RefuelWait,0);//genauso wie der timer
Refueling[playerid] = 1;
TogglePlayerControllable(playerid, 0);
SendClientMessage(playerid,COLOR_WHITE,"Dein Fahrzeug wird betankt, bitte warten...");
format(string, sizeof(string), "UserCMD: %s Tankt an einer Tankstelle auf (/fill).", PlayerName(playerid));
ABroadCast(COLOR_LIGHTRED,string, 5);
}
}
else
{
// SendClientMessage(playerid,COLOR_GREY,"Du bist an keiner Tankstelle!");
// return 1;
}
}
}
return 1;
}//ausserdem fehlt hier eine klammeralso wenn die schleife keinen sinn macht einfach löschen.. oder zumindest sehe ich keinen sinn darin
-
was ich nicht ganz verstehe ist diese schleife hier
for(new b = 0; b < sizeof(TankeInfo); b++)
da du "b" nicht einmal verwendest und auch kein return/break in deiner schleife hast wird z.b der timer so oft gestartet wie die größe von tankeinfo.. kapier ich nicht was das bringt -
Wenn ich dieses Eingebe Bleibt mann Gefreezt
du freezt den spieler ja auchTogglePlayerControllable(playerid, 0);
der Fillup public wäre noch ganz nützlich -
forward AutoNachricht(playerid); public AutoNachricht(playerid)
das problem ist du erstellst playerid. aber darin ist nichts gespeichert..
wenn man eine variable erstellt steht sie automatisch auf 0. daher wird es nur mit playerid 0 klappen. vermutlich warst du damals id 0. -
zeig uns am besten mal wo der timer erstellt wird und wie du ihn einsetzt
-
entweder im timer playerid mitschicken mit settimerex oder eine schleife machen für alle spieler..
is klar das er mit "playerid" nix anfangen kann da du nirgends playerid ausliest/definierstps:
bekomm ich das Error
aber wo ist der Problem???
lern deutsch -
Das Speichert nicht in der .txt nur in die Passwörter
dini_Set(Spielerdatei,"Passwort",key);
du speicherst auch nur das pw ab? -
naja aus deinen variablen auslesen und mit format einfügen z.b.
format(string,128,"Cola: %i\nSprite %i",varible cola,variable sprite);
ShowPlayerDialog(playerid,DIALOG_GETRÄNKE-I,DIALOG_STYLE_LIST,string,"Benutzen","Zurück"); -
überlege mal was für parameter du brauchst.. der einzige parameter nach dem eigentlichen befehl soll ein spieler sein.
Zitatu User name/id (bots and players) Y_Less, 0
warum willst du dann noch zwei strings hinzufügen?
if(sscanf(params,"u",pid))ps: wie konntest du in 6 minuten den thread von y_less durchlesen? das ist überhaupt nicht möglich..
ich empfehle dir es durchzulesen und zu kapieren.. -
vielleicht solltest du dir sscanf nochmal genau anschauen und wie es funktioniert.. was bringt es dir wenn ich dir sage wie es geht aber du nicht kapierst warum.. dann kommt morgen wieder genau das gleiche thema
http://forum.sa-mp.com/showthread.php?t=120356
ZitatSpecifier(s) Name Example values
i, d Integer 1, 42, -10
c Character a, o, *
l Logical true, false
b Binary 01001, 0b1100
h, x Hex 1A, 0x23
o Octal 045 12
n Number 42, 0b010, 0xAC, 045
f Float 0.7, -99.5
g IEEE Float 0.7, -99.5, INFINITY, -INFINITY, NAN, NAN_E
u User name/id (bots and players) Y_Less, 0
q Bot name/id ShopBot, 27
r Player name/id Y_Less, 42 -
hier liegt der fehler
if(sscanf(params,"us",pid))
2 parameter aber nur eine variable angegeben -
SendClientMessage(playerid,COLOR_KOMISCH,"Dein Name ist registriert.{FFFFFF}Logge dich mit deinem {FFFFFF}Passwort ein.");
nur als beispiel.. mit deinen gänsefüschen wirste wahrscheinlich missmatch warning bekommen.. -
haste zufällig die server.cfg mitersetzt und irgendein filterscript/plugin vergessen oder falsch geschrieben
-
mit dem incognito streamer geht es glaub objecte in virtuelle welten/interiors oder sogar auch nur für spieler zu erstellen
CreateDynamic3DTextLabel(const text[], color, Float:x, Float:y, Float:z, Float:drawdistance, attachedplayer = INVALID_PLAYER_ID, attachedvehicle = INVALID_VEHICLE_ID, testlos = 0, worldid = -1, interiorid = -1, playerid = -1, Float:distance = 100.0); -
ich nehm mal an das der server auf 0.3d compilet ist.. das script aber die 0.3e includes braucht.
-
ganz einfach 2 verschiedene virtuelle welten einrichten.
und nicht vergessen den ausgang pickup/3dtext auch in die richtige welt zu setzen.
shop 1:
SetPlayerVirtualWorld(playerid,1);
shop2:
SetPlayerVirtualWorld(playerid,2); -
den inputtext in ein integer umwandeln und eine globale variable einspeichern. und beim 2ten dialog wieder auslesen.
new dialogpid;
dialogpid=strval (inputtext);
GivePlayerWanted(dialogpid,..Was ist aber wenn 2 Leute gleichzeitig Wanteds geben, wird das
Ergebnis nicht verfälscht?dafür gibt es arrays
new dialogpid[MAX_PLAYERS];
dialogpid[playerid]=strval (inputtext);
GivePlayerWanted(dialogpid[playerid],.. -
naja du musst halt beides erstellen lkw/anhänger.. beides in variablen einspeichern..
new lkw=CreateVehicle(...
new anhang=CreateVehicle(...und dann verbinden
AttachTrailerToVehicle(anhang, lkw);