ach klasse danke maddin jetzt klappt es genau wie ich es wollte
[SAMMELTHREAD] Kleine Scripting Fragen
- Rafelder
- Unerledigt
Dein Problem konnte durch einen User gelöst werden? Bedank dich bei ihm indem du seinen Beitrag als Hilfreich markierst sowie einen Daumen oben dalässt
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
-
-
Hey ich hab seit einiger Zeit mein Selfmade angefangen und da ich mich mit ini noch nicht ALLZU sehr auskenne habe ich ein wenig aus meinem alten script rauskopiert, problem ist nur wenn ich jetzt mit registriere auf meinem Server passiert es meistens das die ini dann so aussieht:
CodeLevel=105 //müsste auf 1 Erf=110 //müsste auf 0 Admin=101 //müsste auf 0 Premium=115 //müsste auf 0 Bonus=116 //müsste auf 0 Tutorial=97 //müsste auf 127 Tag=114 //müsste auf 0 restliche Werte sind in Ordnung
geregelt ist es durch diese Festlegungen (nach jedem Login):
Spieler[playerid][sLevel] = 1; //startlevel 1
Spieler[playerid][sErf] = 0; //starterf 0
Spieler[playerid][sAdmin] = 0; //adminlevel
Spieler[playerid][sPrem] = 0; //Premiumstatus
Spieler[playerid][sBoni] = 0; //Bonuspunkte
Spieler[playerid][sTut] = 127;
Spieler[playerid][sTag] = 0;Ich frage mich warum das jetzt nach der Registration auf die werte oben gesetzt wird
-
Ich hab so einen Error:
error 008: must be a constant expression; assumed zero
Hier die Zeile:
public UpdateTeam(playerid)
{
new textstring[41];
new Teamname[] = {
{0,"GroveStreet"}, // <-hier ist die Zeile wo der Error ist
{1,"Ballas"},
{2,"Vagos"},
{3,"Cops"},
};
format(textstring, sizeof(textstring), "Team: %i",Teamname[GetPlayerTeam(playerid)]);
TextDrawSetString(textdrawTeam, textstring);
TextDrawShowForPlayer(playerid, textdrawTeam);
return 1;
}
//edit: Zeile markiert wo der Error ist -
Dafür könntest du ein enum benutzten.
Wozu ist denn die
new Teamname[] = {
{0,"GroveStreet"}, // <-hier ist die Zeile wo der Error ist
{1,"Ballas"},
{2,"Vagos"},
{3,"Cops"},
};
0,1,2,3 gut bei dem Array ?
Sonst könntest du nämlich sowas erstellen:
new Teamname[][] = {
{"GroveStreet"}, // <-hier ist die Zeile wo der Error ist
{"Ballas"},
{"Vagos"},
{"Cops"}
};
Ein String ist ein Array.Wollen wir also ein Array von String bzw ein Array von Array müssten wir es auch als 2Dimensionales Array kennzeichen.//Edit: Fix.
-
Ich bin noch nicht deeer Checker im Scripten, also , ich will das state Team: 1 usw. halt angezeigt wird Team: Grove usw.. Soviel mal dazu was ich möchte.
Die Idee mit dem Enum ist mir auch schon gekommen, jedoch wusste ich nicht wirklich wie ich das anstellen soll -
Die Zahl die du vorne hattest ist relativ unnötig,da es sowieso der Index des Eintrages war.
Hab übersehen das bei dir die Formatierung noch etwas falsch war.
%i ist der Platzhalter für Zahlen ( Ganze Zahlen ) , %s für Strings bzw Texte.
format(textstring, sizeof(textstring), "Team: %s",Teamname[GetPlayerTeam(playerid)]); -
Naja, es hat sich nicht viel verändert:
Error 1: (83) : error 008: must be a constant expression; assumed zero
Error 2: (83) : error 029: invalid expression, assumed zero
Code:
public UpdateTeam(playerid)
{
new textstring[41],
Teamname[][] = {
{"GroveStreet"},
{"Ballas"},
{"Vagos"},
{"Cops"},
}; //Errors sind hier
format(textstring, sizeof(textstring), "Team: %s",Teamname[GetPlayerTeam(playerid)]);
TextDrawSetString(textdrawTeam, textstring);
TextDrawShowForPlayer(playerid, textdrawTeam);
return 1;
} -
Das Komma nach {"Cops"} muss weg
//Goldkiller: Jop.Hast recht.
-
Dankööö
-
Ja Hallo ich hab vor ein kleines Biz System zu scripten
da hab ich ma ganz oben das hier deklariert:
enum bInfo
{
bBesetzt,
bBesitzer,
bPreis,
bName[32],
};
new BizInfo[2][bInfo];nun möchte ich dem Biz 0 in bName Burger Shot North reinschreiben
und für 1 AmmunationBizInfo[0][bName] = "Burger Shot North";
BizInfo[1][bName] = "Ammunation";leider kommt immer dieser fehler:
error 047: array sizes do not match, or destination array is too small
also 2 mawas soll ich tun?
Danke im vorraus ;D
-
-
versuch mal:
strins(BizInfo[0][bName], "Burger Shot North",0);meine frage:
ich hab /sethp befehl und wenn man /sethp id 0 macht dann wird das leben zwar auf 0 gesetzt man stirbt aber erst wenn man iwo runterspringt, sonst kann man frei rumlaugen.
mein code von sethp:ocmd:sethp(playerid,params[])
{
new pid,
string[96],
string2[96],
Float:hp;
if(sscanf(params,"uf",pid,hp)) return SendClientMessage(playerid,COLOR_ORANGE,"Benutze:/sethp [ID] [HP]");
if(player[playerid][padmin] < 3) return SendClientMessage(playerid,COLOR_RED,"Du bist kein AdminLevel 3");
SetPlayerHealth(pid,hp);
format(string,sizeof(string),"Du hast {FF0000}%s{FF4847} auf %f Leben gesetzt",player[pid][pname],hp);
format(string2,sizeof(string),"Du wurdest von {FF0000}%s{FF4847} auf %f Leben gesetzt",player[playerid][pname],hp);
SendClientMessage(playerid,COLOR_HELLRED,string );
SendClientMessage(pid ,COLOR_HELLRED,string2);
return true;
}Danke im vorraus.
MfG Metin
-
benutzt du auch /sethp Metin 0.00 ? Sonst versuch mal anstaat float nen integer bei sscanf. Das funktioniert genauso
-
Also ich weiss nicht ob du das warst, aber mit irgendwem hatte ich letztens schonmal die diskussion. SetPlayerHealth und SetPlayerArmor funktionieren auch mit Integern. Ich verwende in meinem sethp befehl auch sscanf mit integer und es funktioniert einwandfrei. Also bitte sag nichts anderes bevor du es nicht selbst ausprobiert hast.
Nimms mir nicht übel ich will hier keinen streit anfangen oder so, aber es ist wirklich so.
Probiers aus:
COMMAND:sethp(playerid,params[])
{
new pID,health;
if(SpielerInfo[playerid][pAdminLevel]<2) return SendClientMessage(playerid,FARBE_ROT,"Du bist kein Moderator!");
if(sscanf(params, "ud",pID,health)) return SendClientMessage(playerid, FARBE_ROT, "Funktion: /sethp [Playerid/Name] [Wert]");
if(health > 100) return SendClientMessage(playerid, FARBE_ROT, "Du darfst nicht mehr als 100 HP geben!");
SetPlayerHealth(pID, health);
return 1;
}
Und dann reden wir weiter -
Ich schon wieder, naja, das Gangwar Script ist nicht soo einfach -.- Ok kommen wir zu meinem nächsten Problem:
Ich habe einen befehl erstellt: (das ist das wichtigste des Befehls)
if (strcmp("/startwar", cmdtext, true) == 0)
{
//Zone GROVE=========================================================================
if(IsPlayerInArea(playerid,2414.165527, -1729.739624, 2542.165527, -1633.739624))
{
GangZoneFlashForAll(GroveBase,GetPlayerColor(playerid));
IsAttacking[playerid] = true;
SetTimer("war",15000,1);
}
Dann ein forward namens "war" :
public war(playerid)
{
GangZoneFlashForAll(GroveBase || BallasBase || VagosBase || CopBase,GetPlayerColor(playerid));
if(war < 1) //Error 1
{
GangZoneStopFlashForAll(GroveBase || BallasBase || VagosBase || CopBase);
KillTimer(war); //Error 2
}
return 1;
}
aber diese Errors kommen:(2x)
-
Hallo,
ich habe eben einen Beitrag von Robdeflop gelesen, wo drinsteht, dass Vehiclehealth 9999 Unzerstörbarkeit bedeutet.
Mich würde interessieren, ob das wirklich funktioniert, denn ich will das ganze möglichst ohne einen Timer machen. -
Also ich weiss nicht ob du das warst, aber mit irgendwem hatte ich letztens schonmal die diskussion. SetPlayerHealth und SetPlayerArmor funktionieren auch mit Integern. Ich verwende in meinem sethp befehl auch sscanf mit integer und es funktioniert einwandfrei. Also bitte sag nichts anderes bevor du es nicht selbst ausprobiert hast.
Nimms mir nicht übel ich will hier keinen streit anfangen oder so, aber es ist wirklich so.
Probiers aus:
COMMAND:sethp(playerid,params[])
{
new pID,health;
if(SpielerInfo[playerid][pAdminLevel]<2) return SendClientMessage(playerid,FARBE_ROT,"Du bist kein Moderator!");
if(sscanf(params, "ud",pID,health)) return SendClientMessage(playerid, FARBE_ROT, "Funktion: /sethp [Playerid/Name] [Wert]");
if(health > 100) return SendClientMessage(playerid, FARBE_ROT, "Du darfst nicht mehr als 100 HP geben!");
SetPlayerHealth(pID, health);
return 1;
}
Und dann reden wir weiterich wars also net^^
hab ich au schon probiert daran liegt es nicht. hat jmd. ne andere idee?
-
Hi,
Also ich habe ein Tor gemacht mit einem Command und möchte, dass dieses Tor nur für mich zu öffnen ist. Für keinen anderen Spieler.
Geht das?
Wenn nicht, dann nur für Admins
MFG SCANIA
-
Hi,
Also ich habe ein Tor gemacht mit einem Command und möchte, dass dieses Tor nur für mich zu öffnen ist. Für keinen anderen Spieler.
Geht das?
Wenn nicht, dann nur für Admins
MFG SCANIA
Hab hier ma ein Beispiel für dich
if(PlayerInfo[playerid][pTorKey] == 243)
{
MoveObject(MyTor, 3432.342,32432.12342,4325.32129);
}// oder so für admins
if(IsPlayerAdmin(playerid) || PlayerInfo[playerid][pAdmin] >= 1)
{
MoveObject(MyTor, 3432.342,32432.12342,4325.32129);
}Hoffe du verstehst das so
Ach und ich hätt ma ne Frage: Wozu sind den ObjectStreamer?
-
#define STREAM_URL_TECHNOBASE ("http://listen.technobase.fm/dsl.asx")
Wie löse ich das problem das er das wegen den beiden // auskommentiert?^^ -
einfach nur www. davor machen
-