irgendwo muss es aber nochmal erstellt werden, das macht das Script nicht einfach ohne Grund
Beiträge von Dachdecker
-
-
Ich hab es mal so getestet und es kam nicht einmal vor, dass rnd und rnd2 gleich waren
if(strcmp("/test", cmdtext, true, 10) == 0)
{
if(IsPlayerConnected(playerid))
{
new rnd = random(50)+1,
rnd2= random(50)+1,
rndstring[30];
if(rnd2 == rnd)
{
rnd2=random(50)+1;
}
else
{
format(rndstring, sizeof(rndstring), "RND: %d ------ RND2: %d", rnd, rnd2);
SendClientMessage(playerid, Weiss, rndstring);
}
}
return 1;
} -
Kann es sein, dass eventuell Pickups durch ein enum erstellt werden in einer "for" Schleife? Schau mal im Script nach CreatePickup(1240 und CreateDynamicPickup(1240 eventuell findest du dann deine Pickups
-
Klammer mal das aus und schaue ingame an beiden punkten ob es weg ist
healpointsapd=CreateDynamicPickup(1240,1,230.2354,115.1321,1003.2188);armourpointsapd=CreateDynamicPickup(1242,1,228.2797,115.0103,1003.2188);
-
schau mal ob du im script noch etwas unter : healpointsapd und armourpointsapd findest
-
Ich werde mal gucken, hab auch schon daran gedacht.
Wie schauts aus
-
andere 3DTextDraws werden im Script erstellt und auf dem Server problemlos erstellt
-
Ich habe zum Test ein BizPickup nach außen verschoben, es wird trotzdem nicht angezeigt.
-
Falls du die alten Codes noch kennst, kannst du doch nach diesen im Script suchen, eventuell hast du die falschen Codes ersetzt, oder sie werden noch woanders erstellt wo die alten Codes noch drinne stehen(unwahrscheinlich denke ich)
-
In der Console steht:
Label für 0 erstellt: 0
und Label für 1 erstellt: 1
Ingame ist aber kein Label:
-
Ja die Virtuelle Welt stimmt eigentlich..
-
Das CreatePickup wird erstellt, aber das Create3DTextLabel nicht..
Und mir fehlt noch ein /bizerstellen befehl.. kommt mit deinem tut da nicht zurecht ... Du hast da iwas mit idx und bla blub..
stock BusinessLaden()
{
new erstellteBusinesses, path[64], BizString[200];
for(new i=0; i<Max_Businesses; i++)
{
format(path, sizeof(path), "/Businesses/%d.ini", i);
if(!fexist(path)) continue;
strmid(BusinessInfo[i][B_Besitzer],dini_Get(path,"BizBesitzer"),false,strlen(dini_Get(path,"BizBesitzer")),MAX_PLAYER_NAME);
strmid(BusinessInfo[i][B_Inteilhaber],dini_Get(path,"BizInteilhaber"),false,strlen(dini_Get(path,"BizInteilhaber")),MAX_PLAYER_NAME);
BusinessInfo[i][B_Kasse] = dini_Int(path, "BizKasse");
BusinessInfo[i][B_Pakete] = dini_Int(path, "BizPakete");
BusinessInfo[i][B_Pos_X] = floatstr(dini_Get(path, "Biz_X"));
BusinessInfo[i][B_Pos_Y] = floatstr(dini_Get(path, "Biz_Y"));
BusinessInfo[i][B_Pos_Z] = floatstr(dini_Get(path, "Biz_Z"));
BusinessInfo[i][B_ID] = dini_Int(path, "BizID");
if(BusinessInfo[i][B_ID] <= Max_Businesses)
{
format(BizString, sizeof(BizString), "Besitzer: %s\nInteilhaber: %s\nKasse: %d\nPakete: %d", BusinessInfo[i][B_Besitzer], BusinessInfo[i][B_Inteilhaber], BusinessInfo[i][B_Kasse], BusinessInfo[i][B_Pakete]);
Create3DTextLabel(BizString, Weiss, BusinessInfo[i][B_Pos_X], BusinessInfo[i][B_Pos_Y], BusinessInfo[i][B_Pos_Z], 5, 0,0);
CreatePickup(1272, 1, BusinessInfo[i][B_Pos_X], BusinessInfo[i][B_Pos_Y], BusinessInfo[i][B_Pos_Z] ,0);
}
else
{
printf("Fehler: BizID %d existiert nicht.", BusinessInfo[i][B_ID]);
}
erstellteBusinesses++;
if(erstellteBusinesses == Max_Businesses) return print("Es können keine weiteren Businesses geladen werden, Limit (Max_Businesses) erreicht.");
}
return 1;
} -
Machen die Funktionen so wie sie sind Sinn?
Das Ding ist, beim Laden steht ja wie bei erstellen und speichern dieses format(BusinessDatei, "Businesses/%s.txt", Name);
Meine Frage ist, schafft er es den Name zu finden ohne das er übergeben wird? (Meiner Meinung nach nicht?
@Jeffry
//Push -
-
Hallo ihr lieben,
ich habe soeben ein BusinessSystem angefangen.. Ich möchte gerne wissen, wo ich es am Besten Speichere und Lade. Und was beim stock BusinessLaden und BusinessSpeichern in Klammern stehen sollte.
Hier meine Ansätze:
stock BusinessErstellen(Name[MAX_PLAYER_NAME], Teilhaber[MAX_PLAYER_NAME], BPakete, Float:X, Float:Y, Float:Z)
{
new BusinessDatei[64];
format(BusinessDatei, sizeof(BusinessDatei), "Businesses/%s.txt", Name);
dini_Create(BusinessDatei);
dini_Set(BusinessDatei, "Besitzer", Name);
dini_Set(BusinessDatei, "Inteilhaber", Teilhaber);
dini_IntSet(BusinessDatei, "Pakete", BPakete);
dini_FloatSet(BusinessDatei, "B_Pos_X", X);
dini_FloatSet(BusinessDatei, "B_Pos_Y", Y);
dini_FloatSet(BusinessDatei, "B_Pos_Z", Z);
return 1;
}
stock BusinessLaden(Name[MAX_PLAYER_NAME])
{
new BusinessDatei[64], BusinessString[200];
format(BusinessDatei, sizeof(BusinessDatei), "Businesses/%s.txt", Name);
for(new i = 0; i<MAX_Businesses; i++)
{
BusinessInfo[i][Besitzer] = dini_Get(BusinessDatei, "Besitzer");
BusinessInfo[i][Inteilhaber] = dini_Get(BusinessDatei, "Inteilhaber");
BusinessInfo[i][Pakete] = dini_Int(BusinessDatei, "Pakete");
BusinessInfo[i][B_Pos_X] = dini_Float(BusinessDatei,"B_Pos_X");
BusinessInfo[i][B_Pos_Y] = dini_Float(BusinessDatei,"B_Pos_Y");
BusinessInfo[i][B_Pos_Z] = dini_Float(BusinessDatei,"B_Pos_Z");
format(BusinessString, sizeof(BusinessString), "Inhaber: %s\nInteilhaber: %s\nPakete: %i\nKasse: %i$", BusinessInfo[i][Besitzer],BusinessInfo[i][Inteilhaber],BusinessInfo[i][Pakete],BusinessInfo[i][Kasse]);
Create3DTextLabel(BusinessString, Weiss, BusinessInfo[i][B_Pos_X], BusinessInfo[i][B_Pos_Y], BusinessInfo[i][B_Pos_Z], 5,0,0);
}
return 1;
}
stock BusinessSpeichern(Name[MAX_PLAYER_NAME])
{
new BusinessDatei[64];
format(BusinessDatei, sizeof(BusinessDatei), "Businesses/%s.txt", Name);
for(new i = 0; i<MAX_Businesses; i++)
{
dini_Set(BusinessDatei, "Besitzer", BusinessInfo[i][Besitzer]);
dini_Set(BusinessDatei, "Inteilhaber", BusinessInfo[i][Inteilhaber]);
dini_IntSet(BusinessDatei, "Pakete", BusinessInfo[i][Pakete]);
dini_FloatSet(BusinessDatei, "B_Pos_X", BusinessInfo[i][B_Pos_X]);
dini_FloatSet(BusinessDatei, "B_Pos_Y", BusinessInfo[i][B_Pos_Y]);
dini_FloatSet(BusinessDatei, "B_Pos_Z", BusinessInfo[i][B_Pos_Z]);
}
return 1;
}Der Befehl zum Erstellen:
ocmd:bizerstellen(playerid, params[])
{
new BSpielerName[MAX_PLAYER_NAME], BizTeilhaber[MAX_PLAYER_NAME], BizPakete, Float:B_X, Float:B_Y, Float:B_Z;
if(sscanf(params, "ssi", BSpielerName, BizTeilhaber, BizPakete)) return SendClientMessage(playerid, Weiss, "/bizerstellen [SpielerName][Teilhaber][Pakete]");
if(SpielerInfo[playerid][AdminLevel] <= 5) return SendClientMessage(playerid, Weiss, "");
GetPlayerPos(playerid, B_X, B_Y, B_Z);
BusinessErstellen(BSpielerName, BizTeilhaber, BizPakete, B_X, B_Y, B_Z);
printf("SpielerName: %s, Teilhaber: %s, Pakete: %i, FloatX: %f, FloatY: %f, FloatZ: %f", BSpielerName, BizTeilhaber, BizPakete, B_X, B_Y, B_Z);
SendClientMessage(playerid, Weiss, "Biz erstellt");
return 1;
} -
Vielen Dank Jeffry.
Ich hätte eine weitere Frage.
Wie kann ich jetzt mit sagen wir mal "stock" eine Funktion machen wo das Businesserstellt wird (ingame per Befehl) in txt gespeichert und selbstverständlich beim Start des Servers ausgelesen?
Kannst du mir eventuell dabei auch helfen? @Jeffry -
@BenQ Das ist syntakisch völlig daneben.
Das Problem ist, dass du im enum Besitzer schreibst und im format Inhaber.
BusinessInfo[i][Inhaber]
Zu
BusinessInfo[i][Besitzer]Verdammt Jeffry du hast total recht, das offentlichliche nicht erkannt. vielen dank
-
Probiere mal so.
new BusinessString[200];for(new i = 0; i<MAX_Businesses; i++){format(BusinessString, sizeof(BusinessString), "Inhaber: %s\nInteilhaber: %s\nKasse: %i$", BusinessInfo[i][Inhaber],BusinessInfo[i][Inteilhaber],BusinessInfo[i][Kasse]);Create3DTextLabel(BusinessString, Weiss, BusinessInfo[MAX_Businesses][BInfo][B_Pos_X], BusinessInfo[MAX_Businesses][BInfo][B_Pos_Y], BusinessInfo[MAX_Businesses][BInfo][B_Pos_Z], 5,0,0);}
E:\Grand Theft Auto San Andreas\Server\gamemodes\Selfmade.pwn(341) : warning 213: tag mismatch
E:\Grand Theft Auto San Andreas\Server\gamemodes\Selfmade.pwn(341) : error 032: array index out of bounds (variable "BusinessInfo")
E:\Grand Theft Auto San Andreas\Server\gamemodes\Selfmade.pwn(342) : error 032: array index out of bounds (variable "BusinessInfo")
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase2 Errors.
Fehler 341 bei format
Fehler 342 bei Create3DTextLabel -
Ja er ist dann weg...
Könnt ihr mir in diesem Thema für den anderen Befehl auch helfen?
-
Ich verstehe es auch nicht..
Hab grad auch ein Problem mit einem anderen Befehl..