Guten Morgen. In Sachen Mapping hab ich nicht so die Ahnung aber ich könnte dir eine Forum Lizenz anbieten. Falls noch kein Forum vorhanden und Interesse besteht.
Danke aber derzeit besteht kein Interesse ![]()
Guten Morgen. In Sachen Mapping hab ich nicht so die Ahnung aber ich könnte dir eine Forum Lizenz anbieten. Falls noch kein Forum vorhanden und Interesse besteht.
Danke aber derzeit besteht kein Interesse ![]()
Wie würdest du es gerne sehen wenn man die Tresore knacken soll
Ne das ist alles auf meiner eigenen feder ![]()
Moin Leute ich bin gerade dabei einen Shopraub zu schreiben
Ich habe bisher es so Mann muß auf den Actor Zielen damit der Raub gestartet wird.
Mann muss dann 60sek in der Nähe bleiben und danach ist der Raub erfolgreich. Das ist mir ein bisschen zu eintönig habt ihr vielleicht Ideen wie man dies ein wenig Abwechslungsreicher gestalten könnte.
Mfg
Flex
Moin, ich erstelle ein Account, wenn ich dann Disconnecte werden einfach irgendwelche Daten in die Datenbank eingetragen. Die werden aber erst beim Disconnecten eingetragen, nach dem registrieren sind die auf 0
Codestock SaveUserStats(playerid) { if(!PlayerInfo[playerid][pLoggedIn]) return 1; new query[256]; mysql_format(handle, query, sizeof(query), "UPDATE accounts SET level = '%d', money = '%d', kills = '%d', deaths = '%d', admin = '%d', ip = '%i' WHERE id = '%d'", PlayerInfo[playerid][pLevel], PlayerInfo[playerid][pMoney], PlayerInfo[playerid][pKills], PlayerInfo[playerid][pDeaths], PlayerInfo[playerid][pAdmin], PlayerInfo[playerid][pIp], PlayerInfo[playerid][p_id]); mysql_pquery(handle, query); return 1; }
Erhöhe mal deine query auf 1000 oder so
Achso
ja hier bitte
CodeAlles anzeigenocmd:buyhouse(playerid,params[]) { if(HavePlayerAnyHouse(playerid)) return SendClientMessage(playerid,-1,"Du besitzt bereits ein Haus"); for(new i=0; i<sizeof(hInfo); i++) { if(!hInfo[i][h_dbid]) continue; if(!IsPlayerInRangeOfPoint(playerid,5,hInfo[i][h_outx],hInfo[i][h_outy],hInfo[i][h_outz])) continue; if(!strlen(hInfo[i][h_owner])) { if(GetPlayerCash(playerid) < hInfo[i][h_price]) return SendClientMessage(playerid,-1,"Du hast nicht genügend Geld!"); strmid(hInfo[i][h_owner],getPlayerName(playerid),0,MAX_PLAYER_NAME,MAX_PLAYER_NAME); GivePlayerCash(playerid,-hInfo[i][h_price]); saveHouse(i); UpdateHouse(i); return 1; } return SendClientMessage(playerid,-1,"Du kannst dieses Haus nicht Kaufen!"); } return 1; } ocmd:sellhouse(playerid,params[]) { for(new i=0; i<sizeof(hInfo); i++) { if(!hInfo[i][h_dbid]) continue; if(!IsPlayerInRangeOfPoint(playerid,5,hInfo[i][h_outx],hInfo[i][h_outy],hInfo[i][h_outz])) continue; if(!strlen(hInfo[i][h_owner]))continue; if(!strcmp(hInfo[i][h_owner],getPlayerName(playerid),true)) { strmid(hInfo[i][h_owner],"",0,MAX_PLAYER_NAME,MAX_PLAYER_NAME); GivePlayerCash(playerid,hInfo[i][h_price]/2); saveHouse(i); UpdateHouse(i); SendClientMessage(playerid,-1,"Haus erfolgreich verkauft"); return 1; } } return 1; }
Moin nochmal ich habe meine Funktion jetzt mal bisschen angepasst es funktionert jetzt so wie gewollt aber nur wenn man es als erstes beim letzten erstellten haus macht sobald man zu einem vorher erstellten geht ist der alte fehler da er erstellt ein pickup für das gekaufte haus löscht dieses auch aber er löscht das was beim serverstart erstellt wurde nicht. und danach funktioniert es nur noch so.
UpdateHouse(id)
{
new oldpickup;
print("============================");
printf("GeupdateteID: %i DBID: %i",id,hInfo[id][h_dbid]);
new string[384];
if(hInfo[id][h_mapicon] != -1)
{
printf("HausID: %i Mapiconalt:%i",id,hInfo[id][h_mapicon]);
DestroyDynamicMapIcon(hInfo[id][h_mapicon]);
}
if(hInfo[id][h_pickup] != -1)
{
printf("HausID: %i Pickupalt:%i",id,hInfo[id][h_pickup]);
oldpickup = hInfo[id][h_pickup];
}
DestroyDynamic3DTextLabel(hInfo[id][h_text]);
if(strlen(hInfo[id][h_owner]))
{
hInfo[id][h_pickup] = CreateDynamicPickup(1272,0,hInfo[id][h_outx],hInfo[id][h_outy],hInfo[id][h_outz]-0.25,-1);
format(string,sizeof(string),"{FFFFFF}Diese Immobilie gehört:\n{FF9FBB}%s\n{FFFFFF}Hausnr: {FF9FBB}%i",hInfo[id][h_owner],hInfo[id][h_dbid]);
hInfo[id][h_text] = CreateDynamic3DTextLabel(string, 0x008080FF,hInfo[id][h_outx],hInfo[id][h_outy],hInfo[id][h_outz]+0.25,10,INVALID_PLAYER_ID,INVALID_VEHICLE_ID,0,-1,-1,-1,STREAMER_3D_TEXT_LABEL_SD,STREAMER_TAG_AREA:-1,0);
hInfo[id][h_mapicon] = CreateDynamicMapIcon(hInfo[id][h_outx],hInfo[id][h_outy],hInfo[id][h_outz],32,0,-1,-1,-1,50,MAPICON_GLOBAL,-1,0);
}
if(!strlen(hInfo[id][h_owner]))
{
hInfo[id][h_pickup] = CreateDynamicPickup(19470,0,hInfo[id][h_outx],hInfo[id][h_outy],hInfo[id][h_outz]-1,-1);
format(string,sizeof(string),"{FFFFFF}Diese Immobilie steht zum Verkauf\n{FF9FBB}Kaufpreis: {FFFFFF}%i{FF0000}$\n{FF9FBB}Hausnr: {FFFFFF}%i\n{FF9FBB}~{FFFFFF}/buyhouse{FF9FBB}~",hInfo[id][h_price],hInfo[id][h_dbid]);
hInfo[id][h_text] = CreateDynamic3DTextLabel(string, 0x008080FF,hInfo[id][h_outx],hInfo[id][h_outy],hInfo[id][h_outz]+0.25,10,INVALID_PLAYER_ID,INVALID_VEHICLE_ID,0,-1,-1,-1,STREAMER_3D_TEXT_LABEL_SD,STREAMER_TAG_AREA:-1,0);
hInfo[id][h_mapicon] = CreateDynamicMapIcon(hInfo[id][h_outx],hInfo[id][h_outy],hInfo[id][h_outz],31,0,-1,-1,-1,50,MAPICON_GLOBAL,-1,0);
}
printf("HausID: %i PickupNeu:%i",id,hInfo[id][h_pickup]);
printf("HausID: %i Text: %s ",id,string);
printf("HausID: %i Mapicon: %i ",id,hInfo[id][h_mapicon]);
print("============================");
saveHouse(id);
DestroyDynamicPickup(oldpickup);
return 1;
}
Alles anzeigen
Ne, das ist nur die Funktion vom UpdateHouse, aber nicht der Befehl, der darum herum gebaut ist, wenn du es z.B. kaufst oder verkaufst
Lange Rede kurzer Sinn, pack die Funktion mal jeweils ganz ans Ende deiner Befehle und probiere es erneut
Achso ![]()
ja hier bitte
ocmd:buyhouse(playerid,params[])
{
if(HavePlayerAnyHouse(playerid)) return SendClientMessage(playerid,-1,"Du besitzt bereits ein Haus");
for(new i=0; i<sizeof(hInfo); i++)
{
if(!hInfo[i][h_dbid]) continue;
if(!IsPlayerInRangeOfPoint(playerid,5,hInfo[i][h_outx],hInfo[i][h_outy],hInfo[i][h_outz])) continue;
if(!strlen(hInfo[i][h_owner]))
{
if(GetPlayerCash(playerid) < hInfo[i][h_price]) return SendClientMessage(playerid,-1,"Du hast nicht genügend Geld!");
strmid(hInfo[i][h_owner],getPlayerName(playerid),0,MAX_PLAYER_NAME,MAX_PLAYER_NAME);
GivePlayerCash(playerid,-hInfo[i][h_price]);
saveHouse(i);
UpdateHouse(i);
return 1;
}
return SendClientMessage(playerid,-1,"Du kannst dieses Haus nicht Kaufen!");
}
return 1;
}
ocmd:sellhouse(playerid,params[])
{
for(new i=0; i<sizeof(hInfo); i++)
{
if(!hInfo[i][h_dbid]) continue;
if(!IsPlayerInRangeOfPoint(playerid,5,hInfo[i][h_outx],hInfo[i][h_outy],hInfo[i][h_outz])) continue;
if(!strlen(hInfo[i][h_owner]))continue;
if(!strcmp(hInfo[i][h_owner],getPlayerName(playerid),true))
{
strmid(hInfo[i][h_owner],"",0,MAX_PLAYER_NAME,MAX_PLAYER_NAME);
GivePlayerCash(playerid,hInfo[i][h_price]/2);
saveHouse(i);
UpdateHouse(i);
SendClientMessage(playerid,-1,"Haus erfolgreich verkauft");
return 1;
}
}
return 1;
}
Alles anzeigen
Ist doch eingefügt im der Code
Nabend,
ich habe ein kleines Problem an dem ich irgendwie verzweifle.
Bei meiner Haus Update funktion wird auf biegen und brechen das Pickup nicht geupdatet beim start wird es zum richtigen Status erstellt allerdings wenn es geupdatet wird bleibt es so.
Sonst funktioniert alles Mapicon und Text werden richtig geupdatet.
Vielen dank Schonmal im Vorraus ![]()
Funktion:
UpdateHouse(id)
{
print("============================");
printf("GeupdateteID: %i DBID: %i",id,hInfo[id][h_dbid]);
new string[384];
if(hInfo[id][h_mapicon] != 0)
{
printf("HausID: %i Mapiconalt:%i",id,hInfo[id][h_mapicon]);
DestroyDynamicMapIcon(hInfo[id][h_mapicon]);
}
if(hInfo[id][h_pickup] != 0)
{
printf("HausID: %i Pickupalt:%i",id,hInfo[id][h_pickup]);
DestroyDynamicPickup(hInfo[id][h_pickup]);
}
DestroyDynamic3DTextLabel(hInfo[id][h_text]);
if(strlen(hInfo[id][h_owner]))
{
hInfo[id][h_pickup] = CreateDynamicPickup(1272,0,hInfo[id][h_outx],hInfo[id][h_outy],hInfo[id][h_outz]-0.25,-1);
printf("HausID: %i PickupNeu:%i",id,hInfo[id][h_pickup]);
format(string,sizeof(string),"{FFFFFF}Diese Immobilie gehört:\n{FF9FBB}%s\n{FFFFFF}Hausnr: {FF9FBB}%i",hInfo[id][h_owner],hInfo[id][h_dbid]);
hInfo[id][h_text] = CreateDynamic3DTextLabel(string, 0x008080FF,hInfo[id][h_outx],hInfo[id][h_outy],hInfo[id][h_outz]+0.25,10,INVALID_PLAYER_ID,INVALID_VEHICLE_ID,0,-1,-1,-1,STREAMER_3D_TEXT_LABEL_SD,STREAMER_TAG_AREA:-1,0);
hInfo[id][h_mapicon] = CreateDynamicMapIcon(hInfo[id][h_outx],hInfo[id][h_outy],hInfo[id][h_outz],32,0,-1,-1,-1,50,MAPICON_GLOBAL,-1,0);
}
if(!strlen(hInfo[id][h_owner]))
{
hInfo[id][h_pickup] = CreateDynamicPickup(19470,0,hInfo[id][h_outx],hInfo[id][h_outy],hInfo[id][h_outz]-1,-1);
printf("HausID: %i PickupNeu:%i",id,hInfo[id][h_pickup]);
format(string,sizeof(string),"{FFFFFF}Diese Immobilie steht zum Verkauf\n{FF9FBB}Kaufpreis: {FFFFFF}%i{FF0000}$\n{FF9FBB}Hausnr: {FFFFFF}%i\n{FF9FBB}~{FFFFFF}/buyhouse{FF9FBB}~",hInfo[id][h_price],hInfo[id][h_dbid]);
hInfo[id][h_text] = CreateDynamic3DTextLabel(string, 0x008080FF,hInfo[id][h_outx],hInfo[id][h_outy],hInfo[id][h_outz]+0.25,10,INVALID_PLAYER_ID,INVALID_VEHICLE_ID,0,-1,-1,-1,STREAMER_3D_TEXT_LABEL_SD,STREAMER_TAG_AREA:-1,0);
hInfo[id][h_mapicon] = CreateDynamicMapIcon(hInfo[id][h_outx],hInfo[id][h_outy],hInfo[id][h_outz],31,0,-1,-1,-1,50,MAPICON_GLOBAL,-1,0);
}
printf("HausID: %i PICKUPD: %i ",id,hInfo[id][h_pickup]);
printf("HausID: %i Text: %s ",id,string);
printf("HausID: %i Mapicon: %i ",id,hInfo[id][h_mapicon]);
print("============================");
return 1;
}
Alles anzeigen
Und hier einmal die Prints
Beim Start:
Und einmal beim Updaten hauskauf oder verkauf:
Jetzt eine andere Frage:
Ich habe ein Enum für die Fraktionen erstellt und dort die Koordinaten der Base etc eingetragen.Jetzt will ich aber ein paar Sachen aus dem Enum in die Datenbank speichern und beim Serverstart wieder abrufen.
Wie mache ich das am besten?
Naja beim gamemode exit eine Funktion rein und dann die entsprechenden Variablen in deine Datenbank speichern was benutzt du MySQL? Dini? Was hast du bis jetzt schon?
Anstatt dort "return 1" zu printen, lieber den Frakwert..
Probier das mal aus
Jo hatte ich auch drüber schon geprintet
war korrekt und so funktioniert es wie gewollt danke dir bester mann
Es wird ein Reallife Projekt
Hallo liebe Brotfische
Auf diesem Wege suche ich Teammitglieder die noch mit genauso viel Leidenschaft und Emotionen an SAMP hängen wie ich.
Kurz zu meiner Person
Ich bin Felix 25 Jahre.
Ich bin seit 2010 in der SAMP Szene unterwegs anfangs nur als normaler Spieler später dann auf einem etwas größerem server auch supporter und Mapper.
Kurz zum Projekt & was gesucht wird
Bei dem Projekt welches ich angefangen habe handelt es sich um ein Reallife-Selfmade script welches von mir im August 2021 angefangen wurde.
Ich suche nun für mein Projekt jemanden der sich in Sachen Map Design zuhause fühlt.
Außerdem suche ich jemanden der vielleicht einige Ideen zu Systemen oder Funktionen beisteuern kann.
Bei diesem Projekt handelt es sich um ein Projekt aus Leidenschaft also wenn du dich angesprochen fühlst kannst du mir gerne eine DM schreiben.
Mfg
Flex
Moin ich habe 2 Fragen.
1. Hat jemand ein einfaches anti money cheat mit link vielleicht finde nicht so wirklich das was ich suche 😂
2. Kann ich eine MySQL Update nicht mit mehren formats aneinander hängen?
Mfg
Wird das ganze entlohnt?
Ne 😂 ich hoffe auf jemanden der aus spaß und mit Leidenschaft noch an samp arbeitet. Ich selber mache es nur als Hobby und hoffe jemand zu finden der das genauso sieht 😉
Ist er denn in einem Interior?
Nope er ist draußen
@MyU
Habe es nun einmal mit OnActorStreamIn probiert funktioniert bis jetzt einwandfrei ![]()
Falls er in einem Interior ist, solltest du diesen reloaden, sobald man das Interior betritt.
Wenn er draußen ist, solltest du ihn reloaden, sobald die Person in einen Radius von ihm kommt.
Das Problem ist nämlich, dass sie clientseitig animiert werden und wenn er zu weit weg ist, schlägt das fehl und es passiert nix.
Wie reloade ich ihn am besten wie sollte die funktion am schlausten aussehen?
Versuch mal während du bei dem Actor stehst diese Zeile ein paar mal auszuführen.
Falls sich beim 2ten/3ten mal etwas bewegt dann ist die Animation nicht vorgeladen.
Vorladen kannst du diese folgendermaßen:
ApplyAnimation(playerid, "CRACK", "null", 0.0, 0, 0, 0, 0, 0); unter z.B. OnPlayerConnect.
Also egal wie oft ich im script einfüge das er die Animation ausführen soll passiert nix aber sobald ich es mit einem Comment mache zack führt er sie beim ersten mal aus die Animationen werden alles Gepreloaded.
Mein Leude,
ich habe diesmal ein kleines Problem mit meinen Actors sie werden erstellt alles gut aber sie führen die Anumationen nicht aus woran könnte es liegen?
ActorUWE = CreateActor(213,-202.3141,2676.2710,63.3277,250.4066);
SetActorInvulnerable(ActorUWE,true);
ApplyActorAnimation(ActorUWE,"CRACK","crckidle4",4.1,1,0,0,0,0);
ActorNUDELNOOB = CreateActor(209,-219.5454,2650.8962,62.8684,37.0695);
SetActorInvulnerable(ActorNUDELNOOB,true);
ApplyActorAnimation(ActorNUDELNOOB,"CRACK","crckidle4",4.1,1,0,0,0,0);
Besten Dank
![]()